From f785e619ff7cbe99aa80fc7679a244224ab5024f Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@tuqin.cn>
Date: 星期二, 03 十一月 2026 09:19:47 +0800
Subject: [PATCH] feat(erp): 生产车间可从销售订单直接生成生产计划(结合库存判断)
---
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderService.java | 63 +++++++++++++++++++++++++------
1 files changed, 51 insertions(+), 12 deletions(-)
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderService.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderService.java
index e1c0781..f6db65e 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderService.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderService.java
@@ -3,6 +3,10 @@
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderPageReqVO;
import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderSaveReqVO;
+import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderImportExcelVO;
+import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderImportRespVO;
+import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderPendingProductionRespVO;
+import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderGenerateMpsReqVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.sale.ErpSaleOrderDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.sale.ErpSaleOrderItemDO;
import jakarta.validation.Valid;
@@ -15,7 +19,7 @@
/**
* ERP 閿�鍞鍗� Service 鎺ュ彛
*
- * @author 鑺嬮亾婧愮爜
+ * @author 瓒呯骇绠$悊鍛�
*/
public interface ErpSaleOrderService {
@@ -28,6 +32,14 @@
Long createSaleOrder(@Valid ErpSaleOrderSaveReqVO createReqVO);
/**
+ * 瀵煎叆閿�鍞鍗曪紙瀵煎叆鍚庝负鈥滄湭鎻愪氦鈥濈姸鎬侊紝鍙户缁紪杈戞垨鎻愪氦瀹℃壒锛�
+ *
+ * @param importList 瀵煎叆鏁版嵁锛堟瘡涓�琛� = 涓�鏉℃槑缁嗭紝鐩稿悓閿�鍞崟缂栧彿鍚堝苟涓轰竴寮犺鍗曪級
+ * @return 瀵煎叆缁撴灉
+ */
+ ErpSaleOrderImportRespVO importSaleOrderList(List<ErpSaleOrderImportExcelVO> importList);
+
+ /**
* 鏇存柊閿�鍞鍗�
*
* @param updateReqVO 鏇存柊淇℃伅
@@ -35,12 +47,30 @@
void updateSaleOrder(@Valid ErpSaleOrderSaveReqVO updateReqVO);
/**
- * 鏇存柊閿�鍞鍗曠殑鐘舵��
+ * 鎻愪氦閿�鍞鍗曞鎵癸紙鍗忓悓鍔炲叕 BPM锛�
+ *
+ * 鏈彁浜ゆ垨宸查┏鍥炵殑閿�鍞鍗曞彲鎻愪氦锛屾彁浜ゅ悗杩涘叆鍗忓悓鍔炲叕瀹℃壒娴佺▼
*
* @param id 缂栧彿
- * @param status 鐘舵��
+ * @param processDefinitionKey 娴佺▼瀹氫箟鐨勬爣璇�
+ * @param userId 鎻愪氦浜虹紪鍙�
*/
- void updateSaleOrderStatus(Long id, Integer status);
+ void submitSaleOrder(Long id, String processDefinitionKey, Long userId);
+
+ /**
+ * 鏇存柊閿�鍞鍗曠殑瀹℃壒鐘舵�侊紙鍗忓悓鍔炲叕瀹℃壒缁撴灉鍥炶皟锛�
+ *
+ * @param id 缂栧彿
+ * @param bpmResult BPM 瀹℃壒缁撴灉锛堥�氳繃/椹冲洖/鍙栨秷锛�
+ */
+ void updateSaleOrderAuditStatus(Long id, Integer bpmResult);
+
+ /**
+ * 鑾峰緱閿�鍞鍗曞鎵规祦绋嬪畾涔夊垪琛�
+ *
+ * @return 娴佺▼瀹氫箟鍒楄〃锛坕d/key/name锛�
+ */
+ List<Map<String, Object>> getSaleOrderApproveProcessDefinitionList();
/**
* 浣滃簾閿�鍞鍗�
@@ -63,14 +93,6 @@
* @param outCountMap 鍑哄簱鏁伴噺 Map锛歬ey 閿�鍞鍗曢」缂栧彿锛泇alue 鍑哄簱鏁伴噺
*/
void updateSaleOrderOutCount(Long id, Map<Long, BigDecimal> outCountMap);
-
- /**
- * 鏇存柊閿�鍞鍗曠殑閫�璐ф暟閲�
- *
- * @param orderId 缂栧彿
- * @param returnCountMap 閫�璐ф暟閲� Map锛歬ey 閿�鍞鍗曢」缂栧彿锛泇alue 閫�璐ф暟閲�
- */
- void updateSaleOrderReturnCount(Long orderId, Map<Long, BigDecimal> returnCountMap);
/**
* 鍒犻櫎閿�鍞鍗�
@@ -133,4 +155,21 @@
*/
void updateSaleOrderOutStatus(Long orderId);
+ /**
+ * 鑾峰緱寰呭畨鎺掔敓浜х殑閿�鍞鍗曟槑缁�
+ *
+ * 渚涚敓浜ц溅闂淬�屼粠閿�鍞鍗曠敓鎴愮敓浜ц鍒掋�嶄娇鐢細
+ * 杩斿洖宸插鏍革紙status=20锛夈�佷笖灏氭湭瀹夋帓鏈夋晥 MPS 鐨勯攢鍞鍗曟槑缁嗭紝
+ * 骞跺甫涓婂綋鍓嶅彲鐢ㄥ簱瀛樹笌寤鸿鐢熶骇鏁伴噺
+ */
+ List<ErpSaleOrderPendingProductionRespVO> getPendingProductionList();
+
+ /**
+ * 浠庨攢鍞鍗曟壒閲忕敓鎴愮敓浜ц鍒掞紙MPS锛�
+ *
+ * @param reqVO 鏄庣粏涓庤鍒掓暟閲�
+ * @return 鎴愬姛鐢熸垚鏉℃暟
+ */
+ int generateMpsFromSaleOrder(ErpSaleOrderGenerateMpsReqVO reqVO);
+
}
\ No newline at end of file
--
Gitblit v1.9.3