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.xz.entity.XzAiDeductRule;
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.service.impl.XzAiDeductRuleServiceImpl;
import com.zhgd.xmgl.security.entity.UserInfo;
@ -54,7 +55,6 @@ import com.zhgd.xmgl.util.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.Nullable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@ -75,6 +75,8 @@ import java.util.stream.Collectors;
@Service
@Slf4j
public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnalyseHardWareAlarmRecordMapper, AiAnalyseHardWareAlarmRecord> implements IAiAnalyseHardWareAlarmRecordService {
@Autowired
XzAiDeductRuleMapper xzAiDeductRuleMapper;
@Autowired
AiAnalyseHardWareRecordServiceImpl aiAnalyseHardWareRecordService;
@Autowired
@ -460,8 +462,8 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
deductScoreIf(taskProgressMaterialRel, record);
}
private void deductScoreIf(AiAnalyseHardWareAlarmRecord taskProgressMaterialRel, AiAnalyseHardWareAlarmRecord record) {
List<WorkerInfo> workerInfoList = taskProgressMaterialRel.getWorkerInfoList();
private void deductScoreIf(AiAnalyseHardWareAlarmRecord alarmRecord, AiAnalyseHardWareAlarmRecord record) {
List<WorkerInfo> workerInfoList = alarmRecord.getWorkerInfoList();
if (CollUtil.isNotEmpty(workerInfoList)) {
for (WorkerInfo workerInfo : workerInfoList) {
WorkerInfoToAiAnalyseHardWareAlarmRecord entity = new WorkerInfoToAiAnalyseHardWareAlarmRecord();
@ -471,16 +473,28 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
}
Integer c = workerInfoToAiAnalyseHardWareAlarmRecordMapper.selectCount(new LambdaQueryWrapper<WorkerInfoToAiAnalyseHardWareAlarmRecord>()
.eq(WorkerInfoToAiAnalyseHardWareAlarmRecord::getWorkerInfoId, id)
.eq(WorkerInfoToAiAnalyseHardWareAlarmRecord::getAiAnalyseHardWareAlarmRecordId, taskProgressMaterialRel.getId())
.eq(WorkerInfoToAiAnalyseHardWareAlarmRecord::getAiAnalyseHardWareAlarmRecordId, alarmRecord.getId())
);
if (c != 0) {
return;
}
entity.setWorkerInfoId(id);
entity.setAiAnalyseHardWareAlarmRecordId(taskProgressMaterialRel.getId());
entity.setAiAnalyseHardWareAlarmRecordId(alarmRecord.getId());
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) {
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.setProjectSn(record.getProjectSn());
vo.setWorkerId(wi.getId());
vo.setTypeTableId(taskProgressMaterialRel.getId());
vo.setTypeTableId(alarmRecord.getId());
xzDeductScoreRecordMapper.insert(vo);
UserInfo user = SecurityUtils.getUser();
if (user != null) {
List<String> noticeUserIds = aiAnalyseHardWareRecordService.getUserIdsByAiAnalyseHardId(taskProgressMaterialRel.getHardwareId());
List<String> noticeUserIds = aiAnalyseHardWareRecordService.getUserIdsByAiAnalyseHardId(alarmRecord.getHardwareId());
for (String noticeUserId : noticeUserIds) {
noticeService.addUserNotice(Long.valueOf(noticeUserId), vo.getDeductReason(), "Al违章扣分通知", "8");
}
@ -616,7 +630,7 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
BigDecimal subtract = bigDecimal1.subtract(bigDecimal);
subtract = subtract.divide(bigDecimal, 2, BigDecimal.ROUND_HALF_UP);
BigDecimal subtract1 = bigDecimal2.subtract(subtract);
if(subtract1.compareTo(new BigDecimal(0)) < 0) {
if (subtract1.compareTo(new BigDecimal(0)) < 0) {
return new BigDecimal(0);
}
return subtract1.multiply(new BigDecimal(20)).setScale(2, RoundingMode.HALF_UP);