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] 修复人员管理接口校验与导出,完善设备保养计划与文件受控功能
---
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java | 71 ++++++++++++++++++++++++++++++-----
1 files changed, 60 insertions(+), 11 deletions(-)
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
index 3dde4b3..a141ab0 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -45,6 +45,7 @@
import com.ruoyi.inspect.pojo.*;
import com.ruoyi.inspect.service.*;
import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
+import com.ruoyi.inspect.util.ReportResultTableRenderPolicy;
import com.ruoyi.inspect.util.PreserveReportPicturePlaceholderHandler;
import com.ruoyi.inspect.util.ReportSignaturePictureUtils;
import com.ruoyi.inspect.vo.InsOrderPlanTaskSwitchVo;
@@ -1034,7 +1035,8 @@
/**
* 鍘熷璁板綍淇濆瓨鍚庯紝鎸夊綋鍓嶆ā鏉块�夌敤鐨勮澶囩敓鎴愬緟濉啓鐨勪娇鐢ㄨ褰曘��
- * 鍚屼竴璁㈠崟銆佹牱鍝併�佽澶囧彧鐢熸垚涓�鏉★紱宸茬粡濉啓杩囩殑璁板綍涓嶄細琚鐩栥��
+ * 鍚屼竴璁㈠崟銆佹牱鍝併�佽澶囧彧鐢熸垚涓�鏉★紱娓╂箍搴﹀拰浣跨敤鏃ユ湡鍙栧師濮嬭褰曞揩鐓э紝
+ * 鏃堕棿榛樿 10:00-19:30锛涘凡缁忔墜宸ュ~鍐欒繃鐨勮褰曚笉浼氳瑕嗙洊銆�
*/
private synchronized void syncDeviceRecordsFromTemplate(Integer orderId, Integer sampleId,
Integer templateId, Integer userId) {
@@ -1051,6 +1053,24 @@
if (CollectionUtils.isEmpty(deviceIds)) {
return;
}
+ InsOrderStandardTemplate snapshot = insOrderStandardTemplateService.getOne(
+ Wrappers.<InsOrderStandardTemplate>lambdaQuery()
+ .eq(InsOrderStandardTemplate::getInsOrderId, orderId)
+ .eq(InsOrderStandardTemplate::getTemplateId, templateId)
+ .last("limit 1"));
+ String temperature = snapshot == null || StringUtils.isBlank(snapshot.getTemperature())
+ ? order.getTemperature() : snapshot.getTemperature();
+ String humidity = snapshot == null || StringUtils.isBlank(snapshot.getHumidity())
+ ? order.getHumidity() : snapshot.getHumidity();
+ // 鍘熷璁板綍娌℃湁妫�娴嬫棩鏈熸椂鐣欑┖锛屼笉榛樿褰撳ぉ
+ LocalDateTime useStartDate = null;
+ LocalDateTime useEndDate = null;
+ if (snapshot != null && snapshot.getDetectionTime() != null) {
+ useStartDate = snapshot.getDetectionTime().atTime(10, 0);
+ LocalDate endDate = snapshot.getDetectionEndTime() != null
+ ? snapshot.getDetectionEndTime() : snapshot.getDetectionTime();
+ useEndDate = endDate.atTime(19, 30);
+ }
User user = userMapper.selectById(userId);
String usePerson = user == null ? "" : user.getName();
String sampleCode = StringUtils.isNotBlank(sample.getSampleCode())
@@ -1059,19 +1079,46 @@
if (deviceId == null) {
continue;
}
- Long count = insOrderDeviceRecordMapper.selectCount(Wrappers.<InsOrderDeviceRecord>lambdaQuery()
- .eq(InsOrderDeviceRecord::getInsOrderId, orderId)
- .eq(InsOrderDeviceRecord::getDeviceId, deviceId)
- .eq(InsOrderDeviceRecord::getSampleCode, sampleCode));
- if (count != null && count > 0) {
+ InsOrderDeviceRecord existing = insOrderDeviceRecordMapper.selectOne(
+ Wrappers.<InsOrderDeviceRecord>lambdaQuery()
+ .eq(InsOrderDeviceRecord::getInsOrderId, orderId)
+ .eq(InsOrderDeviceRecord::getDeviceId, deviceId)
+ .eq(InsOrderDeviceRecord::getSampleCode, sampleCode)
+ .last("limit 1"));
+ if (existing != null) {
+ // 鍙ˉ鑷姩鐢熸垚浣嗗皻鏈~鍐欑殑璁板綍
+ if (existing.getUseStartDate() != null) {
+ continue;
+ }
+ InsOrderDeviceRecord update = new InsOrderDeviceRecord();
+ update.setId(existing.getId());
+ if (StringUtils.isBlank(existing.getTemperature())) {
+ update.setTemperature(temperature);
+ }
+ if (StringUtils.isBlank(existing.getHumidity())) {
+ update.setHumidity(humidity);
+ }
+ if (useStartDate != null) {
+ update.setUseStartDate(useStartDate);
+ update.setUseEndDate(useEndDate);
+ }
+ if (existing.getUsePersonId() == null) {
+ update.setUsePersonId(userId);
+ }
+ if (StringUtils.isBlank(existing.getUsePerson())) {
+ update.setUsePerson(usePerson);
+ }
+ insOrderDeviceRecordMapper.updateById(update);
continue;
}
InsOrderDeviceRecord record = new InsOrderDeviceRecord();
record.setInsOrderId(orderId);
record.setDeviceId(deviceId);
record.setSampleCode(sampleCode);
- record.setTemperature(order.getTemperature());
- record.setHumidity(order.getHumidity());
+ record.setTemperature(temperature);
+ record.setHumidity(humidity);
+ record.setUseStartDate(useStartDate);
+ record.setUseEndDate(useEndDate);
record.setUseBefore(1);
record.setUseAfter(1);
record.setUsePersonId(userId);
@@ -1855,11 +1902,13 @@
}
// 妫�楠屼汉鍛樻彁浜ゅ鏍告椂涓嶇敓鎴愭姤鍛婏紱鍏ㄩ儴璇曢獙瀹ゅ鏍搁�氳繃鍚庣敓鎴愭姤鍛娿��
- if (report == null || StringUtils.isBlank(report.getUrl())) {
+ boolean returnedFromReport = report != null && Objects.equals(report.getIsPass(), 0);
+ if (report == null || StringUtils.isBlank(report.getUrl()) || returnedFromReport) {
this.generateReport(orderId, DETECTION_REPORT, writeUserId);
}
// 鐩寸粦妯℃澘璁㈠崟鍚屾椂鐢熸垚妫�楠屾姤鍛婏紝涓や唤鏂囦欢鍏辩敤鍚屼竴鏉″鎵硅褰曘��
- if (directTemplateOrder && (report == null || StringUtils.isBlank(report.getInspectionUrl()))) {
+ if (directTemplateOrder && (report == null || StringUtils.isBlank(report.getInspectionUrl())
+ || returnedFromReport)) {
this.generateReport(orderId, INSPECTION_REPORT, writeUserId);
}
report = insReportMapper.selectOne(Wrappers.<InsReport>lambdaQuery()
@@ -3747,7 +3796,7 @@
}
Configure configure = Configure.builder()
.bind("deviceList", new HackLoopTableRenderPolicy())
- .bind("r", new HackLoopTableRenderPolicy(true))
+ .bind("r", new ReportResultTableRenderPolicy())
.setValidErrorHandler(new PreserveReportPicturePlaceholderHandler())
.useSpringEL(true)
.build();
--
Gitblit v1.9.3