From 416558785276159b8730b2826e71995fc16b59a7 Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期四, 29 十月 2026 11:47:44 +0800
Subject: [PATCH] refactor(safety): 人员与车间字段全面改为主数据关联
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/safety/SafetyHazardService.java | 41 +++++++++++++++++++++++++++++++++++------
1 files changed, 35 insertions(+), 6 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/safety/SafetyHazardService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/safety/SafetyHazardService.java
index db2ebd9..255d851 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/safety/SafetyHazardService.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/safety/SafetyHazardService.java
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.mes.service.safety;
+import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
@@ -17,6 +18,7 @@
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
+import java.util.List;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.mes.enums.SafetyErrorCodeConstants.*;
@@ -37,6 +39,8 @@
@Resource
private SafetyHazardMapper hazardMapper;
+ @Resource
+ private SafetyRefResolver refResolver;
/**
* 闅愭偅涓婃姤锛堝惈绉诲姩绔媿鐓т笂浼犵殑 photoUrls锛�
@@ -47,7 +51,8 @@
SafetyHazardDO hazard = BeanUtils.toBean(reqVO, SafetyHazardDO.class);
hazard.setCode(hazardMapper.selectNextCode("HZ" + LocalDate.now().format(CODE_DATE)));
hazard.setTitle(StrUtil.trim(reqVO.getTitle()));
- hazard.setReporter(StrUtil.trim(reqVO.getReporter()));
+ hazard.setReporterId(reqVO.getReporterId());
+ hazard.setReporter(refResolver.requireEmployee(reqVO.getReporterId(), SAFETY_EMPLOYEE_REQUIRED).getName());
hazard.setLevel(StrUtil.blankToDefault(reqVO.getLevel(), SafetyHazardLevelEnum.GENERAL.getLevel()));
hazard.setSource(StrUtil.blankToDefault(reqVO.getSource(), SafetyHazardSourceEnum.SELF_CHECK.getSource()));
hazard.setReportTime(reqVO.getReportTime() == null ? LocalDateTime.now() : reqVO.getReportTime());
@@ -83,12 +88,14 @@
&& !SafetyHazardStatusEnum.REJECTED.getStatus().equals(hazard.getStatus())) {
throw exception(SAFETY_HAZARD_STATUS_ERROR);
}
- if (StrUtil.isBlank(reqVO.getAssignee())) {
+ if (reqVO.getAssigneeId() == null) {
throw exception(SAFETY_HAZARD_ASSIGNEE_REQUIRED);
}
+ var assignee = refResolver.requireEmployee(reqVO.getAssigneeId(), SAFETY_HAZARD_ASSIGNEE_REQUIRED);
SafetyHazardDO update = new SafetyHazardDO();
update.setId(hazard.getId());
- update.setAssignee(StrUtil.trim(reqVO.getAssignee()));
+ update.setAssigneeId(assignee.getId());
+ update.setAssignee(assignee.getName());
update.setAssignTime(LocalDateTime.now());
update.setRectifyDeadline(reqVO.getRectifyDeadline());
update.setStatus(SafetyHazardStatusEnum.RECTIFYING.getStatus());
@@ -128,14 +135,16 @@
if (!SafetyHazardStatusEnum.RECHECKING.getStatus().equals(hazard.getStatus())) {
throw exception(SAFETY_HAZARD_STATUS_ERROR);
}
- String rechecker = StrUtil.trim(reqVO.getRechecker());
- if (StrUtil.isNotBlank(hazard.getAssignee()) && hazard.getAssignee().equals(rechecker)) {
+ var rechecker = refResolver.requireEmployee(reqVO.getRecheckerId(), SAFETY_EMPLOYEE_REQUIRED);
+ // 鐢ㄥ憳宸ョ紪鍙锋瘮杈冿紝姣斿鍚嶆瘮杈冨彲闈狅紙鍚屽悕涓嶅悓浜� / 鏀瑰悕閮戒笉浼氳鍒わ級
+ if (hazard.getAssigneeId() != null && hazard.getAssigneeId().equals(rechecker.getId())) {
throw exception(SAFETY_HAZARD_SAME_OPERATOR);
}
boolean passed = "PASSED".equals(reqVO.getRecheckResult());
SafetyHazardDO update = new SafetyHazardDO();
update.setId(hazard.getId());
- update.setRechecker(rechecker);
+ update.setRecheckerId(rechecker.getId());
+ update.setRechecker(rechecker.getName());
update.setRecheckTime(LocalDateTime.now());
update.setRecheckResult(reqVO.getRecheckResult());
update.setRecheckRemark(reqVO.getRecheckRemark());
@@ -163,6 +172,26 @@
}
/**
+ * 鎵归噺鍥炲~涓婃姤浜� / 鏁存敼璐d换浜� / 澶嶆煡浜虹殑鏈�鏂板鍚�
+ */
+ public void fillPersonNames(List<SafetyHazardDO> hazards) {
+ if (CollUtil.isEmpty(hazards)) {
+ return;
+ }
+ var ids = new java.util.ArrayList<Long>(hazards.size() * 3);
+ hazards.forEach(h -> { ids.add(h.getReporterId()); ids.add(h.getAssigneeId()); ids.add(h.getRecheckerId()); });
+ var employeeMap = refResolver.employeeMap(ids);
+ hazards.forEach(hazard -> {
+ var reporter = employeeMap.get(hazard.getReporterId());
+ if (reporter != null) hazard.setReporter(reporter.getName());
+ var assignee = employeeMap.get(hazard.getAssigneeId());
+ if (assignee != null) hazard.setAssignee(assignee.getName());
+ var rechecker = employeeMap.get(hazard.getRecheckerId());
+ if (rechecker != null) hazard.setRechecker(rechecker.getName());
+ });
+ }
+
+ /**
* 灞曠ず瀛楁琛ュ叏锛堢瓑绾�/鏉ユ簮/鐘舵�佸悕绉般�佽秴鏈熸爣璁帮級
*/
public static void fillHazardDisplay(SafetyHazardDO hazard, SafetyHazardRespVO respVO) {
--
Gitblit v1.9.3