大屏评分调整

This commit is contained in:
pengjie 2024-05-13 00:13:41 +08:00
parent da0d13053a
commit efe380d54f
4 changed files with 81 additions and 55 deletions

View File

@ -210,19 +210,26 @@ public class DangerousEngineeringRecordServiceImpl extends ServiceImpl<Dangerous
List<DangerousEngineeringRecord> list = this.list(Wrappers.<DangerousEngineeringRecord>lambdaQuery()
.eq(DangerousEngineeringRecord::getProjectSn, projectSn)
.between(DangerousEngineeringRecord::getCreateTime, DateUtil.beginOfMonth(date), DateUtil.endOfMonth(date)));
BigDecimal total = new BigDecimal(1);
if (list.size() > 0) {
List<DangerousEngineeringRecord> 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<HiddenDangerInspectRecord> list2 = hiddenDangerInspectRecordService.list(Wrappers.<HiddenDangerInspectRecord>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<String> 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<Dangerous
}
List<DangerousEngineeringSideStation> list3 = dangerousEngineeringSideStationService.list(Wrappers.<DangerousEngineeringSideStation>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<String> 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);
}
}

View File

@ -619,20 +619,23 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
int num1 = this.count(Wrappers.<AiAnalyseHardWareAlarmRecord>lambdaQuery()
.eq(AiAnalyseHardWareAlarmRecord::getProjectSn, projectSn)
.between(AiAnalyseHardWareAlarmRecord::getCreateTime, DateUtil.beginOfMonth(date), DateUtil.endOfMonth(date)));
Date time = DateUtil.offsetHour(date, -1);
int num2 = this.count(Wrappers.<AiAnalyseHardWareAlarmRecord>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.<AiAnalyseHardWareAlarmRecord>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) {

View File

@ -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));

View File

@ -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<Long> getChildrenByQualityRegionId(Long regionId, List<QualityRegion> all) {
ArrayList<Long> list = new ArrayList<>();
for (QualityRegion qualityRegion : all) {
@ -672,32 +673,40 @@ public class XzSecurityXzSecurityQualityInspectionRecordServiceImpl extends Serv
public BigDecimal getHiddenDangerScore(String projectSn, Date date) {
List<XzSecurityQualityInspectionRecord> list = this.list(Wrappers.<XzSecurityQualityInspectionRecord>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.<XzSecurityInspectTaskRecord>lambdaQuery()
List<Long> ids = xzSecurityInspectTaskRecordService.list(Wrappers.<XzSecurityInspectTaskRecord>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.<XzSecurityInspectTaskItemRecord>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<XzSecurityQualityInspectionRecord> list = this.list(Wrappers.<XzSecurityQualityInspectionRecord>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<String> 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<String> 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