bug修复

This commit is contained in:
pengjie 2024-05-12 00:11:47 +08:00
parent 6ac97db804
commit 6a9a17942b
10 changed files with 196 additions and 7 deletions

View File

@ -1,5 +1,6 @@
package com.zhgd.xmgl.modules.dangerous.controller;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -17,6 +18,8 @@ import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import com.zhgd.xmgl.modules.worker.service.IEnterpriseInfoService;
import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService;
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityInspectTaskRecord;
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityQualityInspectionRecord;
import com.zhgd.xmgl.util.MessageUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@ -31,10 +34,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@ -256,5 +257,4 @@ public class DangerousEngineeringRecordController {
return Result.ok();
}
}

View File

@ -5,6 +5,7 @@ import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.dangerous.entity.DangerousEngineeringRecord;
import com.baomidou.mybatisplus.extension.service.IService;
import java.math.BigDecimal;
import java.util.Map;
/**
@ -24,4 +25,6 @@ public interface IDangerousEngineeringRecordService extends IService<DangerousEn
void edit(DangerousEngineeringRecord dangerousEngineeringRecord);
void endEngineer(Map<String, Object> paramMap);
BigDecimal getScore(String projectSn);
}

View File

@ -1,10 +1,13 @@
package com.zhgd.xmgl.modules.dangerous.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.basicdata.service.impl.SystemUserServiceImpl;
@ -12,6 +15,8 @@ import com.zhgd.xmgl.modules.dangerous.entity.*;
import com.zhgd.xmgl.modules.dangerous.mapper.*;
import com.zhgd.xmgl.modules.dangerous.service.IDangerousEngineeringControlItemService;
import com.zhgd.xmgl.modules.dangerous.service.IDangerousEngineeringRecordService;
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.util.MessageUtil;
@ -20,7 +25,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Description: 现场危大工程
@ -51,6 +58,12 @@ public class DangerousEngineeringRecordServiceImpl extends ServiceImpl<Dangerous
private DangerousEngineeringTypeDescribeMapper dangerousEngineeringTypeDescribeMapper;
@Autowired
private DangerousEngineeringControlItemMapper dangerousEngineeringControlItemMapper;
@Autowired
private IHiddenDangerInspectRecordService hiddenDangerInspectRecordService;
@Autowired
private IDangerousEngineeringSideStationService dangerousEngineeringSideStationService;
@Override
public IPage<EntityMap> queryDangerousEngineeringPageList(Map<String, Object> map) {
@ -162,4 +175,39 @@ public class DangerousEngineeringRecordServiceImpl extends ServiceImpl<Dangerous
record.setIsEnd(1);
baseMapper.updateById(record);
}
@Override
public BigDecimal getScore(String projectSn) {
List<DangerousEngineeringRecord> list = this.list(Wrappers.<DangerousEngineeringRecord>lambdaQuery()
.eq(DangerousEngineeringRecord::getProjectSn, projectSn)
.between(DangerousEngineeringRecord::getCreateTime, DateUtil.beginOfMonth(new Date()), DateUtil.endOfMonth(new Date())));
BigDecimal total = new BigDecimal(0);
if (list.size() > 0) {
List<DangerousEngineeringRecord> 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());
int totalDay = 0;
for (DangerousEngineeringRecord dangerousEngineeringRecord : list1) {
Long betweenDay = DateUtil.betweenDay(DateUtil.parseDate(dangerousEngineeringRecord.getPlanStartTime()), DateUtil.parseDate(dangerousEngineeringRecord.getPlanEndTime()), 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());
BigDecimal bigDecimal1 = new BigDecimal(totalDay);
BigDecimal result1 = new BigDecimal(0);
if (totalDay != 0) {
result1 = bigDecimal.divide(bigDecimal1, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(0.6));
}
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())));
BigDecimal bigDecima2 = new BigDecimal(list3.size());
BigDecimal bigDecimal3 = new BigDecimal(4);
BigDecimal result2 = bigDecima2.divide(bigDecimal3, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(0.4));
total = result1.add(result2);
}
return total.multiply(new BigDecimal(15));
}
}

View File

@ -11,6 +11,7 @@ import com.zhgd.xmgl.modules.video.entity.vo.AiAnalyseHardWareAlarmTotalVo;
import com.zhgd.xmgl.modules.video.entity.vo.AiAnalyseHardWareAlarmTrendVo;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -58,4 +59,6 @@ public interface IAiAnalyseHardWareAlarmRecordService extends IService<AiAnalyse
void violationPush(Long id);
void falsePositiveDeletion(Long id);
BigDecimal getScore(String projectSn);
}

View File

@ -47,6 +47,7 @@ import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper;
import com.zhgd.xmgl.modules.xz.entity.XzAiDeductRule;
import com.zhgd.xmgl.modules.xz.entity.XzDeductScoreRecord;
import com.zhgd.xmgl.modules.xz.mapper.XzDeductScoreRecordMapper;
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityQualityInspectionRecord;
import com.zhgd.xmgl.modules.xz.service.impl.XzAiDeductRuleServiceImpl;
import com.zhgd.xmgl.security.entity.UserInfo;
import com.zhgd.xmgl.security.util.SecurityUtils;
@ -62,6 +63,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@ -611,6 +613,27 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
baseMapper.deleteById(id);
}
@Override
public BigDecimal getScore(String projectSn) {
int num1 = this.count(Wrappers.<AiAnalyseHardWareAlarmRecord>lambdaQuery()
.eq(AiAnalyseHardWareAlarmRecord::getProjectSn, projectSn)
.between(AiAnalyseHardWareAlarmRecord::getCreateTime, DateUtil.beginOfMonth(new Date()), DateUtil.endOfMonth(new Date())));
Date time = DateUtil.offsetHour(new 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);
}
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));
}
private Integer getAlarmType(Integer algorithmId) {
/*
4 行人闯入

View File

@ -60,7 +60,7 @@ public class WorkerInfoAuditRecordServiceImpl extends ServiceImpl<WorkerInfoAudi
@Override
public List<EntityMap> getPassList(Map<String, Object> map) {
Page<EntityMap> page = new Page<>(-1, 10);
Page<EntityMap> page = new Page<>(1, 1000);
map.put("isExamPass", 1);
return workerInfoAuditRecordMapper.selectWorkerInfoAuditList1(page, map);
}

View File

@ -1,14 +1,22 @@
package com.zhgd.xmgl.modules.xz.security.controller;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.annotation.OperLog;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.base.entity.vo.SectorVo;
import com.zhgd.xmgl.base.entity.vo.TrendOneVo;
import com.zhgd.xmgl.modules.dangerous.service.IDangerousEngineeringRecordService;
import com.zhgd.xmgl.modules.dangerous.service.IHiddenDangerInspectRecordService;
import com.zhgd.xmgl.modules.quality.entity.QualityInspectionRecord;
import com.zhgd.xmgl.modules.video.service.IAiAnalyseHardWareAlarmRecordService;
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.dto.XzSecurityDepartmentRectifiedRankDto;
import com.zhgd.xmgl.modules.xz.security.entity.vo.*;
import com.zhgd.xmgl.modules.xz.security.service.IXzSecurityInspectTaskRecordService;
import com.zhgd.xmgl.modules.xz.security.service.IXzSecurityQualityInspectionRecordService;
import com.zhgd.xmgl.util.MessageUtil;
import io.swagger.annotations.Api;
@ -22,9 +30,12 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@ -42,6 +53,12 @@ public class XzSecurityQualityInspectionRecordController {
@Autowired
private IXzSecurityQualityInspectionRecordService qualityInspectionRecordService;
@Autowired
private IAiAnalyseHardWareAlarmRecordService aiAnalyseHardWareAlarmRecordService;
@Autowired
private IDangerousEngineeringRecordService dangerousEngineeringRecordService;
/**
* 分页列表查询
*
@ -424,4 +441,27 @@ public class XzSecurityQualityInspectionRecordController {
qualityInspectionRecordService.supervise(paramMap);
return Result.ok();
}
/**
* 获取综合分数
*
* @return
*/
@ApiOperation(value = "获取综合分数", notes = "获取综合分数")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String")
})
@GetMapping(value = "/getStatScore")
public Result<Object> getStatScore(String projectSn) {
BigDecimal hiddenDangerScore = qualityInspectionRecordService.getHiddenDangerScore(projectSn);
BigDecimal dangerEngScore = dangerousEngineeringRecordService.getScore(projectSn);
BigDecimal riskScore = qualityInspectionRecordService.getRiskScore(projectSn);
BigDecimal aiScore = aiAnalyseHardWareAlarmRecordService.getScore(projectSn);
Map<String, Object> 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)));
return Result.success(resultMap);
}
}

View File

@ -11,6 +11,7 @@ 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.HashMap;
import java.util.List;
import java.util.Map;
@ -84,4 +85,10 @@ public interface IXzSecurityQualityInspectionRecordService extends IService<XzSe
StatsDirectorateBigscreenVo statsDirectorateBigScreen(Map<String, Object> paramMap);
void supervise(Map<String, Object> paramMap);
BigDecimal getHiddenDangerScore(String projectSn);
BigDecimal getRiskScore(String projectSn);
}

View File

@ -40,6 +40,7 @@ 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.dto.XzSecurityDepartmentRectifiedRankDto;
@ -47,6 +48,7 @@ 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.IXzSecurityInspectTaskRecordService;
import com.zhgd.xmgl.modules.xz.security.service.IXzSecurityQualityInspectionRecordService;
import com.zhgd.xmgl.push.config.PushPayloads;
import com.zhgd.xmgl.util.JxlExcelUtils;
@ -62,6 +64,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
@ -105,6 +108,9 @@ public class XzSecurityXzSecurityQualityInspectionRecordServiceImpl extends Serv
@Autowired
private INoticeService noticeService;
@Autowired
private IXzSecurityInspectTaskRecordService xzSecurityInspectTaskRecordService;
private static List<Long> getChildrenByQualityRegionId(Long regionId, List<QualityRegion> all) {
ArrayList<Long> list = new ArrayList<>();
for (QualityRegion qualityRegion : all) {
@ -645,6 +651,65 @@ public class XzSecurityXzSecurityQualityInspectionRecordServiceImpl extends Serv
}
}
@Override
public BigDecimal getHiddenDangerScore(String projectSn) {
List<XzSecurityQualityInspectionRecord> list = this.list(Wrappers.<XzSecurityQualityInspectionRecord>lambdaQuery()
.eq(XzSecurityQualityInspectionRecord::getProjectSn, projectSn)
.between(XzSecurityQualityInspectionRecord::getCreateTime, DateUtil.beginOfMonth(new Date()), DateUtil.endOfMonth(new 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));
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));
}
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));
int checkSize = xzSecurityInspectTaskRecordService.list(Wrappers.<XzSecurityInspectTaskRecord>lambdaQuery()
.eq(XzSecurityInspectTaskRecord::getSn, projectSn)
.between(XzSecurityInspectTaskRecord::getCreateTime, DateUtil.beginOfMonth(new Date()), DateUtil.endOfMonth(new 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 total = result1.add(result2).add(result3).add(result4);
return total.multiply(new BigDecimal(25));
}
return new BigDecimal(0);
}
@Override
public BigDecimal getRiskScore(String projectSn) {
List<XzSecurityQualityInspectionRecord> list = this.list(Wrappers.<XzSecurityQualityInspectionRecord>lambdaQuery()
.eq(XzSecurityQualityInspectionRecord::getProjectSn, projectSn)
.between(XzSecurityQualityInspectionRecord::getCreateTime, DateUtil.beginOfMonth(new Date()), DateUtil.endOfMonth(new 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"));
}
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));
}
private void recoverScore(XzSecurityQualityInspectionRecord hiddenDangerInspectRecord) {
if (hiddenDangerInspectRecord.getRecordType() == null || hiddenDangerInspectRecord.getRecordType() == 2) {
return;

View File

@ -242,7 +242,7 @@ public class XzWorkerInfoAuditRecordController {
List<String> workerIds = new ArrayList<>();
JSONArray ids = paramMap.getJSONArray("id");
JSONArray workerInfo = new JSONArray();
String [] param = {"workerId", "enterpriseName", "teamName", "personType", "idCard", "contract", "insurance", "certificate"};
String [] param = {"workerId", "workerName", "enterpriseName", "teamName", "personType", "idCard", "contract", "insurance", "certificate"};
for (int i = 0; i < ids.size(); i++) {
JSONObject detailObj = new JSONObject();
JSONObject j = ids.getJSONObject(i);