项目大屏评分

This commit is contained in:
pengjie 2024-05-12 12:02:55 +08:00
parent 34dbf92d8f
commit cb9a541215
8 changed files with 61 additions and 41 deletions

View File

@ -6,6 +6,7 @@ import com.zhgd.xmgl.modules.dangerous.entity.DangerousEngineeringRecord;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
import java.util.Map; import java.util.Map;
/** /**
@ -26,5 +27,5 @@ public interface IDangerousEngineeringRecordService extends IService<DangerousEn
void endEngineer(Map<String, Object> paramMap); void endEngineer(Map<String, Object> paramMap);
BigDecimal getScore(String projectSn); BigDecimal getScore(String projectSn, Date time);
} }

View File

@ -26,6 +26,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -177,14 +178,14 @@ public class DangerousEngineeringRecordServiceImpl extends ServiceImpl<Dangerous
} }
@Override @Override
public BigDecimal getScore(String projectSn) { public BigDecimal getScore(String projectSn, Date date) {
List<DangerousEngineeringRecord> list = this.list(Wrappers.<DangerousEngineeringRecord>lambdaQuery() List<DangerousEngineeringRecord> list = this.list(Wrappers.<DangerousEngineeringRecord>lambdaQuery()
.eq(DangerousEngineeringRecord::getProjectSn, projectSn) .eq(DangerousEngineeringRecord::getProjectSn, projectSn)
.between(DangerousEngineeringRecord::getCreateTime, DateUtil.beginOfMonth(new Date()), DateUtil.endOfMonth(new Date()))); .between(DangerousEngineeringRecord::getCreateTime, DateUtil.beginOfMonth(date), DateUtil.endOfMonth(date)));
BigDecimal total = new BigDecimal(0); BigDecimal total = new BigDecimal(1);
if (list.size() > 0) { if (list.size() > 0) {
List<DangerousEngineeringRecord> list1 = list.stream().filter(l -> DateUtil.compare(DateUtil.parseDate(l.getPlanEndTime()), new Date(), "yyyy-MM-dd") >= 0 List<DangerousEngineeringRecord> list1 = list.stream().filter(l -> DateUtil.compare(DateUtil.parseDate(l.getPlanEndTime()), date, "yyyy-MM-dd") >= 0
&& DateUtil.compare(new Date(), DateUtil.parseDate(l.getPlanStartTime()), "yyyy-MM-dd") <= 0).collect(Collectors.toList()); && DateUtil.compare(date, DateUtil.parseDate(l.getPlanStartTime()), "yyyy-MM-dd") <= 0).collect(Collectors.toList());
int totalDay = 0; int totalDay = 0;
for (DangerousEngineeringRecord dangerousEngineeringRecord : list1) { for (DangerousEngineeringRecord dangerousEngineeringRecord : list1) {
Long betweenDay = DateUtil.betweenDay(DateUtil.parseDate(dangerousEngineeringRecord.getPlanStartTime()), DateUtil.parseDate(dangerousEngineeringRecord.getPlanEndTime()), false); Long betweenDay = DateUtil.betweenDay(DateUtil.parseDate(dangerousEngineeringRecord.getPlanStartTime()), DateUtil.parseDate(dangerousEngineeringRecord.getPlanEndTime()), false);
@ -205,7 +206,8 @@ public class DangerousEngineeringRecordServiceImpl extends ServiceImpl<Dangerous
BigDecimal bigDecima2 = new BigDecimal(list3.size()); BigDecimal bigDecima2 = new BigDecimal(list3.size());
BigDecimal bigDecimal3 = new BigDecimal(4); BigDecimal bigDecimal3 = new BigDecimal(4);
BigDecimal result2 = bigDecima2.divide(bigDecimal3, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(0.4)); BigDecimal result2 = bigDecima2.divide(bigDecimal3, 2, BigDecimal.ROUND_HALF_UP);
result2 = result2.multiply(new BigDecimal(0.4)).setScale(2, RoundingMode.HALF_UP);
total = result1.add(result2); total = result1.add(result2);
} }
return total.multiply(new BigDecimal(15)); return total.multiply(new BigDecimal(15));

View File

@ -12,6 +12,7 @@ import com.zhgd.xmgl.modules.video.entity.vo.AiAnalyseHardWareAlarmTrendVo;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -60,5 +61,5 @@ public interface IAiAnalyseHardWareAlarmRecordService extends IService<AiAnalyse
void falsePositiveDeletion(Long id); void falsePositiveDeletion(Long id);
BigDecimal getScore(String projectSn); BigDecimal getScore(String projectSn, Date time);
} }

View File

@ -614,11 +614,11 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
} }
@Override @Override
public BigDecimal getScore(String projectSn) { public BigDecimal getScore(String projectSn, Date date) {
int num1 = this.count(Wrappers.<AiAnalyseHardWareAlarmRecord>lambdaQuery() int num1 = this.count(Wrappers.<AiAnalyseHardWareAlarmRecord>lambdaQuery()
.eq(AiAnalyseHardWareAlarmRecord::getProjectSn, projectSn) .eq(AiAnalyseHardWareAlarmRecord::getProjectSn, projectSn)
.between(AiAnalyseHardWareAlarmRecord::getCreateTime, DateUtil.beginOfMonth(new Date()), DateUtil.endOfMonth(new Date()))); .between(AiAnalyseHardWareAlarmRecord::getCreateTime, DateUtil.beginOfMonth(date), DateUtil.endOfMonth(date)));
Date time = DateUtil.offsetHour(new Date(), -1); Date time = DateUtil.offsetHour(date, -1);
int num2 = this.count(Wrappers.<AiAnalyseHardWareAlarmRecord>lambdaQuery() int num2 = this.count(Wrappers.<AiAnalyseHardWareAlarmRecord>lambdaQuery()
.eq(AiAnalyseHardWareAlarmRecord::getProjectSn, projectSn) .eq(AiAnalyseHardWareAlarmRecord::getProjectSn, projectSn)
.between(AiAnalyseHardWareAlarmRecord::getCreateTime, DateUtil.beginOfMonth(time), DateUtil.endOfMonth(time))); .between(AiAnalyseHardWareAlarmRecord::getCreateTime, DateUtil.beginOfMonth(time), DateUtil.endOfMonth(time)));

View File

@ -452,16 +452,28 @@ public class XzSecurityQualityInspectionRecordController {
}) })
@GetMapping(value = "/getStatScore") @GetMapping(value = "/getStatScore")
public Result<Object> getStatScore(String projectSn) { public Result<Object> getStatScore(String projectSn) {
BigDecimal hiddenDangerScore = qualityInspectionRecordService.getHiddenDangerScore(projectSn); BigDecimal hiddenDangerScore = qualityInspectionRecordService.getHiddenDangerScore(projectSn, new Date());
BigDecimal dangerEngScore = dangerousEngineeringRecordService.getScore(projectSn); BigDecimal dangerEngScore = dangerousEngineeringRecordService.getScore(projectSn, new Date());
BigDecimal riskScore = qualityInspectionRecordService.getRiskScore(projectSn); BigDecimal riskScore = qualityInspectionRecordService.getRiskScore(projectSn, new Date());
BigDecimal aiScore = aiAnalyseHardWareAlarmRecordService.getScore(projectSn); 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<String, Object> resultMap = new HashMap<>(); Map<String, Object> resultMap = new HashMap<>();
resultMap.put("hiddenDangerScore", hiddenDangerScore); resultMap.put("hiddenDangerScore", hiddenDangerScore);
resultMap.put("dangerEngScore", dangerEngScore); resultMap.put("dangerEngScore", dangerEngScore);
resultMap.put("riskScore", riskScore); resultMap.put("riskScore", riskScore);
resultMap.put("aiScore", aiScore); 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); return Result.success(resultMap);
} }
} }

View File

@ -12,6 +12,7 @@ import com.zhgd.xmgl.modules.xz.security.entity.vo.*;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -86,9 +87,9 @@ public interface IXzSecurityQualityInspectionRecordService extends IService<XzSe
void supervise(Map<String, Object> paramMap); void supervise(Map<String, Object> paramMap);
BigDecimal getHiddenDangerScore(String projectSn); BigDecimal getHiddenDangerScore(String projectSn, Date time);
BigDecimal getRiskScore(String projectSn); BigDecimal getRiskScore(String projectSn, Date time);
} }

View File

@ -65,6 +65,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
@ -652,15 +653,15 @@ public class XzSecurityXzSecurityQualityInspectionRecordServiceImpl extends Serv
} }
@Override @Override
public BigDecimal getHiddenDangerScore(String projectSn) { public BigDecimal getHiddenDangerScore(String projectSn, Date date) {
List<XzSecurityQualityInspectionRecord> list = this.list(Wrappers.<XzSecurityQualityInspectionRecord>lambdaQuery() List<XzSecurityQualityInspectionRecord> list = this.list(Wrappers.<XzSecurityQualityInspectionRecord>lambdaQuery()
.eq(XzSecurityQualityInspectionRecord::getProjectSn, projectSn) .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) { 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() == 3 || l.getStatus() == 5).collect(Collectors.toList()).size();
BigDecimal bigDecimal = new BigDecimal(num1); BigDecimal bigDecimal = new BigDecimal(num1);
BigDecimal bigDecimal1 = new BigDecimal(list.size()); 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()) 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(); && (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 bigDecimal3 = new BigDecimal(num2);
BigDecimal result2 = new BigDecimal(0); BigDecimal result2 = new BigDecimal(0);
if (num2 != 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(); int num3 = list.stream().filter(l -> (l.getStatus() == 5)).collect(Collectors.toList()).size();
BigDecimal bigDecima4 = new BigDecimal(num3); BigDecimal bigDecima4 = new BigDecimal(num3);
BigDecimal bigDecimal5 = new BigDecimal(list.size()); 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.<XzSecurityInspectTaskRecord>lambdaQuery() int checkSize = xzSecurityInspectTaskRecordService.list(Wrappers.<XzSecurityInspectTaskRecord>lambdaQuery()
.eq(XzSecurityInspectTaskRecord::getSn, projectSn) .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 bigDecimal6 = new BigDecimal(checkSize);
BigDecimal bigDecimal7 = new BigDecimal(4); 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); BigDecimal total = result1.add(result2).add(result3).add(result4);
return total.multiply(new BigDecimal(25)); return total.multiply(new BigDecimal(25));
} }
return new BigDecimal(0); return new BigDecimal(25);
} }
@Override @Override
public BigDecimal getRiskScore(String projectSn) { public BigDecimal getRiskScore(String projectSn, Date date) {
List<XzSecurityQualityInspectionRecord> list = this.list(Wrappers.<XzSecurityQualityInspectionRecord>lambdaQuery() List<XzSecurityQualityInspectionRecord> list = this.list(Wrappers.<XzSecurityQualityInspectionRecord>lambdaQuery()
.eq(XzSecurityQualityInspectionRecord::getProjectSn, projectSn) .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 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(); int num2 = list.stream().filter(l -> l.getRecordType() == 2).collect(Collectors.toList()).size();
BigDecimal bigDecimal = new BigDecimal(num1); BigDecimal bigDecimal = new BigDecimal(num1);
BigDecimal bigDecimal1 = new BigDecimal(num2); BigDecimal bigDecimal1 = new BigDecimal(num2);
BigDecimal result1 = new BigDecimal(0); BigDecimal result1 = new BigDecimal(0);
if (num2 != 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<String> stringSet = list.stream().map(x -> x.getDangerItemContent()).collect(Collectors.toSet()); Set<String> stringSet = list.stream().map(x -> x.getDangerItemContent()).collect(Collectors.toSet());
BigDecimal result2 = new BigDecimal(0); BigDecimal result2 = new BigDecimal(0);

View File

@ -271,6 +271,7 @@ public class XzWorkerInfoAuditRecordController {
List<WorkerCertificate> certificateList = new ArrayList<>(); List<WorkerCertificate> certificateList = new ArrayList<>();
JSONArray certificate = object.getJSONArray("certificate"); JSONArray certificate = object.getJSONArray("certificate");
if (certificate != null) {
for (int i = 0; i < certificate.size(); i++) { for (int i = 0; i < certificate.size(); i++) {
WorkerCertificate workerCertificate = new WorkerCertificate(); WorkerCertificate workerCertificate = new WorkerCertificate();
JSONObject jsonObject = certificate.getJSONObject(i); JSONObject jsonObject = certificate.getJSONObject(i);
@ -286,6 +287,7 @@ public class XzWorkerInfoAuditRecordController {
certificateList.add(workerCertificate); certificateList.add(workerCertificate);
} }
infoAuditRecord.setSpecialCertificateInfo(JSON.toJSONString(certificateList)); infoAuditRecord.setSpecialCertificateInfo(JSON.toJSONString(certificateList));
}
workerInfoAuditRecordService.updateById(infoAuditRecord); workerInfoAuditRecordService.updateById(infoAuditRecord);
} }