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 d0eb2f55e..cd2869d1e 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 @@ -6,6 +6,7 @@ import com.zhgd.xmgl.modules.dangerous.entity.DangerousEngineeringRecord; import com.baomidou.mybatisplus.extension.service.IService; import java.math.BigDecimal; +import java.util.Date; import java.util.Map; /** @@ -26,5 +27,5 @@ public interface IDangerousEngineeringRecordService extends IService paramMap); - BigDecimal getScore(String projectSn); + BigDecimal getScore(String projectSn, Date time); } 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 628a0251d..74a5ab9ee 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 @@ -26,6 +26,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; import java.util.stream.Collectors; @@ -177,14 +178,14 @@ public class DangerousEngineeringRecordServiceImpl extends ServiceImpl list = this.list(Wrappers.lambdaQuery() .eq(DangerousEngineeringRecord::getProjectSn, projectSn) - .between(DangerousEngineeringRecord::getCreateTime, DateUtil.beginOfMonth(new Date()), DateUtil.endOfMonth(new Date()))); - BigDecimal total = new BigDecimal(0); + .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()), new Date(), "yyyy-MM-dd") >= 0 - && DateUtil.compare(new Date(), DateUtil.parseDate(l.getPlanStartTime()), "yyyy-MM-dd") <= 0).collect(Collectors.toList()); + 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); @@ -205,7 +206,8 @@ public class DangerousEngineeringRecordServiceImpl extends ServiceImpllambdaQuery() .eq(AiAnalyseHardWareAlarmRecord::getProjectSn, projectSn) - .between(AiAnalyseHardWareAlarmRecord::getCreateTime, DateUtil.beginOfMonth(new Date()), DateUtil.endOfMonth(new Date()))); - Date time = DateUtil.offsetHour(new Date(), -1); + .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))); 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 b37d180f6..3383b02b0 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 @@ -452,16 +452,28 @@ public class XzSecurityQualityInspectionRecordController { }) @GetMapping(value = "/getStatScore") public Result getStatScore(String projectSn) { - BigDecimal hiddenDangerScore = qualityInspectionRecordService.getHiddenDangerScore(projectSn); - BigDecimal dangerEngScore = dangerousEngineeringRecordService.getScore(projectSn); - BigDecimal riskScore = qualityInspectionRecordService.getRiskScore(projectSn); - BigDecimal aiScore = aiAnalyseHardWareAlarmRecordService.getScore(projectSn); + BigDecimal hiddenDangerScore = qualityInspectionRecordService.getHiddenDangerScore(projectSn, new Date()); + BigDecimal dangerEngScore = dangerousEngineeringRecordService.getScore(projectSn, new Date()); + BigDecimal riskScore = 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); + BigDecimal aiScore1 = aiAnalyseHardWareAlarmRecordService.getScore(projectSn, lastMonth); Map resultMap = new HashMap<>(); resultMap.put("hiddenDangerScore", hiddenDangerScore); resultMap.put("dangerEngScore", dangerEngScore); resultMap.put("riskScore", riskScore); resultMap.put("aiScore", aiScore); - resultMap.put("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)); + resultMap.put("total", total); + BigDecimal lastMonthTotal = hiddenDangerScore1.add(dangerEngScore1).add(riskScore1).add(aiScore1).add(new BigDecimal(25)); + resultMap.put("lastMonthTotal", lastMonthTotal); + 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); } } 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 169b399e6..3c25104d9 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 @@ -12,6 +12,7 @@ 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; @@ -86,9 +87,9 @@ public interface IXzSecurityQualityInspectionRecordService extends IService paramMap); - BigDecimal getHiddenDangerScore(String projectSn); + BigDecimal getHiddenDangerScore(String projectSn, Date time); - BigDecimal getRiskScore(String projectSn); + BigDecimal getRiskScore(String projectSn, Date time); } 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 abdf5ea58..cfa38ec39 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 @@ -65,6 +65,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; +import java.math.RoundingMode; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -652,15 +653,15 @@ public class XzSecurityXzSecurityQualityInspectionRecordServiceImpl extends Serv } @Override - public BigDecimal getHiddenDangerScore(String projectSn) { + public BigDecimal getHiddenDangerScore(String projectSn, Date date) { List list = this.list(Wrappers.lambdaQuery() .eq(XzSecurityQualityInspectionRecord::getProjectSn, projectSn) - .between(XzSecurityQualityInspectionRecord::getCreateTime, DateUtil.beginOfMonth(new Date()), DateUtil.endOfMonth(new Date()))); + .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(); 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)); + 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(); @@ -668,38 +669,38 @@ public class XzSecurityXzSecurityQualityInspectionRecordServiceImpl extends Serv 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)); + result2 = bigDecima2.divide(bigDecimal3, 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)); + BigDecimal result3 = bigDecima4.divide(bigDecimal5, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(0.2)).setScale(2, RoundingMode.HALF_UP); int checkSize = xzSecurityInspectTaskRecordService.list(Wrappers.lambdaQuery() .eq(XzSecurityInspectTaskRecord::getSn, projectSn) - .between(XzSecurityInspectTaskRecord::getCreateTime, DateUtil.beginOfMonth(new Date()), DateUtil.endOfMonth(new Date()))).size(); + .between(XzSecurityInspectTaskRecord::getCreateTime, DateUtil.beginOfMonth(date), DateUtil.endOfMonth(date))).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)); + BigDecimal result4 = bigDecimal6.divide(bigDecimal7, 2, BigDecimal.ROUND_HALF_UP).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)); } - return new BigDecimal(0); + return new BigDecimal(25); } @Override - public BigDecimal getRiskScore(String projectSn) { + public BigDecimal getRiskScore(String projectSn, Date date) { List list = this.list(Wrappers.lambdaQuery() .eq(XzSecurityQualityInspectionRecord::getProjectSn, projectSn) - .between(XzSecurityQualityInspectionRecord::getCreateTime, DateUtil.beginOfMonth(new Date()), DateUtil.endOfMonth(new Date()))); + .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")); + 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); diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerInfoAuditRecordController.java b/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerInfoAuditRecordController.java index f749b1257..b8dee8b80 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerInfoAuditRecordController.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerInfoAuditRecordController.java @@ -271,21 +271,23 @@ public class XzWorkerInfoAuditRecordController { List certificateList = new ArrayList<>(); JSONArray certificate = object.getJSONArray("certificate"); - for (int i = 0; i < certificate.size(); i++) { - WorkerCertificate workerCertificate = new WorkerCertificate(); - JSONObject jsonObject = certificate.getJSONObject(i); - int p = 0; - for (String s : jsonObject.keySet()) { - if (p == 0) { - workerCertificate.setCertificateType(Integer.parseInt(jsonObject.getJSONArray(s).get(0).toString())); - } else { - workerCertificate.setPhotoUrl(jsonObject.getJSONArray(s).getJSONObject(0).getString("name") + "*" + jsonObject.getJSONArray(s).getJSONObject(0).getString("url")); + if (certificate != null) { + for (int i = 0; i < certificate.size(); i++) { + WorkerCertificate workerCertificate = new WorkerCertificate(); + JSONObject jsonObject = certificate.getJSONObject(i); + int p = 0; + for (String s : jsonObject.keySet()) { + if (p == 0) { + workerCertificate.setCertificateType(Integer.parseInt(jsonObject.getJSONArray(s).get(0).toString())); + } else { + workerCertificate.setPhotoUrl(jsonObject.getJSONArray(s).getJSONObject(0).getString("name") + "*" + jsonObject.getJSONArray(s).getJSONObject(0).getString("url")); + } + p ++; } - p ++; + certificateList.add(workerCertificate); } - certificateList.add(workerCertificate); + infoAuditRecord.setSpecialCertificateInfo(JSON.toJSONString(certificateList)); } - infoAuditRecord.setSpecialCertificateInfo(JSON.toJSONString(certificateList)); workerInfoAuditRecordService.updateById(infoAuditRecord); }