From c862dd0756111a4264666f7e7636a5a062cce806 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期五, 19 四月 2024 09:11:56 +0800
Subject: [PATCH] 修改MES接口,优化托盘更换逻辑

---
 代码管理/WMS/WMS_Server/WIDESEA_Comm/MES_Info/BasicSN.cs                             |   21 ++++
 代码管理/PCS/WCS_Client/src/api/http.js                                              |    2 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/OutboundTask.cs                  |    2 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/StationTask.cs                   |   16 +++
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs                                 |    8 +
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs                    |   57 ++++++----
 代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_inventory.cs           |   10 +
 代码管理/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvMoveWarehousePara.cs        |    7 +
 代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/ReplaceTray.cs                   |    5 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/GetStation/EmptyPalletStation.cs |   37 ++++++
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs |    7 
 代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_inventory.cs           |   10 +
 代码管理/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvInWarehousePara.cs          |   10 +
 代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/RestockHCJ.cs                    |    2 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs                         |    1 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs                     |   13 +
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask_Mes.cs                 |   55 ++++++++--
 代码管理/PCS/WCS_Server/WIDESEA_WebApi/appsettings.json                              |    2 
 18 files changed, 205 insertions(+), 60 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/api/http.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/api/http.js"
index 8ecd457..f6b7a14 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/api/http.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/api/http.js"
@@ -12,7 +12,7 @@
 let loadingInstance;
 let loadingStatus = false;
 if (process.env.NODE_ENV == 'development') {
-    axios.defaults.baseURL = 'http://127.0.0.1:8099/';
+    axios.defaults.baseURL = 'http://192.168.12.101:8099/';
 }
 else if (process.env.NODE_ENV == 'debug') {
     axios.defaults.baseURL = 'http://192.168.12.101:8099/';
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_inventory.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_inventory.cs"
index 3d36761..fda9f56 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_inventory.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_inventory.cs"
@@ -138,11 +138,19 @@
         [Editable(true)]
         public string area { get; set; }
         /// <summary>
-        /// 宸ヤ綔浠ゅ彿
+        /// 宸ュ崟缂栧彿
         /// </summary>
         [Display(Name = "宸ュ崟缂栧彿")]
         [Column(TypeName = "nvarchar(40)")]
         [Editable(true)]
         public string jobID { get; set; }
+
+        /// <summary>
+        /// 宸ヤ綔浠ゅ彿
+        /// </summary>
+        [Display(Name = "宸ヤ綔浠ゅ彿")]
+        [Column(TypeName = "nvarchar(40)")]
+        [Editable(true)]
+        public string workOrder { get; set; }
     }
 }
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs"
index db7878e..3efdf48 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs"
@@ -832,8 +832,14 @@
                                 #region 瑙﹀彂NG浠诲姟
                                 var NG = Stations.Where(x => x.enable && x.stationCode == NGStation && x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity > 0).FirstOrDefault();
                                 if (NG != null)
-                                        agvtask(stationinfoRepository, NG, Work, "TaskType_OutsourceInbound");
+                                {
+                                    agvtask(stationinfoRepository, NG, Work, "TaskType_OutsourceInbound");
+                                    continue;
+                                }
+                                    
                                 #endregion
+
+                                Stationinfo = Stations.Where(x => x.enable && x.stationCode == NGStation && x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity == 0).FirstOrDefault();
                             }
                             if (Stationinfo != null)
                             {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs"
index 90d8e64..4a65288 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs"
@@ -23,6 +23,7 @@
             try
             {
                 ExecuteJob(context, DoAction);
+
             }
             catch { }
             return Task.CompletedTask;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs"
index a7325f0..3f299ad 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs"
@@ -264,32 +264,41 @@
                             continue;
 
                         }
-                        var EmptyStation = GetStation.EmptyPalletStation(area);
+
+                        #region 绌烘墭鍙犵洏
+                        var EmptyStations = stationinfoRepository.Find(x => x.stationCode.Contains("DD") && x.quantity < 5 && x.enable).ToList();
+                        var EmptyStation = EmptyStations.Where(x => x.tray_type == station.tray_type && x.location_state == LocationStateEnum.Stroge.ToString()).FirstOrDefault();
+                        if (EmptyStation == null)
+                            EmptyStation = EmptyStations.Where(x => x.location_state == LocationStateEnum.Empty.ToString()).FirstOrDefault();
+                        #endregion
+
+                        if (EmptyStation == null)//鏌ユ壘搴撳唴绌烘墭鐩�
+                            EmptyStation = GetStation.EmptyPalletStation(area);
 
                         #region 鏌ユ壘搴撳尯涓�绌烘墭鐩樼┖璐т綅
-                       // EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains("A") && x.location_state != LocationStateEnum.Busy.ToString() && x.enable)
-                       //.OrderBy(x => x.column).ThenByDescending(x => x.line).FirstOrDefault();//鏌ユ壘娌℃湁浠诲姟鐨勭┖鎵樼洏璐т綅
+                        // EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains("A") && x.location_state != LocationStateEnum.Busy.ToString() && x.enable)
+                        //.OrderBy(x => x.column).ThenByDescending(x => x.line).FirstOrDefault();//鏌ユ壘娌℃湁浠诲姟鐨勭┖鎵樼洏璐т綅
 
-                       // if (EmptyStation != null)
-                       // {
-                       //     if (stationinfoRepository.Find(x => x.area == EmptyStation.area && x.stationCode.Contains("A") && x.column == EmptyStation.column && x.location_state.Contains("Busy")).Any())
-                       //     {
-                       //         EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains("A") && x.column != EmptyStation.column && x.location_state != LocationStateEnum.Busy.ToString() && x.enable).OrderBy(x => x.column).ThenByDescending(x => x.line).FirstOrDefault();//鎺掗櫎褰撳垪瀛樺湪浠诲姟鐨勮揣浣�
-                       //     }
-                       //     if (EmptyStation != null && EmptyStation.line == 2)//濡傛灉浠诲姟瀛樺湪绗簩琛�,鎺掓煡绗竴琛屾槸鍚︽湁璐�
-                       //     {
-                       //         if (stationinfoRepository.Find(x => x.area == EmptyStation.area && x.stationCode.Contains("A") && x.column == EmptyStation.column && x.line == 1 && x.location_state != LocationStateEnum.Empty.ToString()).Any()) EmptyStation = null;
-                       //     }
-                       // }
+                        // if (EmptyStation != null)
+                        // {
+                        //     if (stationinfoRepository.Find(x => x.area == EmptyStation.area && x.stationCode.Contains("A") && x.column == EmptyStation.column && x.location_state.Contains("Busy")).Any())
+                        //     {
+                        //         EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains("A") && x.column != EmptyStation.column && x.location_state != LocationStateEnum.Busy.ToString() && x.enable).OrderBy(x => x.column).ThenByDescending(x => x.line).FirstOrDefault();//鎺掗櫎褰撳垪瀛樺湪浠诲姟鐨勮揣浣�
+                        //     }
+                        //     if (EmptyStation != null && EmptyStation.line == 2)//濡傛灉浠诲姟瀛樺湪绗簩琛�,鎺掓煡绗竴琛屾槸鍚︽湁璐�
+                        //     {
+                        //         if (stationinfoRepository.Find(x => x.area == EmptyStation.area && x.stationCode.Contains("A") && x.column == EmptyStation.column && x.line == 1 && x.location_state != LocationStateEnum.Empty.ToString()).Any()) EmptyStation = null;
+                        //     }
+                        // }
 
-                       // if (EmptyStation == null)
-                       // {
-                       //     EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains(area == "10" ? "D" : "C") && x.location_state == LocationStateEnum.Busy.ToString() && x.enable).OrderByDescending(x => x.column).FirstOrDefault();//鏈�鍚庝竴涓揣浣嶆湁浠诲姟鍒欎笉鑳界敓鎴愬叆搴撲换鍔�
-                       //     if (EmptyStation != null) continue;
-                       //     EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains(area == "10" ? "D" : "C") && x.location_state == LocationStateEnum.Stroge.ToString() && x.enable).OrderByDescending(x => x.column).FirstOrDefault();//鎵炬渶澶栭潰娌″爢婊�5涓殑璐т綅
-                       //     if (EmptyStation == null)
-                       //         EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains(area == "10" ? "D" : "C") && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.column).FirstOrDefault();
-                       // }
+                        // if (EmptyStation == null)
+                        // {
+                        //     EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains(area == "10" ? "D" : "C") && x.location_state == LocationStateEnum.Busy.ToString() && x.enable).OrderByDescending(x => x.column).FirstOrDefault();//鏈�鍚庝竴涓揣浣嶆湁浠诲姟鍒欎笉鑳界敓鎴愬叆搴撲换鍔�
+                        //     if (EmptyStation != null) continue;
+                        //     EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains(area == "10" ? "D" : "C") && x.location_state == LocationStateEnum.Stroge.ToString() && x.enable).OrderByDescending(x => x.column).FirstOrDefault();//鎵炬渶澶栭潰娌″爢婊�5涓殑璐т綅
+                        //     if (EmptyStation == null)
+                        //         EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains(area == "10" ? "D" : "C") && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.column).FirstOrDefault();
+                        // }
 
                         #endregion
 
@@ -364,7 +373,7 @@
                         if (Station.location_state == LocationStateEnum.Stroge.ToString() && PalletSignal != 1)
                         {
                             Station.location_state = LocationStateEnum.Abnormal.ToString();
-                            Station.remark = "璐т綅鏈夎揣锛屽厜鐢垫娴嬫棤鎵樼洏";
+                            Station.remark = "鍏夌數妫�娴嬫棤鎵樼洏";
                             stationinfoRepository.Update(Station, true);
                             client.WriteByOrder("W_AlarmSignal", (Int16)2, name);//鎶ヨ
                             WriteDBLog.Error(name + "鎶ヨ", $"璐т綅缂栧彿锛歿Station.stationCode}锛涢敊璇俊鎭細{Station.remark}", "PCS");
@@ -373,7 +382,7 @@
                         if (Station.location_state == LocationStateEnum.Empty.ToString() && (PalletSignal == 1 || MaterialSignal == 1))//绯荤粺璐т綅涓虹┖锛屽厜鐢垫娴嬫湁鏂�
                         {
                             Station.location_state = LocationStateEnum.Abnormal.ToString();
-                            Station.remark = "璐т綅鏃犺揣锛屽厜鐢垫娴嬫湁鏂�";
+                            Station.remark = "鍏夌數妫�娴嬫湁鏂�";
                             stationinfoRepository.Update(Station, true);
                             client.WriteByOrder("W_AlarmSignal", (Int16)2, name);//鎶ヨ
                             WriteDBLog.Error(name + "鎶ヨ", $"璐т綅缂栧彿锛歿Station.stationCode}锛涢敊璇俊鎭細{Station.remark}", "PCS");
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/GetStation/EmptyPalletStation.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/GetStation/EmptyPalletStation.cs"
index 7a22c19..2a341b7 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/GetStation/EmptyPalletStation.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/GetStation/EmptyPalletStation.cs"
@@ -12,11 +12,34 @@
 using WIDESEA_WCS.WCSClient;
 using WIDESEA_WMS.IRepositories;
 using WIDESEA_WMS.Repositories;
+using static System.Collections.Specialized.BitVector32;
 
 namespace WIDESEA_WCS.JobsPart.Common
 {
     public class GetStation
     {
+        /// <summary>
+        /// 鎵惧彲鍏ュ簱绌烘墭浣�
+        /// </summary>
+        public static void EmptyStation()
+        {
+            try
+            {
+                VOLContext Context = new VOLContext();
+                Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context);
+                Idt_agvtaskRepository agvtaskService = new dt_agvtaskRepository(Context);
+                var Stations = stationinfoRepository.Find(x => x.stationCode.Contains("DD") && x.quantity == 5 && x.enable).ToList();
+                foreach (var Station in Stations)
+                {
+                    var area = Station.tray_type == "SmallTray" ? "11" : "10";
+                }
+            }
+            catch (Exception ex)
+            {
+
+            }
+        }
+
         /// <summary>
         /// 鑾峰彇绌烘墭鐩樿揣浣�
         /// </summary>
@@ -42,14 +65,18 @@
                         EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && x.stationCode == "C01005001"/* && x.location_state == "Stroge"*/ && x.tray_status == "EmptyTray" && x.enable).FirstOrDefault();
                     if (EmptyStation != null)
                         EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && x.area == EmptyStation.area && x.line == EmptyStation.line /*&& x.location_state == "Stroge"*/ && x.tray_status == "EmptyTray" && x.enable).OrderByDescending(x => x.column).FirstOrDefault();
-                    if (EmptyStation != null)
-                        if (EmptyStation.location_state == LocationStateEnum.Busy.ToString()) EmptyStation = null;
+                    if (EmptyStation != null)//绌烘墭璐т綅涓嶄负绌哄垽鏂槸鍚﹀瓨鍦ㄥ叾浠栦换鍔�
+                        if (stationinfoRepository.Find(x => x.line == EmptyStation.line && x.area == EmptyStation.area && x.location_state.Contains("Busy")).Any()) EmptyStation = null;
+                    //if (EmptyStation.location_state == LocationStateEnum.Busy.ToString()) EmptyStation = null;
                 }
                 #endregion
+
+                #region 鏌ユ壘绌烘墭搴撳尯
                 if (EmptyStation == null)
                     EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && x.area == area /*&& x.location_state == "Stroge"*/ && x.tray_status == "EmptyTray" && x.enable).OrderBy(x => x.column).FirstOrDefault();
                 if (EmptyStation != null)
-                    if (EmptyStation.location_state == LocationStateEnum.Busy.ToString()) EmptyStation = null;
+                    if (stationinfoRepository.Find(x => x.line == EmptyStation.line && x.area == EmptyStation.area && x.location_state.Contains("Busy")).Any()) EmptyStation = null;
+                //if (EmptyStation.location_state == LocationStateEnum.Busy.ToString()) EmptyStation = null;
                 if (EmptyStation != null)
                 {
                     var PalletSignal = Pipeline_client.ReadByOrder<Int16>("R_PalletSignal", task.agv_toaddress);//璇诲彇鎵樼洏淇″彿:1:鏈�,2鏃�
@@ -65,6 +92,8 @@
                         WriteDBLog.Success("鏇存柊绌虹洏闃熷垪浠诲姟", $"浠诲姟缂栧彿锛歿task.agv_tasknum}", "PCS");
                     }
                 }
+                #endregion
+
             }
             catch (Exception ex)
             {
@@ -110,7 +139,7 @@
                 Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context);
 
                 #region 鏌ユ壘绌烘墭鐩樺簱鍖�
-                if (stationinfoRepository.Find(x => x.area == area && x.location_state == LocationStateEnum.Busy.ToString()).Any())
+                if (stationinfoRepository.Find(x => x.area == area && x.location_state == LocationStateEnum.Busy.ToString()).Any() && area != "10")
                 {
                     var EmptyStation = stationinfoRepository.Find(x => x.stationCode == "C01005001" && x.location_state == LocationStateEnum.Empty.ToString()).FirstOrDefault();
                     if (EmptyStation != null)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/OutboundTask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/OutboundTask.cs"
index 4f2348c..b1b9430 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/OutboundTask.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/OutboundTask.cs"
@@ -105,7 +105,7 @@
                                     agv_toaddress = "",
                                     agv_userid = "绯荤粺",
                                     bindSN = stationinfo.bindSN,
-                                    jobID = Mes_Work.jobID,
+                                    jobID = Mes_Work.workOrder,
                                     agv_worktype = Convert.ToInt32(Mes_Work.processCode),
                                     agv_materbarcode = Mes_Work.materialCode,
                                     agv_Traytype = stationinfo.tray_type,
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/ReplaceTray.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/ReplaceTray.cs"
index b3837d0..a89959d 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/ReplaceTray.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/ReplaceTray.cs"
@@ -57,9 +57,10 @@
                 VOLContext context = new VOLContext();
                 Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context);
                 Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(context);
-                var stations = stationinfoRepository.Find(x => x.stationCode.Contains("X") && x.location_state == "Abnormal" /*LocationStateEnum.Abnormal.ToString()*/ && (x.tray_type == "SmallTray/LargeTray" || x.tray_type == "LargeTray/SmallTray")).ToList();
+                var stations = stationinfoRepository.Find(x => (x.stationCode.Contains("X")|| x.stationCode.Contains("W01001004") || x.stationCode.Contains("W01001005")) && x.location_state == "Abnormal" /*LocationStateEnum.Abnormal.ToString()*/ && (x.tray_type == "SmallTray/LargeTray" || x.tray_type == "LargeTray/SmallTray") && x.enable).ToList();
                 foreach (var station in stations)
                 {
+                    if (agvtaskRepository.Find(x => x.agv_fromaddress == station.stationCode || x.agv_toaddress == station.stationCode).Any()) continue;
                     var types = station.tray_type.Split('/');
                     var area = types[0] == "SmallTray" ? "11" : "10";
                     //鎵�1搴撳尯鐨勭┖鎵樹綅
@@ -93,6 +94,8 @@
                             agv_Traytype = types[0]
                         };
                         agvtaskRepository.Add(agvtask, true);
+                        station.location_state = LocationStateEnum.Busy.ToString();
+                        stationinfoRepository.Update(EmptyStation, true);
                         EmptyStation.location_state = LocationStateEnum.Busy.ToString();
                         stationinfoRepository.Update(EmptyStation, true);
                         WriteDBLog.Success("鍒涘缓鏇存崲绌虹洏浠诲姟", $"浠诲姟缂栧彿锛歿agvtask.agv_tasknum}", "PCS");
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/RestockHCJ.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/RestockHCJ.cs"
index 863e064..63ce234 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/RestockHCJ.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/RestockHCJ.cs"
@@ -43,7 +43,7 @@
                             if (task.agv_tasknum.Contains("_"))
                             {
                                 string mainTaskNum = task.agv_tasknum.Split('_')[0];
-                                if (agvtaskService.Find(x => x.agv_tasknum == mainTaskNum && (task.agv_taskstate == "Executing1" || task.agv_taskstate == "Complete1")).Any())
+                                if (agvtaskService.Find(x => x.agv_tasknum == mainTaskNum && task.agv_taskstate != "Executing" && task.agv_taskstate != "Create").Any() || !agvtaskService.Find(x => x.agv_tasknum == mainTaskNum).Any())
                                     GetStation.EmptyPalletStation(task);
                             }
                             else
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/StationTask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/StationTask.cs"
index abb0244..45889b7 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/StationTask.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/StationTask.cs"
@@ -393,7 +393,21 @@
             }
             return TargetLocation;
         }
-
+        /// <summary>
+        /// 涓存椂浣跨敤
+        /// </summary>
+        /// <param name="stationinfoRepository"></param>
+        /// <returns></returns>
+        public static dt_stationinfo GetEmptyLocation1(Idt_stationinfoRepository stationinfoRepository)
+        {
+            return stationinfoRepository.Find(x => x.line == 1 && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.area == "3").OrderBy(x => x.column).FirstOrDefault();//琛屽拰鍖哄煙闇�鍐欐
+        }
+        /// <summary>
+        /// 鍘诲鍗�
+        /// </summary>
+        /// <param name="stationinfoRepository"></param>
+        /// <returns></returns>
+        /// <exception cref="Exception"></exception>
         public static dt_stationinfo GetEmptyLocation(Idt_stationinfoRepository stationinfoRepository)
         {
             dt_stationinfo TargetLocation = null;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/appsettings.json" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/appsettings.json"
index 7899d68..2acacfb 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/appsettings.json"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/appsettings.json"
@@ -16,7 +16,7 @@
   "Connection": {
     "DBType": "MsSql", //MySql/MsSql/PgSql  //鏁版嵁搴撶被鍨嬶紝濡傛灉浣跨敤鐨勬槸sqlserver姝ゅ搴旇缃负MsSql
     //sqlserver杩炴帴瀛楃涓睵@ssw0rd
-    "DbConnectionString": "Data Source=.;Initial Catalog=WIDESEA_DB;Persist Security Info=True;User ID=sa;Password=P@ssw0rd;Connect Timeout=500;",
+    "DbConnectionString": "Data Source=192.168.12.101;Initial Catalog=WIDESEA_DB;Persist Security Info=True;User ID=sa;Password=123456;Connect Timeout=500;",
 
     //mysql杩炴帴瀛楃涓�(鍗囩骇EFCore3.1鍒版椂宸插皢mysql杩炴帴瀛楃涓蹭慨鏀�,2019-12-20)
     // "DbConnectionString": " Data Source=127.0.0.1;Database=netcoredev;AllowLoadLocalInfile=true;User ID=root;Password=123456;allowPublicKeyRetrieval=true;pooling=true;CharSet=utf8;port=3306;sslmode=none;",
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/MES_Info/BasicSN.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/MES_Info/BasicSN.cs"
index f47ad93..d7bfa9b 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/MES_Info/BasicSN.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/MES_Info/BasicSN.cs"
@@ -13,8 +13,27 @@
     {
         public class detail
         {
+            /// <summary>
+            /// 杞﹁疆SN鍙�
+            /// </summary>
+            public string sn { get; set; }
+            /// <summary>
+            /// 宸ュ崟鍙�
+            /// </summary>
+            public string jobID { get; set; }
+            /// <summary>
+            /// 宸ュ崟绫诲瀷 (17-鏈哄姞宸� 28-妫�娴嬬嚎)
+            /// </summary>
+            public string processCode { get; set; }
+        }
+
+        public class detail1
+        {
+            /// <summary>
+            /// 杞﹁疆SN鍙�
+            /// </summary>
             public string sn { get; set; }
         }
     }
-   
+
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvInWarehousePara.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvInWarehousePara.cs"
index bce45cc..0e04c06 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvInWarehousePara.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvInWarehousePara.cs"
@@ -11,11 +11,11 @@
         /// <summary>
         /// 宸ュ崟缂栧彿
         /// </summary>
-        public string JobID { get; set; }
+        public string WorkOrder { get; set; }
         /// <summary>
         /// 17-鏈哄姞宸� 28-妫�娴嬬嚎
         /// </summary>
-        public string processCode { get; set; }
+        //public string processCode { get; set; }
 
         /// <summary>
         /// 杞﹁疆淇℃伅
@@ -42,5 +42,11 @@
         /// </summary>
         public int? layerNo { get; set; }
 
+        /// <summary>
+        /// 鎿嶄綔鑰�
+        /// </summary>
+        public string Operator { get; set; }
+
+
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvMoveWarehousePara.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvMoveWarehousePara.cs"
index 018e7ce..094418b 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvMoveWarehousePara.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvMoveWarehousePara.cs"
@@ -14,7 +14,7 @@
         /// <summary>
         /// 杞﹁疆SN
         /// </summary>
-        public List<detail> details { get; set; }
+        public List<detail1> details { get; set; }
 
         /// <summary>
         /// 婧愬簱鎴垮悕绉�
@@ -55,5 +55,10 @@
         /// 鐩爣灞傚彿
         /// </summary>
         public string toLayerNo { get; set;}
+
+        /// <summary>
+        /// 鎿嶄綔鑰�
+        /// </summary>
+        public string Operator { get; set; }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_inventory.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_inventory.cs"
index 3c3ca11..350879b 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_inventory.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_inventory.cs"
@@ -136,11 +136,19 @@
         [Editable(true)]
         public string area { get; set; }
         /// <summary>
-        /// 宸ュ崟缂栧彿/宸ヤ綔浠ゅ彿
+        /// 宸ュ崟缂栧彿
         /// </summary>
         [Display(Name = "宸ュ崟缂栧彿")]
         [Column(TypeName = "nvarchar(40)")]
         [Editable(true)]
         public string jobID { get; set; }
+
+        /// <summary>
+        /// 宸ヤ綔浠ゅ彿
+        /// </summary>
+        [Display(Name = "宸ヤ綔浠ゅ彿")]
+        [Column(TypeName = "nvarchar(40)")]
+        [Editable(true)]
+        public string workOrder { get; set; }
     }
 }
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs"
index d2a3af3..671fc19 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs"
@@ -116,7 +116,8 @@
                         Operator = "admin",
                         stationCode = task.agv_toaddress,
                         area = station.area,
-                        jobID = mes_Work.workOrder,
+                        jobID = mes_Work.jobID,
+                        workOrder = mes_Work.workOrder,
                         ID = Guid.NewGuid()
                     };
                     inventorys.Add(inventory);
@@ -171,7 +172,7 @@
                 ////绌烘墭浠诲姟闇�淇敼閫昏緫
                 if (station2.stationCode.Contains("X"))
                     station2.quantity = 0;// task.agv_tasktype.Contains("TaskType_EmptyPallet") ? 0 : task.agv_qty; //task.agv_qty;
-                else if (station2.area == "10" || station2.area == "11" || (station2.stationCode.Contains("C") && task.agv_tasktype == "TaskType_EmptyPallet")) //鍏ュ簱绌烘墭浠诲姟
+                else if (station2.area == "10" || station2.area == "11" || (station2.stationCode.Contains("C") && task.agv_tasktype == "TaskType_EmptyPallet") || station2.stationCode.Contains("DD")) //鍏ュ簱绌烘墭浠诲姟
                     station2.quantity = station2.quantity + task.agv_qty;
                 else
                     station2.quantity = task.agv_qty;
@@ -198,8 +199,12 @@
                 //else
                 //    station1.quantity = 0;
                 #endregion
-
-                if (station1.area == "10" || station1.area == "11" || (station1.stationCode.Contains("C") && task.agv_tasktype == "TaskType_EmptyPallet")) //鍑哄簱绌烘墭浠诲姟
+                if (station1.stationCode.Contains("DD"))//鍙犵洏搴撲綅
+                {
+                    station1.quantity = station1.quantity - task.agv_qty;
+                    station1.location_state = LocationStateEnum.Stroge.ToString();
+                }
+                else if (station1.area == "10" || station1.area == "11" || (station1.stationCode.Contains("C") && task.agv_tasktype == "TaskType_EmptyPallet")) //鍑哄簱绌烘墭浠诲姟
                 {
                     station1.location_state = LocationStateEnum.Stroge.ToString();
                     station1.quantity = station1.quantity - 1;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask_Mes.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask_Mes.cs"
index fc4e4b0..dddca41 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask_Mes.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask_Mes.cs"
@@ -1,13 +1,17 @@
 锘縰sing Confluent.Kafka;
 using Newtonsoft.Json;
 using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
+using OfficeOpenXml.FormulaParsing.Excel.Operators;
 using WIDESEA_Comm.LogInfo;
 using WIDESEA_Comm.MES_Info;
 using WIDESEA_Comm.MES_Info.Request;
 using WIDESEA_Common;
+using WIDESEA_Core.EFDbContext;
 using WIDESEA_Core.FreeDB;
 using WIDESEA_Entity.DomainModels;
 using WIDESEA_Entity.ToAGV;
+using WIDESEA_WMS.IRepositories;
+using WIDESEA_WMS.Repositories;
 using static WIDESEA_Comm.MES_Info.BasicSN;
 
 namespace WIDESEA_WMS.Common.AGVTask
@@ -34,24 +38,45 @@
                 {
                     throw new Exception("鏃犱换鍔℃暟鎹�");
                 }
-
+                VOLContext context = new VOLContext();
+                IVV_Mes_WorkinfoRepository workinfoRepository = new VV_Mes_WorkinfoRepository(context);
                 if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() /*|| task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceOutbound.ToString()*/|| task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString())
                 {
-                    foreach (var item in task.bindSN.Split(","))
+                    if(task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString())
                     {
-                        detail detail = new detail();
-                        detail.sn = item;
-                        list.Add(detail);
+                        foreach (var item in task.bindSN.Split(","))
+                        {
+                            var work = workinfoRepository.Find(x => x.SN == item && x.processCode == task.agv_worktype.ToString()).FirstOrDefault();
+                            detail detail = new detail();
+                            detail.sn = item;
+                            detail.jobID = work.jobID;
+                            detail.processCode = work.processCode;
+                            list.Add(detail);
+                        }
                     }
+                    else
+                    {
+                        foreach (var item in task.bindSN.Split(","))
+                        {
+                            //var work = workinfoRepository.Find(x => x.SN == item && x.processCode == "28").FirstOrDefault();
+                            detail detail = new detail();
+                            detail.sn = item;
+                            detail.jobID = task.jobID;
+                            detail.processCode = task.agv_worktype.ToString();
+                            list.Add(detail);
+                        }
+                    }
+                    
                     agvInWarehousePara outWarehousePara = new agvInWarehousePara()
                     {
-                        JobID = task.jobID,
+                        WorkOrder = task.jobID,
                         zoneID = task.agv_fromaddress,
-                        processCode = task.agv_worktype.ToString(),
+                        //processCode = task.agv_worktype.ToString(),
                         details = list,
                         layerNo = 1,
                         stackID = "1",
                         warehouseName = "Agv搴�",
+                        Operator="AGV鑷姩",
                     };
                     obj = outWarehousePara;
                     ActionName = "agvOutWarehouse";//AGV->MES杞﹁疆鍑哄簱
@@ -61,19 +86,23 @@
                 {
                     foreach (var item in task.bindSN.Split(","))
                     {
+                        var work = workinfoRepository.Find(x => x.SN == item && x.processCode == task.agv_worktype.ToString()).FirstOrDefault();
                         detail detail = new detail();
                         detail.sn = item;
+                        detail.jobID = work.jobID;
+                        detail.processCode = work.processCode;
                         list.Add(detail);
                     }
                     agvInWarehousePara inWarehousePara = new agvInWarehousePara()
                     {
-                        JobID = task.jobID,
+                        WorkOrder = task.jobID,
                         zoneID = task.agv_toaddress,
-                        processCode = task.agv_worktype.ToString(),
+                        //processCode = task.agv_worktype.ToString(),
                         details = list,
                         layerNo = 1,
                         stackID = "1",
                         warehouseName = "Agv搴�",
+                        Operator = "AGV鑷姩",
                     };
                     obj = inWarehousePara;
                     ActionName = "agvInWarehouse";//AGV->MES杞﹁疆鍏ュ簱
@@ -82,23 +111,25 @@
                 //else if (task.agv_tasktype == "Transfer")  //绉诲簱鍖哄垎  搴撳唴绉诲簱
                 else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Carry.ToString())  //绉诲簱鍖哄垎  搴撳唴绉诲簱
                 {
+                    List<detail1> list1 = new List<detail1>(); //杞﹁疆淇℃伅
                     foreach (var item in task.bindSN.Split(","))
                     {
-                        detail detail = new detail();
+                        detail1 detail = new detail1();
                         detail.sn = item;
-                        list.Add(detail);
+                        list1.Add(detail);
                     }
                     agvMoveWarehousePara moveWarehousePara = new agvMoveWarehousePara()
                     {
                         fromZoneID = task.agv_fromaddress,
                         toZoneID = task.agv_toaddress,
-                        details = list,
+                        details = list1,
                         fromLayerNo = "1",
                         fromStackID = "1",
                         fromWarehouseName = "Agv搴�",
                         toLayerNo = "1",
                         toStackID = "1",
                         toWarehouseName = "Agv搴�",
+                        Operator = "AGV鑷姩",
                     };
                     obj = moveWarehousePara;
                     ActionName = "agvMoveWarehouse";//AGV->MES杞﹁疆绉诲簱
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs"
index ac501a2..abe942d 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs"
@@ -146,7 +146,8 @@
                 station.heatNumber = string.Empty;
                 station.Number = string.Empty;
             }
-            station.tray_status = list.Count == 0 ? "EmptyTray" : "StrogeTray";
+            station.tray_status = string.IsNullOrEmpty(station.stationType) ? "EmptyTray" : "StrogeTray";
+            //station.tray_status = list.Count == 0 ? "EmptyTray" : "StrogeTray";
             if (station.location_state == "Empty")
             {
                 station.stationType = string.Empty;
@@ -156,8 +157,8 @@
                 station.tray_status = string.Empty;
                 station.bindSN = string.Empty;
                 station.quantity = 0;
-                if (!station.stationCode.Contains("S") && !station.stationCode.Contains("X") && !station.stationCode.Contains("W01001004") && !station.stationCode.Contains("W01001005"))
-                    station.tray_type = string.Empty;
+                //if (!station.stationCode.Contains("S") && !station.stationCode.Contains("X") && !station.stationCode.Contains("W01001004") && !station.stationCode.Contains("W01001005"))
+                //    station.tray_type = string.Empty;
             }
             var count = _repository.Update(station, true);
             if (count > 0)

--
Gitblit v1.9.3