From 99af0223ae0858c69d1b75106d5f8bb0ab14b129 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期三, 27 八月 2025 17:04:29 +0800
Subject: [PATCH] art: 移库单回调出库逻辑添加

---
 src/main/java/org/jeecg/modules/mes/enums/TransferOrderStatusEnum.java                 |    9 +
 src/main/java/org/jeecg/modules/wms/service/impl/MESWebServiceSoapImpl.java            |   97 +++++++++++++++++--
 db/双林新火炬MES数据库设计.pdma.json                                                             |   66 ++++++++----
 src/main/java/org/jeecg/modules/lsw/entity/LswMaterialOutbound.java                    |   17 ++-
 src/main/java/org/jeecg/modules/lsw/enums/MaterialInventoryCategoryEnum.java           |    7 +
 src/main/java/org/jeecg/modules/lsw/service/ILswMaterialOutboundService.java           |    7 +
 src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialOutboundServiceImpl.java   |   42 ++++++++
 src/main/java/org/jeecg/modules/mes/service/IMesTransferOrderPrintService.java         |    7 +
 src/main/resources/application-prod.yml                                                |    2 
 src/main/java/org/jeecg/modules/mes/service/impl/MesTransferOrderPrintServiceImpl.java |   15 +++
 src/main/java/org/jeecg/modules/wms/request/WMSWebServiceSendItem.java                 |    2 
 src/main/java/org/jeecg/modules/mes/entity/MesTransferOrderPrint.java                  |    9 -
 12 files changed, 232 insertions(+), 48 deletions(-)

diff --git "a/db/\345\217\214\346\236\227\346\226\260\347\201\253\347\202\254MES\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" "b/db/\345\217\214\346\236\227\346\226\260\347\201\253\347\202\254MES\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json"
index f04ecb8..5809678 100644
--- "a/db/\345\217\214\346\236\227\346\226\260\347\201\253\347\202\254MES\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json"
+++ "b/db/\345\217\214\346\236\227\346\226\260\347\201\253\347\202\254MES\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json"
@@ -4,7 +4,7 @@
   "avatar": "",
   "version": "4.9.2",
   "createdTime": "2025-3-10 16:38:19",
-  "updatedTime": "2025-8-20 15:14:16",
+  "updatedTime": "2025-8-27 16:35:43",
   "dbConns": [],
   "profile": {
     "default": {
@@ -632,7 +632,7 @@
       "#DDE5FF"
     ],
     "DDLToggleCase": "L",
-    "menuWidth": "304px"
+    "menuWidth": "331px"
   },
   "entities": [
     {
@@ -62650,6 +62650,42 @@
           "id": "9056CBAC-AC31-46AC-802D-7ECC455F7834"
         },
         {
+          "defKey": "inventory_id",
+          "defName": "搴撳瓨ID",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
+          "id": "F0CCB50E-95F3-4D54-BE72-846BDAD32511"
+        },
+        {
+          "defKey": "warehouse_id",
+          "defName": "搴撳瓨鍦�",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
+          "id": "3892DFB2-BCFA-413E-9930-4B88E5C8EFE8"
+        },
+        {
           "defKey": "batch_number",
           "defName": "鎵规鍙�",
           "comment": "",
@@ -62730,24 +62766,6 @@
           "extProps": {},
           "domain": "FF4459C5-6B45-4DBF-8FC0-E06239BC05B4",
           "id": "5B833F2B-D8C6-478D-B830-604D2CC6AAF0"
-        },
-        {
-          "defKey": "work_order_id",
-          "defName": "宸ュ崟ID",
-          "comment": "",
-          "type": "",
-          "len": "",
-          "scale": "",
-          "primaryKey": false,
-          "notNull": false,
-          "autoIncrement": false,
-          "defaultValue": "",
-          "hideInGraph": false,
-          "refDict": "",
-          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
-          "extProps": {},
-          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
-          "id": "8D4EEF04-86ED-455F-A843-E9CAADBA042C"
         }
       ],
       "correlations": [],
@@ -64290,8 +64308,8 @@
           "id": "144B6087-1070-4007-9882-2A64F8AAAD91"
         },
         {
-          "defKey": "order_category",
-          "defName": "绉诲簱绫诲瀷",
+          "defKey": "inventory_id",
+          "defName": "搴撳瓨ID",
           "comment": "",
           "type": "",
           "len": "",
@@ -64304,8 +64322,8 @@
           "refDict": "",
           "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
           "extProps": {},
-          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
-          "id": "EB0DE062-AF2C-4401-8773-663BBDB65F84"
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
+          "id": "F0B826E3-51CF-4FA3-A239-95CFBAA64184"
         },
         {
           "defKey": "original_warehouse_id",
diff --git a/src/main/java/org/jeecg/modules/lsw/entity/LswMaterialOutbound.java b/src/main/java/org/jeecg/modules/lsw/entity/LswMaterialOutbound.java
index 69abacf..9130b9c 100644
--- a/src/main/java/org/jeecg/modules/lsw/entity/LswMaterialOutbound.java
+++ b/src/main/java/org/jeecg/modules/lsw/entity/LswMaterialOutbound.java
@@ -15,6 +15,7 @@
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -31,7 +32,7 @@
 public class LswMaterialOutbound implements Serializable {
     private static final long serialVersionUID = 1L;
 
-	/**涓婚敭*/
+    /**涓婚敭*/
 	@TableId(type = IdType.ASSIGN_ID)
     @ApiModelProperty(value = "涓婚敭")
     private String id;
@@ -69,6 +70,14 @@
     @ApiModelProperty(value = "浜х嚎ID")
     @Dict(dictTable = "base_factory", dicCode = "id", dicText = "factory_name")
     private String factoryId;
+    /**搴撳瓨ID*/
+    @Excel(name = "搴撳瓨ID", width = 15)
+    @ApiModelProperty(value = "搴撳瓨ID")
+    private String inventoryId;
+    /**绾胯竟搴揑D*/
+    @Excel(name = "绾胯竟搴揑D", width = 15)
+    @ApiModelProperty(value = "绾胯竟搴揑D")
+    private String warehouseId;
 	/**鎵规鍙�*/
 	@Excel(name = "鎵规鍙�", width = 15)
     @ApiModelProperty(value = "鎵规鍙�")
@@ -86,9 +95,5 @@
 	/**鍑哄簱鏁伴噺*/
 	@Excel(name = "鍑哄簱鏁伴噺", width = 15)
     @ApiModelProperty(value = "鍑哄簱鏁伴噺")
-    private Double quantity;
-	/**宸ュ崟ID*/
-	@Excel(name = "宸ュ崟ID", width = 15)
-    @ApiModelProperty(value = "宸ュ崟ID")
-    private String workOrderId;
+    private BigDecimal quantity;
 }
diff --git a/src/main/java/org/jeecg/modules/lsw/enums/MaterialInventoryCategoryEnum.java b/src/main/java/org/jeecg/modules/lsw/enums/MaterialInventoryCategoryEnum.java
new file mode 100644
index 0000000..8e59d15
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/lsw/enums/MaterialInventoryCategoryEnum.java
@@ -0,0 +1,7 @@
+package org.jeecg.modules.lsw.enums;
+
+public enum MaterialInventoryCategoryEnum {
+    INBOUND, //鍏ュ簱
+    UNLOADING, //涓嬫枡
+    ;
+}
diff --git a/src/main/java/org/jeecg/modules/lsw/service/ILswMaterialOutboundService.java b/src/main/java/org/jeecg/modules/lsw/service/ILswMaterialOutboundService.java
index 828a92a..be5dc3e 100644
--- a/src/main/java/org/jeecg/modules/lsw/service/ILswMaterialOutboundService.java
+++ b/src/main/java/org/jeecg/modules/lsw/service/ILswMaterialOutboundService.java
@@ -15,4 +15,11 @@
  */
 public interface ILswMaterialOutboundService extends IService<LswMaterialOutbound> {
     IPage<Map<String, Object>> getlswMaterialOutboundListData(Integer pageNo, Integer pageSize, HttpServletRequest req);
+
+    /**
+     * 鐗╂枡鍑哄簱
+     * @param outbound
+     * @return
+     */
+    boolean outboundMaterial(LswMaterialOutbound outbound);
 }
diff --git a/src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialOutboundServiceImpl.java b/src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialOutboundServiceImpl.java
index a9a70ec..bf8c3db 100644
--- a/src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialOutboundServiceImpl.java
+++ b/src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialOutboundServiceImpl.java
@@ -4,23 +4,37 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang.StringUtils;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.modules.lsw.entity.LswMaterial;
+import org.jeecg.modules.lsw.entity.LswMaterialInventory;
 import org.jeecg.modules.lsw.entity.LswMaterialOutbound;
+import org.jeecg.modules.lsw.enums.MaterialInventoryStatusEnum;
 import org.jeecg.modules.lsw.mapper.LswMaterialOutboundMapper;
+import org.jeecg.modules.lsw.service.ILswMaterialInboundService;
+import org.jeecg.modules.lsw.service.ILswMaterialInventoryService;
 import org.jeecg.modules.lsw.service.ILswMaterialOutboundService;
+import org.jeecg.modules.lsw.service.ILswMaterialService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 
 /**
  * @Description: 鐗╂枡鍑哄簱鍗�
  * @Author: jeecg-boot
- * @Date:   2025-06-30
+ * @Date: 2025-06-30
  * @Version: V1.0
  */
 @Service
 public class LswMaterialOutboundServiceImpl extends ServiceImpl<LswMaterialOutboundMapper, LswMaterialOutbound> implements ILswMaterialOutboundService {
+    @Autowired
+    private ILswMaterialService materialService;
+    @Autowired
+    private ILswMaterialInventoryService materialInventoryService;
 
     @Override
     public IPage<Map<String, Object>> getlswMaterialOutboundListData(Integer pageNo, Integer pageSize, HttpServletRequest req) {
@@ -40,4 +54,30 @@
         }
         return super.getBaseMapper().getlswMaterialOutboundListData(pageData, paramMap);
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean outboundMaterial(LswMaterialOutbound outbound) {
+        if (StringUtils.isBlank(outbound.getMaterialNumber())
+                || StringUtils.isBlank(outbound.getFactoryId())
+                || StringUtils.isBlank(outbound.getWarehouseId())
+                || outbound.getQuantity() == null
+                || outbound.getQuantity().intValue() > 0
+                || StringUtils.isBlank(outbound.getBatchNumber())
+        || StringUtils.isBlank(outbound.getInventoryId())) {
+            return false;
+        }
+        LswMaterialInventory inventory = materialInventoryService.getById(outbound.getInventoryId());
+        if(inventory == null) {
+            return false;
+        }
+        //鏇存柊搴撳瓨鐘舵��
+        inventory.setInventoryStatus(MaterialInventoryStatusEnum.OUTBOUND.name());
+        materialInventoryService.updateById(inventory);
+        //淇濆瓨鍑哄簱淇℃伅
+        outbound.setDelFlag(CommonConstant.DEL_FLAG_0);
+        outbound.setOutboundTime(new Date());
+        super.save(outbound);
+        return true;
+    }
 }
diff --git a/src/main/java/org/jeecg/modules/mes/entity/MesTransferOrderPrint.java b/src/main/java/org/jeecg/modules/mes/entity/MesTransferOrderPrint.java
index 7363eec..aa2d2e3 100644
--- a/src/main/java/org/jeecg/modules/mes/entity/MesTransferOrderPrint.java
+++ b/src/main/java/org/jeecg/modules/mes/entity/MesTransferOrderPrint.java
@@ -61,11 +61,10 @@
 	@Excel(name = "绉诲簱鍗曞彿", width = 15)
     @ApiModelProperty(value = "绉诲簱鍗曞彿")
     private String workOrderCode;
-	/**绉诲簱绫诲瀷*/
-	@Excel(name = "绉诲簱绫诲瀷", width = 15, dicCode = "order_category")
-	@Dict(dicCode = "order_category")
-    @ApiModelProperty(value = "绉诲簱绫诲瀷")
-    private String orderCategory;
+    /**搴撳瓨ID*/
+    @Excel(name = "搴撳瓨ID", width = 15)
+    @ApiModelProperty(value = "搴撳瓨ID")
+    private String inventoryId;
 	/**鍘熷簱瀛樺湴*/
 	@Excel(name = "鍘熷簱瀛樺湴", width = 15)
     @ApiModelProperty(value = "鍘熷簱瀛樺湴")
diff --git a/src/main/java/org/jeecg/modules/mes/enums/TransferOrderStatusEnum.java b/src/main/java/org/jeecg/modules/mes/enums/TransferOrderStatusEnum.java
new file mode 100644
index 0000000..d5922d6
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/mes/enums/TransferOrderStatusEnum.java
@@ -0,0 +1,9 @@
+package org.jeecg.modules.mes.enums;
+
+public enum TransferOrderStatusEnum {
+    NEW, //鏂板缓
+    PRINTED, //宸叉墦鍗般�佸凡璇锋眰WMS
+    COMPLETED, //宸插畬鎴�
+    CANCELED, //宸叉挙閿�
+    ;
+}
diff --git a/src/main/java/org/jeecg/modules/mes/service/IMesTransferOrderPrintService.java b/src/main/java/org/jeecg/modules/mes/service/IMesTransferOrderPrintService.java
index bc9acdd..a274391 100644
--- a/src/main/java/org/jeecg/modules/mes/service/IMesTransferOrderPrintService.java
+++ b/src/main/java/org/jeecg/modules/mes/service/IMesTransferOrderPrintService.java
@@ -13,4 +13,11 @@
  */
 public interface IMesTransferOrderPrintService extends IService<MesTransferOrderPrint> {
     List<MesTransferOrderPrint> queryOrderPrintByOrderId(String orderId);
+
+    /**
+     * 鏍规嵁绉诲簱鍗曞彿鏌ヨ绉诲簱璁板綍
+     * @param orderCode
+     * @return
+     */
+    MesTransferOrderPrint queryByOrderCode(String orderCode);
 }
diff --git a/src/main/java/org/jeecg/modules/mes/service/impl/MesTransferOrderPrintServiceImpl.java b/src/main/java/org/jeecg/modules/mes/service/impl/MesTransferOrderPrintServiceImpl.java
index 939729b..9d994f0 100644
--- a/src/main/java/org/jeecg/modules/mes/service/impl/MesTransferOrderPrintServiceImpl.java
+++ b/src/main/java/org/jeecg/modules/mes/service/impl/MesTransferOrderPrintServiceImpl.java
@@ -1,6 +1,9 @@
 package org.jeecg.modules.mes.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.modules.mes.entity.MesTransferOrderPrint;
 import org.jeecg.modules.mes.mapper.MesTransferOrderPrintMapper;
 import org.jeecg.modules.mes.service.IMesTransferOrderPrintService;
@@ -21,4 +24,16 @@
     public List<MesTransferOrderPrint> queryOrderPrintByOrderId(String orderId) {
         return baseMapper.queryOrderPrintByOrderId(orderId);
     }
+
+    @Override
+    public MesTransferOrderPrint queryByOrderCode(String orderCode) {
+        LambdaQueryWrapper<MesTransferOrderPrint> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(MesTransferOrderPrint::getWorkOrderCode, orderCode);
+        wrapper.eq(MesTransferOrderPrint::getDelFlag, CommonConstant.DEFAULT_0);
+        List<MesTransferOrderPrint> list = super.list(wrapper);
+        if(CollectionUtil.isNotEmpty(list)) {
+            return list.get(0);
+        }
+        return null;
+    }
 }
diff --git a/src/main/java/org/jeecg/modules/wms/request/WMSWebServiceSendItem.java b/src/main/java/org/jeecg/modules/wms/request/WMSWebServiceSendItem.java
index 99a8010..2e527e0 100644
--- a/src/main/java/org/jeecg/modules/wms/request/WMSWebServiceSendItem.java
+++ b/src/main/java/org/jeecg/modules/wms/request/WMSWebServiceSendItem.java
@@ -44,7 +44,7 @@
     /** 棰勭暀鍙� */
     @XmlElement(name = "ReservationOrder")
     private String reservationOrder;
-    /** 瀵归綈鏂瑰紡 */
+    /** MES绉诲簱鍗曞彿 */
     @XmlElement(name = "Align")
     private String align;
     /** 鎵樺彿 */
diff --git a/src/main/java/org/jeecg/modules/wms/service/impl/MESWebServiceSoapImpl.java b/src/main/java/org/jeecg/modules/wms/service/impl/MESWebServiceSoapImpl.java
index 8e69a64..31ce6f0 100644
--- a/src/main/java/org/jeecg/modules/wms/service/impl/MESWebServiceSoapImpl.java
+++ b/src/main/java/org/jeecg/modules/wms/service/impl/MESWebServiceSoapImpl.java
@@ -7,11 +7,20 @@
 import org.jeecg.common.constant.ApiLogCategoryEnum;
 import org.jeecg.modules.base.entity.LineSideWarehouse;
 import org.jeecg.modules.base.service.ILineSideWarehouseService;
+import org.jeecg.modules.lsw.entity.LswMaterial;
 import org.jeecg.modules.lsw.entity.LswMaterialInbound;
+import org.jeecg.modules.lsw.entity.LswMaterialInventory;
+import org.jeecg.modules.lsw.entity.LswMaterialOutbound;
 import org.jeecg.modules.lsw.service.ILswMaterialInboundService;
+import org.jeecg.modules.lsw.service.ILswMaterialInventoryService;
+import org.jeecg.modules.lsw.service.ILswMaterialOutboundService;
+import org.jeecg.modules.lsw.service.ILswMaterialService;
 import org.jeecg.modules.mes.entity.MesMaterialTransferRequest;
+import org.jeecg.modules.mes.entity.MesTransferOrderPrint;
 import org.jeecg.modules.mes.enums.MaterialTransferRequestStatus;
+import org.jeecg.modules.mes.enums.TransferOrderStatusEnum;
 import org.jeecg.modules.mes.service.IMesMaterialTransferRequestService;
+import org.jeecg.modules.mes.service.IMesTransferOrderPrintService;
 import org.jeecg.modules.wms.dto.WSResponse;
 import org.jeecg.modules.wms.request.ReceiveWMSScanItemList;
 import org.jeecg.modules.wms.request.WMSWebServiceSendItem;
@@ -40,6 +49,14 @@
     private ILineSideWarehouseService lineSideWarehouseService;
     @Autowired
     private ILswMaterialInboundService materialInboundService;
+    @Autowired
+    private IMesTransferOrderPrintService transferOrderPrintService;
+    @Autowired
+    private ILswMaterialOutboundService materialOutboundService;
+    @Autowired
+    private ILswMaterialInventoryService materialInventoryService;
+    @Autowired
+    private ILswMaterialService materialService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -55,7 +72,6 @@
             response.setErrorDesc("浼犲叆鐨勫弬鏁颁负绌猴紒");
             return response;
         }
-        String errorCode = "N";
         int errorCount = 0;
         int successCount = 0;
         StringBuilder errorMsg = new StringBuilder();
@@ -65,23 +81,23 @@
                 MesMaterialTransferRequest transferRequest = materialTransferRequestService.queryByReservationCode(item.getReservationOrder());
                 if (transferRequest == null) {
                     errorCount++;
-                    errorMsg.append("鏍规嵁棰勭暀鍙穂").append(item.getReservationOrder()).append("]鏈壘鍒扮墿鏂欐媺鍔ㄥ崟锛�");
+                    errorMsg.append("鏍规嵁棰勭暀鍙穂").append(item.getReservationOrder()).append("]鏈壘鍒扮墿鏂欐媺鍔ㄥ崟锛乗n");
                     continue;
                 }
                 LineSideWarehouse warehouse = lineSideWarehouseService.getById(transferRequest.getTargetWarehouseId());
-                if(warehouse == null || !warehouse.getWarehouseCode().equals(item.getDestSection())) {
+                if (warehouse == null || !warehouse.getWarehouseCode().equals(item.getDestSection())) {
                     errorCount++;
-                    errorMsg.append("绾胯竟搴揫").append(item.getDestSection()).append("]鏈壘鍒帮紒");
+                    errorMsg.append("绾胯竟搴揫").append(item.getDestSection()).append("]鏈壘鍒帮紒\n");
                     continue;
                 }
-                if(!transferRequest.getMaterialNumber().equals(item.getSkuCode())) {
+                if (!transferRequest.getMaterialNumber().equals(item.getSkuCode())) {
                     errorCount++;
-                    errorMsg.append("鐗╂枡缂栧彿[").append(item.getSkuCode()).append("]涓嶅尮閰嶏紒");
+                    errorMsg.append("鐗╂枡缂栧彿[").append(item.getSkuCode()).append("]涓嶅尮閰嶏紒\n");
                     continue;
                 }
-                if(StringUtils.isBlank(item.getTrackLot())) {
+                if (StringUtils.isBlank(item.getTrackLot())) {
                     errorCount++;
-                    errorMsg.append("鎵规鍙穂").append(item.getTrackLot()).append("]涓嶈兘涓虹┖锛�");
+                    errorMsg.append("鎵规鍙穂").append(item.getTrackLot()).append("]涓嶈兘涓虹┖锛乗n");
                     continue;
                 }
                 transferRequest.setRequestStatus(MaterialTransferRequestStatus.CHECKED_IN.name());
@@ -99,17 +115,78 @@
                 inbound.setQuantity(item.getQuantity());
                 inbound.setFactoryId(warehouse.getFactoryId());
                 boolean b = materialInboundService.inboundMaterial(inbound);
-                if(!b) {
+                if (!b) {
                     errorCount++;
-                    errorMsg.append("棰勭暀鍙穂").append(item.getReservationOrder()).append("]鍏ュ簱澶辫触锛�");
+                    errorMsg.append("棰勭暀鍙穂").append(item.getReservationOrder()).append("]鍏ュ簱澶辫触锛乗n");
                     continue;
                 }
                 //鏇存柊鐗╂枡鎷夊姩鍗�
                 materialTransferRequestService.updateById(transferRequest);
+                successCount++;
             } else if (StringUtils.isNotBlank(item.getAlign())) {
                 //绉诲簱鍗曞洖璋�
+                MesTransferOrderPrint transferOrder = transferOrderPrintService.queryByOrderCode(item.getAlign());
+                if (transferOrder == null) {
+                    errorCount++;
+                    errorMsg.append("绉诲簱鍗昜").append(item.getAlign()).append("]涓嶅瓨鍦紒\n");
+                    continue;
+                }
+                LswMaterialInventory inventory = materialInventoryService.getById(item.getMesStockID());
+                if (inventory == null) {
+                    errorCount++;
+                    errorMsg.append("搴撳瓨淇℃伅[").append(item.getMesStockID()).append("]涓嶅瓨鍦紒\n");
+                    continue;
+                }
+                LswMaterial material = materialService.queryByMaterialNumber(item.getSkuCode());
+                if(material == null) {
+                    errorCount++;
+                    errorMsg.append("鐗╂枡缂栧彿[").append(item.getSkuCode()).append("]涓嶅瓨鍦紒\n");
+                    continue;
+                }
+                LineSideWarehouse warehouse = lineSideWarehouseService.getById(transferOrder.getOriginalWarehouseId());
+                if (warehouse == null || !warehouse.getWarehouseCode().equals(item.getDestSection())) {
+                    errorCount++;
+                    errorMsg.append("绾胯竟搴揫").append(item.getDestSection()).append("]鏈壘鍒帮紒\n");
+                    continue;
+                }
+                //绉诲簱鍗曟洿鏀�
+                transferOrder.setOrderStatus(TransferOrderStatusEnum.COMPLETED.name());
+                //鎴愬搧鍑哄簱
+                LswMaterialOutbound outbound = new LswMaterialOutbound();
+                outbound.setBatchNumber(inventory.getBatchNumber());
+                outbound.setQuantity(item.getQuantity());
+                outbound.setMaterialNumber(material.getMaterialNumber());
+                outbound.setMaterialName(material.getMaterialName());
+                outbound.setInventoryId(inventory.getId());
+                outbound.setWarehouseId(transferOrder.getOriginalWarehouseId());
+                outbound.setFactoryId(warehouse.getFactoryId());
+                outbound.setOutboundStaff("WMS");
+                boolean b = materialOutboundService.outboundMaterial(outbound);
+                if (!b) {
+                    errorCount++;
+                    errorMsg.append("绉诲簱鍗昜").append(item.getAlign()).append("]鍑哄簱澶辫触锛乗n");
+                    continue;
+                }
+                transferOrderPrintService.updateById(transferOrder);
+                successCount++;
             }
         }
+        //澶勭悊杩斿洖缁撴灉
+        if (errorCount > 0) {
+            response.setErrorCode("N");
+            if (successCount > 0) {
+                String msg = "鎴愬姛鎵ц" + successCount + "鏉★紝澶辫触" + errorCount + "鏉★紒\n";
+                errorMsg.insert(0, msg);
+            } else {
+                String msg = "澶辫触" + errorCount + "鏉★紒\n";
+                errorMsg.insert(0, msg);
+            }
+            response.setErrorDesc(errorMsg.toString());
+        } else {
+            response.setErrorCode("Y");
+            String msg = "鎴愬姛鎵ц" + successCount + "鏉★紒\n";
+            response.setErrorDesc(msg);
+        }
         return response;
     }
 }
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 39078aa..e46bd8d 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -306,5 +306,5 @@
 xhj:
   factoryCode: 2301
   orderType: Z001
-  productionManager: 010
+  productionManager: 012
   orderStatus: REL
\ No newline at end of file

--
Gitblit v1.9.3