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/impl/RawMaterialOrderServiceImpl.java | 69 +++++++++++++++++++++++++++++++++-
1 files changed, 66 insertions(+), 3 deletions(-)
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 798ccdc..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
@@ -51,6 +51,7 @@
import com.ruoyi.inspect.service.InsOrderService;
import com.ruoyi.inspect.service.InsReportService;
import com.ruoyi.inspect.service.RawMaterialOrderService;
+import com.ruoyi.inspect.service.OutsourceOrderFlowService;
import com.ruoyi.inspect.vo.ProductVo;
import com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursMapper;
import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours;
@@ -114,6 +115,7 @@
private IfsSplitOrderRecordService ifsSplitOrderRecordService;
private final NumberGenerator<IfsSplitOrderRecord> splitOrderRecordNumberGenerator;
+ private OutsourceOrderFlowService outsourceOrderFlowService;
@Override
public Result selectStandardTreeListByPartNo(String partNo) {
@@ -167,10 +169,61 @@
return standardTreeMapper.selectIfsPage(page, QueryWrappers.queryWrappers(ifsInventoryQuantity));
}
+ /** 淇濈暀澶栧崗鍒嗙被鏌ヨ鏉′欢锛岄伩鍏嶅師鏉愭枡鍒楄〃瑕嗙洊鍒嗙被銆� */
+ @Override
+ public IPage<IfsInventoryQuantity> getOutsourceWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity) {
+ validateOutsourceType(ifsInventoryQuantity.getOrderType());
+ ifsInventoryQuantity.setIsInspect(1);
+ ifsInventoryQuantity.setState(0);
+ return standardTreeMapper.selectIfsPage(page, QueryWrappers.queryWrappers(ifsInventoryQuantity)
+ .eq(StringUtils.isNotBlank(ifsInventoryQuantity.getMaterialProp()), "material_prop", ifsInventoryQuantity.getMaterialProp()));
+ }
+
@Override
public IPage<IfsInventoryQuantityDto> getIfsByStateOne(IPage<IfsInventoryQuantityDto> page, IfsInventoryQuantityDto ifsInventoryQuantityDto) {
ifsInventoryQuantityDto.setOrderType(OrderType.RAW.getValue());
return standardTreeMapper.getIfsByStateOne(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto));
+ }
+
+ /** 妫�楠屼腑鍒楄〃鎸夌湡瀹炲鍗忓垎绫昏繃婊ゃ�� */
+ @Override
+ public IPage<IfsInventoryQuantityDto> getOutsourceByStateOne(IPage<IfsInventoryQuantityDto> page, IfsInventoryQuantityDto dto) {
+ validateOutsourceType(dto.getOrderType());
+ dto.setOrderState(1);
+ dto.setState(1);
+ // 鎸夐敭鍊肩簿纭瓫閫夛紝閬垮厤鈥滄垚鍝佲�濇ā绯婂尮閰嶅埌鈥滃崐鎴愬搧鈥濄��
+ return standardTreeMapper.getIfsByStateOne(page, QueryWrappers.queryWrappers(dto)
+ .eq(StringUtils.isNotBlank(dto.getMaterialProp()), "material_prop", dto.getMaterialProp()));
+ }
+
+ /** 宸叉楠屽垪琛ㄦ寜鐪熷疄澶栧崗鍒嗙被杩囨护銆� */
+ @Override
+ public IPage<IfsInventoryQuantitySupplierDto> getOutsourceByOver(Page<IfsInventoryQuantitySupplierDto> page, IfsInventoryQuantitySupplierDto dto) {
+ dto.setOrderState(4);
+ dto.setState(2);
+ return getOutsourceByAll(page, dto);
+ }
+
+ /** 鍏ㄩ儴鍒楄〃淇濈暀鐪熷疄鍒嗙被鍜屾绱㈡潯浠讹紝涓嶅己鍒堕檺鍒舵楠岀姸鎬併�� */
+ @Override
+ public IPage<IfsInventoryQuantitySupplierDto> getOutsourceByAll(Page<IfsInventoryQuantitySupplierDto> page, IfsInventoryQuantitySupplierDto dto) {
+ validateOutsourceType(dto.getOrderType());
+ String begin = dto.getBeginDeclareDate();
+ String end = dto.getEndDeclareDate();
+ dto.setBeginDeclareDate(null);
+ dto.setEndDeclareDate(null);
+ dto.setIsInspect(1);
+ IPage<IfsInventoryQuantitySupplierDto> result = standardTreeMapper.getIfsByOver(page, QueryWrappers.queryWrappers(dto)
+ .eq(StringUtils.isNotBlank(dto.getMaterialProp()), "material_prop", dto.getMaterialProp()), begin, end);
+ result.getRecords().forEach(r -> r.setOrderTypeName(OrderType.getLabelByValue(r.getOrderType())));
+ return result;
+ }
+
+ /** 闄愬埗澶栧崗鍒楄〃鎺ュ彛鍙兘鏌ヨ涓や釜澶栧崗鍒嗙被銆� */
+ private void validateOutsourceType(String orderType) {
+ if (!outsourceOrderFlowService.isOutsource(orderType)) {
+ throw new ErrorException("闈炴硶鐨勫鍗忚鍗曞垎绫�");
+ }
}
@@ -181,6 +234,7 @@
*/
@Override
public int inspectionReport(List<Long> ids,String orderType,String materialProp) {
+ outsourceOrderFlowService.resolve(orderType, materialProp);
Integer userId = SecurityUtils.getUserId().intValue();
ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
.in(IfsInventoryQuantity::getId, ids)
@@ -254,6 +308,7 @@
if(!validateValue){
throw new ErrorException("鎶ユ澶辫触锛岄潪娉曠殑閿�鍞鍗曞垎绫绘灇涓�");
}
+ outsourceOrderFlowService.resolve(ifsInventoryQuantity.getOrderType(), ifsInventoryQuantity.getMaterialProp());
validateUpdateBatchNo(ifsInventoryQuantity);
//鎵规鍙峰瓧姣嶈浆澶у啓
ifsInventoryQuantity.setUpdateBatchNo(ifsInventoryQuantity.getUpdateBatchNo().toUpperCase(Locale.ROOT));
@@ -349,10 +404,16 @@
if (!insOrder.getOrderType().equals(InsOrderTypeConstants.ENTER_THE_FACTORY)) {
throw new ErrorException("鍙湁杩涘巶妫�楠屾墠鑳藉厤妫�");
}
+ // 鍏嶆涓庢甯镐笅鍗曚娇鐢ㄧ浉鍚岀殑澶栧崗鏉ユ簮瑙勫垯銆�
+ IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(insOrder.getIfsInventoryId());
+ if (ifsInventoryQuantity == null) {
+ throw new ErrorException("鎵句笉鍒伴攢鍞鍗曚俊鎭�");
+ }
insOrder.setSendTime(LocalDateTime.now());
// 淇敼璁㈠崟琛ㄧ洿鎺ヤ负宸叉楠�
insOrder.setState(4);
- insOrder.setTypeSource(1);
+ insOrder.setTypeSource(outsourceOrderFlowService.resolveTypeSource(
+ ifsInventoryQuantity.getOrderType(), ifsInventoryQuantity.getMaterialProp(), 1));
String code = "Y";
// 鐢熸垚缂栧彿
@@ -383,7 +444,6 @@
});
// 鍘熸潗鏂欎笅鍗�: 濮旀墭浜哄氨鏄姤妫�浜�, 鐢熶骇鍗曚綅灏辨槸渚涘簲鍟嗗崟浣�
- IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(insOrder.getIfsInventoryId());
Integer declareUserId = ifsInventoryQuantity.getDeclareUserId();
User user = userMapper.selectById(declareUserId);
// 渚涘簲鍟嗗悕绉�
@@ -475,7 +535,9 @@
InsOrder insOrder = new InsOrder();
insOrder.setState(4);
- insOrder.setTypeSource(1);
+ // 鍒楄〃鐩存帴鍏嶆涔熸寜鐪熷疄澶栧崗鍒嗙被鍙婄墿鏂欏睘鎬х‘瀹氭潵婧愩��
+ insOrder.setTypeSource(outsourceOrderFlowService.resolveTypeSource(
+ ifsInventoryQuantity.getOrderType(), ifsInventoryQuantity.getMaterialProp(), 1));
String code = "Y";
// 鐢熸垚缂栧彿
String no = numberGenerator.generateNumberWithPrefix(3,
@@ -559,6 +621,7 @@
if(!OrderType.validateValue(ifsInventoryQuantity.getOrderType())){
throw new ErrorException("鏂板鎶ユ淇℃伅澶辫触锛岄潪娉曠殑閿�鍞鍗曞垎绫绘灇涓�");
}
+ outsourceOrderFlowService.resolve(ifsInventoryQuantity.getOrderType(), ifsInventoryQuantity.getMaterialProp());
validateUpdateBatchNo(ifsInventoryQuantity);
ifsInventoryQuantityMapper.insert(ifsInventoryQuantity);
}
--
Gitblit v1.9.3