车辆统计接口

This commit is contained in:
guoshengxiong 2024-05-27 16:31:26 +08:00
parent dca2ac1a68
commit 7a20a6ca47
10 changed files with 97 additions and 21 deletions

View File

@ -11,6 +11,7 @@ import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService; import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService;
import com.zhgd.xmgl.modules.car.entity.CarInfo; import com.zhgd.xmgl.modules.car.entity.CarInfo;
import com.zhgd.xmgl.modules.car.entity.vo.CountCarModuleTypeVo;
import com.zhgd.xmgl.modules.car.service.ICarInfoService; import com.zhgd.xmgl.modules.car.service.ICarInfoService;
import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService; import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService;
import com.zhgd.xmgl.security.util.SecurityUtils; import com.zhgd.xmgl.security.util.SecurityUtils;
@ -240,13 +241,23 @@ public class CarInfoController {
return result; return result;
} }
@ApiOperation(value = "统计项目下各车辆类型情况", notes = "统计项目下各车辆类型情况", httpMethod="POST") @ApiOperation(value = "统计项目下各车辆黑白名单情况", notes = "统计项目下各车辆黑白名单情况", httpMethod = "POST")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = true, dataType = "String"), @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = true, dataType = "String"),
}) })
@PostMapping(value = "/selectCarTypeCount") @PostMapping(value = "/selectCarTypeCount")
public Result<Map<String, Object>> selectCarTypeCount(@RequestBody Map<String,Object> map) { public Result<Map<String, Object>> selectCarTypeCount(@RequestBody Map<String, Object> map) {
return Result.success(carInfoService.selectCarTypeCount(map)); return Result.success(carInfoService.selectCarTypeCount(map));
} }
} @ApiOperation(value = "统计项目下各车辆类型情况", notes = "统计项目下各车辆类型情况", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = true, dataType = "String"),
})
@PostMapping(value = "/countCarModuleType")
public Result<CountCarModuleTypeVo> countCarModuleType(@RequestBody Map<String, Object> map) {
return Result.success(carInfoService.countCarModuleType(map));
}
}

View File

@ -0,0 +1,14 @@
package com.zhgd.xmgl.modules.car.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class CountCarModuleTypeVo {
@ApiModelProperty("固定车数量")
private Integer gdcNum;
@ApiModelProperty("长期车数量")
private Integer cqcNum;
@ApiModelProperty("临时车数量")
private Integer lscNum;
}

View File

@ -8,9 +8,28 @@ import lombok.Data;
public class TodayOutInNumber { public class TodayOutInNumber {
private String passTime; private String passTime;
@ApiModelProperty("出的数量") @ApiModelProperty("出的数量(总出场次数)")
private Integer outnum; private Integer outnum;
@ApiModelProperty("进的数量") @ApiModelProperty("进的数量(总进场次数)")
private Integer innum; private Integer innum;
@ApiModelProperty("固定车进场车次")
private Integer gdcInNum;
@ApiModelProperty("长期车进场车次")
private Integer cqcInNum;
@ApiModelProperty("临时车进场车次")
private Integer lscInNum;
@ApiModelProperty("外来车辆进场车次")
private Integer wlcInNum;
@ApiModelProperty("固定车出场车次")
private Integer gdcOutNum;
@ApiModelProperty("长期车出场车次")
private Integer cqcOutNum;
@ApiModelProperty("临时车出场车次")
private Integer lscOutNum;
@ApiModelProperty("外来车辆出场车次")
private Integer wlcOutNum;
} }

View File

@ -6,6 +6,7 @@ import java.util.Map;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.annotation.DataScope; import com.zhgd.annotation.DataScope;
import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.car.entity.vo.CountCarModuleTypeVo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.zhgd.xmgl.modules.car.entity.CarInfo; import com.zhgd.xmgl.modules.car.entity.CarInfo;
@ -18,7 +19,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @version V1.0 * @version V1.0
*/ */
@Mapper @Mapper
@DataScope @DataScope(includeTable = "car_info")
public interface CarInfoMapper extends BaseMapper<CarInfo> { public interface CarInfoMapper extends BaseMapper<CarInfo> {
@DataScope(includeTable = "car_info") @DataScope(includeTable = "car_info")
@ -27,4 +28,6 @@ public interface CarInfoMapper extends BaseMapper<CarInfo> {
List<Map<String, Object>> selectCarTypeCount(Map<String, Object> map); List<Map<String, Object>> selectCarTypeCount(Map<String, Object> map);
String getCarTypeName(CarInfo carInfo); String getCarTypeName(CarInfo carInfo);
CountCarModuleTypeVo countCarModuleType(@Param("param") Map<String, Object> map);
} }

View File

@ -1,5 +1,6 @@
package com.zhgd.xmgl.modules.car.mapper; package com.zhgd.xmgl.modules.car.mapper;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -11,6 +12,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.zhgd.xmgl.modules.car.entity.CarPassRecord; import com.zhgd.xmgl.modules.car.entity.CarPassRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.data.redis.hash.HashMapper;
/** /**
* @Description: 车辆通行记录 * @Description: 车辆通行记录
@ -19,7 +21,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @version V1.0 * @version V1.0
*/ */
@Mapper @Mapper
@DataScope(includeTable = "enterprise_info") @DataScope(includeTable = "car_info")
public interface CarPassRecordMapper extends BaseMapper<CarPassRecord> { public interface CarPassRecordMapper extends BaseMapper<CarPassRecord> {
Map<String, Object> getCurrentDayCarPassRecordOutAndInNum(Map<String, Object> map); Map<String, Object> getCurrentDayCarPassRecordOutAndInNum(Map<String, Object> map);
@ -41,7 +43,7 @@ public interface CarPassRecordMapper extends BaseMapper<CarPassRecord> {
String selectCarEnterTime(@Param("projectSn") String projectSn, @Param("carNumber") String carNumber); String selectCarEnterTime(@Param("projectSn") String projectSn, @Param("carNumber") String carNumber);
TodayOutInNumber getTodayOutInNumber(@Param("projectSn") String projectSn, @Param("isOpen") Integer isOpen); TodayOutInNumber getTodayOutInNumber(@Param("projectSn") String projectSn, @Param("isOpen") Integer isOpen, @Param("param") HashMap<String, Object> param);
CarPassRecord queryNewestCarPassRecord(Map<String, Object> map); CarPassRecord queryNewestCarPassRecord(Map<String, Object> map);

View File

@ -52,4 +52,13 @@
inner join car_type ct on ci.car_type = ct.id inner join car_type ct on ci.car_type = ct.id
where ci.id=#{id} where ci.id=#{id}
</select> </select>
<select id="countCarModuleType" resultType="com.zhgd.xmgl.modules.car.entity.vo.CountCarModuleTypeVo">
select
ifnull(sum(if(t.car_module_type=1,1,0)),0) as gdcNum,
ifnull(sum(if(t.car_module_type=2,1,0)),0) as cqcNum,
ifnull(sum(if(t.car_module_type=3,1,0)),0) as lscNum
from car_info as t
WHERE t.project_sn=#{param.projectSn}
</select>
</mapper> </mapper>

View File

@ -211,13 +211,22 @@
LIMIT 1 LIMIT 1
</select> </select>
<select id="getTodayOutInNumber" resultType="com.zhgd.xmgl.modules.car.entity.vo.TodayOutInNumber"> <select id="getTodayOutInNumber" resultType="com.zhgd.xmgl.modules.car.entity.vo.TodayOutInNumber">
SELECT IFNULL(SUM((CASE WHEN type = 1 THEN 1 ELSE 0 END)), 0) outnum, SELECT IFNULL(SUM((CASE WHEN t.type = 1 THEN 1 ELSE 0 END)), 0) outnum,
IFNULL(SUM((CASE WHEN type = 0 THEN 1 ELSE 0 END)), 0) innum IFNULL(SUM((CASE WHEN t.type = 0 THEN 1 ELSE 0 END)), 0) innum,
FROM car_pass_record ifnull(sum(if(ifnull(c.car_module_type,4)=1 and t.type=0,1,0)),0) as gdcInNum,
WHERE project_sn = #{projectSn} ifnull(sum(if(ifnull(c.car_module_type,4)=2 and t.type=0,1,0)),0) as cqcInNum,
AND pass_time >= CONCAT(DATE_FORMAT(now(), "%Y-%m-%d"), ' 00:00:00') ifnull(sum(if(ifnull(c.car_module_type,4)=3 and t.type=0,1,0)),0) as lscInNum,
ifnull(sum(if(ifnull(c.car_module_type,4)=4 and t.type=0,1,0)),0) as wlcInNum,
ifnull(sum(if(ifnull(c.car_module_type,4)=1 and t.type=1,1,0)),0) as gdcOutNum,
ifnull(sum(if(ifnull(c.car_module_type,4)=2 and t.type=1,1,0)),0) as cqcOutNum,
ifnull(sum(if(ifnull(c.car_module_type,4)=3 and t.type=1,1,0)),0) as lscOutNum,
ifnull(sum(if(ifnull(c.car_module_type,4)=4 and t.type=1,1,0)),0) as wlcOutNum
FROM car_pass_record as t
left join car_info as c on c.car_number=t.car_number and c.project_sn=t.project_sn
WHERE t.project_sn = #{projectSn}
AND t.pass_time >= CONCAT(DATE_FORMAT(now(), "%Y-%m-%d"), ' 00:00:00')
<if test="isOpen != null and isOpen != ''"> <if test="isOpen != null and isOpen != ''">
and is_open = #{isOpen} and t.is_open = #{isOpen}
</if> </if>
</select> </select>

View File

@ -5,6 +5,7 @@ import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.car.entity.CarInfo; import com.zhgd.xmgl.modules.car.entity.CarInfo;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.zhgd.xmgl.modules.car.entity.vo.CountCarModuleTypeVo;
import java.util.Map; import java.util.Map;
@ -27,4 +28,6 @@ public interface ICarInfoService extends IService<CarInfo> {
Map<String, Object> selectCarTypeCount(Map<String, Object> map); Map<String, Object> selectCarTypeCount(Map<String, Object> map);
void delete(Map<String, Object> map); void delete(Map<String, Object> map);
CountCarModuleTypeVo countCarModuleType(Map<String, Object> map);
} }

View File

@ -14,6 +14,7 @@ import com.zhgd.xmgl.async.AsyncHikvision;
import com.zhgd.xmgl.async.AsyncWorker; import com.zhgd.xmgl.async.AsyncWorker;
import com.zhgd.xmgl.modules.basicdata.service.impl.SystemUserServiceImpl; import com.zhgd.xmgl.modules.basicdata.service.impl.SystemUserServiceImpl;
import com.zhgd.xmgl.modules.car.entity.*; import com.zhgd.xmgl.modules.car.entity.*;
import com.zhgd.xmgl.modules.car.entity.vo.CountCarModuleTypeVo;
import com.zhgd.xmgl.modules.car.mapper.*; import com.zhgd.xmgl.modules.car.mapper.*;
import com.zhgd.xmgl.modules.car.service.ICarInfoService; import com.zhgd.xmgl.modules.car.service.ICarInfoService;
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper; import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper;
@ -212,4 +213,9 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
//同步海康 //同步海康
asyncHikvision.deleteCarInfoForHikvision(carInfo); asyncHikvision.deleteCarInfoForHikvision(carInfo);
} }
@Override
public CountCarModuleTypeVo countCarModuleType(Map<String, Object> map) {
return baseMapper.countCarModuleType(map);
}
} }

View File

@ -443,7 +443,7 @@ public class CarPassRecordServiceImpl extends ServiceImpl<CarPassRecordMapper, C
@Override @Override
public TodayOutInNumber getTodayOutInNumber(String projectSn, Integer isOpen) { public TodayOutInNumber getTodayOutInNumber(String projectSn, Integer isOpen) {
return carPassRecordMapper.getTodayOutInNumber(projectSn, isOpen); return carPassRecordMapper.getTodayOutInNumber(projectSn, isOpen, new HashMap<String, Object>());
} }
@Override @Override