From 2eaeb19b16af087d17c186c6220bf64f2fc07f4f Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期四, 07 五月 2026 14:51:57 +0800
Subject: [PATCH] 手动下单:检验中订单撤销报错问题修复
---
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java | 58 +++++++++++++++++++++++++++++++---------------------------
1 files changed, 31 insertions(+), 27 deletions(-)
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java
index 3778b0c..3bda5d4 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java
@@ -49,6 +49,7 @@
import org.springframework.core.io.ClassPathResource;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
@@ -448,8 +449,12 @@
}
Integer insOrderId = insReportMapper.selectById(id).getInsOrderId();
InsOrder order = insOrderMapper.selectById(insOrderId);
- boolean isRawMater = order.getTypeSource() != null && order.getTypeSource().equals(1);
-
+ IfsInventoryQuantity ifsInventoryQuantity = null;
+ if(ObjectUtils.isNotEmpty(order.getIfsInventoryId())){
+ ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(order.getIfsInventoryId());
+ }
+ boolean isRawMater = order.getTypeSource() != null && !order.getTypeSource().equals(-1);
+ String contract = ObjectUtils.isNotEmpty(ifsInventoryQuantity)?ifsInventoryQuantity.getContract():order.getContract();//ifs鍩�
//鑾峰彇鍦烘墍鐨勬姤鍛婁笓鐢ㄧ珷
String sealUrl;
String laboratory = insOrderMapper.selectById(insReport.getInsOrderId()).getLaboratory();
@@ -460,7 +465,7 @@
} else {
type = "濮旀墭鎶ュ憡";
}
- sealUrl = insReportMapper.getLaboratoryByName(laboratory, type);
+ sealUrl = insReportMapper.getLaboratoryByName(laboratory, type,contract);
} catch (Exception e) {
throw new ErrorException(laboratory + "鎵句笉鍒版姤鍛婁笓鐢ㄧ珷");
}
@@ -796,12 +801,12 @@
@Override
- @Transactional(rollbackFor = Exception.class)
+ @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
public void isRawMaterial(InsOrder insOrder,Boolean registerInsResults,Boolean hasExemption) {
IfsInventoryQuantity one = ifsInventoryQuantityMapper.selectOne(new LambdaQueryWrapper<IfsInventoryQuantity>()
.eq(IfsInventoryQuantity::getId, insOrder.getIfsInventoryId()));
if (Objects.isNull(one)) {
- throw new ErrorException("鎵句笉鍒板師鏉愭枡淇℃伅");
+ throw new ErrorException("鎵句笉鍒伴攢鍞鍗曚俊鎭�");
}
// 鍒ゆ柇鏄惁鏈変笉鍚堟牸淇℃伅
Long count = insUnqualifiedHandlerMapper.selectCount(Wrappers.<InsUnqualifiedHandler>lambdaQuery()
@@ -816,15 +821,15 @@
//濡傛灉鏄媶鍒嗙殑璁㈠崟锛屽垯鎶婃媶鍒嗙殑鎵�鏈夋壒娆¢兘绉诲簱
if(one.getIsSplitOrder()==1 && !hasExemption){
//鏌ヨ鎷嗗垎璁㈠崟璇︽儏
- List<IfsInventoryQuantityVO> ifsInventoryQuantityVOS = ifsInventoryQuantityMapper.selectSplitOrderList(one.getPartNo(), one.getLineNo(), one.getReleaseNo(), one.getReceiptNo(), one.getOrderNo());
+ List<IfsInventoryQuantityVO> ifsInventoryQuantityVOS = ifsInventoryQuantityMapper.selectSplitOrderList(one.getPartNo(), one.getLineNo(), one.getReleaseNo(), one.getReceiptNo(), one.getOrderNo(),one.getContract());
for (IfsInventoryQuantityVO vo : ifsInventoryQuantityVOS) {
//濡傛灉鏈夊鎵樺崟淇℃伅涓斿悎鏍硷紝璧扮櫥璁板悗绉诲簱锛涘鏋滄病鏈夛紝鍒欒蛋鍏嶆锛涗笉鍚堟牸涓嶅仛澶勭悊
if(Objects.isNull(vo.getInsOrderId())){
rawMaterialOrderService.rawOrderRelease(vo.getId(), vo.getPartDesc());
}else if(Objects.equals(vo.getInsOrderId(),insOrder.getId())){
- toLocation = insOrderService.moveRawMaterial(one);
+ toLocation = insOrderService.moveRawMaterial(vo);
}else if(Objects.nonNull(vo.getInsResult()) && 1 == vo.getInsResult()){
- toLocation = insOrderService.moveRawMaterial(one);
+ toLocation = insOrderService.moveRawMaterial(vo);
}
}
}else{
@@ -855,27 +860,26 @@
.eq(IfsInventoryQuantity::getId, insOrder.getIfsInventoryId()));
}
-// threadPoolTaskExecutor.execute(() -> {
-// // 浼佷笟寰俊閫氱煡
-// String message = "";
-// message += "妫�娴嬬粨鏋滄彁浜ら�氱煡";
-// message += "\n鎵规鍙�: " + one.getUpdateBatchNo();
-// message += "\n闆朵欢鍙�: " + one.getPartNo();
-// message += "\n闆朵欢鎻忚堪: " + one.getPartDesc();
-// message += "\n渚涘簲鍟嗗悕绉�: " + one.getSupplierName();
-// message += "\n鎶佃揪鏁伴噺: " + one.getQtyArrived().stripTrailingZeros().toPlainString() + one.getBuyUnitMeas();
-// // 鍙戦�佷紒涓歩nspectStatus淇¢�氱煡
-// if (inspectStatus == 1) {
-// message += "\n妫�娴嬬粨鏋�: 鍚堟牸";
-// } else {
-// message += "\n妫�娴嬬粨鏋�: 涓嶅悎鏍�";
-// }
-// WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message);
-// });
+ threadPoolTaskExecutor.execute(() -> {
+ // 浼佷笟寰俊閫氱煡
+ String message = "";
+ message += "妫�娴嬬粨鏋滄彁浜ら�氱煡";
+ message += "\nIFS鍩�: " + one.getContract();
+ message += "\n鎵规鍙�: " + one.getUpdateBatchNo();
+ message += "\n闆朵欢鍙�: " + one.getPartNo();
+ message += "\n闆朵欢鎻忚堪: " + one.getPartDesc();
+ message += "\n渚涘簲鍟嗗悕绉�: " + one.getSupplierName();
+ message += "\n鎶佃揪鏁伴噺: " + one.getQtyArrived().stripTrailingZeros().toPlainString() + one.getBuyUnitMeas();
+ // 鍙戦�佷紒涓歩nspectStatus淇¢�氱煡
+ if (inspectStatus == 1) {
+ message += "\n妫�娴嬬粨鏋�: 鍚堟牸";
+ } else {
+ message += "\n妫�娴嬬粨鏋�: 涓嶅悎鏍�";
+ }
+ WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message);
+ });
}
-
-
}
/**
--
Gitblit v1.9.3