From d28a5401ac1e2995ec6de12a81395aa5d05b040a Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 05 十一月 2026 10:17:49 +0800
Subject: [PATCH] refactor(order): 提取外协判断方法并还原原下单
---
inspect-server/src/main/java/com/ruoyi/inspect/service/OutsourceOrderFlowService.java | 8 ++++++--
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java | 34 ++++++++++++++++------------------
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java | 3 +--
3 files changed, 23 insertions(+), 22 deletions(-)
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/OutsourceOrderFlowService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/OutsourceOrderFlowService.java
index bb354ae..edc9372 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/OutsourceOrderFlowService.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/OutsourceOrderFlowService.java
@@ -30,10 +30,14 @@
/** 澶栧崗璁㈠崟鎸夊疄闄呮祦绋嬬‘瀹氫笅鍗曟潵婧愶紝鍏朵粬璁㈠崟淇濈暀鍘熸潵婧愩�� */
public Integer resolveTypeSource(String orderType, String materialProp, Integer typeSource) {
- if (StringUtils.equals(orderType, OrderType.OUTSOURCE_INCOMING.getValue())
- || StringUtils.equals(orderType, OrderType.OUTSOURCE_SUBCONTRACT.getValue())) {
+ if (isOutsource(orderType)) {
return StringUtils.equals(resolve(orderType, materialProp), OrderType.WG.getValue()) ? 0 : 1;
}
return typeSource;
}
+
+ public boolean isOutsource(String orderType) {
+ return OrderType.OUTSOURCE_INCOMING.getValue().equals(orderType)
+ || OrderType.OUTSOURCE_SUBCONTRACT.getValue().equals(orderType);
+ }
}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
index 275e312..3123929 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -221,7 +221,6 @@
@Override
@Transactional(rollbackFor = Exception.class)
public int addInsOrder(List<SampleProductDto> list, InsOrder insOrder) {
- initOutsourceOrderSource(insOrder);
// todo: 涓嬪崟鍒ゆ柇鎶芥牱璁″垝鐨勫敮涓�鎬�
if (insOrder.getQuarterItemId() != null) {
Long quarterItemCount = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery()
@@ -229,6 +228,16 @@
.notIn(InsOrder::getState, -1, 2, 3));
if (quarterItemCount > 0) {
throw new ErrorException("璇ユ娊鏍疯鍒掑凡琚粦瀹氳繃");
+ }
+ }
+ IfsInventoryQuantity ifsInventoryQuantity = null;
+ if (insOrder.getIfsInventoryId() != null) {
+ ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(insOrder.getIfsInventoryId());
+ if (ifsInventoryQuantity != null) {
+ insOrder.setTypeSource(outsourceOrderFlowService.resolveTypeSource(
+ ifsInventoryQuantity.getOrderType(), ifsInventoryQuantity.getMaterialProp(), insOrder.getTypeSource()));
+ } else if (insOrder.getTypeSource() != null) {
+ throw new ErrorException("鎵句笉鍒伴攢鍞鍗曚俊鎭�");
}
}
insOrder.setState(0);
@@ -322,9 +331,8 @@
});
//鍘熸潗鏂欎笅鍗曟垨澶栬喘鎴愬搧涓嬪崟
- if (Objects.nonNull(insOrder.getTypeSource()) && Objects.nonNull(insOrder.getIfsInventoryId())) {
+ if (insOrder.getTypeSource() != null && ifsInventoryQuantity != null) {
// 濮旀墭浜哄氨鏄姤妫�浜�, 鐢熶骇鍗曚綅灏辨槸渚涘簲鍟嗗崟浣�
- IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(insOrder.getIfsInventoryId());
Integer declareUserId = ifsInventoryQuantity.getDeclareUserId();
User user = userMapper.selectById(declareUserId);
if (user == null) {
@@ -551,7 +559,7 @@
// 璇︽儏鍚屾椂杩斿洖鏈夋晥澶勭悊娴佺▼锛屼緵妫�娴嬮〉闈㈢粺涓�閫夋嫨甯冨眬鍙婃牎楠岃鍒欍��
if (ifsOrderVO != null) {
ifsOrderVO.setFlowOrderType(ifsOrderVO.getIfsOrderType());
- if (ifsOrderVO.getIfsInventoryId() != null) {
+ if (ifsOrderVO.getIfsInventoryId() != null && outsourceOrderFlowService.isOutsource(ifsOrderVO.getIfsOrderType())) {
IfsInventoryQuantity quantity = ifsInventoryQuantityMapper.selectById(ifsOrderVO.getIfsInventoryId());
if (quantity != null) {
ifsOrderVO.setFlowOrderType(outsourceOrderFlowService.resolve(quantity.getOrderType(), quantity.getMaterialProp()));
@@ -565,19 +573,6 @@
List<Map<Integer, Object>> list2 = insOrderMapper.selectReportModelByOrderId(id, laboratory);
map.put("reportModel", list2);
return map;
- }
-
- /** 淇濆瓨鍓嶈鍙栫湡瀹為攢鍞鍗曪紝绾犳澶栧崗涓嬪崟鏉ユ簮锛岄伩鍏嶅墠绔紦瀛樺奖鍝嶅疄楠屽鍒嗛厤銆� */
- private void initOutsourceOrderSource(InsOrder insOrder) {
- if (insOrder.getIfsInventoryId() == null) {
- return;
- }
- IfsInventoryQuantity quantity = ifsInventoryQuantityMapper.selectById(insOrder.getIfsInventoryId());
- if (quantity == null) {
- throw new ErrorException("鎵句笉鍒伴攢鍞鍗曚俊鎭�");
- }
- insOrder.setTypeSource(outsourceOrderFlowService.resolveTypeSource(
- quantity.getOrderType(), quantity.getMaterialProp(), insOrder.getTypeSource()));
}
@Override
@@ -1235,6 +1230,9 @@
public String moveRawMaterial(IfsInventoryQuantity inventoryQuantity) {
//鏌ヨifs璁㈠崟璇︽儏
IfsInventoryQuantity one = ifsInventoryQuantityMapper.selectById(inventoryQuantity.getId());
+ String flowOrderType = outsourceOrderFlowService.isOutsource(one.getOrderType())
+ ? outsourceOrderFlowService.resolve(one.getOrderType(), one.getMaterialProp())
+ : inventoryQuantity.getOrderType();
String toLocation;
// 鐧昏閲囪喘妫�楠岀粨鏋淪TD
if (one.getIsRegister().equals(0)) {
@@ -1285,7 +1283,7 @@
//1.鏍规嵁ifs鍩熻幏鍙栧搴斿簱浣嶉厤缃�
IfsProperties properties = ifsApiUtils.getPropByContract(one.getContract());
//2.鍒ゆ柇璁㈠崟绫诲瀷鏄惁涓哄師鏉愭枡
- if(StringUtils.equals(outsourceOrderFlowService.resolve(one.getOrderType(), one.getMaterialProp()), OrderType.RAW.getValue())){
+ if(StringUtils.equals(flowOrderType, OrderType.RAW.getValue())){
toLocation = properties.getRawQualifiedLocation();
}else{
toLocation = properties.getProductQualifiedLocation();
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
index 64b87bc..d3be4ec 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
@@ -221,8 +221,7 @@
/** 闄愬埗澶栧崗鍒楄〃鎺ュ彛鍙兘鏌ヨ涓や釜澶栧崗鍒嗙被銆� */
private void validateOutsourceType(String orderType) {
- if (!OrderType.OUTSOURCE_INCOMING.getValue().equals(orderType)
- && !OrderType.OUTSOURCE_SUBCONTRACT.getValue().equals(orderType)) {
+ if (!outsourceOrderFlowService.isOutsource(orderType)) {
throw new ErrorException("闈炴硶鐨勫鍗忚鍗曞垎绫�");
}
}
--
Gitblit v1.9.3