From 5336bfc54525253a30f1f8238806d3a67f388e14 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期五, 21 十一月 2025 15:12:03 +0800
Subject: [PATCH] 优化接口,增加字段等

---
 项目代码/BigScreen/src/router/index.js                                                   |    2 
 项目代码/WMS/WMSServices/WIDESEA_OutboundService/OutStockLockInfoService.cs              |    6 
 项目代码/WMS/WMSServices/WIDESEA_OutboundService/OutLineViewService.cs                   |    7 
 项目代码/WCS/WCSServices/WIDESEAWCS_DTO/MESResponse.cs                                   |   27 +
 项目代码/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs              |   28 +
 项目代码/WMS/WMSServices/WIDESEA_IInboundService/IMESProInOrderInfoService.cs            |    6 
 项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs                       |   51 ++
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/ConveyorLineJob_CPH.cs                     |   87 +---
 项目代码/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutMESOrder.cs                 |   12 
 项目代码/WMS/WMSServices/WIDESEA_External/Model/MESDeliveryModel.cs                      |    4 
 项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs                  |    4 
 项目代码/WMS/WMSServices/WIDESEA_Model/Models/TaskInfo/Dt_Task.cs                        |   21 +
 项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs                       |  120 ++++++
 项目代码/WMS/WMSServices/WIDESEA_InboundService/MESProInOrderInfoService.cs              |  117 +++----
 项目代码/WMS/WMSServices/WIDESEA_WMSServer/Controllers/MES/MesController.cs              |    4 
 项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/SGOutOrderDTO.cs                                |   12 
 项目代码/WMS/WMSServices/WIDESEA_WMSServer/appsettings.json                              |    2 
 项目代码/WCS/WCSServices/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs                           |    8 
 项目代码/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrderDetail.cs            |    6 
 项目代码/WCS/WCSServices/WIDESEAWCS_Common/APIEnum/APIEnum.cs                            |    7 
 项目代码/BigScreen/package-lock.json                                                     |   12 
 项目资料/接口协议/龙利得MES接口.xlsx                                                              |    0 
 项目代码/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_MaterielInfo.cs                   |    6 
 项目代码/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrder.cs                  |    6 
 项目代码/WMS/WMSServices/WIDESEA_StockService/StockInfoService.cs                        |    5 
 项目代码/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderService.cs                    |   50 ++
 项目代码/WMS/WMSServices/WIDESEA_DTO/MES/MESReturnIssueDTO.cs                            |   21 
 项目代码/WMS/WMSServices/WIDESEA_DTO/Task/WMSTaskDTO.cs                                  |    8 
 项目代码/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutStockLockInfo.cs            |    6 
 项目代码/BigScreen/src/api/ajax.js                                                       |    4 
 项目代码/WMS/WMSServices/WIDESEA_DTO/Basic/ERPMaterialDTO.cs                             |    7 
 项目代码/BigScreen/src/views/indexLine.vue                                               |  198 ++---------
 项目代码/WMS/WMSServices/WIDESEA_Common/OrderEnum/OutboundOrderMenu.cs                   |    7 
 项目代码/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Outbound/OutLineViewController.cs |    6 
 项目代码/WCS/WCSServices/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs                     |   16 +
 项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs                 |   52 +++
 项目代码/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs                     |    6 
 37 files changed, 585 insertions(+), 356 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/BigScreen/package-lock.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/BigScreen/package-lock.json"
index 5a9ef9b..6fc1e6f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/BigScreen/package-lock.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/BigScreen/package-lock.json"
@@ -2349,11 +2349,6 @@
         "fastq": "^1.6.0"
       }
     },
-    "@popperjs/core": {
-      "version": "npm:@sxzz/popperjs-es@2.11.7",
-      "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
-      "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
-    },
     "@sideway/address": {
       "version": "4.1.5",
       "resolved": "https://registry.npmmirror.com/@sideway/address/-/address-4.1.5.tgz",
@@ -7396,6 +7391,13 @@
         "lodash-unified": "^1.0.2",
         "memoize-one": "^6.0.0",
         "normalize-wheel-es": "^1.2.0"
+      },
+      "dependencies": {
+        "@popperjs/core": {
+          "version": "npm:@sxzz/popperjs-es@2.11.7",
+          "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
+          "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
+        }
       }
     },
     "element-ui": {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/BigScreen/src/api/ajax.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/BigScreen/src/api/ajax.js"
index 9390aa5..b63f08b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/BigScreen/src/api/ajax.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/BigScreen/src/api/ajax.js"
@@ -1,8 +1,8 @@
 // 杩欎釜鏃禷xios鐨勯厤缃�
 import axios from 'axios';
 // import { config } from 'vue/types/umd';
-axios.defaults.baseURL = 'http://192.168.2.155:8099'; //'http://192.168.2.155:8099'; 
-
+//axios.defaults.baseURL = 'http://127.0.0.1:9293'; 
+axios.defaults.baseURL = 'http://192.168.35.3:9283'; 
 // 閿欒淇℃伅澶勭悊
 const  errorHandle = (status, other) => {
   switch (status) {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/BigScreen/src/router/index.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/BigScreen/src/router/index.js"
index 8f9b734..224d9f9 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/BigScreen/src/router/index.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/BigScreen/src/router/index.js"
@@ -4,7 +4,7 @@
 Vue.use(VueRouter)
 
 const routes = [{
-  path: '/line',
+  path: '/',
   name: 'indexLine',
   component: () => import('../views/indexLine.vue')
 },
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/BigScreen/src/views/indexLine.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/BigScreen/src/views/indexLine.vue"
index cb43c38..75d0137 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/BigScreen/src/views/indexLine.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/BigScreen/src/views/indexLine.vue"
@@ -24,7 +24,7 @@
                     font-size: 50px;
                     font-weight: bold;
                     color: #90EE90;
-                  ">绔嬪簱杈撻�佽建閬撳師绾镐俊鎭紙鍏� 鍗凤級</span>
+                  ">绔嬪簱杈撻�佽建閬撳師绾镐俊鎭紙鍏眥{showMsg}}鍗凤級</span>
                             //鏃堕棿
                             <div style="position: absolute; right: 20px;">
                                 <p style="
@@ -64,6 +64,7 @@
     data() {
         return {
             timing: null,
+            timeRequest: null,
             loading: true,
             dateDay: null,
             dateYear: null,
@@ -82,139 +83,22 @@
                 ],
                 data: [
                     [
-                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
-                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
-                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
-                        '<span style="color:#FF4500; font-size:75px;">1</span>',
-                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
-                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
-                        '<span style="color:#FF4500; font-size:75px;">180</span>',
+                        '<span style="color:#FF4500; font-size:60px;">705010</span>',
+                        '<span style="color:#FF4500; font-size:60px;">015004</span>',
+                        '<span style="color:#FF4500; font-size:60px;">X2</span>',
+                        '<span style="color:#FF4500; font-size:60px;">1</span>',
+                        '<span style="color:#FF4500; font-size:60px;">1200</span>',
+                        '<span style="color:#FF4500; font-size:60px;;">4798</span>',
+                        '<span style="color:#FF4500; font-size:60px;">180</span>',
                     ],
                     [
-                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
-                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
-                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
-                        '<span style="color:#FF4500; font-size:75px;">2</span>',
-                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
-                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
-                        '<span style="color:#FF4500; font-size:75px;">180</span>',
-                    ],
-                    [
-                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
-                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
-                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
-                        '<span style="color:#FF4500; font-size:75px;">3</span>',
-                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
-                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
-                        '<span style="color:#FF4500; font-size:75px;">180</span>',
-                    ],
-                    [
-                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
-                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
-                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
-                        '<span style="color:#FF4500; font-size:75px;">4</span>',
-                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
-                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
-                        '<span style="color:#FF4500; font-size:75px;">180</span>',
-                    ],
-                    [
-                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
-                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
-                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
-                        '<span style="color:#FF4500; font-size:75px;">5</span>',
-                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
-                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
-                        '<span style="color:#FF4500; font-size:75px;">180</span>',
-                    ],
-                    [
-                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
-                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
-                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
-                        '<span style="color:#FF4500; font-size:75px;">6</span>',
-                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
-                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
-                        '<span style="color:#FF4500; font-size:75px;">180</span>',
-                    ],
-                    [
-                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
-                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
-                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
-                        '<span style="color:#FF4500; font-size:75px;">7</span>',
-                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
-                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
-                        '<span style="color:#FF4500; font-size:75px;">180</span>',
-                    ],
-                    [
-                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
-                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
-                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
-                        '<span style="color:#FF4500; font-size:75px;">8</span>',
-                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
-                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
-                        '<span style="color:#FF4500; font-size:75px;">180</span>',
-                    ],
-                    [
-                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
-                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
-                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
-                        '<span style="color:#FF4500; font-size:75px;">9</span>',
-                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
-                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
-                        '<span style="color:#FF4500; font-size:75px;">180</span>',
-                    ],
-                    [
-                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
-                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
-                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
-                        '<span style="color:#FF4500; font-size:75px;">10</span>',
-                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
-                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
-                        '<span style="color:#FF4500; font-size:75px;">180</span>',
-                    ],
-                    [
-                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
-                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
-                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
-                        '<span style="color:#FF4500; font-size:75px;">11</span>',
-                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
-                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
-                        '<span style="color:#FF4500; font-size:75px;">180</span>',
-                    ],
-                    [
-                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
-                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
-                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
-                        '<span style="color:#FF4500; font-size:75px;">12</span>',
-                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
-                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
-                        '<span style="color:#FF4500; font-size:75px;">180</span>',
-                    ],
-                    [
-                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
-                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
-                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
-                        '<span style="color:#FF4500; font-size:75px;">13</span>',
-                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
-                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
-                        '<span style="color:#FF4500; font-size:75px;">180</span>',
-                    ],
-                    [
-                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
-                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
-                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
-                        '<span style="color:#FF4500; font-size:75px;">14</span>',
-                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
-                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
-                        '<span style="color:#FF4500; font-size:75px;">180</span>',
-                    ],
-                    [
-                        '<span style="color:#FF4500; font-size:75px;">705010</span>',
-                        '<span style="color:#FF4500; font-size:75px;">015004</span>',
-                        '<span style="color:#FF4500; font-size:75px;">X2</span>',
-                        '<span style="color:#FF4500; font-size:75px;">15</span>',
-                        '<span style="color:#FF4500; font-size:75px;">1200</span>',
-                        '<span style="color:#FF4500; font-size:75px;;">4798</span>',
-                        '<span style="color:#FF4500; font-size:75px;">180</span>',
+                        '<span style="color:#FF4500; font-size:60px;">705010</span>',
+                        '<span style="color:#FF4500; font-size:60px;">015004</span>',
+                        '<span style="color:#FF4500; font-size:60px;">X2</span>',
+                        '<span style="color:#FF4500; font-size:60px;">2</span>',
+                        '<span style="color:#FF4500; font-size:60px;">1200</span>',
+                        '<span style="color:#FF4500; font-size:60px;;">4798</span>',
+                        '<span style="color:#FF4500; font-size:60px;">180</span>',
                     ],
                 ],
                 headerHeight: 60,
@@ -222,12 +106,12 @@
                 evenRowBGC: "rgba(0, 0, 0, 0.6)",
                 headerBGC: "rgba(0, 0, 0, 0.6)",
                 waitTime: 5000,
-                columnWidth: [350, 350, 200, 200, 250, 250, 350],
+                columnWidth: [380, 380, 180, 200, 200, 250, 250],
                 rowNum: 10,
                 align: ["center", "center", "center", "center", "center", "center", "center"],
             },
             IsDetail: true,
-            OrderCreator: {},
+            showMsg:""
         };
     },
     components: {
@@ -240,10 +124,11 @@
             this.updateTime(); // 姣忕鏇存柊鏃堕棿
         }, 1000);
         this.cancelLoading();
-        // this.GetOrderDetail();
+        this.GetOrderDetail();
     },
     beforeDestroy() {
         clearInterval(this.timing);
+        clearInterval(this.timeRequest);
     },
     methods: {
         // 鏇存柊鍖椾含鏃堕棿
@@ -278,42 +163,51 @@
             }, 1000);
         },
         GetOrderDetail() {
-            axios.post("/api/dt_WorkOrder/getWorkOrderInfo", null, "").then((res) => {
+            axios.post("/api/OutLineView/GetOutLineView", null, "").then((res) => {
                 if (res.data.status) {
                     if (res.data.data == null) {
                         return;
                     }
-                    var sp = '</span>';
+                    this.showMsg=res.data.message
                     var arr = [];
-                    res.data.data.dt_WorkOrderDetail.forEach((x) => {
+                    res.data.data.forEach((x) => {
                         var item = [
-                            '<span style="color:#67e0e3;">' + x.layer + '灞�' + sp,
-                            '<span style="color:#9fe6b8;">' + (x.lj_hight == null ? '鏃犻渶娴嬮噺' : x.lj_hight + 'mm') + sp,
-                            '<span style="color:#fb7503;">' + (x.measure_hight == null ? '鏃犻渶娴嬮噺' : x.measure_hight + 'mm') + sp,
-                            '<span style="color:#fb7503;">' + x.lj_is_tolerance + sp,
+                                '<span style="color:#FF4500; font-size:55px;">'+x.palletCode+'</span>',
+                                '<span style="color:#FF4500; font-size:55px;">'+x.orderNo+'</span>',
+                                '<span style="color:#FF4500; font-size:55px;">'+x.materielCode+'</span>',
+                                '<span style="color:#FF4500; font-size:55px;">'+x.machineName+'</span>',
+                                '<span style="color:#FF4500; font-size:55px;">'+x.materialWide+'</span>',
+                                '<span style="color:#FF4500; font-size:55px;;">'+x.originalQuantity+'</span>',
+                                '<span style="color:#FF4500; font-size:55px;">'+x.orderQuantity+'</span>',
                         ];
                         arr.push(item);
                     });
-                    this.OrderCreator = res.data.data;
                     if (this.IsDetail) {
                         this.config = {
                             header: [
-                                '<span style="font-size:18px;">灞傛暟</span>',
-                                '<span style="font-size:18px;">绱鏍囧噯楗煎帤</span>',
-                                '<span style="font-size:18px;">绱楗煎帤</span>',
-                                '<span style="font-size:18px;">娴嬮珮缁撴灉</span>'
+                            '<span style="font-size:50px;">绾稿嵎鏉$爜</span>',
+                            '<span style="font-size:50px;">宸ュ崟鍙�</span>',
+                            '<span style="font-size:50px;">浠g爜</span>',
+                            '<span style="font-size:50px;">涓婃満浣�</span>',
+                            '<span style="font-size:50px;">瀹藉箙</span>',
+                            '<span style="font-size:50px;">绾稿嵎闀�</span>',
+                            '<span style="font-size:50px;">闇�鐢ㄧ焊闀�</span>'
                             ],
                             data: arr,
-                            waitTime: 10000,
-                            rowNum: 15,
-                            columnWidth: [75, 150, 110, 110],
-                            align: ["center", "center", "center", "center"]
+                            headerHeight: 60,
+                            oddRowBGC: "rgba(0, 0, 0, 0.6)",
+                            evenRowBGC: "rgba(0, 0, 0, 0.6)",
+                            headerBGC: "rgba(0, 0, 0, 0.6)",
+                            waitTime: 5000,
+                            columnWidth: [380, 380, 180, 200, 200, 250, 250],
+                            rowNum: 10,
+                            align: ["center", "center", "center", "center", "center", "center", "center"],
                         };
                     } else {
                         this.$refs["scrollBoard"].updateRows(arr)
                     }
                     if (this.IsDetail) {
-                        setInterval(() => {
+                        this.timeRequest = setInterval(() => {
                             this.GetOrderDetail();
                         }, 10000);
                         this.IsDetail = false;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/APIEnum/APIEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/APIEnum/APIEnum.cs"
index 0ff1873..38f3572 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/APIEnum/APIEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/APIEnum/APIEnum.cs"
@@ -80,6 +80,11 @@
         /// 棰勮皟搴︽帴鍙�
         /// </summary>
         [Description("棰勮皟搴︽帴鍙�")]
-        AGV_CTUScheduleTaskTask
+        AGV_CTUScheduleTaskTask,
+        /// <summary>
+        /// MES灏忚溅鍒拌揪閫氱煡
+        /// </summary>
+        [Description("MES灏忚溅鍒拌揪閫氱煡")]
+        MESAvgArriveNotice
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_DTO/MESResponse.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_DTO/MESResponse.cs"
new file mode 100644
index 0000000..15741a2
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_DTO/MESResponse.cs"
@@ -0,0 +1,27 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_External.Model
+{
+    /// <summary>
+    /// MES杩斿洖
+    /// </summary>
+    public class MESResponse
+    {
+        /// <summary>
+        /// 鎴愬姛缁撴灉
+        /// </summary>
+        public bool Result { get; set; }
+        /// <summary>
+        /// 杩斿洖淇℃伅
+        /// </summary>
+        public string Msg { get; set; }
+        /// <summary>
+        /// 杩斿洖瀵硅薄
+        /// </summary>
+        public bool Obj { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs"
index 7374db6..55d9cf3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs"
@@ -73,5 +73,13 @@
         public string AGVArea { get; set; }
 
         public int PalletType { get; set; }
+        /// <summary>
+        /// MES璁″垝Id
+        /// </summary>
+        public int DispatchPlanId { get; set; }
+        /// <summary>
+        /// 鍔犲伐涓績
+        /// </summary>
+        public string WorkCentreCode { get; set; }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
index 7caa01f..671efc1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
@@ -99,7 +99,11 @@
         //涓婁紶鏉$爜
 
         WebResponseContent MESBoxCodeNotice(string boxCode);
-        WebResponseContent MESAvgArriveNotice(RequestAGVArriveDTO requestAGVArriveDTO);
+        /// <summary>
+        /// 鍒ゆ柇鍏佽鏀捐揣
+        /// </summary>
+        /// <returns></returns>
+        string MESAvgArriveNotice(RequestAGVArriveDTO requestAGVArriveDTO);
 
         /// <summary>
         /// 鍙犵洏鏈虹敵璇风┖鎵樺叆鎴愬搧搴�
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs"
index cd2cc53..d4d2387 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs"
@@ -205,5 +205,21 @@
         [ExporterHeader(DisplayName = "澶囨敞")]
         [SugarColumn(IsNullable = true, Length = 255, ColumnDescription = "澶囨敞")]
         public string Remark { get; set; }
+
+        /// <summary>
+        /// 鍔犲伐涓績缂栫爜
+        /// </summary>
+        [ImporterHeader(Name = "鍔犲伐涓績缂栫爜")]
+        [ExporterHeader(DisplayName = "鍔犲伐涓績缂栫爜")]
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鍔犲伐涓績缂栫爜")]
+        public string WorkCentreCode { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡缂栧彿
+        /// </summary>
+        [ImporterHeader(Name = "MES璁″垝Id")]
+        [ExporterHeader(DisplayName = "MES璁″垝Id")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "MES璁″垝Id")]
+        public int DispatchPlanId { get; set; }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
index 70ebbef..c9d6b61 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
@@ -2,7 +2,9 @@
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
 using System.Text;
+using System.Text.RegularExpressions;
 using WIDESEA_DTO.Agv;
+using WIDESEA_External.Model;
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.Enums;
@@ -70,7 +72,7 @@
                     }
                     else//鍑哄簱鏀捐揣璇锋眰
                     {
-                        var content = PutRequest(task.NextAddress, task.PalletType);
+                        var content = PutRequest(task.NextAddress, task);
                         if (!content.Status)
                         {
                             throw new Exception(content.Message);
@@ -89,7 +91,7 @@
                     }
                     else//鍏ュ簱鏀捐揣璇锋眰
                     {
-                        var content = PutRequest(task.NextAddress, task.TaskNum);
+                        var content = PutRequest(task.NextAddress, task);
                         if (!content.Status)
                         {
                             throw new Exception(content.Message);
@@ -312,7 +314,7 @@
         /// <param name="palletType"></param>
         /// <returns></returns>
         [HttpPost, HttpGet, Route("PutRequest"), AllowAnonymous]
-        public WebResponseContent PutRequest(string code, int taskNum)
+        public WebResponseContent PutRequest(string code, Dt_Task task)
         {
             WebResponseContent content = new WebResponseContent();
             try
@@ -330,14 +332,20 @@
                     {
                         SD_WorkCentreAgvArriveNoticeInfo=new List<AgvArriveNotice> { new AgvArriveNotice()
                         {
-                            DispatchPlanMaterialId=409,
-                            WorkCentreCode="66",
-                            LocationCode="3-ZD-ZJZZ",
-                            CallId="4534c242-27a7-4fb6-86f5-460b09db303d"
+                            DispatchPlanMaterialId=task.DispatchPlanId,
+                            WorkCentreCode=task.WorkCentreCode,
+                            LocationCode=code,
+                            CallId=Guid.NewGuid().ToString().Replace("-","")
                         } }
                     };
-                    WebResponseContent webResponse= _taskService.MESAvgArriveNotice(requestAGVArriveDTO);
-                    if (webResponse.Message.Contains("\"obj\": true"))
+                    MESResponse response = _taskService.MESAvgArriveNotice(requestAGVArriveDTO).DeserializeObject<MESResponse>() ?? throw new Exception("鏈幏鍙栧埌杩斿洖淇℃伅");
+                    if (!response.Result)
+                    {
+                        throw new Exception($"璋冪敤MES灏忚溅鍏佽鏀捐揣鎶ラ敊,MES杩斿洖淇℃伅"+ Regex.Replace(response.Msg, @"\\u([0-9a-fA-F]{4})", match => {
+                            return ((char)Convert.ToInt32(match.Groups[1].Value, 16)).ToString();
+                        }));
+                    }
+                    if (response.Obj)
                     {
                         return content.Error($"鍏佽鍙栨枡");
                     }
@@ -389,7 +397,7 @@
                         bool RequestPut = otherDevice.GetValue<CoveryorDB, bool>(CoveryorDB.C_RequestPut, stationManger.StationDeviceCode);
                         if (!RequestPut)
                         {
-                            otherDevice.SetValue(CoveryorDB.C_InTaskNum, taskNum, stationManger.StationDeviceCode);
+                            otherDevice.SetValue(CoveryorDB.C_InTaskNum, task.TaskNum, stationManger.StationDeviceCode);
                             otherDevice.SetValue(CoveryorDB.C_RequestPut, true, stationManger.StationDeviceCode);
                             Thread.Sleep(1000);
                         }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
index 5ffc5eb..df327ec 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -18,6 +18,7 @@
 using Newtonsoft.Json;
 using SqlSugar;
 using System.Diagnostics.CodeAnalysis;
+using System.Net.Http.Headers;
 using WIDESEA_DTO.Agv;
 using WIDESEAWCS_Common;
 using WIDESEAWCS_Common.APIEnum;
@@ -484,24 +485,54 @@
             }
             return content;
         }
-        public WebResponseContent MESAvgArriveNotice(RequestAGVArriveDTO requestAGVArriveDTO)
+        /// <summary>
+        /// 鍒ゆ柇鍏佽鏀捐揣
+        /// </summary>
+        /// <returns></returns>
+        public string MESAvgArriveNotice(RequestAGVArriveDTO requestAGVArriveDTO)
         {
-            WebResponseContent content = new WebResponseContent();
+            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.MESAvgArriveNotice.ToString());
+
+            string response = Post(apiInfo.ApiAddress, JsonConvert.SerializeObject(requestAGVArriveDTO));
+
+            return response;
+        }
+        public static string Post(string serviceAddress, string requestJson = "", string contentType = "application/json", Dictionary<string, string>? headers = null)
+        {
+            string result = string.Empty;
+            DateTime beginDate = DateTime.Now;
             try
             {
-                string address = AppSettings.Get("WMSApiAddress");
-                if (string.IsNullOrEmpty(address))
+                using (HttpContent httpContent = new StringContent(requestJson))
                 {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒癢MSApi鍦板潃");
+                    httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
+
+                    using HttpClient httpClient = new HttpClient();
+                    httpClient.Timeout = new TimeSpan(0, 0, 30);
+                    string LoginToken = AppSettings.Get("MESLoginToken");
+                    headers = new Dictionary<string, string>
+                    {
+                        //姝e紡
+                        { "LoginToken", LoginToken }
+                    };
+                    if (headers != null)
+                    {
+                        foreach (var header in headers)
+                            httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
+                    }
+                    HttpResponseMessage responseMessage = httpClient.PostAsync(serviceAddress, httpContent).Result;
+                    result = responseMessage.Content.ReadAsStringAsync().Result;
                 }
-                string responseStr = HttpHelper.Post($"{address}/api/Mes/MESAvgArriveNotice", requestAGVArriveDTO.Serialize());
-                return content.OK(responseStr);
+                return result;
             }
-            catch (Exception ex)
+            catch (Exception e)
             {
-                content = WebResponseContent.Instance.Error(ex.Message);
+                throw new Exception(e.Message);
             }
-            return content;
+            finally
+            {
+                Logger.Add(serviceAddress, requestJson == null ? "" : requestJson, result, beginDate);
+            }
         }
         public WebResponseContent CPEmptyInbound(string palletCode,string SourceAddress)
         {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPH.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPH.cs"
index 8ae53f7..1fcf99e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPH.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPH.cs"
@@ -42,7 +42,6 @@
         private readonly IRouterExtension _routerExtension;
         private readonly List<Dt_WarehouseDevice> warehouseDevices;
         private static object lockObj = 0;//
-        private static List<string> strings = new List<string>();
 
         public ConveyorLineJob_CPH(ICacheService cacheService, ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IStationMangerRepository stationMangerRepository, IRouterRepository routerRepository, IRouterService routerService, IRouterExtension routerExtension)
         {
@@ -54,14 +53,6 @@
             _routerRepository = routerRepository;
             _routerService = routerService;
             _routerExtension = routerExtension;
-            //string boxCodes = AppSettings.Get("BoxCodes");
-            //if (!string.IsNullOrEmpty(boxCodes) && strings.Count<=0)
-            //{
-            //    foreach (string s in boxCodes.Split(","))
-            //    {
-            //        strings.Add(s);
-            //    }
-            //}
             string? warehouseDevicesStr = _cacheService.Get<string>(nameof(Dt_WarehouseDevice));
             if (!string.IsNullOrEmpty(warehouseDevicesStr))
             {
@@ -80,19 +71,19 @@
                 if (lockObj.ToString()=="0")
                 {
                     lockObj = 1;
-                    Task task = Task.Run(() =>
+                    Task task = Task.Run(async () =>
                     {
                         try
                         {
-                            while (true)
+                            bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
+                            if (flag && value != null)
                             {
-                                bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
-                                if (flag && value != null)
+                                //鑾峰彇褰撳墠璁惧
+                                OtherDevice device = (OtherDevice)value;
+                                List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StationDeviceCode == device.DeviceCode);
+                                Dt_StationManger? RequestIn = stationMangers.FirstOrDefault(x => x.StationType == StationTypeEnum.StationType_OnlyInbound.ObjToInt());
+                                while (true)
                                 {
-                                    //鑾峰彇褰撳墠璁惧
-                                    OtherDevice device = (OtherDevice)value;
-                                    List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StationDeviceCode == device.DeviceCode);
-                                    Dt_StationManger? RequestIn = stationMangers.FirstOrDefault(x => x.StationType == StationTypeEnum.StationType_OnlyInbound.ObjToInt());
                                     if (RequestIn != null)
                                     {
                                         DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == RequestIn.StationCode && x.DeviceProParamType == nameof(R_CLineCPHDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
@@ -103,47 +94,26 @@
                                             //鐮佸灈鐜嚎璇锋眰浠诲姟 
                                             if (conveyorLineInfoRead != null && (conveyorLineInfoRead.R_State == 2 || conveyorLineInfoRead.R_State == 3) && conveyorLineInfoRead.R_TaskNo <= 0 && !string.IsNullOrEmpty(conveyorLineInfoRead.R_BoxCode) && conveyorLineInfoRead.R_Request == 1)
                                             {
-                                                //WebResponseContent content = _taskService.MESBoxCodeNotice(conveyorLineInfoRead.R_BoxCode);
-                                                ////鍚慦MS璇锋眰浠诲姟
-                                                //if (true)
-                                                //{
 
-                                                //}
-                                                //string[] strings = conveyorLineInfoRead.R_BoxCode.Split("-");
-                                                //if (strings.Length==2)
-                                                //{
                                                 #region todo:涓存椂閫昏緫
-                                                ////鍐欏叆鎵ц鏁版嵁
-                                                //if (strings.FirstOrDefault(x=>x == conveyorLineInfoRead.R_BoxCode)!=null)
-                                                //{
-                                                    device.SetValue(W_CLineCPHDB.W_TaskNo, 100 + 5, RequestIn.StationCode);
-                                                    device.SetValue(W_CLineCPHDB.W_Channel, 14, RequestIn.StationCode);
-                                                    device.SetValue(W_CLineCPHDB.W_Long, 465, RequestIn.StationCode);
-                                                    device.SetValue(W_CLineCPHDB.W_Wide, 375, RequestIn.StationCode);
-                                                    device.SetValue(W_CLineCPHDB.W_High, 690, RequestIn.StationCode);
-                                                    device.SetValue(W_CLineCPHDB.W_TMID, conveyorLineInfoRead.R_BoxCode, RequestIn.StationCode);
-                                                    device.SetValue(W_CLineCPHDB.W_Request, 1, RequestIn.StationCode);
-                                                //    WebResponseContent content = _taskService.MESBoxCodeNotice(conveyorLineInfoRead.R_BoxCode);
-                                                //    if (content.Message.Contains("true"))
-                                                //    {
-                                                //        strings.Remove(conveyorLineInfoRead.R_BoxCode);
-                                                //        WriteInfo(RequestIn.StationName, content.Message);
-                                                //    }
-                                                //    else
-                                                //    {
-                                                //        WriteError(RequestIn.StationName, content.Message);
-                                                //    }
-                                                //}
-                                                //else
-                                                //{
-                                                //    WriteError(RequestIn.StationName, $"鏈壘鍒版潯鐮亄conveyorLineInfoRead.R_BoxCode}鏁版嵁");
-                                                //}
+                                                //鍐欏叆鎵ц鏁版嵁
+                                                device.SetValue(W_CLineCPHDB.W_TaskNo, 100 + 5, RequestIn.StationCode);
+                                                device.SetValue(W_CLineCPHDB.W_Channel, 14, RequestIn.StationCode);
+                                                device.SetValue(W_CLineCPHDB.W_Long, 485, RequestIn.StationCode);
+                                                device.SetValue(W_CLineCPHDB.W_Wide, 460, RequestIn.StationCode);
+                                                device.SetValue(W_CLineCPHDB.W_High, 420, RequestIn.StationCode);
+                                                device.SetValue(W_CLineCPHDB.W_TMID, conveyorLineInfoRead.R_BoxCode, RequestIn.StationCode);
+                                                device.SetValue(W_CLineCPHDB.W_Request, 1, RequestIn.StationCode);
+                                                WebResponseContent content = _taskService.MESBoxCodeNotice(conveyorLineInfoRead.R_BoxCode);
+                                                if (content.Status)
+                                                {
+                                                    WriteInfo(RequestIn.StationName, content.Message);
+                                                }
+                                                else
+                                                {
+                                                    WriteError(RequestIn.StationName, content.Message);
+                                                }
                                                 #endregion
-                                                //}
-                                                //else
-                                                //{
-                                                //    WriteError(RequestIn.StationName, $"鏁版嵁鎴彇閿欒锛歿strings}");
-                                                //}
                                             }
                                         }
                                         else
@@ -151,7 +121,7 @@
                                             WriteError(RequestIn.StationName, $"鏈壘鍒拌澶囧瓙缂栧彿{RequestIn.StationCode}鐨勫崗璁俊鎭�");
                                         }
                                     }
-                                    foreach (var item in stationMangers.Where(x=>x.StationType==StationTypeEnum.StationType_OnlyOutbound.ObjToInt()))
+                                    foreach (var item in stationMangers.Where(x => x.StationType == StationTypeEnum.StationType_OnlyOutbound.ObjToInt()))
                                     {
                                         DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode && x.DeviceProParamType == nameof(R_CLineCPHDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
                                         if (deviceProRead != null)
@@ -171,21 +141,20 @@
                                             }
                                         }
                                     }
-                                    Thread.Sleep(100);
                                 }
                             }
                         }
                         catch (Exception ex)
                         {
-
                             lockObj = 0;
                             WriteError(nameof(ConveyorLineJob_CPH), $"閿欒淇℃伅锛歿ex.Message}");
                         }
-                        
+
                     });
                 }
                 
             }
+            
             return Task.CompletedTask;
         }
     }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/OrderEnum/OutboundOrderMenu.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/OrderEnum/OutboundOrderMenu.cs"
index c950f95..2e29148 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/OrderEnum/OutboundOrderMenu.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/OrderEnum/OutboundOrderMenu.cs"
@@ -50,6 +50,11 @@
         /// 涓�鏈熺敓绠¢鏂�
         /// </summary>
         [Description("涓�鏈熺敓绠¢鏂�")]
-        OutSGPick=1
+        OutSGPick = 1,
+        /// <summary>
+        /// 浜屾湡MES棰嗘枡
+        /// </summary>
+        [Description("浜屾湡MES棰嗘枡")]
+        OutMESPick = 2
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/Basic/ERPMaterialDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/Basic/ERPMaterialDTO.cs"
index 5ece8de..9a3b1bf 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/Basic/ERPMaterialDTO.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/Basic/ERPMaterialDTO.cs"
@@ -85,9 +85,14 @@
         public string WarehouseCode { get; set; }
 
         /// <summary>
-        /// 璁¢噺鍗曚綅锛圞g锛氬崈鍏嬶級
+        /// 璁¢噺鍗曚綅
         /// </summary>
         [PropertyValidate("璁¢噺鍗曚綅锛欿g:鍏枻銆丮锛氱背銆丳cs锛氫釜(鍙�)", NotNullAndEmpty = true)]
         public string Unit { get; set; }
+        /// <summary>
+        /// 璁¢噺鍗曚綅
+        /// </summary>
+        [PropertyValidate("璁¢噺鍗曚綅锛欿g:鍏枻銆丮锛氱背銆丳cs锛氫釜(鍙�)", NotNullAndEmpty = true)]
+        public string AssistUnitCode { get; set; }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/ERP/SGOutOrderDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/ERP/SGOutOrderDTO.cs"
index e6343fa..5143ed0 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/ERP/SGOutOrderDTO.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/ERP/SGOutOrderDTO.cs"
@@ -89,5 +89,17 @@
         /// </summary>
         [PropertyValidate("鐢熶骇宸ュ崟鍙�", NotNullAndEmpty = true)]
         public string OrderId { get; set; }
+
+        /// <summary>
+        /// 宸ュ崟鐢ㄧ焊搴忓彿(涓婃父)
+        /// </summary>
+        [PropertyValidate("宸ュ崟鐢ㄧ焊搴忓彿", NotNullAndEmpty = true)]
+        public int Number { get; set; }
+
+        /// <summary>
+        /// 澶囨敞(涓婃父)
+        /// </summary>
+        [PropertyValidate("宸ュ崟鐢ㄧ焊搴忓彿", NotNullAndEmpty = true)]
+        public string Remark { get; set; }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/MES/MESReturnIssueDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/MES/MESReturnIssueDTO.cs"
index 89bc658..196c8d0 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/MES/MESReturnIssueDTO.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/MES/MESReturnIssueDTO.cs"
@@ -14,22 +14,23 @@
     public class MESReturnIssueDTO
     {
         /// <summary>
-        /// 鍑哄簱鏉ユ簮鏄庣粏ID
-        /// </summary>
-        [PropertyValidate("鍑哄簱鏉ユ簮鏄庣粏ID", NotNullAndEmpty = true)]
-        public int OutDetailId { get; set; }
-
-        /// <summary>
         /// 鍛煎彨Id
         /// </summary>
         [PropertyValidate("鍛煎彨Id", NotNullAndEmpty = true)]
         public string IssueId { get; set; }
 
         /// <summary>
+        /// 鍔犲伐涓績
+        /// </summary>
+        [PropertyValidate("鍔犲伐涓績", NotNullAndEmpty = true)]
+        public string MakeCode { get; set; }
+
+        /// <summary>
         /// 鍛ㄨ浆浣嶇疆缂栧彿
         /// </summary>
         [PropertyValidate("鍛ㄨ浆浣嶇疆缂栧彿", NotNullAndEmpty = true)]
         public string PointCode { get; set; }
+
         /// <summary>
         /// 浣欐枡淇℃伅
         /// </summary>
@@ -62,10 +63,10 @@
         [PropertyValidate("閫�鏂欐暟閲�", NotNullAndEmpty = true)]
         public decimal ReturnQuantity { get; set; }
         /// <summary>
-        /// 鏄惁棰嗘枡锛�1鏈鏂� 0宸蹭复鏂欙級
+        /// 鏄惁棰嗘枡锛�1鏈鏂� 0宸查鏂欙級
         /// </summary>
-        [PropertyValidate("鏄惁棰嗘枡锛�1鏈鏂� 0宸蹭复鏂欙級", NotNullAndEmpty = true)]
-        public string Whether { get; set; }
+        [PropertyValidate("鏄惁棰嗘枡锛�1鏈鏂� 0宸查鏂欙級", NotNullAndEmpty = true)]
+        public int Whether { get; set; }
         /// <summary>
         /// 閫�鏂欏伐鍗曞彿(ERP鐩稿叧)
         /// </summary>
@@ -75,7 +76,7 @@
         /// 鐩村緞
         /// </summary>
         [PropertyValidate("鐩村緞", NotNullAndEmpty = true)]
-        public string Thickness { get; set; }
+        public decimal Thickness { get; set; }
         /// <summary>
         /// 骞呭
         /// </summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/Task/WMSTaskDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/Task/WMSTaskDTO.cs"
index b9873cb..c6e515e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/Task/WMSTaskDTO.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/Task/WMSTaskDTO.cs"
@@ -85,6 +85,14 @@
         /// 
         /// </summary>
         public int PalletType { get; set; }
+        /// <summary>
+        /// MES璁″垝Id
+        /// </summary>
+        public int DispatchPlanId { get; set; }
+        /// <summary>
+        /// 鍔犲伐涓績
+        /// </summary>
+        public string WorkCentreCode { get; set; }
 
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/Model/MESDeliveryModel.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/Model/MESDeliveryModel.cs"
index e0aab7f..f42d71a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/Model/MESDeliveryModel.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/Model/MESDeliveryModel.cs"
@@ -35,7 +35,7 @@
         /// <summary>
         /// 鏁伴噺
         /// </summary>
-        public int MainQuantity { get; set; }
+        public decimal MainQuantity { get; set; }
         /// <summary>
         /// 杈呭崟浣嶇紪鐮�
         /// </summary>
@@ -47,7 +47,7 @@
         /// <summary>
         /// 浠撳簱缂栫爜
         /// </summary>
-        public string StockInfoCode { get; set; }
+        public string StockInfoCode { get; set; } = "CKDA003";
         /// <summary>
         /// 鎵瑰彿
         /// </summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IMESProInOrderInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IMESProInOrderInfoService.cs"
index e583a36..f31d84b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IMESProInOrderInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IMESProInOrderInfoService.cs"
@@ -15,12 +15,10 @@
     {
         IMESProInOrderInfoRepository Repository { get; }
         /// <summary>
-        /// 鎴愬搧/鍗婃垚鍝佷俊鎭悓姝ユ帴鍙�
-        /// </summary>
-        WebResponseContent ReceiveProCodeInfo(List<MESProInDTO> proInDTOs);
-        /// <summary>
         /// MES宸ュ崟鍋滄鎺ュ彛
         /// </summary>
         WebResponseContent ReceiveProOrderStop(MESOrderStopDTO orderStopDTO);
+
+        WebResponseContent MESBoxCode(string boxCode);
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/MESProInOrderInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/MESProInOrderInfoService.cs"
index 755c45e..4096a29 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/MESProInOrderInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/MESProInOrderInfoService.cs"
@@ -3,6 +3,7 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
+using System.Text.RegularExpressions;
 using System.Threading.Tasks;
 using WIDESEA_Common.MaterielEnum;
 using WIDESEA_Common.OrderEnum;
@@ -11,6 +12,8 @@
 using WIDESEA_Core.BaseServices;
 using WIDESEA_Core.Helper;
 using WIDESEA_DTO.MES;
+using WIDESEA_External.MESService;
+using WIDESEA_External.Model;
 using WIDESEA_IBasicRepository;
 using WIDESEA_IInboundRepository;
 using WIDESEA_IInboundService;
@@ -24,75 +27,15 @@
         private readonly IBasicRepository _basicRepository;
         private readonly IAGVStationInfoRepository _agvStationInfoRepository;
         private readonly IMapper _mapper;
-        public MESProInOrderInfoService(IMESProInOrderInfoRepository BaseDal,IBasicRepository basicRepository,IMapper mapper, IAGVStationInfoRepository agvStationInfoRepository) : base(BaseDal)
+        private readonly IInvokeMESService _invokeMESService;
+        public MESProInOrderInfoService(IMESProInOrderInfoRepository BaseDal,IBasicRepository basicRepository,IMapper mapper, IAGVStationInfoRepository agvStationInfoRepository,IInvokeMESService invokeMESService) : base(BaseDal)
         {
             _basicRepository = basicRepository;
             _mapper = mapper;
             _agvStationInfoRepository = agvStationInfoRepository;
+            _invokeMESService = invokeMESService;
         }
 
-        /// <summary>
-        /// 鎴愬搧/鍗婃垚鍝佷俊鎭悓姝ユ帴鍙�
-        /// </summary>
-        public WebResponseContent ReceiveProCodeInfo(List<MESProInDTO> proInDTOs)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                if (proInDTOs==null || proInDTOs.Count<=0)
-                {
-                    return content.Error("浼犲叆淇℃伅涓虹┖");
-                }
-                //鑾峰彇鎵�鏈夋垚鍝侊紝鍗婃垚鍝佷俊鎭�
-                List<Dt_MESProInOrderInfo> proInOrderInfos = BaseDal.QueryData();
-                //鑾峰彇鎵�鏈夌墿鏂欎俊鎭�
-                List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(x => x.MaterielInvOrgId == MaterielInvOrgEnum.鏂板巶.ObjToInt());
-                
-                MESProInDTO? CheckMaterialCode = proInDTOs.FirstOrDefault(x => !materielInfos.Select(x => x.MaterielCode).Contains(x.MaterialCode));
-                if (CheckMaterialCode != null)
-                {
-                    return content.Error($"鐗╂枡缂栫爜{nameof(MESProInDTO.MaterialCode)}:{CheckMaterialCode.MaterialCode}淇℃伅涓嶅瓨鍦�");
-                }
-                //鑾峰彇鎵�鏈堿GV鐐逛綅
-                List<Dt_AGVStationInfo> aGVStationInfos = _agvStationInfoRepository.QueryData(x => !string.IsNullOrEmpty(x.MESPointCode));
-                
-                //鍒ゆ柇鏄惁瀛樺湪閲嶅
-                MESProInDTO? proInDTO = proInDTOs.FirstOrDefault(x=>x.IsMantissa==false && proInOrderInfos.Select(x=>x.BarCode).Contains(x.BarCode));
-                if (proInDTO!=null)
-                {
-                    return content.Error($"{proInDTO.ProductOrderNo}鐢熶骇宸ュ崟{proInDTO.BarCode}鏉$爜宸插瓨鍦�");
-                }
-                Dt_MESProInOrderInfo? proInOrderInfo = proInOrderInfos.FirstOrDefault(x=>x.MESProInStatus==InOrderStatusEnum.鍏抽棴.ObjToInt() && proInDTOs.Select(x=>x.ProductOrderNo).Distinct().Contains(x.ProductOrderNo));
-                if (proInOrderInfo != null)
-                {
-                    return content.Error($"{proInOrderInfo.ProductOrderNo}鐢熶骇宸ュ崟宸插叧闂�");
-                }
-                List<Dt_MESProInOrderInfo> AddMESProInOrders = new List<Dt_MESProInOrderInfo>();
-                foreach (var item in proInDTOs)
-                {
-                    Dt_MaterielInfo materielInfo = materielInfos.FirstOrDefault(x=>x.MaterielCode== item.MaterialCode);
-                    if (materielInfo.MaterielSourceType!=MaterielTypeEnum.鎴愬搧.ObjToInt())
-                    {
-                        Dt_AGVStationInfo? CheckPointCode = aGVStationInfos.FirstOrDefault(x=>x.MESPointCode==item?.PointCode);
-                        if (CheckPointCode == null)
-                        {
-                            return content.Error($"鍛ㄨ浆浣峽nameof(MESReturnIssueDTO.PointCode)}{item?.PointCode}涓嶅瓨鍦�,浠呮垚鍝佺墿鏂欏彲涓嶄紶");
-                        }
-                    }
-                    Dt_MESProInOrderInfo AddproInOrderInfo = _mapper.Map<Dt_MESProInOrderInfo>(item);
-                    AddproInOrderInfo.WarehouseId = materielInfo.WarehouseId;
-                    AddproInOrderInfo.MESProOrderType = materielInfo.MaterielSourceType;
-                    AddMESProInOrders.Add(AddproInOrderInfo);
-                }
-                BaseDal.AddData(AddMESProInOrders);
-                content.OK("鎺ユ敹鎴愬姛");
-            }
-            catch (Exception ex)
-            {
-                content.Error(ex.Message);
-            }
-            return content;
-        }
         /// <summary>
         /// MES宸ュ崟鍋滄鎺ュ彛
         /// </summary>
@@ -107,14 +50,14 @@
                     return content.Error("浼犲叆淇℃伅涓嶈兘涓虹┖");
                 }
                 //鑾峰彇瀵瑰簲鍗曟嵁
-                List<Dt_MESProInOrderInfo>? mESProInOrderInfos = BaseDal.QueryData(x => x.ProductOrderNo == orderStopDTO.ProductOrderNo && x.MESProInStatus != OutOrderStatusEnum.鍏抽棴.ObjToInt());
+                List<Dt_MESProInOrderInfo>? mESProInOrderInfos = BaseDal.QueryData(x => x.ProductOrderNo == orderStopDTO.ProductOrderNo && x.MESProInStatus != InOrderStatusEnum.鍏抽棴.ObjToInt());
                 if (mESProInOrderInfos == null || mESProInOrderInfos.Count <= 0)
                 {
                     return content.Error($"鎴愬搧鎴栧崐鎴愬搧宸ュ崟{nameof(MESOrderStopDTO.ProductOrderNo)}{orderStopDTO.ProductOrderNo}涓嶅瓨鍦ㄦ垨宸插叧闂�");
                 }
                 mESProInOrderInfos.ForEach(x =>
                 {
-                    x.MESProInStatus = OutOrderStatusEnum.鍏抽棴.ObjToInt();
+                    x.MESProInStatus = InOrderStatusEnum.鍏抽棴.ObjToInt();
                 });
                 BaseDal.UpdateData(mESProInOrderInfos);
                 content.OK($"宸ュ崟{nameof(MESOrderStopDTO.ProductOrderNo)}{orderStopDTO.ProductOrderNo}鍋滄鎴愬姛");
@@ -125,5 +68,49 @@
             }
             return content;
         }
+        /// <summary>
+        /// MES宸ュ崟鍋滄鎺ュ彛
+        /// </summary>
+        /// <summary>
+        public WebResponseContent MESBoxCode(string boxCode)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                if (boxCode.IsNullOrEmpty())
+                {
+                    return content.Error("浼犲叆淇℃伅涓嶈兘涓虹┖");
+                }
+                //鑾峰彇瀵瑰簲鍗曟嵁
+                Dt_MESProInOrderInfo mESProInOrderInfo = BaseDal.QueryFirst(x => x.BarCode == boxCode);
+                if (mESProInOrderInfo == null)
+                {
+                    return content.Error($"鎴愬搧鏉$爜{boxCode}涓嶅瓨鍦�");
+                }
+                if (mESProInOrderInfo.MESProInStatus==InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt())
+                {
+                    return content.Error($"鎴愬搧鏉$爜{boxCode}宸插叆搴�");
+                }
+                mESProInOrderInfo.MESProInStatus = InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt();
+                MESResponse response = _invokeMESService.MESBoxCodeNotice(boxCode).DeserializeObject<MESResponse>() ?? throw new Exception("鏈幏鍙栧埌MES杩斿洖淇℃伅");
+                if (!response.Result)
+                {
+                    throw new Exception($"MES閰嶉�佸嚭鍙戞帴鍙h皟鐢ㄦ姤閿�,MES杩斿洖淇℃伅{DecodeUnicode(response.Msg)}");
+                }
+                BaseDal.UpdateData(mESProInOrderInfo);
+                content.OK($"鎴愬搧鏉$爜{boxCode}鎵爜鍏ュ簱");
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+        public static string DecodeUnicode(string input)
+        {
+            return Regex.Replace(input, @"\\u([0-9a-fA-F]{4})", match => {
+                return ((char)Convert.ToInt32(match.Groups[1].Value, 16)).ToString();
+            });
+        }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_MaterielInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_MaterielInfo.cs"
index cfb31f2..d116aef 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_MaterielInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_MaterielInfo.cs"
@@ -96,6 +96,12 @@
         public string MaterielUnit { get; set; }
 
         /// <summary>
+        /// 杈呭崟浣�
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "杈呭崟浣�")]
+        public string AssistUnitCode { get; set; }
+
+        /// <summary>
         /// 鐗╂枡鐘舵��(0:绂佺敤銆�1:鍙敤)
         /// </summary>
         [SugarColumn(IsNullable = false, ColumnDescription = "鐗╂枡鐘舵��(0:绂佺敤銆�1:鍙敤)")]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutMESOrder.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutMESOrder.cs"
index 92d5ac5..7f38ba1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutMESOrder.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutMESOrder.cs"
@@ -120,6 +120,18 @@
         public decimal OutTotalUsage { get; set; }
 
         /// <summary>
+        /// 鍩烘湰鍗曚綅
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鍩烘湰鍗曚綅")]
+        public string MaterielUnit { get; set; }
+
+        /// <summary>
+        /// 杈呭崟浣�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "杈呭崟浣�")]
+        public string AssistUnitCode { get; set; }
+
+        /// <summary>
         /// 澶囨敞
         /// </summary>
         [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "澶囨敞")]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrder.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrder.cs"
index feed1bd..60d83f3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrder.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrder.cs"
@@ -55,6 +55,12 @@
         public string ShortName { get; set; }
 
         /// <summary>
+        /// 宸ュ崟鐢ㄧ焊搴忓彿
+        /// </summary>
+        [SugarColumn(IsNullable = false,  ColumnDescription = "宸ュ崟鐢ㄧ焊搴忓彿")]
+        public int Number { get; set; }
+
+        /// <summary>
         /// 鍑哄簱鍗曠姸鎬�
         /// </summary>
         [SugarColumn(IsNullable = false, ColumnDescription = "鍑哄簱鍗曠姸鎬�")]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrderDetail.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrderDetail.cs"
index dcdb75d..fa425d3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrderDetail.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrderDetail.cs"
@@ -111,6 +111,12 @@
         public string MaterialName { get; set; }
 
         /// <summary>
+        /// 澶囨敞(涓婃父)
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "澶囨敞(涓婃父)")]
+        public string Remark { get; set; }
+
+        /// <summary>
         /// 鍑哄簱鍗曟槑缁嗙姸鎬�
         /// </summary>
         [SugarColumn(IsNullable = false, ColumnDescription = "鍑哄簱鍗曟槑缁嗙姸鎬�")]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutStockLockInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutStockLockInfo.cs"
index 75cc711..1e1cc51 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutStockLockInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutStockLockInfo.cs"
@@ -106,6 +106,12 @@
         public string Unit { get; set; }
 
         /// <summary>
+        /// 杈呭崟浣�
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "杈呭崟浣�")]
+        public string AssistUnit { get; set; }
+
+        /// <summary>
         /// 鏈哄彴浣嶇疆
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDescription = "鏈哄彴浣嶇疆")]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/TaskInfo/Dt_Task.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/TaskInfo/Dt_Task.cs"
index e9c7f02..38cd103 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/TaskInfo/Dt_Task.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/TaskInfo/Dt_Task.cs"
@@ -142,6 +142,7 @@
         [ExporterHeader(DisplayName = "浠诲姟涓嬪彂鏃堕棿")]
         [SugarColumn(IsNullable = true, ColumnDescription = "浠诲姟涓嬪彂鏃堕棿")]
         public DateTime? Dispatchertime { get; set; }
+
         /// <summary>
         /// 浠诲姟缁�
         /// </summary>
@@ -149,6 +150,7 @@
         [ExporterHeader(DisplayName = "浠诲姟缁�")]
         [SugarColumn(IsNullable = true, ColumnDescription = "浠诲姟缁�")]
         public string GroupId { get; set; }
+
         /// <summary>
         /// 浠诲姟鐗╂枡闀垮害
         /// </summary>
@@ -156,6 +158,7 @@
         [ExporterHeader(DisplayName = "浠诲姟鐗╂枡闀垮害")]
         [SugarColumn(IsNullable = true, ColumnDescription = "浠诲姟鐗╂枡闀垮害")]
         public int TaskLength { get; set; }
+
         /// <summary>
         /// 澶囨敞
         /// </summary>
@@ -163,6 +166,7 @@
         [ExporterHeader(DisplayName = "澶囨敞")]
         [SugarColumn(IsNullable = true, Length = 255, ColumnDescription = "澶囨敞")]
         public string Remark { get; set; }
+
         /// <summary>
         /// 鐗╂枡缂栧彿
         /// </summary>
@@ -170,6 +174,23 @@
         [ExporterHeader(DisplayName = "鐗╂枡缂栧彿")]
         [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鐗╂枡缂栧彿")]
         public string MaterielCode { get; set; }
+
+        /// <summary>
+        /// 鍔犲伐涓績缂栫爜
+        /// </summary>
+        [ImporterHeader(Name = "鍔犲伐涓績缂栫爜")]
+        [ExporterHeader(DisplayName = "鍔犲伐涓績缂栫爜")]
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鍔犲伐涓績缂栫爜")]
+        public string WorkCentreCode { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡缂栧彿
+        /// </summary>
+        [ImporterHeader(Name = "MES璁″垝Id")]
+        [ExporterHeader(DisplayName = "MES璁″垝Id")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "MES璁″垝Id")]
+        public int DispatchPlanId { get; set; }
+
         /// <summary>
         /// 鐗╂枡鏁伴噺
         /// </summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutLineViewService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutLineViewService.cs"
index 29ca532..055f04e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutLineViewService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutLineViewService.cs"
@@ -4,9 +4,11 @@
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEA_Common.TaskEnum;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseRepository;
 using WIDESEA_Core.BaseServices;
+using WIDESEA_Core.Helper;
 using WIDESEA_IBasicRepository;
 using WIDESEA_IOutboundRepository;
 using WIDESEA_IOutboundService;
@@ -37,8 +39,9 @@
             try
             {
                 //鑾峰彇鏁版嵁
-                List<Dt_OutLineView> lineViews = BaseDal.QueryData();
-
+                List<Dt_OutLineView> lineViews = BaseDal.QueryData().OrderBy(x=>x.CreateDate).ToList();
+                int taskCount = BaseDal.Db.Queryable<Dt_Task>().Where(x=>x.TaskType==TaskTypeEnum.OldYLOutbound.ObjToInt() && x.TaskStatus==TaskStatusEnum.Line_Executing.ObjToInt()).Count(); 
+                content.OK($"{taskCount}", lineViews);
             }
             catch (Exception ex)
             {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderService.cs"
index 6c40d09..14554e5 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderService.cs"
@@ -20,6 +20,9 @@
 using WIDESEA_Common.WareHouseEnum;
 using WIDESEA_Core.Helper;
 using System.Reflection;
+using System.Text.RegularExpressions;
+using Microsoft.AspNetCore.Http;
+using HslCommunication;
 
 namespace WIDESEA_OutboundService
 {
@@ -51,12 +54,12 @@
                 //鑾峰彇鎵�鏈夋帓绋嬪崟
                 List<Dt_OutSGOrder> outSGOrders = BaseDal.Db.Queryable<Dt_OutSGOrder>().Includes(x => x.Details).ToList();
                 List<Dt_OutSGOrderDetail> outSGOrderDetails= outSGOrders.SelectMany(x=>x.Details).ToList();
-                //鍒ゆ柇鍗曟嵁
-                Dt_OutSGOrderDetail? ExistAddOutOrderDetail = outSGOrderDetails.FirstOrDefault(x => outOrderDTOs.Select(t => t.BoardMpsDetailId).Distinct().Contains(x.BoardMpsDetailId));
-                if (ExistAddOutOrderDetail != null)
-                {
-                    return content.Error($"鍑哄簱鎺掔▼鏄庣粏{nameof(SGOutOrderDTO.BoardMpsDetailId)}:{ExistAddOutOrderDetail.BoardMpsDetailId}宸插瓨鍦�");
-                }
+                ////鍒ゆ柇鍗曟嵁
+                //Dt_OutSGOrderDetail? ExistAddOutOrderDetail = outSGOrderDetails.FirstOrDefault(x => outOrderDTOs.Select(t => t.BoardMpsDetailId).Distinct().Contains(x.BoardMpsDetailId));
+                //if (ExistAddOutOrderDetail != null)
+                //{
+                //    return content.Error($"鍑哄簱鎺掔▼鏄庣粏{nameof(SGOutOrderDTO.BoardMpsDetailId)}:{ExistAddOutOrderDetail.BoardMpsDetailId}宸插瓨鍦�");
+                //}
                 //鑾峰彇鎵�鏈夌墿鏂�
                 List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(x => x.WarehouseId == WarehouseEnum.LLDYL.ObjToInt() && x.MaterielInvOrgId == MaterielInvOrgEnum.鑰佸巶.ObjToInt() && x.MaterialSourceId != 0);
                 SGOutOrderDTO? sGOutOrderDTO = outOrderDTOs.FirstOrDefault(x => !materielInfos.Select(x => x.MaterielCode).Contains(x.MaterialNo));
@@ -66,15 +69,28 @@
                     return content.Error($"鐢熶骇鎺掔▼{sGOutOrderDTO.OrderId}鐗╂枡:{sGOutOrderDTO.MaterialNo}涓嶅瓨鍦�");
                 }
                 List<Dt_OutSGOrder> AddOutSGOrders = new List<Dt_OutSGOrder>();
-                foreach (var item in outOrderDTOs)
+                foreach (var item in outOrderDTOs.OrderBy(x=>x.Number))
                 {
                     //鑾峰彇宸ュ崟
                     Dt_OutSGOrder? ExistOutSGOrder = AddOutSGOrders.FirstOrDefault(x => x.OrderId == item.OrderId);
-                    //鑾峰彇鐗╂枡
-                    Dt_MaterielInfo materielInfo = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterialNo);
+                    
                     //鏄庣粏鎻愬墠杞崲
                     Dt_OutSGOrderDetail outSGOrderDetail = _mapper.Map<Dt_OutSGOrderDetail>(item);
+                    //鑾峰彇鐗╂枡
+                    Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterialNo);
+                    string code = ExtractFirstPercentContent(outSGOrderDetail.Remark);
+                    //澶勭悊鐗规畩鎸囧畾鎺掔▼鍒ゆ柇
+                    if (!code.IsNullOrEmpty() && code.StartsWith(outSGOrderDetail.MaterialNo))
+                    {
+                        materielInfo = materielInfos.FirstOrDefault(x => x.MaterielCode == code);
+                        if (materielInfo==null)
+                        {
+                            return content.Error($"鐢熶骇鎺掔▼{item.OrderId}鎸囧畾鎺掔▼鐗╂枡:{code}涓嶅瓨鍦�");
+                        }
+                        outSGOrderDetail.MaterialNo = code;
+                    }
                     outSGOrderDetail.MaterialName = materielInfo.MaterielName;
+                    
                     //鍒ゆ柇宸ュ崟鏄惁宸茬粡瀛樺湪
                     if (ExistOutSGOrder != null)
                     {
@@ -82,7 +98,6 @@
                     }
                     else
                     {
-
                         Dt_OutSGOrder outSGOrder = _mapper.Map<Dt_OutSGOrder>(item);
                         outSGOrder.Details = new List<Dt_OutSGOrderDetail>() { outSGOrderDetail };
                         AddOutSGOrders.Add(outSGOrder);
@@ -97,5 +112,20 @@
             }
             return content;
         }
+        public static string ExtractFirstPercentContent(string input)
+        {
+            if (string.IsNullOrEmpty(input))
+                return null;
+
+            Regex regex = new Regex(@"%(.*?)%");
+            Match match = regex.Match(input);
+
+            if (match.Success && match.Groups[1].Success)
+            {
+                return match.Groups[1].Value.Trim();
+            }
+
+            return null;
+        }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutStockLockInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutStockLockInfoService.cs"
index 293bc15..1a663c2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutStockLockInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutStockLockInfoService.cs"
@@ -75,20 +75,22 @@
                 PalletCode = outStock.PalletCode,
                 AssignQuantity = assignQuantity,
                 MaterielCode = ouMESOrder.MaterialCode,
-                BatchNo = ouMESOrder.MaterialLot,
+                BatchNo = outStock.BatchNo,
                 LocationCode = outStock.LocationCode,
                 MaterielName = outStock.MaterielName,
                 OrderDetailId = ouMESOrder.OutDetailId,
                 OrderNo = ouMESOrder.OutMESOrderNo,
                 MakeCode = ouMESOrder.MakeCode,
                 MachineName=ouMESOrder.MakeArea.ToString(),
+                OrderType=OutOrderTypeEnum.OutMESPick.ObjToInt(),
                 MaterielId = outStock.MaterielId,
                 OriginalQuantity = outStock.StockLength,
                 Status = taskNum == null ? OutLockStockStatusEnum.宸插垎閰�.ObjToInt() : OutLockStockStatusEnum.鍑哄簱涓�.ObjToInt(),
                 StockId = outStock.Id,
                 TaskNum = taskNum,
                 OrderQuantity = ouMESOrder.ReqQuantity,
-                Unit = outStock.Unit
+                Unit = outStock.Unit,
+                AssistUnit= ouMESOrder.AssistUnitCode
             };
 
             return outStockLockInfo;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_StockService/StockInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_StockService/StockInfoService.cs"
index 47834ae..247c7aa 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_StockService/StockInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_StockService/StockInfoService.cs"
@@ -155,7 +155,8 @@
                     BSTResponse<BSTStockInfoDTO> bSTResponse = _invokeERPService.BSTStockAsync(item.PalletCode).DeserializeObject<BSTResponse<BSTStockInfoDTO>>();
                     if (bSTResponse.Code == 500)
                     {
-                        throw new Exception($"鏈壘鍒版潯鐮亄item.PalletCode}涓�鏈烢RP搴撳瓨涓嶅瓨鍦�");
+                        content.Message += $"鏉$爜{item.PalletCode}涓�鏈烢RP搴撳瓨涓嶅瓨鍦�,";
+                        continue;
                     }
                     BSTStockInfoDTO bSTStockInfoDTO = bSTResponse.Data ?? throw new Exception($"涓�鏈烢RP鏈繑鍥瀧item.PalletCode}鐨勫簱瀛樹俊鎭�");
                     if (item.StockLength != bSTStockInfoDTO.StockMeter && bSTStockInfoDTO.StockMeter>0)
@@ -180,7 +181,7 @@
                     BaseDal.DeleteAndMoveIntoHty(stockInfosDel, App.User.UserId > 0 ? OperateTypeEnum.浜哄伐瀹屾垚 : OperateTypeEnum.鑷姩瀹屾垚);
                 }
                 _unitOfWorkManage.CommitTran();
-                content.OK("鏇存柊鎴愬姛");
+                content.OK();
             }
             catch (Exception ex)
             {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs"
index 95aa5f8..1f47085 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs"
@@ -33,6 +33,8 @@
 using WIDESEA_External.Model;
 using System.Text.Json;
 using System.Text.RegularExpressions;
+using WIDESEA_Common.MaterielEnum;
+using MailKit.Search;
 
 namespace WIDESEA_TaskInfoService
 {
@@ -90,8 +92,8 @@
                         DispatchPlanMaterialId = autoIssueDTO.OutDetailId,
                         InvItemCode = task.MaterielCode,
                         Quantity = outStockLockInfo.AssignQuantity,
-                        SendOutTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"),
-                        ArrivalTime = DateTime.Now.AddMinutes(15).ToString("yyyy-MM-dd hh:mm:ss")
+                        SendOutTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                        ArrivalTime = DateTime.Now.AddMinutes(15).ToString("yyyy-MM-dd HH:mm:ss")
                     };
                     MESDispatchModel dispatchModel = new MESDispatchModel()
                     {
@@ -99,15 +101,15 @@
                     };
                     _unitOfWorkManage.BeginTran();
                     task.TaskStatus = TaskStatusEnum.New.ObjToInt();
-                    task.TargetAddress = stationInfo.AGVStationCode;
+                    task.TargetAddress = autoIssueDTO.PointCode.StartsWith("YS") ? stationInfo.AGVStationCode : autoIssueDTO.PointCode;
                     BaseDal.UpdateData(task);
                     MESResponse mESResponse = _invokeMESService.MESDispatchUp(dispatchModel).DeserializeObject<MESResponse>() ?? throw new Exception("鏈幏鍙栧埌杩斿洖淇℃伅");
                     if (!mESResponse.Result)
                     {
                         throw new Exception($"MES閰嶉�佸嚭鍙戞帴鍙h皟鐢ㄦ姤閿�,MES杩斿洖淇℃伅{DecodeUnicode(mESResponse.Msg)}");
                     }
-                    PushTasksToWCS(new List<Dt_Task> { task });
                     _unitOfWorkManage.CommitTran();
+                    PushTasksToWCS(new List<Dt_Task> { task });
                     return content.OK("鍙枡鎴愬姛");
                 }
             }
@@ -167,8 +169,8 @@
                         DispatchPlanMaterialId = manualIssueDTO.OutDetailId,
                         InvItemCode = task.MaterielCode,
                         Quantity = outStockLockInfo.AssignQuantity,
-                        SendOutTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"),
-                        ArrivalTime = DateTime.Now.AddMinutes(15).ToString("yyyy-MM-dd hh:mm:ss")
+                        SendOutTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                        ArrivalTime = DateTime.Now.AddMinutes(15).ToString("yyyy-MM-dd HH:mm:ss")
                     };
                     MESDispatchModel dispatchModel = new MESDispatchModel()
                     {
@@ -176,15 +178,15 @@
                     };
                     _unitOfWorkManage.BeginTran();
                     task.TaskStatus = TaskStatusEnum.New.ObjToInt();
-                    task.TargetAddress = stationInfo.AGVStationCode;
+                    task.TargetAddress = manualIssueDTO.PointCode.StartsWith("YS") ? stationInfo.AGVStationCode : manualIssueDTO.PointCode;
                     BaseDal.UpdateData(task);
                     MESResponse mESResponse = _invokeMESService.MESDispatchUp(dispatchModel).DeserializeObject<MESResponse>() ?? throw new Exception("鏈幏鍙栧埌杩斿洖淇℃伅");
                     if (!mESResponse.Result)
                     {
                         throw new Exception($"MES閰嶉�佸嚭鍙戞帴鍙h皟鐢ㄦ姤閿�,MES杩斿洖淇℃伅{DecodeUnicode(mESResponse.Msg)}");
                     }
-                    PushTasksToWCS(new List<Dt_Task> { task });
                     _unitOfWorkManage.CommitTran();
+                    PushTasksToWCS(new List<Dt_Task> { task });
                     return content.OK("鍙枡鎴愬姛");
                 }
             }
@@ -216,16 +218,116 @@
                     {
                         return content.Error($"鍛ㄨ浆浣峽nameof(MESReturnIssueDTO.PointCode)}{returnIssueDTO.PointCode}涓嶅瓨鍦�");
                     }
+                    //鑾峰彇鎵�鏈夊簱瀛�
+                    List<Dt_StockInfo> stockInfosOld = _stockRepository.StockInfoRepository.QueryData();
+                    ////绌烘墭
+                    //foreach (var item in returnIssueDTOs.Where(x=>x.ReturnMaterial==null))
+                    //{
 
+                    //}
+                    //閫�鏂�
+                    List<Dt_StockInfo> stockInfos=new List<Dt_StockInfo>();
+                    List<Dt_Task> tasksNew = new List<Dt_Task>();
+                    foreach (var item in returnIssueDTOs.Where(x => x.ReturnMaterial != null))
+                    {
+                        MESReturnMaterial? returnMaterial = item.ReturnMaterial;
+                        if (returnMaterial.BarCode.IsNullOrEmpty())
+                        {
+                            return content.Error($"閫�鏂欎紶鍏ユ潯鐮佷笉鑳戒负绌�");
+                        }
+
+                        Dt_AGVStationInfo aGVStationInfo = aGVStationInfos.FirstOrDefault(x => x.MESPointCode == item.PointCode);
+                        Dt_MaterielInfo? materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == returnMaterial.MaterialCode);
+                        if (materielInfo == null)
+                        {
+                            return content.Error($"鏈壘鍒版潯鐮亄returnMaterial.BarCode}鐗╂枡淇℃伅");
+                        }
+                        //鍒ゆ柇
+                        if (returnMaterial.Thickness <= 0 && materielInfo.WarehouseId==WarehouseEnum.LLDYL.ObjToInt())
+                        {
+                            return content.Error($"鐗╂枡{returnMaterial.MaterialCode}鏉$爜{returnMaterial.BarCode}鐩村緞涓嶈兘灏忎簬0");
+                        }
+                        if (returnMaterial.Wide <= 0 && materielInfo.WarehouseId == WarehouseEnum.LLDYL.ObjToInt())
+                        {
+                            return content.Error($"鐗╂枡{returnMaterial.MaterialCode}鏉$爜{returnMaterial.BarCode}鐩村緞涓嶈兘灏忎簬0");
+                        }
+                        Dt_StockInfo? stockInfoOld = stockInfosOld.FirstOrDefault(x => x.PalletCode == returnMaterial.BarCode);
+                        if (stockInfoOld != null)
+                        {
+                            return content.Error($"鏉$爜{returnMaterial.BarCode}淇℃伅宸插瓨鍦�");
+                        }
+                        //鐢熸垚搴撳瓨缁勭洏淇℃伅
+                        Dt_StockInfo stockInfo = new Dt_StockInfo()
+                        {
+                            MaterielInvOrgId = materielInfo.MaterielInvOrgId,
+                            PalletCode = returnMaterial.BarCode,
+                            LocationCode = "",
+                            PalletType = 1,
+                            WarehouseId = materielInfo.WarehouseId,
+                            StockAttribute = materielInfo.MaterielSourceType,
+                            StockStatus = StockStatusEmun.MES浣欐枡閫�搴�.ObjToInt(),
+                            MaterielSpec = materielInfo.MaterielSpec,
+                            BatchNo = returnMaterial.MaterialLot,
+                            Unit = materielInfo.MaterielUnit,
+                            MaterielThickness = returnMaterial.Thickness,
+                            MaterielWide = returnMaterial.Wide,
+                            MaterielWeight = returnMaterial.Weight,
+                            MaterielCode = materielInfo.MaterielCode,
+                            StockLength = returnMaterial.ReturnQuantity,
+                            OrderNo = returnMaterial.ReturnOrderNo,
+                            MaterielName = materielInfo.MaterielName,
+                            IsFull = WhetherEnum.True.ObjToInt(),
+                            IsPick = returnMaterial.Whether == 0 ? WhetherEnum.True.ObjToInt() : WhetherEnum.False.ObjToInt(),
+                            Remark = StockStatusEmun.MES浣欐枡閫�搴�.ToString()
+                        };
+                        if (stockInfo.MaterielWide > 1200)
+                        {
+                            stockInfo.PalletType = 2;
+                        }
+                        stockInfos.Add(stockInfo);
+                        //鐢熸垚浣欐枡閫�鏂欎换鍔�
+                        Dt_Task newTask = new Dt_Task()
+                        {
+                            CurrentAddress = item.PointCode.StartsWith("YS") ? aGVStationInfo.AGVStationCode : item.PointCode,
+                            Grade = 0,
+                            NextAddress = "",
+                            PalletCode = stockInfo.PalletCode,
+                            Roadway = "",
+                            SourceAddress = item.PointCode.StartsWith("YS") ? aGVStationInfo.AGVStationCode : item.PointCode,
+                            TargetAddress = "",
+                            TaskStatus = TaskStatusEnum.New.ObjToInt(),
+                            WarehouseId = materielInfo.WarehouseId,
+                            PalletType = stockInfo.PalletType,
+                            MaterielCode=stockInfo.MaterielCode,
+                            Quantity=stockInfo.StockLength,
+                            OrderNo=stockInfo.OrderNo,
+                            TaskLength = (int)stockInfo.MaterielWide,
+                            GroupId= item.IssueId,
+                            WorkCentreCode=item.MakeCode
+                        };
+                        TaskTypeEnum taskTypeEnum = aGVStationInfo.StationArea switch
+                        {
+                            nameof(StationAreaEnum.涓�妤煎嵃鍒�) => TaskTypeEnum.PrintYLBackInbound,
+                            _ => throw new Exception("鏈壘鍒板搴斾换鍔�")
+                        };
+                        newTask.TaskType = taskTypeEnum.ObjToInt();
+                        tasksNew.Add(newTask);
+                    }
+                    _unitOfWorkManage.BeginTran();
+                    BaseDal.AddData(tasksNew);
+                    _stockRepository.StockInfoRepository.AddData(stockInfos);
+                    _unitOfWorkManage.CommitTran();
+                    //鎺ㄩ�佷换鍔�
+                    PushTasksToWCS(tasksNew);
                     content.OK("鍛煎彨鎴愬姛");
                 }
             }
             catch (Exception ex)
             {
+                _unitOfWorkManage.RollbackTran();
                 content.Error(ex.Message);
             }
             return content;
         }
-        
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
index 721cf23..c02eb9c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
@@ -1605,6 +1605,10 @@
                             return content.Error($"鍛ㄨ浆浣峽nameof(MESReturnIssueDTO.PointCode)}{item?.PointCode}涓嶅瓨鍦�,浠呮垚鍝佺墿鏂欏彲涓嶄紶");
                         }
                     }
+                    if (materielInfo.MaterielSourceType == MaterielTypeEnum.鎴愬搧.ObjToInt() && (item.Length <= 0 || item.Width <= 0 || item.Height<=0))
+                    {
+                        return content.Error($"绠辩爜{item.ProPackCode}锛岄暱搴�/瀹藉害/楂樺害涓嶈兘涓�0");
+                    }
                     Dt_MESProInOrderInfo AddproInOrderInfo = _mapper.Map<Dt_MESProInOrderInfo>(item);
                     AddproInOrderInfo.WarehouseId = materielInfo.WarehouseId;
                     AddproInOrderInfo.MESProOrderType = materielInfo.MaterielSourceType;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
index d06a1c4..bc8997a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
@@ -25,6 +25,7 @@
 using WIDESEA_DTO.MES;
 using WIDESEA_DTO.Outbound;
 using Microsoft.IdentityModel.Tokens;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
 
 namespace WIDESEA_TaskInfoService
 {
@@ -189,7 +190,22 @@
                                 x.Status=OutLockStockStatusEnum.鍑哄簱瀹屾垚.ObjToInt();
                             });
                             _outboundRepository.OutStockLockInfoRepository.UpdateData(outStockLockInfos);
-                            _outboundService.OutLineViewService.SaveLineView(outStockLockInfos);
+                            List<Dt_OutStockLockInfo> outStockLockInfosSG = outStockLockInfos.Where(x => x.OrderType == OutOrderTypeEnum.OutSGPick.ObjToInt()).ToList();
+                            List<Dt_OutStockLockInfo> outStockLockInfosMES = outStockLockInfos.Where(x => x.OrderType == OutOrderTypeEnum.OutMESPick.ObjToInt()).ToList();
+                            if (outStockLockInfosSG !=null && outStockLockInfosSG.Count()>0)
+                            {
+                                _outboundService.OutLineViewService.SaveLineView(outStockLockInfosSG);
+                            }
+                            if (outStockLockInfosMES != null && outStockLockInfosMES.Count() > 0)
+                            {
+                                Dt_AGVStationInfo aGVStationInfo = _basicRepository.AGVStationInfoRepository.QueryFirst(x=>x.AGVStationCode==task.TargetAddress);
+                                MESDeliveryModel mESDeliveryModel = MESDeliveryUp(outStockLockInfosMES, aGVStationInfo.MESPointCode);
+                                MESResponse response = _invokeMESService.MESDelivery(mESDeliveryModel).DeserializeObject<MESResponse>() ?? throw new Exception("鏈幏鍙栧埌杩斿洖淇℃伅");
+                                if (!response.Result)
+                                {
+                                    throw new Exception($"MES閰嶉�佸嚭鍙戞帴鍙h皟鐢ㄦ姤閿�,MES杩斿洖淇℃伅{DecodeUnicode(response.Msg)}");
+                                }
+                            }
                         }
                         _basicService.LocationInfoService.UpdateLocationStatus(locationInfoStart, stockInfo.PalletType, LocationStatusEnum.Free, stockInfo.WarehouseId);
                         BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.浜哄伐瀹屾垚 : OperateTypeEnum.鑷姩瀹屾垚);
@@ -207,6 +223,34 @@
                 _unitOfWorkManage.RollbackTran();
                 return content.Error(ex.Message);
             }
+        }
+        /// <summary>
+        /// 閰嶉�侀�佽揪淇℃伅
+        /// </summary>
+        /// <returns></returns>
+        public MESDeliveryModel MESDeliveryUp(List<Dt_OutStockLockInfo> outStockLockInfos,string address)
+        {
+            MESDeliveryModel mESDeliveryModel = new MESDeliveryModel()
+            {
+                PRO_DispatchPlanMaterialsInfoNew= new List<MESDeliveryInfo>()
+            };
+            foreach (var item in outStockLockInfos)
+            {
+                MESDeliveryInfo mESDeliveryInfo = new MESDeliveryInfo()
+                {
+                    InvItemCode=item.MaterielCode,
+                    DispatchPlanMaterialId=item.OrderDetailId,
+                    UnitCode=item.Unit,
+                    GradeCode="001",
+                    MainQuantity=item.AssignQuantity,
+                    AssistUnitCode=item.AssistUnit,
+                    LocationCode= address,
+                    LotNumber=item.BatchNo,
+                    MaterialBarCode=item.PalletCode
+                };
+                mESDeliveryModel.PRO_DispatchPlanMaterialsInfoNew.Add(mESDeliveryInfo);
+            }
+            return mESDeliveryModel;
         }
         /// <summary>
         /// 搴撳瓨鏁版嵁杞嚭搴撲换鍔�(鍘熸枡/鍗婃垚鍝�)
@@ -294,7 +338,9 @@
                             MaterielCode = stockInfo.MaterielCode,
                             RfidCode = stockInfo.RfidCode,
                             Quantity = stockInfo.StockLength,
-                            OrderNo= outStockLockInfo.OrderNo
+                            OrderNo= outStockLockInfo.OrderNo,
+                            DispatchPlanId=outStockLockInfo.OrderDetailId,
+                            WorkCentreCode=outStockLockInfo.MakeCode
                         };
                         if (stockInfo.MaterielWide > 0)
                         {
@@ -842,6 +888,8 @@
                     Dt_MakeCenterInfo makeCenterInfo=makeCenterInfos.FirstOrDefault(x => x.MakeCode == item.MakeCode);
                     item.MakeArea = makeCenterInfo.MakeArea;
                     item.WarehouseId = materielInfo.WarehouseId;
+                    item.MaterielUnit = materielInfo.MaterielUnit;
+                    item.AssistUnitCode = materielInfo.AssistUnitCode;
                 }
                 
                 _unitOfWorkManage.BeginTran();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/MES/MesController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/MES/MesController.cs"
index 9a43bd8..e7d6612 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/MES/MesController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/MES/MesController.cs"
@@ -144,9 +144,9 @@
         /// <param name="boxCode"></param>
         /// <returns></returns>
         [HttpPost,HttpGet, Route("MESBoxCodeNotice"), AllowAnonymous]
-        public string MESBoxCodeNotice(string boxCode)
+        public WebResponseContent MESBoxCodeNotice(string boxCode)
         {
-            return _invokeMESService.MESBoxCodeNotice(boxCode);
+            return _proInOrderInfoService.MESBoxCode(boxCode);
         }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Outbound/OutLineViewController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Outbound/OutLineViewController.cs"
index 8b6850a..8d68782 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Outbound/OutLineViewController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Outbound/OutLineViewController.cs"
@@ -1,4 +1,5 @@
-锘縰sing Microsoft.AspNetCore.Mvc;
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseController;
 using WIDESEA_IOutboundService;
@@ -7,7 +8,7 @@
 namespace WIDESEA_WMSServer.Controllers.Outbound
 {
     /// <summary>
-    /// 鍗氭�濋�氶鏂欎俊鎭�
+    /// 鍑哄簱绾夸綋缂撳瓨
     /// </summary>
     [Route("api/OutLineView")]
     [ApiController]
@@ -20,6 +21,7 @@
         /// 鑾峰彇绾夸綋鍘熺焊
         /// </summary>
         /// <returns></returns>
+        [HttpPost, HttpGet, Route("GetOutLineView"), AllowAnonymous]
         public WebResponseContent GetOutLineView()
         {
             return Service.GetOutLineView();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/appsettings.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/appsettings.json"
index bf60794..0c8bd96 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/appsettings.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/appsettings.json"
@@ -30,7 +30,7 @@
   "LogAopEnable": false,
   "PrintSql": true, //鎵撳嵃SQL璇彞
   "ApiName": "WIDESEA",
-  "ExpMinutes": 120,
+  "ExpMinutes": 360,
   "QuartzJobAutoStart": true,
   "PDAVersion": "4",
   "WebSocketPort": 9296
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227MES\346\216\245\345\217\243.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227MES\346\216\245\345\217\243.xlsx"
index 13da281..683739a 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227MES\346\216\245\345\217\243.xlsx"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227MES\346\216\245\345\217\243.xlsx"
Binary files differ

--
Gitblit v1.9.3