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/SafetyTrainingService.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 56 insertions(+), 0 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/safety/SafetyTrainingService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/safety/SafetyTrainingService.java
index 03284b3..bd857fb 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/safety/SafetyTrainingService.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/safety/SafetyTrainingService.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;
@@ -39,6 +40,8 @@
@Resource
private SafetyTrainingMapper trainingMapper;
@Resource
+ private SafetyRefResolver refResolver;
+ @Resource
private SafetyDrillMapper drillMapper;
@Resource
private SafetyAccidentMapper accidentMapper;
@@ -50,6 +53,9 @@
SafetyTrainingDO training = BeanUtils.toBean(reqVO, SafetyTrainingDO.class);
training.setTitle(StrUtil.trim(reqVO.getTitle()));
training.setTrainingType(StrUtil.blankToDefault(reqVO.getTrainingType(), SafetyTrainingTypeEnum.SAFETY.getType()));
+ training.setTrainerId(reqVO.getTrainerId());
+ training.setTrainer(reqVO.getTrainerId() == null ? ""
+ : refResolver.requireEmployee(reqVO.getTrainerId(), SAFETY_EMPLOYEE_REQUIRED).getName());
training.setParticipantCount(resolveCount(reqVO.getParticipantCount(), reqVO.getParticipants()));
training.setRemark(reqVO.getRemark() == null ? "" : reqVO.getRemark().trim());
trainingMapper.insert(training);
@@ -77,6 +83,51 @@
return trainingMapper.selectPage(reqVO);
}
+ /**
+ * 浜嬫晠鐨勪富鏁版嵁寮曠敤锛氭墍灞炶溅闂� + 鐧昏浜�
+ */
+ private void applyAccidentRefs(SafetyAccidentDO accident, SafetyAccidentSaveReqVO reqVO) {
+ accident.setWorkshopId(reqVO.getWorkshopId());
+ accident.setWorkshopName(reqVO.getWorkshopId() == null ? ""
+ : refResolver.requireWorkshop(reqVO.getWorkshopId()).getName());
+ accident.setReporterId(reqVO.getReporterId());
+ accident.setReporter(reqVO.getReporterId() == null ? ""
+ : refResolver.requireEmployee(reqVO.getReporterId(), SAFETY_EMPLOYEE_REQUIRED).getName());
+ }
+
+ /** 鎵归噺鍥炲~鍩硅璁插笀鏈�鏂板鍚� */
+ public void fillTrainers(List<SafetyTrainingDO> trainings) {
+ if (CollUtil.isEmpty(trainings)) return;
+ var employeeMap = refResolver.employeeMap(trainings.stream().map(SafetyTrainingDO::getTrainerId).toList());
+ trainings.forEach(t -> {
+ var e = employeeMap.get(t.getTrainerId());
+ if (e != null) t.setTrainer(e.getName());
+ });
+ }
+
+ /** 鎵归噺鍥炲~婕旂粌缁勭粐浜烘渶鏂板鍚� */
+ public void fillOrganizers(List<SafetyDrillDO> drills) {
+ if (CollUtil.isEmpty(drills)) return;
+ var employeeMap = refResolver.employeeMap(drills.stream().map(SafetyDrillDO::getOrganizerId).toList());
+ drills.forEach(d -> {
+ var e = employeeMap.get(d.getOrganizerId());
+ if (e != null) d.setOrganizer(e.getName());
+ });
+ }
+
+ /** 鎵归噺鍥炲~浜嬫晠鐨勮溅闂村悕涓庣櫥璁颁汉濮撳悕 */
+ public void fillAccidentRefs(List<SafetyAccidentDO> accidents) {
+ if (CollUtil.isEmpty(accidents)) return;
+ var workshopMap = refResolver.workshopMap(accidents.stream().map(SafetyAccidentDO::getWorkshopId).toList());
+ var employeeMap = refResolver.employeeMap(accidents.stream().map(SafetyAccidentDO::getReporterId).toList());
+ accidents.forEach(a -> {
+ var w = workshopMap.get(a.getWorkshopId());
+ if (w != null) a.setWorkshopName(w.getName());
+ var e = employeeMap.get(a.getReporterId());
+ if (e != null) a.setReporter(e.getName());
+ });
+ }
+
public static void fillTrainingDisplay(SafetyTrainingDO training, SafetyTrainingRespVO respVO) {
respVO.setTrainingTypeName(SafetyTrainingTypeEnum.getNameByType(training.getTrainingType()));
}
@@ -88,6 +139,9 @@
SafetyDrillDO drill = BeanUtils.toBean(reqVO, SafetyDrillDO.class);
drill.setTitle(StrUtil.trim(reqVO.getTitle()));
drill.setDrillType(StrUtil.blankToDefault(reqVO.getDrillType(), SafetyDrillTypeEnum.FIRE.getType()));
+ drill.setOrganizerId(reqVO.getOrganizerId());
+ drill.setOrganizer(reqVO.getOrganizerId() == null ? ""
+ : refResolver.requireEmployee(reqVO.getOrganizerId(), SAFETY_EMPLOYEE_REQUIRED).getName());
drill.setParticipantCount(resolveCount(reqVO.getParticipantCount(), reqVO.getParticipants()));
drill.setRemark(reqVO.getRemark() == null ? "" : reqVO.getRemark().trim());
drillMapper.insert(drill);
@@ -128,6 +182,7 @@
accident.setTitle(StrUtil.trim(reqVO.getTitle()));
accident.setLevel(StrUtil.blankToDefault(reqVO.getLevel(), SafetyAccidentLevelEnum.GENERAL.getLevel()));
accident.setStatus(StrUtil.blankToDefault(reqVO.getStatus(), SafetyAccidentStatusEnum.REPORTED.getStatus()));
+ applyAccidentRefs(accident, reqVO);
accident.setReportTime(reqVO.getReportTime() == null ? LocalDateTime.now() : reqVO.getReportTime());
accident.setRemark(reqVO.getRemark() == null ? "" : reqVO.getRemark().trim());
accidentMapper.insert(accident);
@@ -138,6 +193,7 @@
validateAccidentExists(reqVO.getId());
SafetyAccidentDO accident = BeanUtils.toBean(reqVO, SafetyAccidentDO.class);
accident.setCode(null);
+ applyAccidentRefs(accident, reqVO);
accidentMapper.updateById(accident);
}
--
Gitblit v1.9.3