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