diff --git a/src/main/java/com/zhgd/xmgl/modules/dangerous/controller/HiddenDangerInspectRecordController.java b/src/main/java/com/zhgd/xmgl/modules/dangerous/controller/HiddenDangerInspectRecordController.java index 4d81100e4..7eb5d48cb 100644 --- a/src/main/java/com/zhgd/xmgl/modules/dangerous/controller/HiddenDangerInspectRecordController.java +++ b/src/main/java/com/zhgd/xmgl/modules/dangerous/controller/HiddenDangerInspectRecordController.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerInspectRecord; +import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerInspectionStatistics; import com.zhgd.xmgl.modules.dangerous.entity.vo.AllTodayDataHdirVO; import com.zhgd.xmgl.modules.dangerous.entity.vo.AllWeekDataHdirVO; import com.zhgd.xmgl.modules.dangerous.entity.vo.TotalAndWeekHiddenDanger; @@ -256,4 +257,21 @@ public class HiddenDangerInspectRecordController { public Result> selectEnterpriseScoreList(@RequestBody Map map) { return Result.success(hiddenDangerInspectRecordService.selectEnterpriseScoreList(map)); } + + @ApiOperation(value = "按问题检查类型统计问题占比", notes = "按问题检查类型统计问题占比", httpMethod = "POST") + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String") + @PostMapping(value = "/selectHiddenDangerTypeRatio") + public Result> selectHiddenDangerTypeRatio(@RequestBody Map map) { + return Result.success(hiddenDangerInspectRecordService.selectHiddenDangerTypeRatio(map)); + } + + @ApiOperation(value = "按问题状态统计问题趋势", notes = "按问题状态统计问题趋势", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"), + @ApiImplicitParam(name = "offsetDay", value = "查询天数(不填默认15天)", paramType = "query", dataType = "Integer"), + }) + @PostMapping(value = "/selectHiddenDangerStateTrend") + public Result> selectHiddenDangerStateTrend(@RequestBody Map map) { + return Result.success(hiddenDangerInspectRecordService.selectHiddenDangerStateTrend(map)); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/dangerous/entity/HiddenDangerInspectionStatistics.java b/src/main/java/com/zhgd/xmgl/modules/dangerous/entity/HiddenDangerInspectionStatistics.java new file mode 100644 index 000000000..e604af93c --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/dangerous/entity/HiddenDangerInspectionStatistics.java @@ -0,0 +1,67 @@ +package com.zhgd.xmgl.modules.dangerous.entity; + +import java.io.Serializable; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @Description: 隐患检查记录统计 + * @author: pengj + * @date: 2023-03-23 + * @version: V1.0 + */ +@Data +@TableName("hidden_danger_inspection_statistics") +@ApiModel(value = "HiddenDangerInspectionStatistics实体类", description = "HiddenDangerInspectionStatistics") +public class HiddenDangerInspectionStatistics implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private Long id; + /** + * 统计时间 + */ + @Excel(name = "统计日期", width = 20, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty(value = "统计日期") + private Date createTime; + /** + * 新增隐患 + */ + @Excel(name = "新增隐患", width = 15) + @ApiModelProperty(value = "新增隐患") + private Integer increaseNum; + /** + * 消除隐患 + */ + @Excel(name = "消除隐患", width = 15) + @ApiModelProperty(value = "消除隐患") + private Integer solveNum; + /** + * 未消除隐患 + */ + @Excel(name = "未消除隐患", width = 15) + @ApiModelProperty(value = "未消除隐患") + private Integer unResolveNum; + + /** + * 项目SN + */ + @Excel(name = "项目SN", width = 15) + @ApiModelProperty(value = "项目SN") + private String projectSn; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/dangerous/mapper/HiddenDangerInspectRecordMapper.java b/src/main/java/com/zhgd/xmgl/modules/dangerous/mapper/HiddenDangerInspectRecordMapper.java index a4ba67763..c7b274af0 100644 --- a/src/main/java/com/zhgd/xmgl/modules/dangerous/mapper/HiddenDangerInspectRecordMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/dangerous/mapper/HiddenDangerInspectRecordMapper.java @@ -1,9 +1,11 @@ package com.zhgd.xmgl.modules.dangerous.mapper; +import cn.hutool.core.date.DateTime; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerInspectRecord; +import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerInspectionStatistics; import com.zhgd.xmgl.modules.dangerous.entity.vo.AllTodayDataHdirVO; import com.zhgd.xmgl.modules.dangerous.entity.vo.AllWeekDataHdirVO; import com.zhgd.xmgl.modules.dangerous.entity.vo.TotalAndWeekHiddenDanger; @@ -59,4 +61,10 @@ public interface HiddenDangerInspectRecordMapper extends BaseMapper selectHiddenDangerTypeRatio(Map map); + + List getGroupByProjectSn(); + + HiddenDangerInspectionStatistics statisticsByStatue(DateTime startTime, DateTime endTime, String projectSn); } diff --git a/src/main/java/com/zhgd/xmgl/modules/dangerous/mapper/HiddenDangerInspectionStatisticsMapper.java b/src/main/java/com/zhgd/xmgl/modules/dangerous/mapper/HiddenDangerInspectionStatisticsMapper.java new file mode 100644 index 000000000..c178c712a --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/dangerous/mapper/HiddenDangerInspectionStatisticsMapper.java @@ -0,0 +1,19 @@ +package com.zhgd.xmgl.modules.dangerous.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerInspectionStatistics; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 隐患检查记录统计 + * @author: pengj + * @date: 2023-03-23 + * @version: V1.0 + */ +@Mapper +public interface HiddenDangerInspectionStatisticsMapper extends BaseMapper { + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/dangerous/mapper/xml/HiddenDangerInspectRecordMapper.xml b/src/main/java/com/zhgd/xmgl/modules/dangerous/mapper/xml/HiddenDangerInspectRecordMapper.xml index 3d053d748..f55e50b43 100644 --- a/src/main/java/com/zhgd/xmgl/modules/dangerous/mapper/xml/HiddenDangerInspectRecordMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/dangerous/mapper/xml/HiddenDangerInspectRecordMapper.xml @@ -396,4 +396,22 @@ WHERE project_sn = #{projectSn} + + + + + + \ No newline at end of file diff --git a/src/main/java/com/zhgd/xmgl/modules/dangerous/mapper/xml/HiddenDangerInspectionStatisticsMapper.xml b/src/main/java/com/zhgd/xmgl/modules/dangerous/mapper/xml/HiddenDangerInspectionStatisticsMapper.xml new file mode 100644 index 000000000..a223e11dd --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/dangerous/mapper/xml/HiddenDangerInspectionStatisticsMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/java/com/zhgd/xmgl/modules/dangerous/service/IHiddenDangerInspectRecordService.java b/src/main/java/com/zhgd/xmgl/modules/dangerous/service/IHiddenDangerInspectRecordService.java index 0b39ac1fa..8a45fc43b 100644 --- a/src/main/java/com/zhgd/xmgl/modules/dangerous/service/IHiddenDangerInspectRecordService.java +++ b/src/main/java/com/zhgd/xmgl/modules/dangerous/service/IHiddenDangerInspectRecordService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerInspectRecord; +import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerInspectionStatistics; import com.zhgd.xmgl.modules.dangerous.entity.vo.AllTodayDataHdirVO; import com.zhgd.xmgl.modules.dangerous.entity.vo.AllWeekDataHdirVO; import com.zhgd.xmgl.modules.dangerous.entity.vo.TotalAndWeekHiddenDanger; @@ -65,4 +66,8 @@ public interface IHiddenDangerInspectRecordService extends IService selectHiddenDangerTypeRatio(Map map); + + List selectHiddenDangerStateTrend(Map map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/dangerous/service/IHiddenDangerInspectionStatisticsService.java b/src/main/java/com/zhgd/xmgl/modules/dangerous/service/IHiddenDangerInspectionStatisticsService.java new file mode 100644 index 000000000..d5cd92f8f --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/dangerous/service/IHiddenDangerInspectionStatisticsService.java @@ -0,0 +1,14 @@ +package com.zhgd.xmgl.modules.dangerous.service; + +import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerInspectionStatistics; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 隐患检查记录统计 + * @author: pengj + * @date: 2023-03-23 + * @version: V1.0 + */ +public interface IHiddenDangerInspectionStatisticsService extends IService { + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/dangerous/service/impl/HiddenDangerInspectRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/dangerous/service/impl/HiddenDangerInspectRecordServiceImpl.java index 8333b3821..7637020c6 100644 --- a/src/main/java/com/zhgd/xmgl/modules/dangerous/service/impl/HiddenDangerInspectRecordServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/dangerous/service/impl/HiddenDangerInspectRecordServiceImpl.java @@ -1,6 +1,8 @@ package com.zhgd.xmgl.modules.dangerous.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.util.NumberUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -12,6 +14,7 @@ import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.basicdata.service.INoticeService; import com.zhgd.xmgl.modules.dangerous.entity.DangerInspectionAcceptanceTableResult; import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerInspectRecord; +import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerInspectionStatistics; import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerRectifyRecord; import com.zhgd.xmgl.modules.dangerous.entity.vo.AllDataHdirVO; import com.zhgd.xmgl.modules.dangerous.entity.vo.AllTodayDataHdirVO; @@ -19,6 +22,7 @@ import com.zhgd.xmgl.modules.dangerous.entity.vo.AllWeekDataHdirVO; import com.zhgd.xmgl.modules.dangerous.entity.vo.TotalAndWeekHiddenDanger; import com.zhgd.xmgl.modules.dangerous.mapper.DangerInspectionAcceptanceTableResultMapper; import com.zhgd.xmgl.modules.dangerous.mapper.HiddenDangerInspectRecordMapper; +import com.zhgd.xmgl.modules.dangerous.mapper.HiddenDangerInspectionStatisticsMapper; import com.zhgd.xmgl.modules.dangerous.mapper.HiddenDangerRectifyRecordMapper; import com.zhgd.xmgl.modules.dangerous.service.IHiddenDangerInspectRecordService; import com.zhgd.xmgl.modules.project.mapper.ProjectMapper; @@ -50,6 +54,10 @@ public class HiddenDangerInspectRecordServiceImpl extends ServiceImpl selectHiddenDangerTypeRatio(Map map) { + Integer total = baseMapper.selectCount(null); + List entityMapList = baseMapper.selectHiddenDangerTypeRatio(map); + for (EntityMap entityMap : entityMapList) { + Integer num = Integer.parseInt(entityMap.get("num").toString()); + entityMap.put("total", total); + entityMap.put("num", num); + entityMap.put("ratio", total == 0 ? 0 : NumberUtil.round(num * 100F / total, 2).floatValue()); + } + return entityMapList; + } + + @Override + public List selectHiddenDangerStateTrend(Map map) { + Integer offsetDay = MapUtils.getInteger(map, "offsetDay"); + if (offsetDay == null || offsetDay <= 1) { + offsetDay = -15; + } else { + offsetDay = -offsetDay; + } + return hiddenDangerInspectionStatisticsMapper.selectList(Wrappers. + lambdaQuery().eq(HiddenDangerInspectionStatistics::getProjectSn, MapUtils.getString(map, "projectSn")) + .between(HiddenDangerInspectionStatistics::getCreateTime, + DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), offsetDay)), + DateUtil.endOfDay(DateUtil.offsetDay(new Date(), -1)))); + } + /** * 设置全部占比 * diff --git a/src/main/java/com/zhgd/xmgl/modules/dangerous/service/impl/HiddenDangerInspectionStatisticsServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/dangerous/service/impl/HiddenDangerInspectionStatisticsServiceImpl.java new file mode 100644 index 000000000..78880ccdb --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/dangerous/service/impl/HiddenDangerInspectionStatisticsServiceImpl.java @@ -0,0 +1,19 @@ +package com.zhgd.xmgl.modules.dangerous.service.impl; + +import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerInspectionStatistics; +import com.zhgd.xmgl.modules.dangerous.mapper.HiddenDangerInspectionStatisticsMapper; +import com.zhgd.xmgl.modules.dangerous.service.IHiddenDangerInspectionStatisticsService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 隐患检查记录统计 + * @author: pengj + * @date: 2023-03-23 + * @version: V1.0 + */ +@Service +public class HiddenDangerInspectionStatisticsServiceImpl extends ServiceImpl implements IHiddenDangerInspectionStatisticsService { + +} diff --git a/src/main/java/com/zhgd/xmgl/task/RundeTask.java b/src/main/java/com/zhgd/xmgl/task/RundeTask.java index cdced1b6d..2a9ebc84e 100644 --- a/src/main/java/com/zhgd/xmgl/task/RundeTask.java +++ b/src/main/java/com/zhgd/xmgl/task/RundeTask.java @@ -1,11 +1,19 @@ package com.zhgd.xmgl.task; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.text.CharSequenceUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.zhgd.xmgl.config.RundeWSClient; +import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerInspectRecord; +import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerInspectionStatistics; +import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerRectifyRecord; +import com.zhgd.xmgl.modules.dangerous.mapper.HiddenDangerInspectRecordMapper; +import com.zhgd.xmgl.modules.dangerous.service.IHiddenDangerInspectRecordService; +import com.zhgd.xmgl.modules.dangerous.service.IHiddenDangerInspectionStatisticsService; import com.zhgd.xmgl.modules.helmet.entity.RundeGroup; import com.zhgd.xmgl.modules.helmet.service.RundeGroupService; import com.zhgd.xmgl.modules.project.entity.Project; @@ -19,10 +27,7 @@ import org.springframework.stereotype.Component; import javax.websocket.WebSocketContainer; import java.net.URI; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -45,6 +50,12 @@ public class RundeTask { @Autowired RundeGroupService rundeGroupService; + @Autowired + HiddenDangerInspectRecordMapper hiddenDangerInspectRecordMapper; + + @Autowired + IHiddenDangerInspectionStatisticsService hiddenDangerInspectionStatisticsService; + /** * 获取安全帽最新数量 */ @@ -98,4 +109,22 @@ public class RundeTask { log.error(String.valueOf(e)); } } + + /** + * 按状态统计每天的隐患数量 + */ + @Scheduled(cron = "0 0 0 * * ?") + public void hiddenDangerStatistics() { + DateTime startTime = DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), -1)); + DateTime endTime = DateUtil.endOfDay(DateUtil.offsetDay(new Date(), -1)); + List projectSns = hiddenDangerInspectRecordMapper.getGroupByProjectSn(); + List list = new ArrayList<>(); + for (String projectSn : projectSns) { + HiddenDangerInspectionStatistics statistics = hiddenDangerInspectRecordMapper.statisticsByStatue(startTime, endTime, projectSn); + statistics.setProjectSn(projectSn); + statistics.setCreateTime(DateUtil.offsetDay(new Date(), -1)); + list.add(statistics); + } + hiddenDangerInspectionStatisticsService.saveBatch(list); + } }