ai的bug修复

This commit is contained in:
guoshengxiong 2024-05-20 18:17:40 +08:00
parent 800ebd011c
commit cbb335e668

View File

@ -46,6 +46,7 @@ import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper; import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper;
import com.zhgd.xmgl.modules.xz.entity.XzAiDeductRule; import com.zhgd.xmgl.modules.xz.entity.XzAiDeductRule;
import com.zhgd.xmgl.modules.xz.entity.XzDeductScoreRecord; import com.zhgd.xmgl.modules.xz.entity.XzDeductScoreRecord;
import com.zhgd.xmgl.modules.xz.mapper.XzAiDeductRuleMapper;
import com.zhgd.xmgl.modules.xz.mapper.XzDeductScoreRecordMapper; import com.zhgd.xmgl.modules.xz.mapper.XzDeductScoreRecordMapper;
import com.zhgd.xmgl.modules.xz.service.impl.XzAiDeductRuleServiceImpl; import com.zhgd.xmgl.modules.xz.service.impl.XzAiDeductRuleServiceImpl;
import com.zhgd.xmgl.security.entity.UserInfo; import com.zhgd.xmgl.security.entity.UserInfo;
@ -54,7 +55,6 @@ import com.zhgd.xmgl.util.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.Nullable;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -75,6 +75,8 @@ import java.util.stream.Collectors;
@Service @Service
@Slf4j @Slf4j
public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnalyseHardWareAlarmRecordMapper, AiAnalyseHardWareAlarmRecord> implements IAiAnalyseHardWareAlarmRecordService { public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnalyseHardWareAlarmRecordMapper, AiAnalyseHardWareAlarmRecord> implements IAiAnalyseHardWareAlarmRecordService {
@Autowired
XzAiDeductRuleMapper xzAiDeductRuleMapper;
@Autowired @Autowired
AiAnalyseHardWareRecordServiceImpl aiAnalyseHardWareRecordService; AiAnalyseHardWareRecordServiceImpl aiAnalyseHardWareRecordService;
@Autowired @Autowired
@ -460,8 +462,8 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
deductScoreIf(taskProgressMaterialRel, record); deductScoreIf(taskProgressMaterialRel, record);
} }
private void deductScoreIf(AiAnalyseHardWareAlarmRecord taskProgressMaterialRel, AiAnalyseHardWareAlarmRecord record) { private void deductScoreIf(AiAnalyseHardWareAlarmRecord alarmRecord, AiAnalyseHardWareAlarmRecord record) {
List<WorkerInfo> workerInfoList = taskProgressMaterialRel.getWorkerInfoList(); List<WorkerInfo> workerInfoList = alarmRecord.getWorkerInfoList();
if (CollUtil.isNotEmpty(workerInfoList)) { if (CollUtil.isNotEmpty(workerInfoList)) {
for (WorkerInfo workerInfo : workerInfoList) { for (WorkerInfo workerInfo : workerInfoList) {
WorkerInfoToAiAnalyseHardWareAlarmRecord entity = new WorkerInfoToAiAnalyseHardWareAlarmRecord(); WorkerInfoToAiAnalyseHardWareAlarmRecord entity = new WorkerInfoToAiAnalyseHardWareAlarmRecord();
@ -471,16 +473,28 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
} }
Integer c = workerInfoToAiAnalyseHardWareAlarmRecordMapper.selectCount(new LambdaQueryWrapper<WorkerInfoToAiAnalyseHardWareAlarmRecord>() Integer c = workerInfoToAiAnalyseHardWareAlarmRecordMapper.selectCount(new LambdaQueryWrapper<WorkerInfoToAiAnalyseHardWareAlarmRecord>()
.eq(WorkerInfoToAiAnalyseHardWareAlarmRecord::getWorkerInfoId, id) .eq(WorkerInfoToAiAnalyseHardWareAlarmRecord::getWorkerInfoId, id)
.eq(WorkerInfoToAiAnalyseHardWareAlarmRecord::getAiAnalyseHardWareAlarmRecordId, taskProgressMaterialRel.getId()) .eq(WorkerInfoToAiAnalyseHardWareAlarmRecord::getAiAnalyseHardWareAlarmRecordId, alarmRecord.getId())
); );
if (c != 0) { if (c != 0) {
return; return;
} }
entity.setWorkerInfoId(id); entity.setWorkerInfoId(id);
entity.setAiAnalyseHardWareAlarmRecordId(taskProgressMaterialRel.getId()); entity.setAiAnalyseHardWareAlarmRecordId(alarmRecord.getId());
workerInfoToAiAnalyseHardWareAlarmRecordMapper.insert(entity); workerInfoToAiAnalyseHardWareAlarmRecordMapper.insert(entity);
String projectSn = alarmRecord.getProjectSn();
DictionaryItem dict = dictionaryItemService.getDict(DictionaryConstant.AI_ANALYSE_HARD_WARE_ALARM_RECORD_TYPE, alarmRecord.getAlarmType() + "", projectSn);
if (dict == null) {
return;
}
XzAiDeductRule rule = xzAiDeductRuleMapper.selectOne(new LambdaQueryWrapper<XzAiDeductRule>()
.eq(XzAiDeductRule::getProjectSn, projectSn)
.eq(XzAiDeductRule::getDictionaryItemId, dict.getId())
);
if (rule == null) {
return;
}
//扣分 //扣分
Double deductScore = taskProgressMaterialRel.getDeductScore(); Double deductScore = rule.getDeductScore();
if (deductScore == null || deductScore == 0) { if (deductScore == null || deductScore == 0) {
return; return;
} }
@ -504,12 +518,12 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
vo.setDeductReason(StrUtil.format("您在{}发现安全隐患({}-{})扣{}分", DateUtil.format(vo.getCreateDate(), "yyyy年MM月dd日HH:mm:ss"), "Al违章", vo.getTypeName() == null ? "" : vo.getTypeName(), deductScore)); vo.setDeductReason(StrUtil.format("您在{}发现安全隐患({}-{})扣{}分", DateUtil.format(vo.getCreateDate(), "yyyy年MM月dd日HH:mm:ss"), "Al违章", vo.getTypeName() == null ? "" : vo.getTypeName(), deductScore));
vo.setProjectSn(record.getProjectSn()); vo.setProjectSn(record.getProjectSn());
vo.setWorkerId(wi.getId()); vo.setWorkerId(wi.getId());
vo.setTypeTableId(taskProgressMaterialRel.getId()); vo.setTypeTableId(alarmRecord.getId());
xzDeductScoreRecordMapper.insert(vo); xzDeductScoreRecordMapper.insert(vo);
UserInfo user = SecurityUtils.getUser(); UserInfo user = SecurityUtils.getUser();
if (user != null) { if (user != null) {
List<String> noticeUserIds = aiAnalyseHardWareRecordService.getUserIdsByAiAnalyseHardId(taskProgressMaterialRel.getHardwareId()); List<String> noticeUserIds = aiAnalyseHardWareRecordService.getUserIdsByAiAnalyseHardId(alarmRecord.getHardwareId());
for (String noticeUserId : noticeUserIds) { for (String noticeUserId : noticeUserIds) {
noticeService.addUserNotice(Long.valueOf(noticeUserId), vo.getDeductReason(), "Al违章扣分通知", "8"); noticeService.addUserNotice(Long.valueOf(noticeUserId), vo.getDeductReason(), "Al违章扣分通知", "8");
} }
@ -616,7 +630,7 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
BigDecimal subtract = bigDecimal1.subtract(bigDecimal); BigDecimal subtract = bigDecimal1.subtract(bigDecimal);
subtract = subtract.divide(bigDecimal, 2, BigDecimal.ROUND_HALF_UP); subtract = subtract.divide(bigDecimal, 2, BigDecimal.ROUND_HALF_UP);
BigDecimal subtract1 = bigDecimal2.subtract(subtract); BigDecimal subtract1 = bigDecimal2.subtract(subtract);
if(subtract1.compareTo(new BigDecimal(0)) < 0) { if (subtract1.compareTo(new BigDecimal(0)) < 0) {
return new BigDecimal(0); return new BigDecimal(0);
} }
return subtract1.multiply(new BigDecimal(20)).setScale(2, RoundingMode.HALF_UP); return subtract1.multiply(new BigDecimal(20)).setScale(2, RoundingMode.HALF_UP);