From 3d397976d08f0359b8cfeb4e4f22403ae5d0c04f Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期六, 24 十月 2026 20:44:14 +0800
Subject: [PATCH] feat(device): 设备核查计划附件与设备使用记录联动改造
---
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordServiceImpl.java | 61 ++++++++++++++++++++++++++++--
1 files changed, 56 insertions(+), 5 deletions(-)
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordServiceImpl.java
index 790f995..6124241 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordServiceImpl.java
@@ -20,6 +20,7 @@
import com.ruoyi.device.pojo.DeviceExaminePlanDetails;
import com.ruoyi.device.pojo.DeviceExamineRecord;
import com.ruoyi.device.pojo.DeviceExamineRecordDetail;
+import com.ruoyi.device.service.DeviceExaminePlanService;
import com.ruoyi.device.service.DeviceExamineRecordDetailService;
import com.ruoyi.device.service.DeviceExamineRecordService;
import com.ruoyi.framework.exception.ErrorException;
@@ -36,6 +37,8 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.List;
@@ -53,6 +56,8 @@
@Resource
private DeviceExamineRecordDetailService deviceExamineRecordDetailService;
+ @Resource
+ private DeviceExaminePlanService deviceExaminePlanService;
@Resource
private DeviceExaminePlanDetailsMapper deviceExaminePlanDetailsMapper;
@Resource
@@ -174,18 +179,61 @@
if (dto.getPlanDetailsId() == null) {
throw new ErrorException("缂哄皯璁″垝璇︾粏淇℃伅id");
}
+ DeviceExaminePlanDetails planDetails = deviceExaminePlanDetailsMapper.selectById(dto.getPlanDetailsId());
+ if (planDetails == null) {
+ throw new ErrorException("鏍告煡璁″垝鏄庣粏涓嶅瓨鍦�");
+ }
+ if (planDetails.getCheckChargerUserId() == null && StringUtils.isBlank(planDetails.getCheckChargerUser())) {
+ throw new ErrorException("璇峰厛鍦ㄧ紪杈戜腑濉啓鏍告煡璐熻矗浜�");
+ }
+
+ Integer reviewStatus = dto.getReviewStatus();
+ Integer reviewerId = SecurityUtils.getUserId().intValue();
+ User reviewer = userMapper.selectById(reviewerId);
+
LambdaUpdateWrapper<DeviceExamineRecord> wrapper = Wrappers.<DeviceExamineRecord>lambdaUpdate()
.eq(DeviceExamineRecord::getPlanDetailsId, dto.getPlanDetailsId())
- .set(DeviceExamineRecord::getReviewStatus, dto.getReviewStatus())
+ .set(DeviceExamineRecord::getReviewStatus, reviewStatus)
.set(DeviceExamineRecord::getReviewRemark, dto.getReviewRemark());
// 涓�0娓呴櫎瀹℃牳浜�
- if (dto.getReviewStatus().equals(0)) {
+ if (reviewStatus != null && reviewStatus == 0) {
wrapper.set(DeviceExamineRecord::getReviewUserId, null)
.set(DeviceExamineRecord::getReviewUser, null);
+ } else {
+ wrapper.set(DeviceExamineRecord::getReviewUserId, reviewerId)
+ .set(DeviceExamineRecord::getReviewUser, reviewer == null ? null : reviewer.getName());
}
- this.update(wrapper);
+ boolean updated = this.update(wrapper);
+ // 璁″垝琛屽皻鏈綍鍏ユ牳鏌ヨ褰曟椂锛岃ˉ涓�鏉″鏍哥粨鏋滆褰曪紝淇濊瘉鍒楄〃鑳芥樉绀洪�氳繃/涓嶉�氳繃鐘舵��
+ if (!updated) {
+ DeviceExamineRecord record = new DeviceExamineRecord();
+ record.setPlanDetailsId(dto.getPlanDetailsId());
+ record.setReviewStatus(reviewStatus);
+ record.setReviewRemark(dto.getReviewRemark());
+ record.setCheckerUserId(planDetails.getCheckChargerUserId());
+ record.setCheckerUser(planDetails.getCheckChargerUser());
+ if (reviewStatus != null && reviewStatus == 1) {
+ record.setReviewUserId(reviewerId);
+ record.setReviewUser(reviewer == null ? null : reviewer.getName());
+ }
+ this.save(record);
+ }
+
+ // 澶嶆牳閫氳繃鍚庯紝璁惧妗f鐨勬渶杩�/涓嬫鏍告煡鏃ユ湡杩涘叆涓嬩竴杞�
+ if (reviewStatus != null && reviewStatus == 1) {
+ // 鎻愬墠瀹℃牳鏃舵妸鏈疆璁″垝褰掑埌瀹為檯瀹℃牳鏈堜唤锛屼究浜庣郴缁熺櫥璁颁笅涓�杞紱鎵嬪姩褰曞叆鍒版棩鐨勬棩鏈熶繚鎸佸師鏍�
+ String currentCheckTime = planDetails.getCheckTime();
+ boolean hasCheckDate = currentCheckTime != null && currentCheckTime.trim().length() >= 10;
+ if (!hasCheckDate) {
+ DeviceExaminePlanDetails updateDetail = new DeviceExaminePlanDetails();
+ updateDetail.setPlanDetailsId(dto.getPlanDetailsId());
+ updateDetail.setCheckTime(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM")));
+ deviceExaminePlanService.updateExaminePlanDetail(updateDetail);
+ }
+ deviceExaminePlanService.updateDeviceExamineDate(dto.getPlanDetailsId());
+ }
return true;
}
@@ -199,6 +247,9 @@
public void exportReviewExamineRecordDetail(Integer planDetailsId, HttpServletResponse response) {
// 鏌ヨ澶嶆牳鏍告煡璁板綍
DeviceExamineRecordDto deviceExamineRecordDto = baseMapper.selectReviewExamineRecordDto(planDetailsId);
+ if (deviceExamineRecordDto == null) {
+ throw new ErrorException("璇ヨ鍒掓槑缁嗘殏鏃犳牳鏌ヨ褰曪紝璇峰厛褰曞叆鍚庡啀瀵煎嚭");
+ }
// 鏌ヨ澶嶆牳鏍告煡璁板綍璇︽儏
List<DeviceExamineRecordDetail> deviceExamineRecordDetailList = deviceExamineRecordDetailService.list(Wrappers.<DeviceExamineRecordDetail>lambdaQuery().eq(DeviceExamineRecordDetail::getRecordId, deviceExamineRecordDto.getRecordId()));
@@ -213,9 +264,9 @@
put("deviceExamineRecordDto", deviceExamineRecordDto);
put("deviceExamineRecordDetailList", deviceExamineRecordDetailList);
//鑾峰彇鏍告煡浜虹殑绛惧悕鍦板潃
- put("checkerUserUrl", UserUtils.getFinalUserSignatureUrl(deviceExamineRecordDto.getCheckerUserId()));
+ put("checkerUserUrl", UserUtils.getFinalUserSignatureOrTransparent(deviceExamineRecordDto.getCheckerUserId()));
//鑾峰彇瀹℃煡浜虹殑绛惧悕鍦板潃
- put("reviewUserUrl", UserUtils.getFinalUserSignatureUrl(deviceExamineRecordDto.getReviewUserId()));
+ put("reviewUserUrl", UserUtils.getFinalUserSignatureOrTransparent(deviceExamineRecordDto.getReviewUserId()));
}});
try {
--
Gitblit v1.9.3