From 994bfa12eff67739140227f1eb35c3a6672d1f16 Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Mon, 13 May 2024 16:09:39 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=A8=E9=87=8F=E6=8E=A5=E5=8F=A3copy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...CompanyBigScreenStatisticsServiceImpl.java | 4 +- .../QualityInspectionRecordController.java | 130 +++- .../vo/QualityInspectionRecordTotalVo.java | 40 -- .../entity/vo/QualityInspectionRecordVo.java | 2 + .../modules/quality/entity/vo/RecordVo.java | 3 +- .../entity/vo/SelectQualityStatisticsVo.java | 14 - .../mapper/QualityInspectionRecordMapper.java | 31 +- .../xml/QualityInspectionRecordMapper.xml | 599 ++++++++++++------ .../IQualityInspectionRecordService.java | 36 +- .../QualityInspectionRecordServiceImpl.java | 199 +++++- 10 files changed, 745 insertions(+), 313 deletions(-) delete mode 100644 src/main/java/com/zhgd/xmgl/modules/quality/entity/vo/QualityInspectionRecordTotalVo.java delete mode 100644 src/main/java/com/zhgd/xmgl/modules/quality/entity/vo/SelectQualityStatisticsVo.java diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/CompanyBigScreenStatisticsServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/CompanyBigScreenStatisticsServiceImpl.java index 3ceafdba0..e34a6c45a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/CompanyBigScreenStatisticsServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/CompanyBigScreenStatisticsServiceImpl.java @@ -16,7 +16,6 @@ import com.zhgd.xmgl.modules.electrical.mapper.ElectricalDevMapper; import com.zhgd.xmgl.modules.environment.mapper.EnvironmentAlarmMapper; import com.zhgd.xmgl.modules.environment.mapper.EnvironmentDevMapper; import com.zhgd.xmgl.modules.project.mapper.ProjectMapper; -import com.zhgd.xmgl.modules.quality.entity.vo.QualityInspectionRecordTotalVo; import com.zhgd.xmgl.modules.quality.mapper.QualityInspectionRecordMapper; import com.zhgd.xmgl.modules.security.mapper.SecurityManageMapper; import com.zhgd.xmgl.modules.standard.mapper.StandardDevMapper; @@ -24,6 +23,7 @@ import com.zhgd.xmgl.modules.video.mapper.VideoAlarmMapper; import com.zhgd.xmgl.modules.water.mapper.WaterMeterMapper; import com.zhgd.xmgl.modules.worker.mapper.WorkerAttendanceMapper; import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper; +import com.zhgd.xmgl.modules.xz.security.entity.vo.XzSecurityQualityInspectionRecordTotalVo; import com.zhgd.xmgl.util.DateUtils; import org.apache.commons.collections.MapUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -218,7 +218,7 @@ public class CompanyBigScreenStatisticsServiceImpl implements ICompanyBigScreenS data.put("securityCount", securityCount); //查询质量检查 - QualityInspectionRecordTotalVo qualityCount = qualityInspectionRecordMapper.selectQualityInspectionRecordPageTotal(map); + XzSecurityQualityInspectionRecordTotalVo qualityCount = qualityInspectionRecordMapper.selectQualityInspectionRecordPageTotal(map); data.put("qualityCount", qualityCount); Integer totalPerson = workerInfoMapper.selectWorkerTotalCount(map); Map attendancePerson = workerInfoMapper.selectAttendanceWorkerPersonTypeTotal(map); diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/controller/QualityInspectionRecordController.java b/src/main/java/com/zhgd/xmgl/modules/quality/controller/QualityInspectionRecordController.java index 26f9b8185..a80ea4d58 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/controller/QualityInspectionRecordController.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/controller/QualityInspectionRecordController.java @@ -1,14 +1,20 @@ package com.zhgd.xmgl.modules.quality.controller; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.base.entity.vo.SectorVo; import com.zhgd.xmgl.base.entity.vo.TrendOneVo; +import com.zhgd.xmgl.modules.dangerous.service.IDangerousEngineeringRecordService; import com.zhgd.xmgl.modules.quality.entity.QualityInspectionRecord; import com.zhgd.xmgl.modules.quality.entity.dto.DepartmentRectifiedRankDto; import com.zhgd.xmgl.modules.quality.entity.vo.*; import com.zhgd.xmgl.modules.quality.service.IQualityInspectionRecordService; +import com.zhgd.xmgl.modules.video.service.IAiAnalyseHardWareAlarmRecordService; +import com.zhgd.xmgl.modules.xz.security.entity.dto.XzSecurityDepartmentRectifiedRankDto; +import com.zhgd.xmgl.modules.xz.security.entity.vo.*; import com.zhgd.xmgl.util.MessageUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -21,6 +27,8 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; +import java.math.BigDecimal; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -41,6 +49,9 @@ public class QualityInspectionRecordController { @Autowired private IQualityInspectionRecordService qualityInspectionRecordService; + @Autowired + private IAiAnalyseHardWareAlarmRecordService aiAnalyseHardWareAlarmRecordService; + /** * 分页列表查询 * @@ -67,8 +78,14 @@ public class QualityInspectionRecordController { @ApiImplicitParam(name = "search", value = "搜索(检查部位、问题分类、问题描述、补充说明、整改要求)", paramType = "body", required = false, dataType = "String"), @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "body", required = true, dataType = "Integer"), @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "body", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "isDangerousEngineering", value = "是否危大1是", paramType = "body", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "enumType", value = "问题等级,1重大隐患,2较大隐患,3一般隐患,4低隐患", paramType = "body", required = false, dataType = "Integer"), + @ApiImplicitParam(name = "isNotQualified", value = "是否未销项", paramType = "body", required = false, dataType = "Integer"), + @ApiImplicitParam(name = "isOverdueRectification", value = "是否超期未整改1是", paramType = "body", required = false, dataType = "Integer"), + @ApiImplicitParam(name = "enterpriseId", value = "合作单位id", paramType = "body", required = false, dataType = "String"), + }) - @PostMapping(value = "/list") + @PostMapping(value = {"/list", "/page"}) public Result queryPageList(@RequestBody Map map) { return Result.success(qualityInspectionRecordService.selectQualityInspectionRecordPage(map)); } @@ -104,7 +121,7 @@ public class QualityInspectionRecordController { @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String") }) @GetMapping(value = "/getQualityAcceptanceAndRectificationNum") - public Result getQualityAcceptanceAndRectificationNum(String projectSn) { + public Result getQualityAcceptanceAndRectificationNum(String projectSn) { return Result.success(qualityInspectionRecordService.getQualityAcceptanceAndRectificationNum(projectSn)); } @@ -118,7 +135,7 @@ public class QualityInspectionRecordController { @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String") }) @GetMapping(value = "/getQualityAcceptanceAndRectificationNumThisWeek") - public Result getQualityAcceptanceAndRectificationNumThisWeek(String projectSn) { + public Result getQualityAcceptanceAndRectificationNumThisWeek(String projectSn) { return Result.success(qualityInspectionRecordService.getQualityAcceptanceAndRectificationNumThisWeek(projectSn)); } @@ -149,7 +166,7 @@ public class QualityInspectionRecordController { @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String") }) @GetMapping(value = "/getAllAndWeekData") - public Result getAllAndWeekData(String projectSn) { + public Result getAllAndWeekData(String projectSn) { return Result.success(qualityInspectionRecordService.getAllAndWeekData(projectSn)); } @@ -245,7 +262,7 @@ public class QualityInspectionRecordController { @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = true, dataType = "String"), }) @PostMapping(value = "/selectQualityStatistics") - public Result selectQualityStatistics(@RequestBody Map map) { + public Result selectQualityStatistics(@RequestBody Map map) { return Result.success(qualityInspectionRecordService.selectQualityStatistics(map)); } @@ -271,7 +288,7 @@ public class QualityInspectionRecordController { @ApiOperation(value = "PC端按部门进行整改排名(已整改数量)", notes = "PC端按部门进行整改排名(已整改数量)", httpMethod = "GET") @GetMapping(value = "/department/rectified/rank") - public Result> getDepartmentRectifiedRank(@Validated DepartmentRectifiedRankDto rectifiedRank) { + public Result> getDepartmentRectifiedRank(@Validated XzSecurityDepartmentRectifiedRankDto rectifiedRank) { return qualityInspectionRecordService.getDepartmentRectifiedRank(rectifiedRank); } @@ -299,6 +316,13 @@ public class QualityInspectionRecordController { @ApiOperation(value = "责任区城分析", notes = "责任区城分析", httpMethod = "POST") @ApiImplicitParams({ @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "enumType", value = "问题等级,1重大隐患,2较大隐患,3一般隐患,4低隐患", paramType = "body", required = false, dataType = "Integer"), + @ApiImplicitParam(name = "isNotQualified", value = "是否未销项", paramType = "body", required = false, dataType = "Integer"), + @ApiImplicitParam(name = "isOverdueRectification", value = "是否超期未整改1是", paramType = "body", required = false, dataType = "Integer"), + @ApiImplicitParam(name = "inspectTime_begin", value = "检查开始时间", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "inspectTime_end", value = "检查结束时间", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "enumType", value = "问题等级,1重大隐患,2较大隐患,3一般隐患,4低隐患", paramType = "body", required = false, dataType = "Integer"), + }) @PostMapping(value = "/countQualityInspectionRecordRegion") public Result> countQualityInspectionRecordRegion(@ApiIgnore @RequestBody HashMap paramMap) { @@ -306,4 +330,98 @@ public class QualityInspectionRecordController { } + @ApiOperation(value = "整改人统计", notes = "整改人统计", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "inspectTime_begin", value = "检查开始时间", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "inspectTime_end", value = "检查结束时间", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "body", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "body", required = true, dataType = "Integer"), + }) + @PostMapping(value = "/statsByChangeId") + public Result> statsByChangeId(@ApiIgnore @RequestBody Map paramMap) { + return Result.success(qualityInspectionRecordService.statsByChangeId(paramMap)); + } + + @ApiOperation(value = "安全问题统计数量列表", notes = "安全问题统计数量列表", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "inspectStartTime", value = "检查开始时间", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "inspectEndTime", value = "检查结束时间", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "isStatsByWeek", value = "按周统计(统计一个月,1-7号算一周类推)1是", paramType = "body", required = false, dataType = "Integer"), + }) + @PostMapping(value = "/selectQualityStatisticsNumList") + public Result> selectQualityStatisticsNumList(@RequestBody Map map) { + return Result.success(qualityInspectionRecordService.selectQualityStatisticsNumList(map)); + } + + @ApiOperation(value = "统计隐患等级", notes = "统计隐患等级", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "isNotQualified", value = "是否未销项1是", paramType = "body", required = false, dataType = "Integer"), + @ApiImplicitParam(name = "isOverdueRectification", value = "是否超期未整改1是", paramType = "body", required = false, dataType = "Integer"), + @ApiImplicitParam(name = "inspectStartTime", value = "检查开始时间", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "inspectEndTime", value = "检查结束时间", paramType = "body", required = false, dataType = "String"), + }) + @PostMapping(value = "/countDangerLevel") + public Result countDangerLevel(@ApiIgnore @RequestBody Map paramMap) { + return Result.success(qualityInspectionRecordService.countDangerLevel(paramMap)); + } + + @ApiOperation(value = "检查人统计", notes = "检查人统计", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "inspectTime_begin", value = "检查开始时间", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "inspectTime_end", value = "检查结束时间", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "body", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "body", required = true, dataType = "Integer"), + }) + @PostMapping(value = "/statsByInspectMan") + public Result> statsByInspectMan(@ApiIgnore @RequestBody Map paramMap) { + return Result.success(qualityInspectionRecordService.statsByInspectMan(paramMap)); + } + + @ApiOperation(value = "按分包单位统计", notes = "按分包单位统计", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "inspectTime_begin", value = "检查开始时间", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "inspectTime_end", value = "检查结束时间", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "notQualified", value = "未销项", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "body", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "body", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "isNotQualified", value = "是否未销项", paramType = "body", required = false, dataType = "Integer"), + @ApiImplicitParam(name = "isOverdueRectification", value = "是否超期未整改1是", paramType = "body", required = false, dataType = "Integer"), + @ApiImplicitParam(name = "enumType", value = "问题等级,1重大隐患,2较大隐患,3一般隐患,4低隐患", paramType = "body", required = false, dataType = "Integer"), + }) + @PostMapping(value = "/statsByEnterprise") + public Result> statsByEnterprise(@ApiIgnore @RequestBody Map paramMap) { + return Result.success(qualityInspectionRecordService.statsByEnterprise(paramMap)); + } + + @ApiOperation(value = "隐患类型分析", notes = "隐患类型分析", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "enumType", value = "问题等级,1重大隐患,2较大隐患,3一般隐患,4低隐患", paramType = "body", required = false, dataType = "Integer"), + @ApiImplicitParam(name = "isNotQualified", value = "是否未销项", paramType = "body", required = false, dataType = "Integer"), + @ApiImplicitParam(name = "isOverdueRectification", value = "是否超期未整改1是", paramType = "body", required = false, dataType = "Integer"), + @ApiImplicitParam(name = "inspectTime_begin", value = "检查开始时间", paramType = "body", required = false, dataType = "String"), + @ApiImplicitParam(name = "inspectTime_end", value = "检查结束时间", paramType = "body", required = false, dataType = "String"), + }) + @PostMapping(value = "/statsDangerType") + public Result statsDangerType(@ApiIgnore @RequestBody Map paramMap) { + return Result.success(qualityInspectionRecordService.statsDangerType(paramMap)); + } + + @ApiOperation(value = "风险走势图", notes = "风险走势图", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = true, dataType = "String"), + }) + @PostMapping(value = "/riskChart") + public Result> riskChart(@RequestBody Map map) { + return Result.success(qualityInspectionRecordService.riskChart(map)); + } + + } + + diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/entity/vo/QualityInspectionRecordTotalVo.java b/src/main/java/com/zhgd/xmgl/modules/quality/entity/vo/QualityInspectionRecordTotalVo.java deleted file mode 100644 index c90bc5a2a..000000000 --- a/src/main/java/com/zhgd/xmgl/modules/quality/entity/vo/QualityInspectionRecordTotalVo.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.zhgd.xmgl.modules.quality.entity.vo; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -@Data -public class QualityInspectionRecordTotalVo { - - private Integer verificationNum; - private Double rectificationRatio; - @ApiModelProperty("合格(已闭合)") - private Integer closeNum; - private Integer reviewNum; - private Integer investigateNum; - @ApiModelProperty("超期未关闭") - private Integer overdueNotCloseNum; - @ApiModelProperty("未整改数") - private Integer rectificationNum; - private Integer ybUrgentLevelNum; - private Integer yzUrgentLevelNum; - @ApiModelProperty("总数") - private String totalNum; - private Double completeRatio; - @ApiModelProperty("已整改数") - private Integer alreadyRectificationNum; - private Integer jyUrgentLevelNum; - private Integer overdueRectificationNum; - @ApiModelProperty("未闭合") - private Integer notCloseNum; - @ApiModelProperty("今日较昨日总数") - private Integer totalNumDifferYesterday; - @ApiModelProperty("今日较昨日超期未关闭") - private Integer overdueNotCloseNumDifferYesterday; - @ApiModelProperty("今日较昨日已闭合") - private Integer closeNumDifferYesterday; - @ApiModelProperty("今日较昨日未闭合") - private Integer notCloseNumDifferYesterday; - - -} diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/entity/vo/QualityInspectionRecordVo.java b/src/main/java/com/zhgd/xmgl/modules/quality/entity/vo/QualityInspectionRecordVo.java index 03ce33f75..56e2c8b97 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/entity/vo/QualityInspectionRecordVo.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/entity/vo/QualityInspectionRecordVo.java @@ -25,5 +25,7 @@ public class QualityInspectionRecordVo extends QualityInspectionRecord { private String problemDescription; private String dangerName; private String dangerItemName; + @ApiModelProperty(value = "危大工程名称") + private java.lang.String engineeringName; } diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/entity/vo/RecordVo.java b/src/main/java/com/zhgd/xmgl/modules/quality/entity/vo/RecordVo.java index 3bae867be..998ea1811 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/entity/vo/RecordVo.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/entity/vo/RecordVo.java @@ -2,10 +2,11 @@ package com.zhgd.xmgl.modules.quality.entity.vo; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhgd.jeecg.common.mybatis.EntityMap; +import com.zhgd.xmgl.modules.xz.security.entity.vo.XzSecurityQualityInspectionRecordTotalVo; import lombok.Data; @Data public class RecordVo { private Page page; - private QualityInspectionRecordTotalVo total; + private XzSecurityQualityInspectionRecordTotalVo total; } diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/entity/vo/SelectQualityStatisticsVo.java b/src/main/java/com/zhgd/xmgl/modules/quality/entity/vo/SelectQualityStatisticsVo.java deleted file mode 100644 index 25a440a75..000000000 --- a/src/main/java/com/zhgd/xmgl/modules/quality/entity/vo/SelectQualityStatisticsVo.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.zhgd.xmgl.modules.quality.entity.vo; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.util.List; -import java.util.Map; - -@Data -public class SelectQualityStatisticsVo { - @ApiModelProperty("统计") - private QualityInspectionRecordTotalVo total; - private List> monthList; -} diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/mapper/QualityInspectionRecordMapper.java b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/QualityInspectionRecordMapper.java index 05e0bd777..be1d31128 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/mapper/QualityInspectionRecordMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/QualityInspectionRecordMapper.java @@ -9,10 +9,13 @@ import com.zhgd.xmgl.base.entity.vo.TrendOneVo; import com.zhgd.xmgl.modules.quality.entity.QualityInspectionRecord; import com.zhgd.xmgl.modules.quality.entity.dto.DepartmentRectifiedRankDto; import com.zhgd.xmgl.modules.quality.entity.vo.*; +import com.zhgd.xmgl.modules.xz.security.entity.dto.XzSecurityDepartmentRectifiedRankDto; +import com.zhgd.xmgl.modules.xz.security.entity.vo.*; import lombok.Data; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -31,7 +34,11 @@ public interface QualityInspectionRecordMapper extends BaseMapper selectQualityInspectionRecordPage(Page page, @Param("param") Map map); - QualityInspectionRecordTotalVo selectQualityInspectionRecordPageTotal(Map map); + XzSecurityQualityInspectionRecordTotalVo selectQualityInspectionRecordPageTotal(@Param("param") Map map); + + List selectQualityInspectionRecordPageTotal(@Param("param") Map map, @Param("o") Object o); + + List riskChart(@Param("param") Map map); List> selectQualityInspectionRecordCountByDay(Map map); @@ -49,17 +56,29 @@ public interface QualityInspectionRecordMapper extends BaseMapper getDepartmentRectifiedRank(DepartmentRectifiedRankDto rectifiedRank); + List getDepartmentRectifiedRank(XzSecurityDepartmentRectifiedRankDto rectifiedRank); List countQualityInspectionRecordEnterprise(HashMap paramMap); List countQualityInspectionRecordUrgentLevel(HashMap paramMap); - List countQualityInspectionRecordRegion(HashMap paramMap); + List countQualityInspectionRecordRegion(@Param("param") HashMap paramMap); + + Page statsByChangeId(@Param("param") Map paramMap, Page page); + + ArrayList countDangerLevel(@Param("param") Map paramMap); + + Page statsByInspectManVo(@Param("param") Map paramMap, Page page); + + Page statsByEnterprise(@Param("param") Map paramMap, Page page); + + List statsDangerType(@Param("param") Map paramMap); + + } diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityInspectionRecordMapper.xml b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityInspectionRecordMapper.xml index 057318ae2..05b7814c5 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityInspectionRecordMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityInspectionRecordMapper.xml @@ -1,6 +1,186 @@ + + + and t.inspect_time =]]> #{param.inspectTime_begin} + + + and t.inspect_time if(LENGTH(#{param.inspectTime_end}) = 10, + CONCAT(DATE_FORMAT( + #{param.inspectTime_end}, '%Y-%m-%d'), ' 23:59:59'), + #{param.inspectTime_end}) + + + and t.level = #{param.enumType} + + + and (t.status = 2 AND now() > t.change_limit_time) + + + and t.status != 5 + + + and t.inspect_time >= #{param.inspectStartTime} + + + and t.inspect_time <= if(LENGTH(#{param.inspectEndTime}) = 10, + CONCAT(DATE_FORMAT( + #{param.inspectEndTime}, '%Y-%m-%d'), ' 23:59:59'), + #{param.inspectEndTime}) + + + and t.region_id = #{param.regionId} + + + and t.change_id = #{param.changeId} + + + and t.review_id = #{param.reviewId} + + + and t.verify_man_id = #{param.verifyManId} + + + and t.creator_id = #{param.creatorId} + + + and t.inspect_man_id = #{param.inspectManId} + + + and t.level = #{param.level} + + + and t.status = #{param.status} + + + and t.urgent_level = #{param.urgentLevel} + + + and t.record_type = 2 + + + and t.status = 5 + + + and t.status in (1, 2, 3, 4, 6) + + + and t.status in (1, 2, 3, 4, 6) + and t.change_limit_time > DATE_FORMAT(now(), "%Y-%m-%d") + + + and t.status = 2 + + + and t.status = 3 + + + and t.status = 4 + + + and t.engineering_id is not null + + + and t.record_type = + #{param.recordType} + + + and t.change_id = #{param.changeId} + + + and t.review_id = #{param.reviewId} + + + and t.verify_man_id = #{param.verifyManId} + + + and t.creator_id = #{param.creatorId} + + + and t.inspect_man_id = #{param.inspectManId} + + + and ((t.change_id = #{param.operatorId} and t.status = 2) or (t.review_id = #{param.operatorId} and t.status + = 3) or (t.verify_man_id = #{param.operatorId} and t.status = 4)) + + + and t.status = #{param.status} + + + and t.change_limit_time current_date and t.status != 5 + + + and ( t.region_name like concat('%', + #{param.search}, '%') + or t.danger_item_content like concat('%', + #{param.search}, '%') + or t.danger_desc like concat('%', + #{param.search}, '%') + or t.remark like concat('%', + #{param.search}, '%') + ) + + + and t.item_id = + #{param.itemId} + + + and t.engineering_id = #{param.engineeringId} + + + + + select tp.*, + round(IFNULL(TRUNCATE(IFNULL(closeNum, 0) / IFNULL(totalNum, 0), 4), 0) * 100, + 2) completeRatio, + round(IFNULL(TRUNCATE(IFNULL(totalNum - rectificationNum, 0) / IFNULL(totalNum, 0), 4), 0) * 100, 2) + rectificationRatio, + round(IFNULL(TRUNCATE(IFNULL(overdueRectificationNum, 0) / IFNULL(totalNum, 0), 4), 0) * 100, 2) + overdueRectificationNumRatio + from ( + SELECT count(1) totalNum, + IFNULL(SUM((CASE WHEN t.record_type = 2 THEN 1 ELSE 0 END)), 0) investigateNum, + IFNULL(SUM((CASE WHEN t.status = 5 THEN 1 ELSE 0 END)), 0) closeNum, + IFNULL(SUM((CASE + WHEN t.status = 1 OR t.status = 2 OR t.status = 3 OR t.status = 4 THEN 1 + ELSE 0 END)), 0) notCloseNum, + IFNULL(SUM((CASE + WHEN t.status != 5 AND now() > t.change_limit_time THEN 1 + ELSE 0 END)), 0) overdueNotCloseNum, + IFNULL(SUM((CASE + WHEN t.status = 2 AND now() > t.change_limit_time THEN 1 + ELSE 0 END)), 0) overdueRectificationNum, + IFNULL(SUM((CASE WHEN t.status = 2 THEN 1 ELSE 0 END)), 0) rectificationNum, + IFNULL(SUM((CASE WHEN t.status != 2 THEN 1 ELSE 0 END)), 0) alreadyRectificationNum, + IFNULL(SUM((CASE WHEN t.status = 3 THEN 1 ELSE 0 END)), 0) reviewNum, + IFNULL(SUM((CASE WHEN t.status = 4 THEN 1 ELSE 0 END)), 0) verificationNum, + IFNULL(SUM((CASE WHEN t.urgent_level = 1 THEN 1 ELSE 0 END)), 0) ybUrgentLevelNum, + IFNULL(SUM((CASE WHEN t.urgent_level = 2 THEN 1 ELSE 0 END)), 0) yzUrgentLevelNum, + IFNULL(SUM((CASE WHEN t.urgent_level = 3 THEN 1 ELSE 0 END)), 0) jyUrgentLevelNum, + IFNULL(SUM((CASE WHEN t.record_type = 1 THEN 1 ELSE 0 END)), 0) dangerNum, + IFNULL(SUM((CASE WHEN t.level = 1 THEN 1 ELSE 0 END)), 0) greatFaultLevelNum, + IFNULL(SUM((CASE WHEN t.level = 2 THEN 1 ELSE 0 END)), 0) largerRiskNum, + IFNULL(SUM((CASE WHEN t.level = 3 THEN 1 ELSE 0 END)), 0) generalRiskNum, + IFNULL(SUM((CASE WHEN t.level = 4 THEN 1 ELSE 0 END)), 0) lowRiskNum, + if(FLOOR((DAYOFMONTH(t.create_time) - 1) / 7) > 3, 3, + FLOOR((DAYOFMONTH(t.create_time) - 1) / 7)) as whichWeekOfMonth, + date_format(t.create_time, '%Y-%m') as yearMonth, + year(t.create_time) as year, + month(t.create_time) as month + from quality_inspection_record t + WHERE t.project_sn = #{param.projectSn} + and t.status != 6 + + + + group by whichWeekOfMonth + + + group by yearMonth + + ) tp + @@ -299,108 +413,52 @@ resultType="com.zhgd.jeecg.common.mybatis.EntityMap"> SELECT a.inspect_man_id, d.real_name inspect_man_name, COUNT(1) num from quality_inspection_record a - INNER JOIN system_user d ON a.inspect_man_id = d.user_id + INNER JOIN system_user d ON a.inspect_man_id = d.user_id WHERE a.project_sn = #{projectSn} - AND a.record_type = 1 + AND a.record_type = 1 GROUP BY a.inspect_man_id - select COUNT(1) allTotal, @@ -450,8 +508,8 @@ WHERE a.project_sn = #{projectSn} + + + + + + + + + + + + diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/service/IQualityInspectionRecordService.java b/src/main/java/com/zhgd/xmgl/modules/quality/service/IQualityInspectionRecordService.java index acc359bc7..a97ff0c4c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/service/IQualityInspectionRecordService.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/service/IQualityInspectionRecordService.java @@ -1,5 +1,6 @@ package com.zhgd.xmgl.modules.quality.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.mybatis.EntityMap; @@ -8,8 +9,12 @@ import com.zhgd.xmgl.base.entity.vo.TrendOneVo; import com.zhgd.xmgl.modules.quality.entity.QualityInspectionRecord; import com.zhgd.xmgl.modules.quality.entity.dto.DepartmentRectifiedRankDto; import com.zhgd.xmgl.modules.quality.entity.vo.*; +import com.zhgd.xmgl.modules.xz.security.entity.dto.XzSecurityDepartmentRectifiedRankDto; +import com.zhgd.xmgl.modules.xz.security.entity.vo.*; import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -26,7 +31,7 @@ public interface IQualityInspectionRecordService extends IService map); - SelectQualityStatisticsVo selectQualityStatistics(Map map); + XzSecuritySelectQualityStatisticsVo selectQualityStatistics(Map map); Map selectDangerTypeQualityCount(Map map); @@ -40,7 +45,7 @@ public interface IQualityInspectionRecordService extends IService selectPersonChargeQualityInspectionCountList(Map map); - void saveQualityInspectionRecord(QualityInspectionRecord qualityInspectionRecord); + void saveQualityInspectionRecord(QualityInspectionRecord xzSecurityQualityInspectionRecord); void noticeBigScreen(QualityInspectionRecord qualityInspectionRecord, String time, String format); @@ -48,15 +53,15 @@ public interface IQualityInspectionRecordService extends IService limitListBySubdivision(String projectSn, Long subsectionId, Long subentryId, Integer size); - Result> getDepartmentRectifiedRank(DepartmentRectifiedRankDto rectifiedRank); + Result> getDepartmentRectifiedRank(XzSecurityDepartmentRectifiedRankDto rectifiedRank); List countQualityInspectionRecordEnterprise(HashMap paramMap); @@ -64,7 +69,24 @@ public interface IQualityInspectionRecordService extends IService countQualityInspectionRecordRegion(HashMap paramMap); + Page statsByChangeId(Map paramMap); + void revocation(QualityInspectionRecord xzSecurityQualityInspectionRecord); - void edit(QualityInspectionRecord qualityInspectionRecord); + void edit(QualityInspectionRecord xzSecurityQualityInspectionRecord); + + XzSecurityQualityInspectionRecordTotalVo selectQualityStatisticsNum(Map map); + + List selectQualityStatisticsNumList(Map map); + + SectorVo countDangerLevel(Map paramMap); + + Page statsByInspectMan(Map paramMap); + + Page statsByEnterprise(Map paramMap); + + SectorVo statsDangerType(Map paramMap); + + List riskChart(Map map); + } diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityInspectionRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityInspectionRecordServiceImpl.java index a94a0283e..3846a08f0 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityInspectionRecordServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityInspectionRecordServiceImpl.java @@ -28,7 +28,6 @@ import com.zhgd.xmgl.modules.quality.entity.DangerItemRecord; import com.zhgd.xmgl.modules.quality.entity.QualityInspectionRecord; import com.zhgd.xmgl.modules.quality.entity.QualityRectifyRecord; import com.zhgd.xmgl.modules.quality.entity.QualityRegion; -import com.zhgd.xmgl.modules.quality.entity.dto.DepartmentRectifiedRankDto; import com.zhgd.xmgl.modules.quality.entity.vo.*; import com.zhgd.xmgl.modules.quality.mapper.DangerItemRecordMapper; import com.zhgd.xmgl.modules.quality.mapper.QualityInspectionRecordMapper; @@ -41,11 +40,10 @@ import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper; import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper; import com.zhgd.xmgl.modules.xz.entity.XzDeductScoreRecord; import com.zhgd.xmgl.modules.xz.mapper.XzDeductScoreRecordMapper; +import com.zhgd.xmgl.modules.xz.security.entity.dto.XzSecurityDepartmentRectifiedRankDto; +import com.zhgd.xmgl.modules.xz.security.entity.vo.*; import com.zhgd.xmgl.push.config.PushPayloads; -import com.zhgd.xmgl.util.JxlExcelUtils; -import com.zhgd.xmgl.util.MapBuilder; -import com.zhgd.xmgl.util.MessageUtil; -import com.zhgd.xmgl.util.NumberUtils; +import com.zhgd.xmgl.util.*; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.StringUtils; @@ -57,6 +55,8 @@ import javax.servlet.http.HttpServletResponse; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** * @Description: 质量检查记录 @@ -153,7 +153,7 @@ public class QualityInspectionRecordServiceImpl extends ServiceImpl map) { - SelectQualityStatisticsVo selectQualityStatisticsVo = new SelectQualityStatisticsVo(); + public XzSecuritySelectQualityStatisticsVo selectQualityStatistics(Map map) { + XzSecuritySelectQualityStatisticsVo selectQualityStatisticsVo = new XzSecuritySelectQualityStatisticsVo(); /* xmgl/qualityInspectionRecord/selectQualityStatistics totalNum: '',问题总数 @@ -178,7 +178,7 @@ public class QualityInspectionRecordServiceImpl extends ServiceImpl data = new HashMap<>(); map.put("recordType", "1"); - QualityInspectionRecordTotalVo total = qualityInspectionRecordMapper.selectQualityInspectionRecordPageTotal(map); + XzSecurityQualityInspectionRecordTotalVo total = qualityInspectionRecordMapper.selectQualityInspectionRecordPageTotal(map); setDifferYesterday(map, total); List> monthList = qualityInspectionRecordMapper.selectQualityInspectionRecordCountByDay(map); List dayList = getDayList(); @@ -206,11 +206,11 @@ public class QualityInspectionRecordServiceImpl extends ServiceImpl map, QualityInspectionRecordTotalVo total) { + private void setDifferYesterday(Map map, XzSecurityQualityInspectionRecordTotalVo total) { Date date = new Date(); map.put("inspectStartTime", DateUtil.today()); map.put("inspectEndTime", DateUtil.format(DateUtil.endOfDay(new Date()), "yyyy-MM-dd HH:mm:ss")); - QualityInspectionRecordTotalVo todayTotal = qualityInspectionRecordMapper.selectQualityInspectionRecordPageTotal(map); + XzSecurityQualityInspectionRecordTotalVo todayTotal = qualityInspectionRecordMapper.selectQualityInspectionRecordPageTotal(map); total.setTotalNumDifferYesterday(Integer.parseInt(todayTotal.getTotalNum())); total.setCloseNumDifferYesterday(todayTotal.getCloseNum()); total.setNotCloseNumDifferYesterday(todayTotal.getNotCloseNum()); @@ -425,24 +425,24 @@ public class QualityInspectionRecordServiceImpl extends ServiceImpl> getDepartmentRectifiedRank(DepartmentRectifiedRankDto rectifiedRank) { - List voList = qualityInspectionRecordMapper.getDepartmentRectifiedRank(rectifiedRank); + public Result> getDepartmentRectifiedRank(XzSecurityDepartmentRectifiedRankDto rectifiedRank) { + List voList = qualityInspectionRecordMapper.getDepartmentRectifiedRank(rectifiedRank); return Result.success(voList); } @@ -564,7 +564,7 @@ public class QualityInspectionRecordServiceImpl extends ServiceImpl riskChart(Map map) { + map.put("groupby", "yearmonth"); + List datas = baseMapper.riskChart(map); + List rsList = new ArrayList<>(); + Map ymMap = datas.stream().collect(Collectors.toMap(XzSecurityQualityInspectionRecordTotalVo::getYearMonth, Function.identity(), (k1, k2) -> k1)); + List dateTimeStrList = DateUtils.getDateTimeStrList(93, "yyyy-MM"); + for (String month : dateTimeStrList) { + XzSecurityQualityInspectionRecordTotalVo vo = ymMap.get(month); + if (vo == null) { + vo = new XzSecurityQualityInspectionRecordTotalVo(); + vo.setYearMonth(month); + vo.setVerificationNum(0); + vo.setRectificationRatio(0.0D); + vo.setCloseNum(0); + vo.setReviewNum(0); + vo.setInvestigateNum(0); + vo.setOverdueNotCloseNum(0); + vo.setRectificationNum(0); + vo.setYbUrgentLevelNum(0); + vo.setYzUrgentLevelNum(0); + vo.setTotalNum("0"); + vo.setCompleteRatio(0.0D); + vo.setAlreadyRectificationNum(0); + vo.setJyUrgentLevelNum(0); + vo.setOverdueRectificationNum(0); + vo.setOverdueRectificationNumRatio(0.0D); + vo.setNotCloseNum(0); + vo.setTotalNumDifferYesterday(0); + vo.setOverdueNotCloseNumDifferYesterday(0); + vo.setCloseNumDifferYesterday(0); + vo.setNotCloseNumDifferYesterday(0); + vo.setGreatFaultLevelNum(0); + vo.setDangerNum(0); + vo.setLowRiskNum(0); + vo.setGeneralRiskNum(0); + vo.setLargerRiskNum(0); + vo.setWhichWeekOfMonth(0); + vo.setMonthlyBasis(0.0D); + } + vo.setLastMonth(DateUtil.month(DateUtil.parse(month, "yyyy-MM")) + "月"); + rsList.add(vo); + } + return rsList; + } + + @Override + public Page statsByChangeId(Map paramMap) { + Page page = PageUtil.getPage(paramMap); + return baseMapper.statsByChangeId(paramMap, page); + } + + private XzSecurityQualityInspectionRecordTotalVo getXzSecurityQualityInspectionRecordTotalVo(Map map) { + XzSecurityQualityInspectionRecordTotalVo total = qualityInspectionRecordMapper.selectQualityInspectionRecordPageTotal(map); + setDifferYesterday(map, total); + return total; + } + + @Override + public XzSecurityQualityInspectionRecordTotalVo selectQualityStatisticsNum(Map map) { + return getXzSecurityQualityInspectionRecordTotalVo(map); + } + + private XzSecurityQualityInspectionRecordTotalVo getWeekCountInitial(Integer whichWeekOfMonth) { + XzSecurityQualityInspectionRecordTotalVo e = new XzSecurityQualityInspectionRecordTotalVo(); + e.setDangerNum(0); + e.setLowRiskNum(0); + e.setGeneralRiskNum(0); + e.setLargerRiskNum(0); + e.setGreatFaultLevelNum(0); + e.setRectificationNum(0); + e.setNotCloseNum(0); + e.setWhichWeekOfMonth(whichWeekOfMonth); + return e; + } + + @Override + public List selectQualityStatisticsNumList(Map map) { + Integer isStatsByWeek = MapUtils.getInteger(map, "isStatsByWeek"); + List vos = qualityInspectionRecordMapper.selectQualityInspectionRecordPageTotal(map, ""); + Map whichMap = vos.stream().collect(Collectors.toMap(XzSecurityQualityInspectionRecordTotalVo::getWhichWeekOfMonth, v -> v, (t, t2) -> t)); + if (Objects.equals(isStatsByWeek, 1)) { + ArrayList allList = new ArrayList<>(); + allList.add(getWeekCountInitial(0)); + allList.add(getWeekCountInitial(1)); + allList.add(getWeekCountInitial(2)); + allList.add(getWeekCountInitial(3)); + ArrayList rtList = new ArrayList<>(); + for (XzSecurityQualityInspectionRecordTotalVo vo : allList) { + Integer whichWeekOfMonth = vo.getWhichWeekOfMonth(); + XzSecurityQualityInspectionRecordTotalVo dataVo = whichMap.get(whichWeekOfMonth); + if (dataVo != null) { + vo = dataVo; + } + if (Objects.equals(whichWeekOfMonth, 0)) { + String w1b = DateUtil.format(new Date(), "yyyy-MM-") + "01"; + String w1e = DateUtil.format(new Date(), "yyyy-MM-") + "07"; + vo.setWeekBetweenStr(w1b + " - " + w1e); + } else if (Objects.equals(whichWeekOfMonth, 1)) { + String w1b = DateUtil.format(new Date(), "yyyy-MM-") + "08"; + String w1e = DateUtil.format(new Date(), "yyyy-MM-") + "14"; + vo.setWeekBetweenStr(w1b + " - " + w1e); + } else if (Objects.equals(whichWeekOfMonth, 2)) { + String w1b = DateUtil.format(new Date(), "yyyy-MM-") + "15"; + String w1e = DateUtil.format(new Date(), "yyyy-MM-") + "21"; + vo.setWeekBetweenStr(w1b + " - " + w1e); + } else if (Objects.equals(whichWeekOfMonth, 3)) { + String w1b = DateUtil.format(new Date(), "yyyy-MM-") + "22"; + String w1e = DateUtil.format(DateUtil.endOfMonth(new Date()), "yyyy-MM-dd"); + vo.setWeekBetweenStr(w1b + " - " + w1e); + } + rtList.add(vo); + } + vos = rtList; + + } + return vos; + } + + @Override + public SectorVo countDangerLevel(Map paramMap) { + ArrayList list = baseMapper.countDangerLevel(paramMap); + return SectorVo.getSectorVoByEnum(list, ParamEnum.QualityInspectionRecordLevel.values(), false); + } + + @Override + public Page statsByInspectMan(Map paramMap) { + Page page = PageUtil.getPage(paramMap); + return baseMapper.statsByInspectManVo(paramMap, page); + } + + @Override + public Page statsByEnterprise(Map paramMap) { + Page page = PageUtil.getPage(paramMap); + return baseMapper.statsByEnterprise(paramMap, page); + } + + @Override + public SectorVo statsDangerType(Map paramMap) { + List data = baseMapper.statsDangerType(paramMap); + return SectorVo.getSectorVo(data); + } + }