From 82ce59218139d9fefeae7b9e5fbc88b499ff023f Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 08 十月 2026 13:35:06 +0800
Subject: [PATCH] feat(inspect): 新增新聚检验订单编辑功能并优化报告生成流程 - 新增 updateNewJuInsOrder 接口支持新聚检验订单修改 - 增加文件上传大小限制至200MB,请求大小限制至400MB - 在设备信息中新增出厂编号字段显示 - 优化温湿度处理逻辑,报告中仅显示温度信息 - 新增印章管理功能,支持MA标志章、报告章和骑缝章配置 - 完善检验报告生成流程,增加多种报告类型常量定义 - 优化附件上传功能,增加空值检查和返回值处理 - 调整委托编号生成逻辑,完善新聚订单可编辑性判断 - 更新CNAS流程中报告编号使用正式报告编号替代委托编号
---
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java | 43 +++++++++++++++++++++++--------------------
1 files changed, 23 insertions(+), 20 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 3394113..d1b2df8 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
@@ -84,7 +84,6 @@
import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
-import java.util.stream.Stream;
/**
* 妫�楠屼换鍔�-涓氬姟瀹炵幇灞�
@@ -380,6 +379,9 @@
@Override
public int uploadFile(Integer orderId, MultipartFile file) {
+ if (orderId == null || file == null || file.isEmpty()) {
+ throw new ErrorException("璇烽�夋嫨瑕佷笂浼犵殑闄勪欢");
+ }
String urlString;
String pathName;
String path;
@@ -406,7 +408,7 @@
urlString = realpath + "/" + pathName;
file.transferTo(new File(urlString));
insOrderFile.setFileUrl(pathName);
- return insOrderFileMapper.insert(insOrderFile);
+ return insOrderFileMapper.insert(insOrderFile) > 0 ? insOrderFile.getId() : 0;
} catch (Exception e) {
e.printStackTrace();
System.err.println("闄勪欢涓婁紶閿欒");
@@ -1684,8 +1686,9 @@
boolean directTemplateOrder = isDirectTemplateOrder(orderId);
if (currentState != null && Objects.equals(currentState.getInsState(), 5)
&& existingReport != null && StringUtils.isNotBlank(existingReport.getUrl())
+ && Objects.equals(existingReport.getIsPass(), 1)
&& (!directTemplateOrder || StringUtils.isNotBlank(existingReport.getInspectionUrl()))) {
- // 闃叉澶嶆牳椤甸潰閲嶅鐐瑰嚮鎴栫綉缁滈噸璇曢噸澶嶇敓鎴愭姤鍛娿�侀噸澶嶅彂璧锋姤鍛婂鎵广��
+ // 浠呭浠嶅湪鎶ュ憡缂栧埗涓殑璁板綍闃查噸澶嶏紱閫�鍥炴楠屼换鍔$殑鎶ュ憡闇�瑕佺户缁墽琛屽苟鎭㈠ is_pass銆�
return 1;
}
if (directTemplateOrder && Objects.equals(type, 1)
@@ -1964,10 +1967,12 @@
if (StringUtils.isBlank(tempPdfName)) {
throw new ErrorException("鎶ュ憡棰勮鏂囦欢鐢熸垚澶辫触");
}
- // generateReport 浼氬啓鍏ュ綋鍓嶆椂闂达紱閲嶆柊鐢熸垚涓嶅簲鏀瑰彉鍘熷鎵硅褰曟椂闂淬��
+ // generateReport 浼氬啓鍏ュ綋鍓嶆椂闂达紝閮ㄥ垎鎶ュ憡杩樹細鏆傛椂鍐欏叆 is_pass=0锛�
+ // 閲嶆柊鐢熸垚涓嶅簲鏀瑰彉鍘熷鎵硅褰曟椂闂村拰鍙鐘舵�併��
insReportMapper.update(null, Wrappers.<InsReport>lambdaUpdate()
.eq(InsReport::getId, reportId)
.set(InsReport::getWriteTime, report.getWriteTime())
+ .set(InsReport::getIsPass, report.getIsPass())
.set(InsReport::getTempUrlPdf, "/word/" + tempPdfName));
}
@@ -3535,7 +3540,7 @@
String insTime = formatReportTestDate(detectionDates);
String insTimeEn = formatReportTestDateEn(detectionDates, monthNames);
- // 妫�楠岀幆澧冿細浼樺厛姹囨�诲悇妯℃澘濉啓鐨勬俯婀垮害锛屾姤鍛婂睍绀哄叏閮ㄦā鏉跨殑鏈�灏忓�煎埌鏈�澶у�笺��
+ // 妫�楠岀幆澧冿細浼樺厛姹囨�诲悇妯℃澘濉啓鐨勬俯搴︼紝鎶ュ憡灞曠ず鍏ㄩ儴妯℃澘鐨勬渶灏忓�煎埌鏈�澶у�笺��
String environment = buildReportEnvironment(orderId, insOrder);
String finalEnvironment = environment;
LocalDateTime finalSendTime = sendTime;
@@ -3619,6 +3624,7 @@
String finalResultRemark = resultRemark;
String equipmentText = buildEquipmentText(finalDeviceList);
String issueDate = now.format(DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�"));
+ String conclusionDate = now.format(DateTimeFormatter.ofPattern("yyyy 骞� MM 鏈� dd 鏃�"));
String finalReportModelStr = finalModelStr;
LocalDateTime finalReportSendTime = finalSendTime;
XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
@@ -3662,6 +3668,7 @@
put("customer", finalCustomerName);
put("category", finalDetectionCategory);
put("date", issueDate);
+ put("conclusionDate", conclusionDate);
put("maker", defaultReportText(insOrder.getProduction(), "/"));
put("env", finalEnvironment);
put("qty", defaultReportText(insOrder.getTestQuantity(), "/"));
@@ -3891,12 +3898,18 @@
for (Map<String, String> device : deviceList) {
String name = getMapText(device, "deviceName", "device_name");
String managementNumber = getMapText(device, "managementNumber", "management_number");
+ String factoryNo = getMapText(device, "factoryNo", "factory_no");
if (StringUtils.isBlank(name) || "/".equals(name.trim())) {
continue;
}
- String number = StringUtils.isBlank(managementNumber) || "/".equals(managementNumber.trim())
- ? "鍑哄巶缂栧彿" : managementNumber.trim();
- String item = name.trim() + "锛�" + number;
+ String number = managementNumber;
+ if (StringUtils.isBlank(number) || "/".equals(number.trim())) {
+ number = factoryNo;
+ }
+ if (StringUtils.isBlank(number) || "/".equals(number.trim())) {
+ continue;
+ }
+ String item = name.trim() + "锛�" + number.trim();
equipmentItems.add(item);
}
if (equipmentItems.isEmpty()) {
@@ -3915,22 +3928,12 @@
List<InsOrderStandardTemplate> snapshots = insOrderStandardTemplateService.list(
Wrappers.<InsOrderStandardTemplate>lambdaQuery()
.eq(InsOrderStandardTemplate::getInsOrderId, orderId)
- .select(InsOrderStandardTemplate::getTemperature,
- InsOrderStandardTemplate::getHumidity));
+ .select(InsOrderStandardTemplate::getTemperature));
List<String> temperatures = snapshots.stream()
.map(InsOrderStandardTemplate::getTemperature)
.filter(StringUtils::isNotBlank)
.collect(Collectors.toList());
- List<String> humidities = snapshots.stream()
- .map(InsOrderStandardTemplate::getHumidity)
- .filter(StringUtils::isNotBlank)
- .collect(Collectors.toList());
-
- String temperature = formatConditionRange(temperatures, order.getTemperature(), "鈩�");
- String humidity = formatConditionRange(humidities, order.getHumidity(), "%RH");
- return Stream.of(temperature, humidity)
- .filter(StringUtils::isNotBlank)
- .collect(Collectors.joining(" "));
+ return formatConditionRange(temperatures, order.getTemperature(), "鈩�");
}
private static String formatConditionRange(List<String> values, String fallback, String unit) {
--
Gitblit v1.9.3