From 80677945b8ad3f73870e0b6d5a424e7130694431 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期四, 22 一月 2026 15:07:28 +0800
Subject: [PATCH] lsh#单据接收

---
 rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java                  |    5 +
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Order.java                      |   20 +++++
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java    |   17 +++-
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrdersItem.java  |   60 +++++++++++++++
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrderParams.java |   88 ++++++++++++++++++++++
 5 files changed, 185 insertions(+), 5 deletions(-)

diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Order.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Order.java
index 4c1c2c8..5b733f6 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Order.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Order.java
@@ -75,4 +75,24 @@
     private String saleUserId;
     // 閿�鍞憳鍚嶇О
     private String saleUserName;
+
+    public void setType(String type) {
+        if (type == null) {
+            this.type = type;
+        } else {
+            switch (type) {
+                case "1":
+                    this.type = "out";
+                    break;
+                case "2":
+                    this.type = "in";
+                    break;
+                case "3":
+                    this.type = "check";
+                    break;
+                default:
+                    this.type = type;
+            }
+        }
+    }
 }
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
index f45e72f..7f3ccda 100644
--- 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
@@ -18,14 +18,42 @@
 
     private static final long serialVersionUID = 1L;
 
+    /*
+    * 涓氬姟绫诲瀷锛屽緟ERP琛ュ厖锛屼互涓嬩负绀轰緥锛�
+    * 鍏ュ簱锛氭敹鏂欓�氱煡鍗曪紙PUR_ReceiveBill锛夈��
+    * 閲囪喘鍏ュ簱鍗曪紙STK_InStock锛夈��
+    * 閫�鏂欑敵璇峰崟锛圥UR_MRAPP锛夈��
+    * 閲囪喘閫�鏂欏崟锛圥UR_MRB锛夈��
+    * 閫�璐ч�氱煡鍗曪紙SAL_RETURNNOTICE锛夈��
+    * 閿�鍞��璐у崟锛圫AL_RETURNSTOCK锛夈��
+    * 鐢熶骇閫�鏂欏崟锛圥RD_ReturnMtrl锛夈��
+    * 鐢熶骇鍏ュ簱鍗曪紙PRD_INSTOCK锛�/
+    * 鐢熶骇姹囨姤鍗曪紙PRD_MORPT锛夈��
+    * 鍏朵粬鍏ュ簱鍗曪紙STK_MISCELLANEOUS锛�
+    * 鍑哄簱锛氬彂璐ч�氱煡鍗曪紙SAL_DELIVERYNOTICE锛夈��
+    * 閿�鍞嚭搴撳崟锛圫AL_OUTSTOCK锛夈��
+    * 鍑哄簱鐢宠鍗曪紙STK_OutStockApply锛夈��
+    * 鐢熶骇棰嗘枡鍗曪紙PRD_PickMtrl锛夈��
+    * 鐢熶骇琛ユ枡鍗曪紙PRD_FeedMtrl锛夈��
+    * 鍏朵粬鍑哄簱鍗曪紙STK_MisDelivery锛夎皟鎷細
+    * 璋冩嫧鐢宠鍗曪紙STK_TRANSFERAPPLY锛夈��
+    * 鐩存帴璋冩嫧鍗曪紙STK_TransferDirect锛�
+    * */
     @ApiModelProperty("涓氬姟绫诲瀷")
     private String wkType;
 
+
+    /*
+    * 璁㈠崟绫诲瀷锛�1 鍑哄簱鍗曪紱2 鍏ュ簱鍗曪紱3 璋冩嫧鍗曪紱
+    * */
     @ApiModelProperty("鍗曟嵁绫诲瀷")
     private String type;
 
     @ApiModelProperty("鍗曞彿")
     private String orderNo;
+
+    @ApiModelProperty("鍗曟嵁鍐呯爜锛屽敮涓�鏍囪瘑")
+    private Long orderInternalCode;
 
     @ApiModelProperty("璁㈠崟ID")
     private Long orderId;
@@ -33,10 +61,70 @@
     @ApiModelProperty("鏁伴噺")
     private Double anfme;
 
+    @ApiModelProperty("瀹㈡埛缂栫爜")
+    private String customerId;
+
+    @ApiModelProperty("瀹㈡埛鍚嶇О")
+    private String customerName;
+
+    @ApiModelProperty("渚涘簲鍟嗙紪鐮�")
+    private String supplierId;
+
+    @ApiModelProperty("渚涘簲鍟嗗悕绉�")
+    private String supplierName;
+
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:ss:mm")
     @JsonFormat(pattern = "yyyy-MM-dd HH:ss:mm")
     private Date arrTime;
 
+    @ApiModelProperty("鍒涘缓鏃ユ湡锛屾椂闂存埑锛岀簿纭埌绉�")
+    private Long createTime;
+
+    @ApiModelProperty("涓氬姟鏃ユ湡锛屽璐︿娇鐢紝鏃堕棿鎴筹紝绮剧‘鍒扮")
+    private Long businessTime;
+
     @ApiModelProperty("鍗曟嵁鏄庣粏淇℃伅")
     private List<SyncOrdersItem> orderItems;
+
+    @ApiModelProperty("鏀舵枡/鍙戣揣缁勭粐")
+    private String stockOrgId;
+
+    @ApiModelProperty("鏀舵枡/鍙戣揣缁勭粐鍚嶇О")
+    private String stockOrgName;
+
+    @ApiModelProperty("閲囪喘缁勭粐")
+    private String purchaseOrgId;
+
+    @ApiModelProperty("閲囪喘缁勭粐鍚嶇О")
+    private String purchaseOrgName;
+
+    @ApiModelProperty("閲囪喘鍛�")
+    private String purchaseUserId;
+
+    @ApiModelProperty("閲囪喘鍛樺悕绉�")
+    private String purchaseUserName;
+
+    @ApiModelProperty("鐢熶骇缁勭粐")
+    private String prdOrgId;
+
+    @ApiModelProperty("鐢熶骇缁勭粐鍚嶇О")
+    private String prdOrgName;
+
+    @ApiModelProperty("閿�鍞粍缁�")
+    private String saleOrgId;
+
+    @ApiModelProperty("閿�鍞粍缁囧悕绉�")
+    private String saleOrgName;
+
+    @ApiModelProperty("閿�鍞憳")
+    private String saleUserId;
+
+    @ApiModelProperty("閿�鍞憳鍚嶇О")
+    private String saleUserName;
+
+    @ApiModelProperty("搴撳瓨鏂瑰悜")
+    private String stockDirect;
+
+    @ApiModelProperty("鍑哄叆搴撴帴椹崇珯鐐癸紝鍑哄簱鏃跺皢鐗╂枡鍑哄簱鍚庤繍杈撹嚦璇ョ珯鐐癸紝鍏ュ簱鏃朵粠璇ョ珯鐐瑰皢鐗╂枡杩愬洖搴撲腑")
+    private String stationId;
 }
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
index 105f5e8..69fb0ee 100644
--- 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
@@ -66,4 +66,64 @@
     @ApiModelProperty("鐜伴噾绁ㄥ彿")
     private String crushNo;
 
+    @ApiModelProperty("璁″垝璺熻釜鍙�")
+    private String planNo;
+
+    @ApiModelProperty("琛屽唴鐮侊紝鍞竴鏍囪瘑")
+    private String lineId;
+
+    @ApiModelProperty("鐗╂枡缂栫爜")
+    private String matNr;
+
+    @ApiModelProperty("鐗╂枡鍚嶇О")
+    private String makTx;
+
+    @ApiModelProperty("瑙勬牸")
+    private String specs;
+
+    @ApiModelProperty("鍩烘湰鍗曚綅")
+    private String baseUnitId;
+
+    @ApiModelProperty("鎵樼洏鐮侊紝鍗婃垚鍝�/鎴愬搧鍏ュ簱ERP闇�瑕佷紶锛岄潪鍒橢RP涓嶉渶瑕佷紶")
+    private String palletId;
+
+    @ApiModelProperty("璁′环鍗曚綅")
+    private String priceUnitId;
+
+    @ApiModelProperty("寤鸿鐩爣浠撳簱")
+    private String targetWareHouseId;
+
+    @ApiModelProperty("璋冨嚭浠�")
+    private String sourceWareHouseId;
+
+    @ApiModelProperty("鍏ュ簱绫诲瀷")
+    private String inStockType;
+
+    @ApiModelProperty("璐т富绫诲瀷")
+    private String ownerTypeId;
+
+    @ApiModelProperty("璐т富")
+    private String ownerId;
+
+    @ApiModelProperty("璐т富鍚嶇О")
+    private String ownerName;
+
+    @ApiModelProperty("淇濈鑰呯被鍨�")
+    private String keeperTypeId;
+
+    @ApiModelProperty("淇濈鑰�")
+    private String keeperId;
+
+    @ApiModelProperty("淇濈鑰呭悕绉�")
+    private String keeperName;
+
+    public void setMatNr(String matNr) {
+        this.matNr = matNr;
+        this.matnr = matNr;
+    }
+
+    public void setMakTx(String makTx) {
+        this.makTx = makTx;
+        this.maktx = makTx;
+    }
 }
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 1dd4ab7..aaca1fb 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
@@ -44,6 +44,8 @@
 import java.util.*;
 import java.util.stream.Collectors;
 
+import static com.vincent.rsf.server.system.utils.SerialRuleUtils.objectToMap;
+
 /**
  * @author Ryan
  * @version 1.0
@@ -405,13 +407,13 @@
     public R syncCheckOrder(List<SyncOrderParams> syncOrders, Long loginUserId) {
         if (!syncOrders.isEmpty()) {
             syncOrders.forEach(syncOrder -> {
-                WkOrder wkOrder = new WkOrder();
+                WkOrder wkOrder = new WkOrder(syncOrder);
                 DictData one = dictDataService.getOne(new LambdaQueryWrapper<DictData>().eq(DictData::getDictTypeCode, DictTypeCode.DICT_SYS_BUSINESS_TYPE)
                         .eq(DictData::getValue, syncOrder.getWkType()), false);
                 if (Objects.isNull(one)) {
                     throw new CoolException("鍗曟嵁锛�" + syncOrder.getOrderNo() + ", 涓氬姟绫诲瀷涓嶅瓨鍦紒锛�");
                 }
-                WkOrder order = asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>()
+                 WkOrder order = asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>()
                         .eq(!Objects.isNull(syncOrder.getOrderId()), WkOrder::getPoId, syncOrder.getOrderId())
                         .eq(WkOrder::getPoCode, syncOrder.getOrderNo()));
                 if (!Objects.isNull(order)) {
@@ -430,14 +432,21 @@
                     rule = SerialRuleCode.SYS_OUT_STOCK_CODE;
                 }
 
-                String ruleCode = SerialRuleUtils.generateRuleCode(rule, null);
+                //閾跺骇鐗逛緵
+                String orderNs = null;
+                if (rule.equals(SerialRuleCode.SYS_ASN_ORDER) || rule.equals(SerialRuleCode.SYS_OUT_STOCK_CODE) ){
+                    StringBuffer buffer = new StringBuffer();
+                    Object poCode = syncOrder.getOrderNo();
+                    orderNs = poCode == null ? "" : buffer.append(poCode).toString();
+                }
+                String ruleCode = orderNs;
                 wkOrder.setType(syncOrder.getType())
                         .setWkType(one.getValue())
                         .setAnfme(syncOrder.getAnfme())
                         .setPoCode(syncOrder.getOrderNo())
                         .setWorkQty(0.0)
                         .setQty(0.0)
-                        .setPoId(syncOrder.getOrderId())
+                        .setPoId(syncOrder.getOrderInternalCode())
                         .setCode(ruleCode)
                         .setArrTime(syncOrder.getArrTime())
                         .setId(null)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java
index dbdfe77..a1a564f 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java
@@ -185,7 +185,10 @@
                 }
             }
         } else {
-            saveFields(params, params.get("index").toString());
+            Object index = params.get("index");
+            if (!Cools.isEmpty(index)) {
+                saveFields(params, params.get("index").toString());
+            }
         }
     }
 

--
Gitblit v1.9.1