From 6d1bf32bc0b51dc12048fe6bb70badfbd31d67ac Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期六, 07 十一月 2026 13:44:10 +0800
Subject: [PATCH] fix: 修复销售订单审批及开票回款搜索
---
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java | 37 +++++++++++++++++++++----------------
1 files changed, 21 insertions(+), 16 deletions(-)
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java
index 2d6a18d..32cd823 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java
@@ -30,6 +30,7 @@
import cn.iocoder.yudao.module.erp.service.finance.ErpAccountService;
import cn.iocoder.yudao.module.mdm.api.item.MdmItemApi;
import cn.iocoder.yudao.module.mdm.api.item.dto.MdmItemRespDTO;
+import cn.iocoder.yudao.module.mdm.enums.MdmItemTypeEnum;
import cn.iocoder.yudao.module.mdm.api.unit.MdmUnitMeasureApi;
import cn.iocoder.yudao.module.mdm.api.unit.dto.MdmUnitMeasureRespDTO;
import cn.iocoder.yudao.module.mes.api.mps.MesProMpsApi;
@@ -221,8 +222,22 @@
int createdCount = 0;
int reusedCount = 0;
+ int skippedCount = 0;
for (ErpSaleOrderItemDO item : items) {
if (item.getNeedProduction() == null || item.getNeedProduction() != 1) {
+ continue;
+ }
+
+ MdmItemRespDTO mdmItem = mdmItemApi.getItem(item.getProductId()).getCheckedData();
+ if (mdmItem == null || !MdmItemTypeEnum.isProduct(mdmItem.getItemType())) {
+ // 鍏煎淇鍓嶇敱鍚堝悓鐢熸垚鐨勫巻鍙茶鍗曪細褰撴椂鎵�鏈夋槑缁嗛兘浼氳鏍囪涓洪渶瑕佺敓浜с��
+ // 闈炰骇鍝佹槑缁嗕笉搴斿垱寤� MPS锛屽悓鏃剁籂姝f爣璁帮紝閬垮厤鍚庣画鍙戣揣鐘舵�佷竴鐩寸瓑寰呯敓浜у畬鎴愩��
+ saleOrderItemMapper.updateById(new ErpSaleOrderItemDO()
+ .setId(item.getId())
+ .setNeedProduction(0));
+ skippedCount++;
+ log.info("[createMpsForSaleOrder] 閿�鍞鍗曟槑缁�({}) 涓洪潪浜у搧鐗╂枡({})锛岃烦杩� MPS 骞跺彇娑堥渶瑕佺敓浜ф爣璁�",
+ item.getId(), item.getProductId());
continue;
}
@@ -241,7 +256,7 @@
}
// 涓庨攢鍞鍗曞鏍稿叡鐢ㄤ簨鍔★紱浠讳竴鏄庣粏鍒涘缓澶辫触閮戒細鍥炴粴瀹℃牳鐘舵�佸拰鏈宸插垱寤虹殑 MPS
- Long mpsId = createMpsForSaleOrderItem(saleOrder, item);
+ Long mpsId = createMpsForSaleOrderItem(saleOrder, item, mdmItem);
saleOrderItemMapper.updateById(new ErpSaleOrderItemDO()
.setId(item.getId())
.setMpsId(mpsId));
@@ -254,31 +269,21 @@
.set(ErpSaleOrderDO::getProductionStatus, ErpSaleOrderProductionStatusEnum.NOT_FINISHED.getStatus())
.set(ErpSaleOrderDO::getProductionFinishTime, null));
}
- log.info("[createMpsForSaleOrder] 閿�鍞鍗�({}) 瀹℃牳瀹屾垚锛屽垱寤� MPS {} 鏉★紝澶嶇敤 MPS {} 鏉�",
- orderId, createdCount, reusedCount);
+ log.info("[createMpsForSaleOrder] 閿�鍞鍗�({}) 瀹℃牳瀹屾垚锛屽垱寤� MPS {} 鏉★紝澶嶇敤 MPS {} 鏉★紝璺宠繃闈炰骇鍝� {} 鏉�",
+ orderId, createdCount, reusedCount, skippedCount);
}
/**
* 涓洪攢鍞鍗曟槑缁嗗垱寤� MPS
*/
- private Long createMpsForSaleOrderItem(ErpSaleOrderDO saleOrder, ErpSaleOrderItemDO item) {
- // 鑾峰彇 MDM 鐗╂枡淇℃伅锛堢敤浜庤幏鍙栦骇鍝佸悕绉帮級
- String productName = null;
- try {
- MdmItemRespDTO mdmItem = mdmItemApi.getItem(item.getProductId()).getCheckedData();
- if (mdmItem != null) {
- productName = mdmItem.getName();
- }
- } catch (Exception e) {
- log.warn("[createMpsForSaleOrderItem] 鑾峰彇 MDM 鐗╂枡淇℃伅澶辫触锛宲roductId={}", item.getProductId(), e);
- }
-
+ private Long createMpsForSaleOrderItem(ErpSaleOrderDO saleOrder, ErpSaleOrderItemDO item,
+ MdmItemRespDTO mdmItem) {
MesProMpsCreateReqDTO createReqDTO = new MesProMpsCreateReqDTO();
createReqDTO.setSaleOrderId(saleOrder.getId());
createReqDTO.setSaleOrderNo(saleOrder.getNo());
createReqDTO.setSaleOrderItemId(item.getId());
createReqDTO.setMdmItemId(item.getProductId());
- createReqDTO.setProductName(productName);
+ createReqDTO.setProductName(mdmItem.getName());
createReqDTO.setQuantity(item.getCount());
createReqDTO.setClientId(saleOrder.getCustomerId());
createReqDTO.setRequestDate(formatRequestDate(saleOrder.getOrderTime()));
--
Gitblit v1.9.3