From a801f5ac39701e6d2038da57bff910ba278ea6d8 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 19 八月 2025 19:50:29 +0800
Subject: [PATCH] 盘点单同步接口, 调拔单同步接口

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferItems.java  |   56 ++++++++++++++++++
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferParams.java |   27 +++++++++
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java                |    8 ++
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java       |   63 +++++++++++++++++++++
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java       |   16 +++++
 5 files changed, 170 insertions(+), 0 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java
index f3b403b..8c3ba2c 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java
@@ -4,6 +4,7 @@
 import com.vincent.rsf.framework.exception.CoolException;
 import com.vincent.rsf.server.api.controller.erp.params.OrderParams;
 import com.vincent.rsf.server.api.controller.erp.params.SyncOrderParams;
+import com.vincent.rsf.server.api.controller.erp.params.SyncTransferParams;
 import com.vincent.rsf.server.api.service.ReceiveMsgService;
 import com.vincent.rsf.server.common.utils.ExcelUtil;
 import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate;
@@ -99,4 +100,19 @@
         return receiveMsgService.syncCheckOrder(syncOrders, getLoginUserId());
     }
 
+    /**
+     * @author Ryan
+     * @date 2025/8/19
+     * @description: 璋冩嫈鍗曟嵁鍚屾
+     * @version 1.0
+     */
+    @ApiOperation("璋冩嫈鍗曞悓姝�")
+    @PostMapping("/sync/transfers")
+    public R syncTransfer(@RequestBody SyncTransferParams transferParams) {
+        if (Objects.isNull(transferParams)) {
+            throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        return receiveMsgService.syncTransfer(transferParams);
+    }
+
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferItems.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferItems.java
new file mode 100644
index 0000000..fbf2f01
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferItems.java
@@ -0,0 +1,56 @@
+package com.vincent.rsf.server.api.controller.erp.params;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "SyncTransferItems", description = "璋冩嫈鍗曞悓姝ュ弬鏁�")
+public class SyncTransferItems implements Serializable {
+
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("鐗╂枡鍚嶇О")
+    private String maktx;
+
+    @ApiModelProperty("鐗╂枡缂栫爜")
+    private String matnrCode;
+
+    @ApiModelProperty("鍗曚綅")
+    private String unit;
+
+    @ApiModelProperty("鏁伴噺 ")
+    private Double anfme;
+
+    @ApiModelProperty("鎵规")
+    private String batch;
+
+    @ApiModelProperty("渚涘簲鍟�")
+    private Long splrId;
+
+    @ApiModelProperty("瑙勬牸")
+    private String spec;
+
+    @ApiModelProperty("鍨嬪彿")
+    private String model;
+
+    @ApiModelProperty("瀹㈡埛璁㈠崟鍙�")
+    private String platOrderCode;
+
+    @ApiModelProperty("琛屽彿")
+    private Long platItemId;
+
+    @ApiModelProperty("宸ュ彿")
+    private String platWorkCode;
+
+    @ApiModelProperty("椤圭洰缂栫爜")
+    private String projectCode;
+
+
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferParams.java
new file mode 100644
index 0000000..c23ae54
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncTransferParams.java
@@ -0,0 +1,27 @@
+package com.vincent.rsf.server.api.controller.erp.params;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "SyncTransferParams", description = "璋冩嫈鍗曞悓姝ュ弬鏁�")
+public class SyncTransferParams implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("鍘熷簱鍖�")
+    private String orgAreaName;
+
+    @ApiModelProperty("鐩爣搴撳尯")
+    private String tarAreaName;
+
+    @ApiModelProperty("璋冩嫈鍗曟槑缁�")
+    private List<SyncTransferItems> items;
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java
index 0ac5d53..8880399 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java
@@ -97,4 +97,12 @@
      * @version 1.0
      */
     R syncCheckOrder(SyncOrderParams syncOrders, Long loginUserId);
+
+    /**
+     * @author Ryan
+     * @date 2025/8/19
+     * @description: 璋冩嫈鍗曟嵁鍚屾
+     * @version 1.0
+     */
+    R syncTransfer(SyncTransferParams transferParams);
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
index fb49c49..cc26147 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -13,10 +13,12 @@
 import com.vincent.rsf.server.manager.controller.dto.LocStockDto;
 import com.vincent.rsf.server.manager.entity.*;
 import com.vincent.rsf.server.manager.enums.CompanysType;
+import com.vincent.rsf.server.manager.enums.OrderSourceType;
 import com.vincent.rsf.server.manager.enums.OrderType;
 import com.vincent.rsf.server.manager.enums.OrderWorkType;
 import com.vincent.rsf.server.manager.service.*;
 import com.vincent.rsf.server.manager.service.impl.MatnrServiceImpl;
+import com.vincent.rsf.server.manager.service.impl.TransferItemServiceImpl;
 import com.vincent.rsf.server.system.constant.SerialRuleCode;
 import com.vincent.rsf.server.system.entity.Fields;
 import com.vincent.rsf.server.system.service.FieldsItemService;
@@ -73,6 +75,10 @@
     private WarehouseService warehouseService;
     @Autowired
     private CompanysService companysService;
+    @Autowired
+    private TransferService transferService;
+    @Autowired
+    private TransferItemService transferItemService;
 
 
     /**
@@ -411,4 +417,61 @@
         return R.ok();
     }
 
+    /**
+     * @author Ryan
+     * @date 2025/8/19
+     * @description: 璋冩嫈鍗曟嵁鍚屾
+     * @version 1.0
+     */
+    @Override
+    @Transactional(timeout = 60, rollbackFor = Exception.class)
+    public R syncTransfer(SyncTransferParams transferParams) {
+        Transfer transfer = new Transfer();
+        WarehouseAreas warehouseAreas = warehouseAreasService
+                .getOne(new LambdaQueryWrapper<WarehouseAreas>()
+                        .eq(WarehouseAreas::getName, transfer.getOrgAreaName()));
+        if (Objects.isNull(warehouseAreas)) {
+            throw new CoolException("鍘熷簱鍖轰笉瀛樺湪锛侊紒");
+        }
+
+        WarehouseAreas warehouseAreas1 = warehouseAreasService.getOne(new LambdaQueryWrapper<WarehouseAreas>()
+                .eq(WarehouseAreas::getName, transfer.getTarAreaName()));
+        if (Objects.isNull(warehouseAreas1)) {
+            throw new CoolException("鐩爣搴撳尯涓嶅瓨鍦紒锛�");
+        }
+
+        transfer.setOrgAreaName(warehouseAreas.getName())
+                .setOrgAreaId(warehouseAreas.getId())
+                .setOrgWareName(warehouseAreas.getWarehouseId$())
+                .setOrgWareId(warehouseAreas.getWarehouseId())
+                .setTarWareName(warehouseAreas1.getWarehouseId$())
+                .setTarAreaName(warehouseAreas1.getName())
+                .setTarAreaId(warehouseAreas1.getId())
+                .setTarWareName(warehouseAreas1.getWarehouseId$())
+                .setTarWareId(warehouseAreas1.getWarehouseId())
+                .setSource(OrderSourceType.ORDER_SOURCE_TYPE_ERP.val);
+
+        if (!transferService.save(transfer)) {
+            throw new CoolException("璋冩嫈鍗曟嵁淇濆瓨澶辫触锛侊紒");
+        }
+
+        transferParams.getItems().forEach(item -> {
+            TransferItem transferItem = new TransferItem();
+            BeanUtils.copyProperties(item, transferItem);
+            Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, item.getMatnrCode()));
+            if (Objects.isNull(matnr)) {
+                throw new CoolException("鐗╂枡涓嶅瓨鍦紒锛�");
+            }
+            transferItem.setMatnrId(matnr.getId())
+                    .setTransferId(transfer.getId())
+                    .setTransferCode(transfer.getCode());
+
+            if (!transferItemService.save(transferItem)) {
+                throw new CoolException("璋冩嫈鍗曟槑缁嗕繚瀛樺け璐ワ紒锛�");
+            }
+        });
+
+        return R.ok();
+    }
+
 }

--
Gitblit v1.9.1