From 388c43ee7b741eebafa98cd8ef992005f1aa56f4 Mon Sep 17 00:00:00 2001
From: 陈勇 <chenyong@hnkhzn.com>
Date: 星期二, 12 三月 2024 14:52:40 +0800
Subject: [PATCH] PDA源程序

---
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs |   46 +++++++++++++++++++++++++++-------------------
 1 files changed, 27 insertions(+), 19 deletions(-)

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 54e0f69..7b6af49 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"
@@ -221,37 +221,44 @@
                     if (!Request) continue;
 
                     var Stations = stationinfoRepository.Find(x => x.area == PipelineJob.area_code(name));
-                    foreach (var station in Stations)
-                    {
-                        if (!station.enable)
-                            client.WriteByOrder("W_Enabl_Load", false, name);//淇″彿涓篺alse妗佹灦鍋滄杩涘叆
-                    }
+
                     var NGStation = "X01001003";
                     if (name == "2鍗曞厓涓嬫枡鍖�") NGStation = "X02001003";
                     if (name == "3鍗曞厓涓嬫枡鍖�") NGStation = "X03001002";
-                    var Wheel_Type = (Int32)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Wheel_Type").First(), client);//杞﹁疆绫诲瀷
-                    var Wheel_id = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Wheel_id").First(), client).ToString();//杞﹁疆SN鍙�
+                    foreach (var station in Stations)
+                    {
+                        if (!station.enable || station.location_state == LocationStateEnum.Empty.ToString())
+                            client.WriteByOrder("W_Enabl_Load", false, name);//淇″彿涓篺alse妗佹灦鍋滄杩涘叆
+                    }
+                    var Wheel_Type = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Wheel_Type").First(), client);//杞﹁疆绫诲瀷
+                    var Wheel_id = client.ReadByOrder<string>("R_Wheel_id", name);//杞﹁疆SN鍙�
+                    //var Wheel_id = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Wheel_id").First(), client).ToString();
 
                     var mes_Detail = mes_DetailRepository.FindFirst(x => x.SN == Wheel_id);
                     var mes_Head = mes_HeadRepository.FindFirst(x => x.jobID == mes_Detail.jobID);
+                    var wheel = PipelineJob.QueryMateriel(mes_Head.drawingNo);
 
-                    var PartStatus = (Int32)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_PartStatus").First(), client);//1:ok;2:nok
-                    if (PartStatus == 1)
+                    var PartStatus = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_PartStatus").First(), client);//1:ok;2:nok
+                    if ((Int16)PartStatus == 1)
                     {
                         var Stationinfo = Stations
                         .Where(x => x.enable
                         && x.stationCode != NGStation
                         && x.location_state == LocationStateEnum.Stroge.ToString()
                         && x.quantity < 5
-                        && x.stationType == PipelineJob.QueryMateriel(Wheel_Type)
+                        && x.stationType == mes_Head.drawingNo
+                        && x.tray_type == (wheel.e < 1100 ? "SmallTray" : "LargeTray")
                         && x.Number == mes_Detail.jobID
-                        && x.heatNumber == mes_Detail.heatID).FirstOrDefault();
+                        && x.heatNumber == mes_Detail.heatID)
+                        .OrderByDescending(x => x.quantity)
+                        .FirstOrDefault();
                         if (Stationinfo == null)
                             Stationinfo = Stations.Where(x => x.enable && x.stationCode != NGStation && x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity == 0).FirstOrDefault();
                         if (Stationinfo != null)
                         {
                             var Pipelinedetails = plcRepository.Find(x => x.plcdetail_iotype == Pipelineplc.plcinfo_iotyep && x.plcdetail_number == Stationinfo.stationCode).ToList();
-                            var PalletSignal = (Int16)DBExtension.Read(Pipelinedetails.Where(x => x.plcdetail_name == "R_PalletSignal").First(), client);//璇诲彇鎵樼洏淇″彿:1:鏈�,2鏃�
+                            var PalletSignal = (Int16)DBExtension.Read(Pipelinedetails.Where(x => x.plcdetail_name == "R_PalletSignal").First(), Pipeline_client);//璇诲彇鎵樼洏淇″彿:1:鏈�,2鏃�
+                            //var Wheel_id = client.ReadByOrder<string>("R_Wheel_id", name);
                             if (PalletSignal == 1)
                             {
                                 var SNS = Stationinfo.bindSN.Split(",");
@@ -271,21 +278,22 @@
                                 }
                                 var area = Convert.ToInt16(Stationinfo.stationCode.Substring(Stationinfo.stationCode.Length - 1, 1));
                                 client.WriteByOrder("W_AreaNr", (Int16)area, name);//鍖哄煙璐т綅鍙�
-                                client.WriteByOrder("W_IndexNr", (Int16)Stationinfo.quantity + 1, name);//鎵樼洏涓婄殑绗嚑涓溅杞�
+                                client.WriteByOrder("W_IndexNr", (Int16)(Stationinfo.quantity + 1), name);//鎵樼洏涓婄殑绗嚑涓溅杞�
                                 client.WriteByOrder("W_Storage_Type", (Int16)1, name);//鎵樼洏绫诲瀷1-妯斁;2-绔栨斁(鏆傛椂鍙湁妯斁鎵樼洏)
                                 client.WriteByOrder("W_Enabl_Load", true, name);//鏄惁鍏佽
                                 return;
                             }
                         }
                     }
-                    else if (PartStatus == 2)
+                    else if ((Int16)PartStatus == 2)
                     {
                         var Stationinfo = Stations
                         .Where(x => x.enable
                         && x.stationCode == NGStation
                         && x.location_state == LocationStateEnum.Stroge.ToString()
                         && x.quantity < 5
-                        && x.stationType == PipelineJob.QueryMateriel(Wheel_Type)
+                        && x.stationType == mes_Head.drawingNo
+                        && x.tray_type == (wheel.e < 1100 ? "SmallTray" : "LargeTray")
                         && x.Number == mes_Detail.jobID
                         && x.heatNumber == mes_Detail.heatID).FirstOrDefault();
                         if (Stationinfo != null)
@@ -311,7 +319,7 @@
                                 }
                                 var area = Convert.ToInt16(Stationinfo.stationCode.Substring(Stationinfo.stationCode.Length - 1, 1));
                                 client.WriteByOrder("W_AreaNr", (Int16)area, name);//鍖哄煙璐т綅鍙�
-                                client.WriteByOrder("W_IndexNr", (Int16)Stationinfo.quantity + 1, name);//鎵樼洏涓婄殑绗嚑涓溅杞�
+                                client.WriteByOrder("W_IndexNr", (Int16)(Stationinfo.quantity + 1), name);//鎵樼洏涓婄殑绗嚑涓溅杞�
                                 client.WriteByOrder("W_Storage_Type", (Int16)1, name);//鎵樼洏绫诲瀷1-妯斁;2-绔栨斁(鏆傛椂鍙湁妯斁鎵樼洏)
                                 client.WriteByOrder("W_Enabl_Load", true, name);//鏄惁鍏佽
                                 return;
@@ -352,9 +360,9 @@
                         station.bindSN = station.bindSN == string.Empty ? Wheel_id : station.bindSN + "," + Wheel_id;
                         if (station.quantity == 0)
                         {
-                            station.stationType = Wheel_id;
-                            station.Number = Wheel_id;
-                            station.heatNumber = Wheel_id;
+                            station.stationType = mes_Head.drawingNo;
+                            station.Number = mes_Head.jobID;
+                            station.heatNumber = mes_Detail.heatID;
                         }
                         var count = stationinfoRepository.Update(station);
                         if (count < 1)

--
Gitblit v1.9.3