From 9140aee230de0ef41de9682a9353fbd372e2bcaa Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期二, 03 三月 2026 13:43:22 +0800
Subject: [PATCH] 云仓WMS接口

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogServiceImpl.java |   47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 47 insertions(+), 0 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogServiceImpl.java
index 1d8a278..79b31c8 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogServiceImpl.java
@@ -4,6 +4,8 @@
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.vincent.rsf.framework.common.R;
 import com.vincent.rsf.framework.exception.CoolException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.vincent.rsf.server.api.controller.erp.params.InventoryAdjustReportParam;
 import com.vincent.rsf.server.manager.controller.params.ReviseLogParams;
 import com.vincent.rsf.server.manager.entity.*;
 import com.vincent.rsf.server.manager.enums.AsnExceStatus;
@@ -13,6 +15,7 @@
 import com.vincent.rsf.server.manager.mapper.ReviseLogMapper;
 import com.vincent.rsf.server.manager.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -27,6 +30,7 @@
 import java.util.Set;
 import java.util.stream.Collectors;
 
+@Slf4j
 @Service("reviseLogService")
 public class ReviseLogServiceImpl extends ServiceImpl<ReviseLogMapper, ReviseLog> implements ReviseLogService {
 
@@ -50,6 +54,15 @@
 
     @Autowired
     private OutStockItemService outStockItemService;
+
+    @Autowired
+    private WarehouseService warehouseService;
+
+    @Autowired
+    private CloudWmsNotifyLogService cloudWmsNotifyLogService;
+
+    @Autowired
+    private ObjectMapper objectMapper;
 
     /**
      * 搴撳瓨璋冩暣鍗曟槑缁嗘坊鍔�
@@ -203,6 +216,7 @@
             // 鍒犻櫎鍘熷簱浣嶇殑搴撳瓨鏄庣粏锛堝鏋滃瓨鍦級
             locItemService.remove(new LambdaQueryWrapper<LocItem>().eq(LocItem::getLocId, loc.getId()));
 
+            final Loc sourceLoc = loc;
             Loc finalLoc = loc;
             reviseItems.forEach(logItem -> {
                 LocItem locDetl = new LocItem();
@@ -220,6 +234,39 @@
                 if (!locItemService.save(locDetl)) {
                     throw new CoolException("搴撳瓨鏄庣粏淇濆瓨澶辫触锛侊紒");
                 }
+                // 9.2 搴撳瓨璋冩暣涓诲姩涓婃姤寰呭姙
+                try {
+                    String wareHouseId = null;
+                    if (finalLoc.getWarehouseId() != null) {
+                        Warehouse wh = warehouseService.getById(finalLoc.getWarehouseId());
+                        if (wh != null) {
+                            wareHouseId = wh.getCode();
+                        }
+                    }
+                    if (wareHouseId != null && logItem.getMatnrCode() != null && sourceLoc != null) {
+                        InventoryAdjustReportParam param = new InventoryAdjustReportParam()
+                                .setChangeType(3) // 3 绉诲簱
+                                .setWareHouseId(wareHouseId)
+                                .setSourceLocId(sourceLoc.getCode())
+                                .setTargetLocId(finalLoc.getCode())
+                                .setMatNr(logItem.getMatnrCode())
+                                .setQty(logItem.getReviseQty() != null ? String.valueOf(logItem.getReviseQty()) : "0");
+                        String requestBody = objectMapper.writeValueAsString(param);
+                        Date now = new Date();
+                        CloudWmsNotifyLog notifyLog = new CloudWmsNotifyLog()
+                                .setReportType(cloudWmsNotifyLogService.getReportTypeInventoryAdjust())
+                                .setRequestBody(requestBody)
+                                .setNotifyStatus(cloudWmsNotifyLogService.getNotifyStatusPending())
+                                .setRetryCount(0)
+                                .setBizRef("reviseId=" + revise.getId() + ",reviseLogItemId=" + logItem.getId())
+                                .setCreateTime(now)
+                                .setUpdateTime(now);
+                        cloudWmsNotifyLogService.fillFromConfig(notifyLog);
+                        cloudWmsNotifyLogService.save(notifyLog);
+                    }
+                } catch (Exception e) {
+                    log.warn("搴撳瓨璋冩暣涓婃姤寰呭姙钀藉簱澶辫触锛堜笉褰卞搷搴撳瓨淇濆瓨锛夛紝matNr={}锛歿}", logItem.getMatnrCode(), e.getMessage());
+                }
 
                 // 涓哄簱瀛樿皟鏁翠骇鐢熺殑搴撳瓨鍒涘缓瀵瑰簲鐨刉kOrderItem
                 // 閬嶅巻鎵�鏈夋湭瀹屾垚鐨勫嚭搴撳崟锛屾鏌ユ槸鍚﹂渶瑕佽繖浜涚墿鏂�

--
Gitblit v1.9.1