diff --git a/src/main/java/com/zhgd/xmgl/modules/dangerous/service/IDangerousEngineeringRecordService.java b/src/main/java/com/zhgd/xmgl/modules/dangerous/service/IDangerousEngineeringRecordService.java index 26b2c0da4..8b1e483a4 100644 --- a/src/main/java/com/zhgd/xmgl/modules/dangerous/service/IDangerousEngineeringRecordService.java +++ b/src/main/java/com/zhgd/xmgl/modules/dangerous/service/IDangerousEngineeringRecordService.java @@ -4,9 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.dangerous.entity.DangerousEngineeringRecord; import com.baomidou.mybatisplus.extension.service.IService; -import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityQualityInspectionRecord; +import com.zhgd.xmgl.modules.xz.security.entity.vo.GetStatScoreVo; -import java.math.BigDecimal; import java.util.Date; import java.util.Map; @@ -30,7 +29,7 @@ public interface IDangerousEngineeringRecordService extends IService paramMap); - BigDecimal getScore(String projectSn, Date time); + GetStatScoreVo.DangerEngScore getScore(String projectSn, Date time); void finish(Long engineeringId); } diff --git a/src/main/java/com/zhgd/xmgl/modules/dangerous/service/impl/DangerousEngineeringRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/dangerous/service/impl/DangerousEngineeringRecordServiceImpl.java index 3d7c70fa8..7668e0493 100644 --- a/src/main/java/com/zhgd/xmgl/modules/dangerous/service/impl/DangerousEngineeringRecordServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/dangerous/service/impl/DangerousEngineeringRecordServiceImpl.java @@ -25,7 +25,7 @@ import com.zhgd.xmgl.modules.dangerous.service.IDangerousEngineeringRecordServic import com.zhgd.xmgl.modules.dangerous.service.IDangerousEngineeringSideStationService; import com.zhgd.xmgl.modules.dangerous.service.IHiddenDangerInspectRecordService; import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper; -import com.zhgd.xmgl.security.util.SecurityUtils; +import com.zhgd.xmgl.modules.xz.security.entity.vo.GetStatScoreVo; import com.zhgd.xmgl.util.MapBuilder; import com.zhgd.xmgl.util.MessageUtil; import org.apache.commons.collections.MapUtils; @@ -206,10 +206,13 @@ public class DangerousEngineeringRecordServiceImpl extends ServiceImpl list = this.list(Wrappers.lambdaQuery() .eq(DangerousEngineeringRecord::getProjectSn, projectSn) .between(DangerousEngineeringRecord::getCreateTime, DateUtil.beginOfMonth(date), DateUtil.endOfMonth(date))); + BigDecimal pcfglMax = new BigDecimal(100).multiply(new BigDecimal(0.6)).setScale(2, RoundingMode.HALF_UP); + BigDecimal pzjlMax = new BigDecimal(100).multiply(new BigDecimal(0.4)).setScale(2, RoundingMode.HALF_UP); if (list.size() > 0) { List list1 = list.stream().filter(l -> DateUtil.compare(DateUtil.parseDate(l.getPlanEndTime()), date, "yyyy-MM-dd") >= 0 && DateUtil.compare(date, DateUtil.parseDate(l.getPlanStartTime()), "yyyy-MM-dd") <= 0).collect(Collectors.toList()); @@ -250,9 +253,19 @@ public class DangerousEngineeringRecordServiceImpl extends ServiceImpl getStatScore(String projectSn) { - BigDecimal hiddenDangerScore = qualityInspectionRecordService.getHiddenDangerScore(projectSn, new Date()); - BigDecimal dangerEngScore = dangerousEngineeringRecordService.getScore(projectSn, new Date()); - BigDecimal riskScore = qualityInspectionRecordService.getRiskScore(projectSn, new Date()); + public Result getStatScore(String projectSn) { + GetStatScoreVo.HiddenDangerScore hiddenDangerScoreClz = qualityInspectionRecordService.getHiddenDangerScore(projectSn, new Date()); + GetStatScoreVo.DangerEngScore dangerEngScoreClz = dangerousEngineeringRecordService.getScore(projectSn, new Date()); + GetStatScoreVo.RiskScore riskScoreClz = qualityInspectionRecordService.getRiskScore(projectSn, new Date()); BigDecimal aiScore = aiAnalyseHardWareAlarmRecordService.getScore(projectSn, new Date()); Date lastMonth = DateUtil.offsetMonth(new Date(), -1); - BigDecimal hiddenDangerScore1 = qualityInspectionRecordService.getHiddenDangerScore(projectSn, lastMonth); - BigDecimal dangerEngScore1 = dangerousEngineeringRecordService.getScore(projectSn, lastMonth); - BigDecimal riskScore1 = qualityInspectionRecordService.getRiskScore(projectSn, lastMonth); + GetStatScoreVo.HiddenDangerScore hiddenDangerScoreClz1 = qualityInspectionRecordService.getHiddenDangerScore(projectSn, lastMonth); + GetStatScoreVo.DangerEngScore dangerEngScoreClz1 = dangerousEngineeringRecordService.getScore(projectSn, lastMonth); + GetStatScoreVo.RiskScore riskScoreClz1 = qualityInspectionRecordService.getRiskScore(projectSn, lastMonth); BigDecimal aiScore1 = aiAnalyseHardWareAlarmRecordService.getScore(projectSn, lastMonth); Map resultMap = new HashMap<>(); + BigDecimal hiddenDangerScore = hiddenDangerScoreClz.getTotal().multiply(new BigDecimal(0.35)).setScale(0, RoundingMode.HALF_UP); + BigDecimal hiddenDangerScore1 = hiddenDangerScoreClz1.getTotal().multiply(new BigDecimal(0.35)).setScale(0, RoundingMode.HALF_UP); resultMap.put("hiddenDangerScore", hiddenDangerScore); + resultMap.put("hiddenDangerScoreClz", hiddenDangerScoreClz); + BigDecimal dangerEngScore = dangerEngScoreClz.getTotal().multiply(new BigDecimal(0.15)).setScale(0, RoundingMode.HALF_UP); + BigDecimal dangerEngScore1 = dangerEngScoreClz1.getTotal().multiply(new BigDecimal(0.15)).setScale(0, RoundingMode.HALF_UP); resultMap.put("dangerEngScore", dangerEngScore); + resultMap.put("dangerEngScoreClz", dangerEngScoreClz); + BigDecimal riskScore = riskScoreClz.getTotal().multiply(new BigDecimal(0)); + BigDecimal riskScore1 = riskScoreClz1.getTotal().multiply(new BigDecimal(0)); resultMap.put("riskScore", riskScore); + resultMap.put("riskDeScore", new BigDecimal(0)); + resultMap.put("riskScoreClz", riskScoreClz); resultMap.put("aiScore", aiScore); BigDecimal total = hiddenDangerScore.add(dangerEngScore).add(riskScore).add(aiScore).add(new BigDecimal(30)).setScale(0, RoundingMode.HALF_UP); resultMap.put("total", total); BigDecimal lastMonthTotal = hiddenDangerScore1.add(dangerEngScore1).add(riskScore1).add(aiScore1).add(new BigDecimal(30)).setScale(0, RoundingMode.HALF_UP); resultMap.put("lastMonthTotal", lastMonthTotal); + resultMap.put("edu", new BigDecimal(30)); + resultMap.put("eduModuleScore", new BigDecimal(100)); + resultMap.put("eduModuleDeScore", new BigDecimal(0)); + resultMap.put("aiModuleScore", aiScore.divide(new BigDecimal(20)).multiply(new BigDecimal(100)).setScale(0, RoundingMode.HALF_UP)); + resultMap.put("aiModuleDeScore", new BigDecimal(100).subtract((BigDecimal) resultMap.get("aiModuleScore")).setScale(0, RoundingMode.HALF_UP)); BigDecimal subtract = total.subtract(lastMonthTotal); subtract = subtract.divide(lastMonthTotal, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)); resultMap.put("radio", subtract); - return Result.success(resultMap); + return Result.success(BeanUtil.toBean(resultMap, GetStatScoreVo.class)); } diff --git a/src/main/java/com/zhgd/xmgl/modules/xz.security/entity/vo/GetStatScoreVo.java b/src/main/java/com/zhgd/xmgl/modules/xz.security/entity/vo/GetStatScoreVo.java new file mode 100644 index 000000000..4778533a9 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz.security/entity/vo/GetStatScoreVo.java @@ -0,0 +1,93 @@ +package com.zhgd.xmgl.modules.xz.security.entity.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class GetStatScoreVo { + @ApiModelProperty("危大工程") + private BigDecimal dangerEngScore; + @ApiModelProperty("隐患治理排查") + private BigDecimal hiddenDangerScore; + @ApiModelProperty("安全教育") + private BigDecimal edu; + @ApiModelProperty("AI报警") + private BigDecimal aiScore; + @ApiModelProperty("风险管理") + private BigDecimal riskScore; + + @ApiModelProperty("安全教育单模块得分") + private BigDecimal eduModuleScore; + @ApiModelProperty("安全教育单模块扣分") + private BigDecimal eduModuleDeScore; + @ApiModelProperty("AI报警单模块") + private BigDecimal aiModuleScore; + @ApiModelProperty("AI报警单模块扣分") + private BigDecimal aiModuleDeScore; + + @ApiModelProperty("总分") + private BigDecimal total; + @ApiModelProperty("") + private BigDecimal radio; + @ApiModelProperty("") + private BigDecimal lastMonthTotal; + + private HiddenDangerScore hiddenDangerScoreClz; + private DangerEngScore dangerEngScoreClz; + private RiskScore riskScoreClz; + + @Data + public static class HiddenDangerScore { + @ApiModelProperty("总分") + private BigDecimal total; + @ApiModelProperty("隐患整改率") + private BigDecimal zgl; + @ApiModelProperty("隐患及时整改率") + private BigDecimal jszgl; + @ApiModelProperty("隐患闭合率") + private BigDecimal bhl; + @ApiModelProperty("项目自检数量") + private BigDecimal zj; + @ApiModelProperty("隐患整改率扣分") + private BigDecimal zglkf; + @ApiModelProperty("隐患及时整改率扣分") + private BigDecimal jszglkf; + @ApiModelProperty("隐患闭合率扣分") + private BigDecimal bhlkf; + @ApiModelProperty("项目自检数量扣分") + private BigDecimal zjkf; + + } + + @Data + public static class DangerEngScore { + @ApiModelProperty("总分") + private BigDecimal total; + @ApiModelProperty("危大工程排查覆盖率") + private BigDecimal pcfgl; + @ApiModelProperty("旁站记录更新") + private BigDecimal pzjl; + @ApiModelProperty("危大工程排查覆盖率扣分") + private BigDecimal pcfglkf; + @ApiModelProperty("旁站记录更新扣分") + private BigDecimal pzjlkf; + } + + @Data + public static class RiskScore { + @ApiModelProperty("总分") + private BigDecimal total; + @ApiModelProperty("风险排查执行率") + private BigDecimal fxpczxl; + @ApiModelProperty("风险辨识数量") + private BigDecimal fxbsull; + @ApiModelProperty("风险排查执行率扣分") + private BigDecimal fxpczxlkf; + @ApiModelProperty("风险辨识数量扣分") + private BigDecimal fxbsullkf; + } + + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/xz.security/service/IXzSecurityQualityInspectionRecordService.java b/src/main/java/com/zhgd/xmgl/modules/xz.security/service/IXzSecurityQualityInspectionRecordService.java index e0a82f385..ba41d79ab 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz.security/service/IXzSecurityQualityInspectionRecordService.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz.security/service/IXzSecurityQualityInspectionRecordService.java @@ -11,7 +11,6 @@ import com.zhgd.xmgl.modules.xz.security.entity.dto.XzSecurityDepartmentRectifie 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; @@ -213,14 +212,14 @@ public interface IXzSecurityQualityInspectionRecordService extends IService list = this.list(Wrappers.lambdaQuery() .eq(XzSecurityQualityInspectionRecord::getProjectSn, projectSn) .eq(XzSecurityQualityInspectionRecord::getRecordType, 1) .between(XzSecurityQualityInspectionRecord::getCreateTime, DateUtil.beginOfMonth(date), DateUtil.endOfMonth(date))); + BigDecimal zglMax = new BigDecimal(100).multiply(new BigDecimal(0.4)).setScale(2, RoundingMode.HALF_UP); + BigDecimal jszglMax = new BigDecimal(100).multiply(new BigDecimal(0.3)).setScale(2, RoundingMode.HALF_UP); + BigDecimal bhlMax = new BigDecimal(100).multiply(new BigDecimal(0.3)).setScale(2, RoundingMode.HALF_UP); + BigDecimal zjMax = new BigDecimal(100).multiply(new BigDecimal(0)).setScale(2, RoundingMode.HALF_UP); if (list.size() > 0) { int num1 = list.stream().filter(l -> l.getStatus() != 2 && l.getStatus() != 6).collect(Collectors.toList()).size(); BigDecimal bigDecimal = new BigDecimal(num1); @@ -759,16 +764,37 @@ public class XzSecurityXzSecurityQualityInspectionRecordServiceImpl extends Serv result4 = result4.multiply(new BigDecimal(0.2)).setScale(2, RoundingMode.HALF_UP); BigDecimal total = result1.add(result2).add(result3)/*.add(result4)*/; - return total.multiply(new BigDecimal(35)).setScale(2, RoundingMode.HALF_UP); + score.setTotal(total.multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP)); + score.setZgl(result1.multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP)); + score.setJszgl(result2.multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP)); + score.setBhl(result3.multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP)); + score.setZj(new BigDecimal(0)); + score.setZglkf(zglMax.subtract(score.getZgl()).setScale(2, RoundingMode.HALF_UP)); + score.setJszglkf(jszglMax.subtract(score.getJszgl()).setScale(2, RoundingMode.HALF_UP)); + score.setBhlkf(bhlMax.subtract(score.getBhl()).setScale(2, RoundingMode.HALF_UP)); + score.setZjkf(zjMax.subtract(score.getZj()).setScale(2, RoundingMode.HALF_UP)); + }else{ + score.setTotal(new BigDecimal(100)); + score.setZgl(zglMax); + score.setJszgl(jszglMax); + score.setBhl(bhlMax); + score.setZj(zjMax); + score.setZglkf(new BigDecimal(0)); + score.setJszglkf(new BigDecimal(0)); + score.setBhlkf(new BigDecimal(0)); + score.setZjkf(new BigDecimal(0)); } - return new BigDecimal(35); + return score; } @Override - public BigDecimal getRiskScore(String projectSn, Date date) { + public GetStatScoreVo.RiskScore getRiskScore(String projectSn, Date date) { + GetStatScoreVo.RiskScore score = new GetStatScoreVo.RiskScore(); List list = this.list(Wrappers.lambdaQuery() .eq(XzSecurityQualityInspectionRecord::getProjectSn, projectSn) .between(XzSecurityQualityInspectionRecord::getCreateTime, DateUtil.beginOfMonth(date), DateUtil.endOfMonth(date))); + BigDecimal fxpczxlMax = new BigDecimal(100).multiply(new BigDecimal(0.99)).setScale(2, RoundingMode.HALF_UP); + BigDecimal fxbsullMax = new BigDecimal(100).multiply(new BigDecimal(0.01)).setScale(2, RoundingMode.HALF_UP); if (list.size() > 0) { int num1 = list.stream().filter(l -> l.getRecordType() == 1).map(x -> x.getDangerItemContent()).collect(Collectors.toSet()).size(); int num2 = list.stream().filter(l -> l.getRecordType() == 2).map(x -> x.getDangerItemContent()).collect(Collectors.toSet()).size(); @@ -793,9 +819,19 @@ public class XzSecurityXzSecurityQualityInspectionRecordServiceImpl extends Serv result2 = new BigDecimal(0.01); } BigDecimal total = result1.add(result2); - return total.multiply(new BigDecimal(0)).setScale(2, RoundingMode.HALF_UP); + score.setTotal(total.multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP)); + score.setFxpczxl(result1.multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP)); + score.setFxbsull(result2.multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP)); + score.setFxpczxlkf(fxpczxlMax.subtract(score.getFxpczxl()).setScale(2, RoundingMode.HALF_UP)); + score.setFxbsullkf(fxbsullMax.subtract(score.getFxbsull()).setScale(2, RoundingMode.HALF_UP)); + } else { + score.setTotal(new BigDecimal(100)); + score.setFxpczxl(fxpczxlMax); + score.setFxbsull(fxbsullMax); + score.setFxpczxlkf(new BigDecimal(0)); + score.setFxbsullkf(new BigDecimal(0)); } - return new BigDecimal(0); + return score; } @Override diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzRegistryServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzRegistryServiceImpl.java index 78d97876c..de74d5670 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzRegistryServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzRegistryServiceImpl.java @@ -97,9 +97,10 @@ public class XzRegistryServiceImpl extends ServiceImpl().eq(SystemLogoConfig::getHeadquartersSn, "-1")); + SystemLogoConfig slc = systemLogoConfigMapper.selectOne(new LambdaQueryWrapper().eq(SystemLogoConfig::getHeadquartersSn, defaultSn)); if (StrUtil.isBlank(slc.getDefaultApprovalCompanySn())) { throw new OpenAlertException("请先配置默认审批公司"); }