From 3166624edda4fc938593432b619fa5ad00409f0a Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 03 十一月 2026 16:49:12 +0800
Subject: [PATCH] feat(outsource): 1.支持外协订单按物料属性分流复用原有业务流程 2.修复工时字段空值判断与赋值逻辑
---
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java | 28 +++++++++++++++++++++++++++-
1 files changed, 27 insertions(+), 1 deletions(-)
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 2328594..275e312 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
@@ -42,6 +42,7 @@
import com.ruoyi.inspect.service.InsOrderStateService;
import com.ruoyi.inspect.service.InsProductService;
import com.ruoyi.inspect.service.InsSampleService;
+import com.ruoyi.inspect.service.OutsourceOrderFlowService;
import com.ruoyi.inspect.vo.IfsOrderVO;
import com.ruoyi.inspect.vo.InsOrderPrintingVo;
import com.ruoyi.system.mapper.UserMapper;
@@ -93,6 +94,7 @@
private ApplicationEventPublisher applicationEventPublisher;
private StandardProductListMapper standardProductListMapper;
private StructureItemParameterMapper structureItemParameterMapper;
+ private OutsourceOrderFlowService outsourceOrderFlowService;
//鑾峰彇妫�楠屼笅鍗曟暟鎹�
@@ -219,6 +221,7 @@
@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()
@@ -545,6 +548,16 @@
Map<String, Object> map = new HashMap<>();
// InsOrder insOrder = insOrderMapper.selectById(id);
IfsOrderVO ifsOrderVO = insOrderMapper.selectOrderInfoById(id);
+ // 璇︽儏鍚屾椂杩斿洖鏈夋晥澶勭悊娴佺▼锛屼緵妫�娴嬮〉闈㈢粺涓�閫夋嫨甯冨眬鍙婃牎楠岃鍒欍��
+ if (ifsOrderVO != null) {
+ ifsOrderVO.setFlowOrderType(ifsOrderVO.getIfsOrderType());
+ if (ifsOrderVO.getIfsInventoryId() != null) {
+ IfsInventoryQuantity quantity = ifsInventoryQuantityMapper.selectById(ifsOrderVO.getIfsInventoryId());
+ if (quantity != null) {
+ ifsOrderVO.setFlowOrderType(outsourceOrderFlowService.resolve(quantity.getOrderType(), quantity.getMaterialProp()));
+ }
+ }
+ }
List<SampleProductDto> list = insSampleMapper.getInsOrderAndSample(id, laboratory);
map.put("insOrder", ifsOrderVO);
map.put("sampleProduct", list);
@@ -552,6 +565,19 @@
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
@@ -1259,7 +1285,7 @@
//1.鏍规嵁ifs鍩熻幏鍙栧搴斿簱浣嶉厤缃�
IfsProperties properties = ifsApiUtils.getPropByContract(one.getContract());
//2.鍒ゆ柇璁㈠崟绫诲瀷鏄惁涓哄師鏉愭枡
- if(StringUtils.equals(inventoryQuantity.getOrderType(), OrderType.RAW.getValue())){
+ if(StringUtils.equals(outsourceOrderFlowService.resolve(one.getOrderType(), one.getMaterialProp()), OrderType.RAW.getValue())){
toLocation = properties.getRawQualifiedLocation();
}else{
toLocation = properties.getProductQualifiedLocation();
--
Gitblit v1.9.3