From f84b3af27f34be7e22990c54612f3110559c7710 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 19 八月 2025 18:28:44 +0800
Subject: [PATCH] 盘点单、入库单、出库单同步接口
---
/dev/null | 15 ---
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 | 59 ++++++++++++++
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrdersItem.java | 78 +++++++++++++++++++
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrderParams.java | 23 +++++
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java | 17 ++-
6 files changed, 178 insertions(+), 22 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 b8c42c9..f3b403b 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
@@ -1,11 +1,13 @@
package com.vincent.rsf.server.api.controller.erp;
import com.vincent.rsf.framework.common.R;
-import com.vincent.rsf.server.api.controller.erp.params.CheckDiffParams;
+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.service.ReceiveMsgService;
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate;
+import com.vincent.rsf.server.system.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@@ -18,11 +20,12 @@
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
@RestController
@RequestMapping("/order")
@Api(tags = "鍗曟嵁")
-public class SyncOrderController {
+public class SyncOrderController extends BaseController {
@Autowired
private ReceiveMsgService receiveMsgService;
@@ -87,11 +90,13 @@
* @description: 鍚屾鐩樼偣鍗曟嵁
* @version 1.0
*/
- @ApiOperation("鍚屾鐩樼偣鍗�")
+ @ApiOperation("鍚屾鍗曟嵁")
@PostMapping("/sync/checks")
- public R syncCheckResult(@RequestBody List<CheckDiffParams> checkDiffs) {
-
- return R.ok();
+ public R syncCheckResult(@RequestBody SyncOrderParams syncOrders) {
+ if (Objects.isNull(syncOrders)) {
+ throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ return receiveMsgService.syncCheckOrder(syncOrders, getLoginUserId());
}
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/CheckDiffParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/CheckDiffParams.java
deleted file mode 100644
index d7dac78..0000000
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/CheckDiffParams.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.vincent.rsf.server.api.controller.erp.params;
-
-
-import io.swagger.annotations.ApiModel;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-@Data
-@Accessors(chain = true)
-@ApiModel(value = "CheckDiffParams", description = "鍚屾鐩樼偣鍙傛暟")
-public class CheckDiffParams {
-
- private String orderNo;
-
-}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrderParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrderParams.java
new file mode 100644
index 0000000..1ded2e0
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrderParams.java
@@ -0,0 +1,23 @@
+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 = "SyncOrderParams", description = "鍗曟嵁鍚屾鍙傛暟")
+public class SyncOrderParams implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("鍗曟嵁绫诲瀷{in: 鏀惰揣鍏ュ簱鍗曪紝 out锛氬嚭搴撳崟锛宑heck: 鐩樼偣鍗�, }")
+ private String type;
+
+ @ApiModelProperty("鍗曟嵁鏄庣粏淇℃伅")
+ private List<SyncOrdersItem> items;
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrdersItem.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrdersItem.java
new file mode 100644
index 0000000..58f9aa1
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrdersItem.java
@@ -0,0 +1,78 @@
+package com.vincent.rsf.server.api.controller.erp.params;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.experimental.Accessors;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "SyncOrdersParams", description = "鍚屾鐩樼偣鍙傛暟")
+public class SyncOrdersItem implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("鐩樼偣鍗曟槑缁咺D")
+ private Long id;
+
+ @ApiModelProperty("璁㈠崟ID")
+ private Long orderId;
+
+ @ApiModelProperty("璁㈠崟鐘舵�亄in: 鍏ュ簱鍗�, out: 鍑哄簱鍗�, check: 鐩樼偣鍗晑")
+ private String orderType;
+
+ @ApiModelProperty("涓氬姟绫诲瀷")
+ private String wkType;
+
+ @ApiModelProperty("ASN鍗曞彿")
+ private String orderCode;
+
+ @ApiModelProperty("鐗╂枡鏍囪瘑")
+ private Long matnrId;
+
+ @ApiModelProperty("鐗╂枡缂栫爜")
+ private String matnrCode;
+
+ @ApiModelProperty("鐗╂枡鍚嶇О")
+ private String maktx;
+
+ @ApiModelProperty("瀹㈠崟鍙�")
+ private String platOrderCode;
+
+ @ApiModelProperty("骞冲彴鏍囪瘑锛堣鍙凤級")
+ private String platItemId;
+
+ @ApiModelProperty("宸ュ崟鍙�")
+ private String platWorkCode;
+
+ @ApiModelProperty("椤圭洰鍙�")
+ private String projectCode;
+
+ @ApiModelProperty("瀛楁绱㈠紩")
+ private String fieldsIndex;
+
+ @ApiModelProperty("瑙勬牸")
+ private String spec;
+
+ @ApiModelProperty("鍨嬪彿")
+ private String model;
+
+ @ApiModelProperty("閫佽揣鏁伴噺")
+ private Double anfme;
+
+ @ApiModelProperty("搴撳瓨鍗曚綅")
+ private String unit;
+
+ @ApiModelProperty("搴撳瓨鎵规")
+ private String batch;
+
+ @ApiModelProperty("宸叉敹鏁伴噺")
+ private Double qty;
+
+ @ApiModelProperty("鏉″舰鐮�")
+ private String barcode;
+
+}
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 c3bf1ad..0ac5d53 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
@@ -89,4 +89,12 @@
* @version 1.0
*/
R syncCompanies(List<CompaniesParam> companyParams);
+
+ /**
+ * @author Ryan
+ * @date 2025/8/19
+ * @description: 鍗曟嵁鍚屾--鏀惰揣閫氱煡鍗�/鍑哄簱鍗�/鐩樼偣鍗�
+ * @version 1.0
+ */
+ R syncCheckOrder(SyncOrderParams syncOrders, Long loginUserId);
}
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 97b8ffd..fb49c49 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
@@ -14,8 +14,8 @@
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.enums.CompanysType;
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.LocAreaServiceImpl;
import com.vincent.rsf.server.manager.service.impl.MatnrServiceImpl;
import com.vincent.rsf.server.system.constant.SerialRuleCode;
import com.vincent.rsf.server.system.entity.Fields;
@@ -30,6 +30,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
+import java.util.stream.Collectors;
/**
* @author Ryan
@@ -72,6 +73,7 @@
private WarehouseService warehouseService;
@Autowired
private CompanysService companysService;
+
/**
* @author Ryan
@@ -354,4 +356,59 @@
return R.ok();
}
+
+ @Override
+ @Transactional(timeout = 60, rollbackFor = Exception.class)
+ public R syncCheckOrder(SyncOrderParams syncOrders, Long loginUserId) {
+ List<SyncOrdersItem> ordersItems = syncOrders.getItems();
+ Map<String, List<SyncOrdersItem>> listMap = ordersItems.stream().collect(Collectors.groupingBy(SyncOrdersItem::getOrderCode));
+ listMap.keySet().forEach(orderCode -> {
+ WkOrder wkOrder = new WkOrder();
+ String ruleCode = null;
+ if (syncOrders.getType().equals(OrderType.ORDER_CHECK.type)) {
+ ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_CHECK_RULE_CODE, null);
+ } else if (syncOrders.getType().equals(OrderType.ORDER_IN.type)) {
+ ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_ASN_ORDER, null);
+ } else if (syncOrders.getType().equals(OrderType.ORDER_OUT.type)) {
+ ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_OUT_STOCK_CODE, null);
+ } else if (syncOrders.getType().equals(OrderType.ORDER_REVISE.type)) {
+ ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LOC_REVISE_CODE, null);
+ } else if (syncOrders.getType().equals(OrderType.ORDER_TRANSFER.type)) {
+ ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_TRANSFER_ORDER_CODE, null);
+ }
+
+ SyncOrdersItem ordersItem = listMap.get(orderCode).stream().findFirst().get();
+ Double anfmes = listMap.get(orderCode).stream().mapToDouble(SyncOrdersItem::getAnfme).sum();
+ wkOrder.setType(syncOrders.getType())
+ .setWkType(OrderWorkType.getWorkType(ordersItem.getWkType()))
+ .setAnfme(anfmes)
+ .setPoCode(orderCode)
+ .setPoId(ordersItem.getId())
+ .setCode(ruleCode)
+ .setId(null)
+ .setCreateTime(new Date())
+ .setUpdateTime(new Date())
+ .setCreateBy(loginUserId)
+ .setUpdateBy(loginUserId);
+
+ if (!asnOrderService.save(wkOrder)) {
+ throw new CoolException("鍗曟嵁淇濆瓨澶辫触锛侊紒");
+ }
+
+ listMap.get(orderCode).forEach(order -> {
+ WkOrderItem wkOrderItem = new WkOrderItem();
+ BeanUtils.copyProperties(order, wkOrderItem);
+ wkOrderItem.setOrderCode(wkOrder.getCode())
+ .setOrderId(wkOrder.getId())
+ .setId(null);
+
+ if (!asnOrderItemService.save(wkOrderItem)) {
+ throw new CoolException("鍗曟嵁鏄庣粏淇濆瓨澶辫触锛侊紒");
+ }
+ });
+ });
+
+ return R.ok();
+ }
+
}
--
Gitblit v1.9.1