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 d52252406..fc52ddeb1 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 @@ -210,19 +210,26 @@ public class DangerousEngineeringRecordServiceImpl extends ServiceImpl list = this.list(Wrappers.lambdaQuery() .eq(DangerousEngineeringRecord::getProjectSn, projectSn) .between(DangerousEngineeringRecord::getCreateTime, DateUtil.beginOfMonth(date), DateUtil.endOfMonth(date))); - BigDecimal total = new BigDecimal(1); 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()); int totalDay = 0; for (DangerousEngineeringRecord dangerousEngineeringRecord : list1) { - Long betweenDay = DateUtil.betweenDay(DateUtil.parseDate(dangerousEngineeringRecord.getPlanStartTime()), DateUtil.parseDate(dangerousEngineeringRecord.getPlanEndTime()), false); + Date planEndTime = DateUtil.parseDate(dangerousEngineeringRecord.getPlanEndTime()); + if (planEndTime.compareTo(DateUtil.endOfMonth(date)) > 0) { + planEndTime = DateUtil.endOfMonth(date); + } + Long betweenDay = DateUtil.betweenDay(DateUtil.parseDate(dangerousEngineeringRecord.getPlanStartTime()), planEndTime, false); totalDay = totalDay + Integer.parseInt(betweenDay.toString()); } List list2 = hiddenDangerInspectRecordService.list(Wrappers.lambdaQuery() .eq(HiddenDangerInspectRecord::getProjectSn, projectSn) - .between(HiddenDangerInspectRecord::getCreateTime, DateUtil.beginOfMonth(new Date()), DateUtil.endOfMonth(new Date()))); - BigDecimal bigDecimal = new BigDecimal(list2.size()); + .between(HiddenDangerInspectRecord::getCreateTime, DateUtil.beginOfMonth(date), DateUtil.endOfMonth(date))); + Set insList = new HashSet<>(); + for (HiddenDangerInspectRecord hiddenDangerInspectRecord : list2) { + insList.add(hiddenDangerInspectRecord.getEngineeringId() + "-" + DateUtil.format(DateUtil.parseDateTime(hiddenDangerInspectRecord.getInspectTime()), "yyyy-MM-dd")); + } + BigDecimal bigDecimal = new BigDecimal(insList.size()); BigDecimal bigDecimal1 = new BigDecimal(totalDay); BigDecimal result1 = new BigDecimal(0); if (totalDay != 0) { @@ -230,14 +237,17 @@ public class DangerousEngineeringRecordServiceImpl extends ServiceImpl list3 = dangerousEngineeringSideStationService.list(Wrappers.lambdaQuery() .in(DangerousEngineeringSideStation::getDangerousEngineeringId, list.stream().map(l -> l.getId()).collect(Collectors.toList())) - .between(DangerousEngineeringSideStation::getCreateTime, DateUtil.beginOfMonth(new Date()), DateUtil.endOfMonth(new Date()))); - + .between(DangerousEngineeringSideStation::getCreateTime, DateUtil.beginOfMonth(date), DateUtil.endOfMonth(date))); + Set sideList = new HashSet<>(); + for (DangerousEngineeringSideStation dangerousEngineeringSideStation : list3) { + sideList.add(dangerousEngineeringSideStation.getDangerousEngineeringId() + "-" + DateUtil.format(DateUtil.parseDateTime(dangerousEngineeringSideStation.getSideStationTime()), "yyyy-MM-dd")); + } BigDecimal bigDecima2 = new BigDecimal(list3.size()); - BigDecimal bigDecimal3 = new BigDecimal(4); - BigDecimal result2 = bigDecima2.divide(bigDecimal3, 2, BigDecimal.ROUND_HALF_UP); + BigDecimal result2 = bigDecima2.divide(bigDecimal1, 2, BigDecimal.ROUND_HALF_UP); result2 = result2.multiply(new BigDecimal(0.4)).setScale(2, RoundingMode.HALF_UP); - total = result1.add(result2); + BigDecimal total = result1.add(result2); + return total.multiply(new BigDecimal(15)).setScale(2, RoundingMode.HALF_UP); } - return total.multiply(new BigDecimal(15)).setScale(2, RoundingMode.HALF_UP); + return new BigDecimal(15); } } diff --git a/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareAlarmRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareAlarmRecordServiceImpl.java index 1960f2e62..dc4ee3c57 100644 --- a/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareAlarmRecordServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareAlarmRecordServiceImpl.java @@ -619,20 +619,23 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpllambdaQuery() .eq(AiAnalyseHardWareAlarmRecord::getProjectSn, projectSn) .between(AiAnalyseHardWareAlarmRecord::getCreateTime, DateUtil.beginOfMonth(date), DateUtil.endOfMonth(date))); - Date time = DateUtil.offsetHour(date, -1); - int num2 = this.count(Wrappers.lambdaQuery() - .eq(AiAnalyseHardWareAlarmRecord::getProjectSn, projectSn) - .between(AiAnalyseHardWareAlarmRecord::getCreateTime, DateUtil.beginOfMonth(time), DateUtil.endOfMonth(time))); - if (num2 == 0) { - return new BigDecimal(20); + if (num1 != 0) { + Date time = DateUtil.offsetHour(date, -1); + int num2 = this.count(Wrappers.lambdaQuery() + .eq(AiAnalyseHardWareAlarmRecord::getProjectSn, projectSn) + .between(AiAnalyseHardWareAlarmRecord::getCreateTime, DateUtil.beginOfMonth(time), DateUtil.endOfMonth(time))); + if (num2 == 0) { + return new BigDecimal(0); + } + BigDecimal bigDecimal = new BigDecimal(num1); + BigDecimal bigDecimal1 = new BigDecimal(num2); + BigDecimal bigDecimal2 = new BigDecimal(1); + BigDecimal subtract = bigDecimal1.subtract(bigDecimal); + subtract = subtract.divide(bigDecimal, 2, BigDecimal.ROUND_HALF_UP); + BigDecimal subtract1 = bigDecimal2.subtract(subtract); + return subtract1.multiply(new BigDecimal(20)).setScale(2, RoundingMode.HALF_UP); } - BigDecimal bigDecima = new BigDecimal(num1); - BigDecimal bigDecimal1 = new BigDecimal(num2); - BigDecimal bigDecimal2 = new BigDecimal(1); - BigDecimal subtract = bigDecimal1.subtract(bigDecima); - subtract = subtract.divide(bigDecima, 2, BigDecimal.ROUND_HALF_UP); - BigDecimal subtract1 = bigDecimal2.subtract(subtract); - return subtract1.multiply(new BigDecimal(20)).setScale(2, RoundingMode.HALF_UP); + return new BigDecimal(20); } private Integer getAlarmType(Integer algorithmId) { diff --git a/src/main/java/com/zhgd/xmgl/modules/xz.security/controller/XzSecurityQualityInspectionRecordController.java b/src/main/java/com/zhgd/xmgl/modules/xz.security/controller/XzSecurityQualityInspectionRecordController.java index 835f3f41d..5f13c99dc 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz.security/controller/XzSecurityQualityInspectionRecordController.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz.security/controller/XzSecurityQualityInspectionRecordController.java @@ -31,6 +31,7 @@ import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -469,9 +470,9 @@ public class XzSecurityQualityInspectionRecordController { resultMap.put("dangerEngScore", dangerEngScore); resultMap.put("riskScore", riskScore); resultMap.put("aiScore", aiScore); - BigDecimal total = hiddenDangerScore.add(dangerEngScore).add(riskScore).add(aiScore).add(new BigDecimal(25)); + BigDecimal total = hiddenDangerScore.add(dangerEngScore).add(riskScore).add(aiScore).add(new BigDecimal(25)).setScale(0, RoundingMode.HALF_UP); resultMap.put("total", total); - BigDecimal lastMonthTotal = hiddenDangerScore1.add(dangerEngScore1).add(riskScore1).add(aiScore1).add(new BigDecimal(25)); + BigDecimal lastMonthTotal = hiddenDangerScore1.add(dangerEngScore1).add(riskScore1).add(aiScore1).add(new BigDecimal(25)).setScale(0, RoundingMode.HALF_UP); resultMap.put("lastMonthTotal", lastMonthTotal); BigDecimal subtract = total.subtract(lastMonthTotal); subtract = subtract.divide(lastMonthTotal, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)); diff --git a/src/main/java/com/zhgd/xmgl/modules/xz.security/service/impl/XzSecurityXzSecurityQualityInspectionRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/xz.security/service/impl/XzSecurityXzSecurityQualityInspectionRecordServiceImpl.java index 90ff283a2..0f65fdc2a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz.security/service/impl/XzSecurityXzSecurityQualityInspectionRecordServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz.security/service/impl/XzSecurityXzSecurityQualityInspectionRecordServiceImpl.java @@ -40,15 +40,13 @@ import com.zhgd.xmgl.modules.xz.entity.XzDeductScoreRecord; import com.zhgd.xmgl.modules.xz.entity.XzTaskProgressContent; import com.zhgd.xmgl.modules.xz.mapper.XzDeductScoreRecordMapper; import com.zhgd.xmgl.modules.xz.mapper.XzTaskProgressContentMapper; -import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityDangerItemRecord; -import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityInspectTaskRecord; -import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityQualityInspectionRecord; -import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityQualityRectifyRecord; +import com.zhgd.xmgl.modules.xz.security.entity.*; import com.zhgd.xmgl.modules.xz.security.entity.dto.XzSecurityDepartmentRectifiedRankDto; import com.zhgd.xmgl.modules.xz.security.entity.vo.*; import com.zhgd.xmgl.modules.xz.security.mapper.XzSecurityDangerItemRecordMapper; import com.zhgd.xmgl.modules.xz.security.mapper.XzSecurityQualityInspectionRecordMapper; import com.zhgd.xmgl.modules.xz.security.mapper.XzSecurityQualityRectifyRecordMapper; +import com.zhgd.xmgl.modules.xz.security.service.IXzSecurityInspectTaskItemRecordService; import com.zhgd.xmgl.modules.xz.security.service.IXzSecurityInspectTaskRecordService; import com.zhgd.xmgl.modules.xz.security.service.IXzSecurityQualityInspectionRecordService; import com.zhgd.xmgl.push.config.PushPayloads; @@ -110,6 +108,9 @@ public class XzSecurityXzSecurityQualityInspectionRecordServiceImpl extends Serv @Autowired private IXzSecurityInspectTaskRecordService xzSecurityInspectTaskRecordService; + @Autowired + private IXzSecurityInspectTaskItemRecordService xzSecurityInspectTaskItemRecordService; + private static List getChildrenByQualityRegionId(Long regionId, List all) { ArrayList list = new ArrayList<>(); for (QualityRegion qualityRegion : all) { @@ -672,32 +673,40 @@ public class XzSecurityXzSecurityQualityInspectionRecordServiceImpl extends Serv public BigDecimal getHiddenDangerScore(String projectSn, Date date) { List list = this.list(Wrappers.lambdaQuery() .eq(XzSecurityQualityInspectionRecord::getProjectSn, projectSn) + .eq(XzSecurityQualityInspectionRecord::getRecordType, 1) .between(XzSecurityQualityInspectionRecord::getCreateTime, DateUtil.beginOfMonth(date), DateUtil.endOfMonth(date))); if (list.size() > 0) { - int num1 = list.stream().filter(l -> l.getStatus() == 3 || l.getStatus() == 5).collect(Collectors.toList()).size(); + int num1 = list.stream().filter(l -> l.getStatus() != 2 && l.getStatus() != 6).collect(Collectors.toList()).size(); BigDecimal bigDecimal = new BigDecimal(num1); BigDecimal bigDecimal1 = new BigDecimal(list.size()); BigDecimal result1 = bigDecimal.divide(bigDecimal1, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(0.3)).setScale(2, RoundingMode.HALF_UP); int num2 = list.stream().filter(l -> StringUtils.isNotBlank(l.getCompleteTime()) && StringUtils.isNotBlank(l.getChangeLimitTime()) - && (l.getStatus() == 3 || l.getStatus() == 5) && DateUtil.compare(DateUtil.parseDateTime(l.getChangeLimitTime()), DateUtil.parseDateTime(l.getCompleteTime())) > 0).collect(Collectors.toList()).size(); - BigDecimal bigDecima2 = new BigDecimal(num1); - BigDecimal bigDecimal3 = new BigDecimal(num2); - BigDecimal result2 = new BigDecimal(0); - if (num2 != 0) { - result2 = bigDecima2.divide(bigDecimal3, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(0.3)).setScale(2, RoundingMode.HALF_UP); + && (l.getStatus() != 2 || l.getStatus() != 6) && DateUtil.compare(DateUtil.parseDateTime(l.getChangeLimitTime()), DateUtil.parseDateTime(l.getCompleteTime())) > 0).collect(Collectors.toList()).size(); + BigDecimal bigDecima2 = new BigDecimal(num2); + BigDecimal result2 = new BigDecimal(0.3); + if (num1 != 0) { + result2 = bigDecima2.divide(bigDecimal, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(0.3)).setScale(2, RoundingMode.HALF_UP); } int num3 = list.stream().filter(l -> (l.getStatus() == 5)).collect(Collectors.toList()).size(); BigDecimal bigDecima4 = new BigDecimal(num3); - BigDecimal bigDecimal5 = new BigDecimal(list.size()); - BigDecimal result3 = bigDecima4.divide(bigDecimal5, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(0.2)).setScale(2, RoundingMode.HALF_UP); + BigDecimal result3 = bigDecima4.divide(bigDecimal1, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(0.2)).setScale(2, RoundingMode.HALF_UP); - int checkSize = xzSecurityInspectTaskRecordService.list(Wrappers.lambdaQuery() + List ids = xzSecurityInspectTaskRecordService.list(Wrappers.lambdaQuery() .eq(XzSecurityInspectTaskRecord::getSn, projectSn) - .between(XzSecurityInspectTaskRecord::getCreateTime, DateUtil.beginOfMonth(date), DateUtil.endOfMonth(date))).size(); + .between(XzSecurityInspectTaskRecord::getCreateTime, DateUtil.beginOfMonth(date), DateUtil.endOfMonth(date))).stream().map(XzSecurityInspectTaskRecord::getId).collect(Collectors.toList()); + int checkSize = 0; + if (ids.size() > 0) { + checkSize = xzSecurityInspectTaskItemRecordService.list(Wrappers.lambdaQuery().in(XzSecurityInspectTaskItemRecord::getTaskId, ids)).size(); + } BigDecimal bigDecimal6 = new BigDecimal(checkSize); BigDecimal bigDecimal7 = new BigDecimal(4); - BigDecimal result4 = bigDecimal6.divide(bigDecimal7, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(0.2)).setScale(2, RoundingMode.HALF_UP); + BigDecimal avg = bigDecimal6.divide(bigDecimal7, 2, BigDecimal.ROUND_HALF_UP); + BigDecimal result4 = new BigDecimal(1); + if (avg.compareTo(new BigDecimal(7)) < 0) { + result4 = avg.divide(new BigDecimal(7), 2, BigDecimal.ROUND_HALF_UP); + } + 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(25)).setScale(2, RoundingMode.HALF_UP); @@ -710,21 +719,24 @@ public class XzSecurityXzSecurityQualityInspectionRecordServiceImpl extends Serv List list = this.list(Wrappers.lambdaQuery() .eq(XzSecurityQualityInspectionRecord::getProjectSn, projectSn) .between(XzSecurityQualityInspectionRecord::getCreateTime, DateUtil.beginOfMonth(date), DateUtil.endOfMonth(date))); - int num1 = list.stream().filter(l -> l.getRecordType() == 1).collect(Collectors.toList()).size(); - int num2 = list.stream().filter(l -> l.getRecordType() == 2).collect(Collectors.toList()).size(); - BigDecimal bigDecimal = new BigDecimal(num1); - BigDecimal bigDecimal1 = new BigDecimal(num2); - BigDecimal result1 = new BigDecimal(0); - if (num2 != 0) { - result1 = bigDecimal1.divide(bigDecimal, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("0.99")).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(); + BigDecimal bigDecimal = new BigDecimal(num1); + BigDecimal bigDecimal1 = new BigDecimal(num2); + BigDecimal result1 = new BigDecimal(0); + if (num2 != 0) { + result1 = bigDecimal1.divide(bigDecimal, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(0.99)).setScale(2, RoundingMode.HALF_UP); + } + Set stringSet = list.stream().map(x -> x.getDangerItemContent()).collect(Collectors.toSet()); + BigDecimal result2 = new BigDecimal(0); + if (stringSet.size() >= 3) { + result2 = new BigDecimal(0.01); + } + BigDecimal total = result1.add(result2); + return total.multiply(new BigDecimal(15)).setScale(2, RoundingMode.HALF_UP); } - Set stringSet = list.stream().map(x -> x.getDangerItemContent()).collect(Collectors.toSet()); - BigDecimal result2 = new BigDecimal(0); - if (stringSet.size() >= 3) { - result2 = new BigDecimal(0.01); - } - BigDecimal total = result1.add(result2); - return total.multiply(new BigDecimal(15)).setScale(2, RoundingMode.HALF_UP); + return new BigDecimal(15); } @Override