From d41fe2e95f3f64c6e3a7229acd9e74e673513a0a Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 09 七月 2026 16:13:59 +0800
Subject: [PATCH] 1.人力资源大模块开发 2.仓库大模块开发

---
 yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockRecordServiceImpl.java |  114 ++------------------------------------------------------
 1 files changed, 5 insertions(+), 109 deletions(-)

diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockRecordServiceImpl.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockRecordServiceImpl.java
index 0bfaed8..d84951c 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockRecordServiceImpl.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockRecordServiceImpl.java
@@ -1,33 +1,20 @@
 package cn.iocoder.yudao.module.erp.service.stock;
 
-import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.record.ErpStockRecordPageReqVO;
 import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockRecordDO;
 import cn.iocoder.yudao.module.erp.dal.mysql.stock.ErpStockRecordMapper;
 import cn.iocoder.yudao.module.erp.service.stock.bo.ErpStockRecordCreateReqBO;
-import cn.iocoder.yudao.module.mdm.api.item.MdmItemSkuApi;
-import cn.iocoder.yudao.module.mdm.api.item.dto.MdmItemSkuRespDTO;
-import cn.iocoder.yudao.module.wms.api.inventory.WmsInventoryApi;
-import cn.iocoder.yudao.module.wms.api.inventory.dto.WmsReceiptReqDTO;
-import cn.iocoder.yudao.module.wms.api.inventory.dto.WmsShipmentReqDTO;
-import cn.iocoder.yudao.module.wms.enums.inventory.WmsInventoryBizTypeEnum;
 import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 
 import java.math.BigDecimal;
-import java.util.List;
 
 /**
  * ERP 浜у搧搴撳瓨鏄庣粏 Service 瀹炵幇绫�
- *
- * 鏀归�犺鏄庯細搴撳瓨鍙樻洿璋冪敤 WMS 搴撳瓨 API
- * - 鍏ュ簱鎿嶄綔璋冪敤 WmsInventoryApi.receipt()
- * - 鍑哄簱鎿嶄綔璋冪敤 WmsInventoryApi.shipment()
- * - productId 瀵瑰簲 MDM itemId锛岄�氳繃 SKU API 鑾峰彇榛樿 SKU
  *
  * @author 鑺嬮亾婧愮爜
  */
@@ -40,12 +27,6 @@
 
     @Resource
     private ErpStockService stockService;
-
-    @Resource
-    private WmsInventoryApi wmsInventoryApi;
-
-    @Resource
-    private MdmItemSkuApi mdmItemSkuApi;
 
     @Override
     public ErpStockRecordDO getStockRecord(Long id) {
@@ -60,98 +41,13 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void createStockRecord(ErpStockRecordCreateReqBO createReqBO) {
-        // 1. 鑾峰彇浜у搧鐨勯粯璁� SKU ID锛圗RP productId = MDM itemId锛�
-        Long skuId = getDefaultSkuId(createReqBO.getProductId());
-        if (skuId == null) {
-            // 濡傛灉娌℃湁 SKU锛屼娇鐢ㄥ師鏈夐�昏緫鏇存柊搴撳瓨
-            BigDecimal totalCount = stockService.updateStockCountIncrement(
-                    createReqBO.getProductId(), createReqBO.getWarehouseId(), createReqBO.getCount());
-            ErpStockRecordDO stockRecord = BeanUtils.toBean(createReqBO, ErpStockRecordDO.class)
-                    .setTotalCount(totalCount);
-            stockRecordMapper.insert(stockRecord);
-            return;
-        }
-
-        // 2. 鏍规嵁 count 姝h礋鍒ゆ柇鍏ュ簱杩樻槸鍑哄簱
-        BigDecimal count = createReqBO.getCount();
-        if (count.compareTo(BigDecimal.ZERO) > 0) {
-            // 鍏ュ簱鎿嶄綔
-            WmsReceiptReqDTO receiptReq = buildReceiptReqDTO(createReqBO, skuId);
-            wmsInventoryApi.receipt(receiptReq);
-        } else if (count.compareTo(BigDecimal.ZERO) < 0) {
-            // 鍑哄簱鎿嶄綔锛堟暟閲忚浆涓烘鏁帮級
-            WmsShipmentReqDTO shipmentReq = buildShipmentReqDTO(createReqBO, skuId);
-            wmsInventoryApi.shipment(shipmentReq);
-        }
-
-        // 3. 鍒涘缓搴撳瓨鏄庣粏锛堣褰曟搷浣滐級
-        BigDecimal currentStock = wmsInventoryApi.getAvailableQuantity(skuId, createReqBO.getWarehouseId()).getCheckedData();
+        // 1. 鏇存柊搴撳瓨
+        BigDecimal totalCount = stockService.updateStockCountIncrement(
+                createReqBO.getProductId(), createReqBO.getWarehouseId(), createReqBO.getCount());
+        // 2. 鍒涘缓搴撳瓨鏄庣粏
         ErpStockRecordDO stockRecord = BeanUtils.toBean(createReqBO, ErpStockRecordDO.class)
-                .setTotalCount(currentStock != null ? currentStock : BigDecimal.ZERO);
+                .setTotalCount(totalCount);
         stockRecordMapper.insert(stockRecord);
-    }
-
-    /**
-     * 鑾峰彇浜у搧鐨勯粯璁� SKU ID
-     */
-    private Long getDefaultSkuId(Long productId) {
-        if (productId == null) {
-            return null;
-        }
-        List<MdmItemSkuRespDTO> skuList = mdmItemSkuApi.getItemSkuListByItemId(productId).getCheckedData();
-        if (CollUtil.isEmpty(skuList)) {
-            return null;
-        }
-        return skuList.get(0).getId();
-    }
-
-    /**
-     * 鏋勫缓鍏ュ簱璇锋眰
-     */
-    private WmsReceiptReqDTO buildReceiptReqDTO(ErpStockRecordCreateReqBO createReqBO, Long skuId) {
-        WmsReceiptReqDTO receiptReq = new WmsReceiptReqDTO();
-        receiptReq.setBizType(convertBizType(createReqBO.getBizType()));
-        receiptReq.setBizId(createReqBO.getBizId());
-        receiptReq.setBizNo(createReqBO.getBizNo());
-        receiptReq.setWarehouseId(createReqBO.getWarehouseId());
-        receiptReq.setRemark(createReqBO.getRemark());
-
-        WmsReceiptReqDTO.Item item = new WmsReceiptReqDTO.Item();
-        item.setSkuId(skuId);
-        item.setQuantity(createReqBO.getCount());
-        receiptReq.setItems(List.of(item));
-        return receiptReq;
-    }
-
-    /**
-     * 鏋勫缓鍑哄簱璇锋眰
-     */
-    private WmsShipmentReqDTO buildShipmentReqDTO(ErpStockRecordCreateReqBO createReqBO, Long skuId) {
-        WmsShipmentReqDTO shipmentReq = new WmsShipmentReqDTO();
-        shipmentReq.setBizType(convertBizType(createReqBO.getBizType()));
-        shipmentReq.setBizId(createReqBO.getBizId());
-        shipmentReq.setBizNo(createReqBO.getBizNo());
-        shipmentReq.setWarehouseId(createReqBO.getWarehouseId());
-        shipmentReq.setRemark(createReqBO.getRemark());
-
-        WmsShipmentReqDTO.Item item = new WmsShipmentReqDTO.Item();
-        item.setSkuId(skuId);
-        item.setQuantity(createReqBO.getCount().negate()); // 鍑哄簱鏁伴噺涓烘鏁�
-        shipmentReq.setItems(List.of(item));
-        return shipmentReq;
-    }
-
-    /**
-     * 杞崲涓氬姟绫诲瀷锛圗RP 涓氬姟绫诲瀷鏄犲皠鍒� WMS 涓氬姟绫诲瀷锛�
-     */
-    private Integer convertBizType(Integer erpBizType) {
-        // ERP 涓氬姟绫诲瀷鏄犲皠鍒� WMS 涓氬姟绫诲瀷
-        // 鍙互鏍规嵁瀹為檯涓氬姟闇�姹傛墿灞曟槧灏勫叧绯�
-        if (erpBizType == null) {
-            return WmsInventoryBizTypeEnum.OTHER.getType();
-        }
-        // 榛樿杩斿洖 OTHER 绫诲瀷锛屽悗缁彲鏍规嵁 ERP 涓氬姟绫诲瀷鏋氫妇鎵╁睍
-        return WmsInventoryBizTypeEnum.OTHER.getType();
     }
 
 }
\ No newline at end of file

--
Gitblit v1.9.3