From 8ad863082097ffdcab4a8e7f426d344a1fe6f892 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期六, 07 十一月 2026 00:27:02 +0800
Subject: [PATCH] 修复人员管理接口校验与导出,完善设备保养计划与文件受控功能
---
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java | 97 +++++++++++++++++++++++++++++++-----------------
1 files changed, 62 insertions(+), 35 deletions(-)
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java
index badf239..d67d453 100644
--- a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java
@@ -11,6 +11,7 @@
import com.ruoyi.common.core.domain.entity.User;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.WxCpUtils;
+import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
import com.ruoyi.personnel.dto.PersonTrainingRecordDto;
import com.ruoyi.personnel.dto.PersonTrainingRecordListDto;
@@ -90,8 +91,14 @@
@Override
public void exportTrainingRecordAddTrainingDate(Integer userId, Integer trainingDate, HttpServletResponse response) {
+ if (userId == null) {
+ throw new ErrorException("缂哄皯浜哄憳id");
+ }
// 鏌ヨ浜哄憳浜轰俊鎭�
PersonTrainingRecordListDto trainingRecordListDto = baseMapper.selectUserTraining(userId);
+ if (trainingRecordListDto == null) {
+ throw new ErrorException("浜哄憳涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎锛屾棤娉曞鍑�");
+ }
// 鏌ヨ鍩硅璁板綍
List<TrainingRecordPersonDetailedDto> personDetailedDtos = baseMapper.selectPersonDetailedDtosByTrainingDate(userId, trainingDate);
@@ -99,6 +106,9 @@
// 鑾峰彇璺緞
InputStream inputStream = this.getClass().getResourceAsStream("/static/training-record.docx");
+ if (inputStream == null) {
+ throw new ErrorException("鍩硅璁板綍瀵煎嚭妯℃澘涓嶅瓨鍦�");
+ }
Configure configure = Configure.builder()
.bind("personnelDetailsLisat", new HackLoopTableRenderPolicy())
.build();
@@ -130,6 +140,21 @@
*/
@Override
public void trainingAndAssessmentRecordsAdded(PersonTrainingRecordSubmitDto personTrainingRecordSubmitDto) {
+ if (personTrainingRecordSubmitDto == null || personTrainingRecordSubmitDto.getTrainingDetailedId() == null) {
+ throw new ErrorException("缂哄皯鍩硅鏄庣粏id");
+ }
+ if (personTrainingRecordSubmitDto.getState() == null) {
+ throw new ErrorException("缂哄皯鍩硅鐘舵��");
+ }
+ PersonTrainingDetailed personPersonnelCapacity = personTrainingDetailedService.getById(personTrainingRecordSubmitDto.getTrainingDetailedId());
+ if (personPersonnelCapacity == null) {
+ throw new ErrorException("鍩硅璁板綍涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎");
+ }
+ boolean waitEvaluate = Integer.valueOf(2).equals(personTrainingRecordSubmitDto.getState());
+ if (waitEvaluate && personTrainingRecordSubmitDto.getAssessmentUserId() == null) {
+ throw new ErrorException("璇烽�夋嫨璇勪环浜�");
+ }
+
personTrainingDetailedService.update(Wrappers.<PersonTrainingDetailed>lambdaUpdate()
.eq(PersonTrainingDetailed::getId, personTrainingRecordSubmitDto.getTrainingDetailedId())
.set(PersonTrainingDetailed::getAssessmentMethod, personTrainingRecordSubmitDto.getAssessmentMethod())
@@ -138,42 +163,44 @@
.set(PersonTrainingDetailed::getAssessmentUserId, personTrainingRecordSubmitDto.getAssessmentUserId())
.set(PersonTrainingDetailed::getState, personTrainingRecordSubmitDto.getState()));
- // 鍙戦�佹秷鎭�氱煡
- if (personTrainingRecordSubmitDto.getState().equals(2)) {
- PersonTrainingDetailed personPersonnelCapacity = personTrainingDetailedService.getById(personTrainingRecordSubmitDto.getTrainingDetailedId());
-
- Integer userId = SecurityUtils.getUserId().intValue();
- User user = userMapper.selectById(userId);
- // 娑堟伅鍙戦��
- InformationNotification info = new InformationNotification();
- // 鍙戦�佷汉
- info.setCreateUser(user.getName());
- info.setMessageType("6");
- info.setTheme("CNAS浜哄憳鍩硅璁″垝寰呰瘎浠�");
- info.setContent("鍩硅鍐呭:" + personPersonnelCapacity.getTrainingContent() + "鐨勪汉鍛樺煿璁緟璇勪环");
- info.setSenderId(userId);
- // 鎺ユ敹浜�
- info.setConsigneeId(personTrainingRecordSubmitDto.getAssessmentUserId());
- info.setJumpPath(MenuJumpPathConstants.PERSONNEL);
- informationNotificationService.addInformationNotification(info);
-
- // 鍙戦�佷紒涓氬井淇¢�氱煡
- threadPoolTaskExecutor.execute(() -> {
- // 鏌ヨ鎺ユ敹浜�
- User personnel = userMapper.selectById(personTrainingRecordSubmitDto.getAssessmentUserId());
-
- String message = "";
- message += "CNAS浜哄憳鍩硅璁″垝寰呰瘎浠�";
- message += "\n璇峰幓璧勬簮绠$悊-浜哄憳-浜哄憳鍩硅璁″垝";
- message += "\n" + "鍩硅鍐呭:" + personPersonnelCapacity.getTrainingContent() + "鐨勪汉鍛樺煿璁緟璇勪环";
- //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡
- try {
- WxCpUtils.inform(personnel.getAccount(), message, null);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- });
+ // 鍙湁鎻愪氦寰呰瘎浠锋椂鎵嶉�氱煡璇勪环浜�
+ if (!waitEvaluate) {
+ return;
}
+
+ Integer userId = SecurityUtils.getUserId().intValue();
+ User user = userMapper.selectById(userId);
+ // 娑堟伅鍙戦��
+ InformationNotification info = new InformationNotification();
+ // 鍙戦�佷汉
+ info.setCreateUser(user != null ? user.getName() : "");
+ info.setMessageType("6");
+ info.setTheme("CNAS浜哄憳鍩硅璁″垝寰呰瘎浠�");
+ info.setContent("鍩硅鍐呭:" + personPersonnelCapacity.getTrainingContent() + "鐨勪汉鍛樺煿璁緟璇勪环");
+ info.setSenderId(userId);
+ // 鎺ユ敹浜�
+ info.setConsigneeId(personTrainingRecordSubmitDto.getAssessmentUserId());
+ info.setJumpPath(MenuJumpPathConstants.PERSONNEL);
+ informationNotificationService.addInformationNotification(info);
+
+ // 鍙戦�佷紒涓氬井淇¢�氱煡
+ threadPoolTaskExecutor.execute(() -> {
+ // 鏌ヨ鎺ユ敹浜�
+ User personnel = userMapper.selectById(personTrainingRecordSubmitDto.getAssessmentUserId());
+ if (personnel == null || personnel.getAccount() == null || personnel.getAccount().trim().isEmpty()) {
+ return;
+ }
+ String message = "";
+ message += "CNAS浜哄憳鍩硅璁″垝寰呰瘎浠�";
+ message += "\n璇峰幓璧勬簮绠$悊-浜哄憳-浜哄憳鍩硅璁″垝";
+ message += "\n" + "鍩硅鍐呭:" + personPersonnelCapacity.getTrainingContent() + "鐨勪汉鍛樺煿璁緟璇勪环";
+ //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡
+ try {
+ WxCpUtils.inform(personnel.getAccount(), message, null);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ });
}
}
--
Gitblit v1.9.3