From 8f392cc88b0768b74efca3b68785cf5aa1c38e70 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期三, 06 十一月 2024 14:28:20 +0800
Subject: [PATCH] 代码更新

---
 wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/Equipment/Z_TBSB_DownTask.cs |  228 +++++++++++++++++++++++++++++----------------------------
 1 files changed, 116 insertions(+), 112 deletions(-)

diff --git a/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/Equipment/Z_TBSB_DownTask.cs b/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/Equipment/Z_TBSB_DownTask.cs
index bf2eabf..1ba2181 100644
--- a/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/Equipment/Z_TBSB_DownTask.cs
+++ b/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/Equipment/Z_TBSB_DownTask.cs
@@ -3,6 +3,7 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Threading;
+using System.Threading.Tasks;
 using WIDESEA_Common;
 using WIDESEA_Common.LoctionEnum;
 using WIDESEA_Common.Tools;
@@ -28,138 +29,141 @@
         {
             if (Interlocked.Exchange(ref _readZTBSignalsoZ_Down, 1) == 0)
             {
-
-                try
+                Task.Run(() =>
                 {
-                    VOLContext Context = new VOLContext();
-                    Ibase_ware_locationRepository locRepository = new base_ware_locationRepository(Context);
-                    Ibase_routing_tableRepository routingRepository = new base_routing_tableRepository(Context);
-                    Idt_agvtaskRepository agvRepository = new dt_agvtaskRepository(Context);
-                    List<string> TBSBS = new List<string> { "娑傚竷鏈烘鏋�1", "娑傚竷鏈烘鏋�2", "娑傚竷鏈烘鏋�3", "娑傚竷鏈烘鏋�4" };
+                    try
+                    {
+                        VOLContext Context = new VOLContext();
+                        Ibase_ware_locationRepository locRepository = new base_ware_locationRepository(Context);
+                        Ibase_routing_tableRepository routingRepository = new base_routing_tableRepository(Context);
+                        Idt_agvtaskRepository agvRepository = new dt_agvtaskRepository(Context);
+                        List<string> TBSBS = new List<string> { "娑傚竷鏈烘鏋�1", "娑傚竷鏈烘鏋�2", "娑傚竷鏈烘鏋�3", "娑傚竷鏈烘鏋�4" };
 
-                    if (WCSService.Clients == null)
-                    {
-                        return;
-                    }
-                    //寰幆澶勭悊娑傚竷璁惧涓嬫枡璇锋眰
-                    foreach (var TBSB in TBSBS)
-                    {
-                      
-                        PLCClient plc = WCSService.Clients.Find(v => v.PLCName == TBSB);
-                        if (plc == null)
+                        if (WCSService.Clients == null)
                         {
-                            continue;
+                            return;
                         }
-
-                        string SB_Up_Location = "ZJXL-TBSB" + TBSB.Replace("娑傚竷鏈烘鏋�", "");//鎷兼帴娑傚竷涓嬫枡鍙�
-                                                                                        //鏌ョ湅褰撳墠娑傚竷鏈鸿澶囨槸鍚︽湁AGV浠诲姟
-                        var SBtask = agvRepository.FindFirst(f => f.agv_fromaddress == SB_Up_Location);
-                        //鏈夌粨鏉熸湰娆″惊鐜�
-                        if (SBtask != null) { continue; }
-                        //褰撳墠璁惧鏈夋病鏈変笅鏂欒姹�
-                        bool GYR_RFX = plc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11293.00").Content;
-                        //Convert.ToBoolean(plc.ReadValue("R_Feedingrequest".ToString(), SB_Up_Location));
-                        if (GYR_RFX)
+                        //寰幆澶勭悊娑傚竷璁惧涓嬫枡璇锋眰
+                        foreach (var TBSB in TBSBS)
                         {
-                          
-                            //鎵惧埌璺敱瑙勫垯(浠ヨ澶囦负璧风偣鐨勮矾鐢辫鍒�)
-                            List<base_routing_table> Routing_Table = routingRepository.Find(d => d.route_began == SB_Up_Location);
-                            base_ware_location location_TB = null;
 
-                            if (Routing_Table.Count > 0)
+                            PLCClient plc = WCSService.Clients.Find(v => v.PLCName == TBSB);
+                            if (plc == null)
                             {
-                                foreach (var item in Routing_Table)
+                                continue;
+                            }
+
+                            string SB_Up_Location = "ZJXL-TBSB" + TBSB.Replace("娑傚竷鏈烘鏋�", "");//鎷兼帴娑傚竷涓嬫枡鍙�
+                                                                                            //鏌ョ湅褰撳墠娑傚竷鏈鸿澶囨槸鍚︽湁AGV浠诲姟
+                            var SBtask = agvRepository.FindFirst(f => f.agv_fromaddress == SB_Up_Location);
+                            //鏈夌粨鏉熸湰娆″惊鐜�
+                            if (SBtask != null) { continue; }
+                            //褰撳墠璁惧鏈夋病鏈変笅鏂欒姹�
+                            bool GYR_RFX = plc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11293.00").Content;
+                            //Convert.ToBoolean(plc.ReadValue("R_Feedingrequest".ToString(), SB_Up_Location));
+                            if (GYR_RFX)
+                            {
+                                #region 璁板綍涓嬫枡璇锋眰淇″彿
+                                WriteLog.GetLog().Write($"{plc.PLCName}涓嬫枡璇锋眰锛歿GYR_RFX}---{DateTime.Now}", $"姝f瀬娑傚竷涓嬫枡璇锋眰");
+                                #endregion
+                                //鎵惧埌璺敱瑙勫垯(浠ヨ澶囦负璧风偣鐨勮矾鐢辫鍒�)
+                                List<base_routing_table> Routing_Table = routingRepository.Find(d => d.route_began == SB_Up_Location);
+                                base_ware_location location_TB = null;
+
+                                if (Routing_Table.Count > 0)
                                 {
-                                    //鎵惧厛鎵炬秱甯冨尯鍩熺紦瀛樻灦
-                                    location_TB = locRepository.FindFirst(t => t.upper_code == item.route_end && t.location_state == LoctionStateEnum.LocationState_Empty.ToString() &&t.tpgd==0 && t.area == "ZJ-TBHCJ" && t.status == 1 && t.task == 2);
-                                    if (location_TB != null)
+                                    foreach (var item in Routing_Table)
                                     {
-                                        //location = location_TB.FirstOrDefault();//濡傛灉鎵惧埌锛岃祴鍊煎悗閫�鍑哄惊鐜�
-                                        break;
-                                    }
-                                }
-                                //浠ヤ笂寰幆鏈壘鍒板悎閫傝揣浣嶏紝鍐嶆壘绠旀潗搴撲笁鍙蜂綅缂撳瓨鏋�
-                                if (location_TB == null)
-                                {
-                                 
-                                    //瀹氫綅閾傛潗搴撹矾鐢憋紝鎵惧埌閾傛潗搴撹揣浣嶅彿
-                                    base_routing_table Loc_BCK = Routing_Table.FirstOrDefault(t => t.route_end.Contains("ZJ-BCHCJ"));
-                                    if (Loc_BCK != null)
-                                    {
-                                        //鏍规嵁鏍规嵁璐т綅鍙锋壘鍒伴搨鏉愬簱浣嶇疆骞剁‘璁ゆ槸鍚︽湁鏂�
-                                        location_TB = locRepository.FindFirst(t => t.upper_code == Loc_BCK.route_end && t.location_state == LoctionStateEnum.LocationState_Empty.ToString() && t.status == 1 && t.task == 2);
-                                        if (location_TB==null)
+                                        //鎵惧厛鎵炬秱甯冨尯鍩熺紦瀛樻灦
+                                        location_TB = locRepository.FindFirst(t => t.upper_code == item.route_end && t.location_state == LoctionStateEnum.LocationState_Empty.ToString() && t.tpgd == 0 && t.area == "ZJ-TBHCJ" && t.status == 1 && t.task == 2);
+                                        if (location_TB != null)
                                         {
-                          
-                                                return;
+                                            //location = location_TB.FirstOrDefault();//濡傛灉鎵惧埌锛岃祴鍊煎悗閫�鍑哄惊鐜�
+                                            break;
                                         }
                                     }
-                              
+                                    //浠ヤ笂寰幆鏈壘鍒板悎閫傝揣浣嶏紝鍐嶆壘绠旀潗搴撲笁鍙蜂綅缂撳瓨鏋�
+                                    if (location_TB == null)
+                                    {
+
+                                        //瀹氫綅閾傛潗搴撹矾鐢憋紝鎵惧埌閾傛潗搴撹揣浣嶅彿
+                                        base_routing_table Loc_BCK = Routing_Table.FirstOrDefault(t => t.route_end.Contains("ZJ-BCHCJ"));
+                                        if (Loc_BCK != null)
+                                        {
+                                            //鏍规嵁鏍规嵁璐т綅鍙锋壘鍒伴搨鏉愬簱浣嶇疆骞剁‘璁ゆ槸鍚︽湁鏂�
+                                            location_TB = locRepository.FindFirst(t => t.upper_code == Loc_BCK.route_end && t.location_state == LoctionStateEnum.LocationState_Empty.ToString() && t.status == 1 && t.task == 2);
+                                            if (location_TB == null)
+                                            {
+
+                                                return;
+                                            }
+                                        }
+
+                                    }
                                 }
-                            }
-                            if (location_TB != null)
-                            {
-                           
-                                WebResponseContent content = new WebResponseContent();
-                                locRepository.DbContextBeginTransaction(() =>
+                                if (location_TB != null)
                                 {
-                                    //鐢熸垚娑傚竷鏈轰笅鏂欎换鍔�
-                                    dt_agvtask agvtask = new dt_agvtask()
-                                {
-                                    agv_id = Guid.NewGuid(),
-                                    agv_tasknum = "KH-" + IdenxManager.GetTaskNo(),
-                                    agv_fromaddress = SB_Up_Location,//浠ヨ澶囨湭璧风偣
-                                    agv_toaddress = location_TB.upper_code,
-                                    agv_code = "姝f瀬AGV璋冨害",
-                                    agv_remark = "娑傚竷涓嬫枡浠诲姟",
-                                    agv_taskstate = AGVTaskStateEnum.Create.ToString(),
-                                    agv_tasktype = AGVTaskTypeEnum.TaskType_Outbound.ToString(),
-                                    agv_worktype = 1,//宸ヤ綔绫诲瀷
-                                    agv_materielid = "",
-                                    agv_qty = 1,
-                                    agv_createtime = DateTime.Now,
-                                    agv_grade = 0,//浠诲姟浼樺厛绾�
-                                    agv_userid = "WCS",
-                                    agv_barcode = "",
-                                };
-                                  
-                                    location_TB.update_time = DateTime.Now;
-                                    location_TB.task = 1;
-                                    var entry = locRepository.DbContext.ChangeTracker.Entries<base_ware_location>().FirstOrDefault();
-                                    if (entry != null)
+
+                                    WebResponseContent content = new WebResponseContent();
+                                    locRepository.DbContextBeginTransaction(() =>
                                     {
-                                        entry.State = EntityState.Detached;
-                                    }
-                                    int x = locRepository.Update(location_TB, d => new { d.update_time, d.task}, true);
-                                    if (x == 1)
-                                    {
-                                        agvRepository.Add(agvtask, true);
-                                        WriteDBLog.Info($"銆恵TBSB}銆戜笅鏂欎换鍔$敓鎴�").Write($"鐢熸垚浠诲姟:{agvtask.agv_tasknum},缁堢偣璐т綅銆恵location_TB.upper_code}銆戠姸鎬侊細鎵樼洏鍏夌數妫�娴嬶細{location_TB.tpgd},鐘舵�侊細{location_TB.location_state},鏇存柊鏃堕棿锛歿location_TB.wireless_time}", $"銆恵TBSB}銆戜笅鏂欎换鍔$敓鎴�");
-                                        WriteDBLog.Info($"銆恵TBSB}銆戜笅鏂欎换鍔$敓鎴�").Write($"----------------浠诲姟鐢熸垚鎴愬姛  {DateTime.Now} -------------- {Environment.NewLine}", $"銆恵TBSB}銆戜笅鏂欎换鍔$敓鎴�");
-                                        return content.OK();
-                                    }
-                                    else
-                                    {
-                                        return content.Error();
-                                    }
-                                });
-                            }
+                                        //鐢熸垚娑傚竷鏈轰笅鏂欎换鍔�
+                                        dt_agvtask agvtask = new dt_agvtask()
+                                        {
+                                            agv_id = Guid.NewGuid(),
+                                            agv_tasknum = "KH-" + IdenxManager.GetTaskNo(),
+                                            agv_fromaddress = SB_Up_Location,//浠ヨ澶囨湭璧风偣
+                                            agv_toaddress = location_TB.upper_code,
+                                            agv_code = "姝f瀬AGV璋冨害",
+                                            agv_remark = "娑傚竷涓嬫枡浠诲姟",
+                                            agv_taskstate = AGVTaskStateEnum.Create.ToString(),
+                                            agv_tasktype = AGVTaskTypeEnum.TaskType_Outbound.ToString(),
+                                            agv_worktype = 1,//宸ヤ綔绫诲瀷
+                                            agv_materielid = "",
+                                            agv_qty = 1,
+                                            agv_createtime = DateTime.Now,
+                                            agv_grade = 0,//浠诲姟浼樺厛绾�
+                                            agv_userid = "WCS",
+                                            agv_barcode = "",
+                                        };
+
+                                        location_TB.update_time = DateTime.Now;
+                                        location_TB.task = 1;
+                                        var entry = locRepository.DbContext.ChangeTracker.Entries<base_ware_location>().FirstOrDefault();
+                                        if (entry != null)
+                                        {
+                                            entry.State = EntityState.Detached;
+                                        }
+                                        int x = locRepository.Update(location_TB, d => new { d.update_time, d.task }, true);
+                                        if (x == 1)
+                                        {
+                                            agvRepository.Add(agvtask, true);
+                                            //WriteDBLog.Info($"銆恵TBSB}銆戜笅鏂欎换鍔$敓鎴�").Write($"鐢熸垚浠诲姟:{agvtask.agv_tasknum},缁堢偣璐т綅銆恵location_TB.upper_code}銆戠姸鎬侊細鎵樼洏鍏夌數妫�娴嬶細{location_TB.tpgd},鐘舵�侊細{location_TB.location_state},鏇存柊鏃堕棿锛歿location_TB.wireless_time}", $"銆恵TBSB}銆戜笅鏂欎换鍔$敓鎴�");
+                                            //WriteDBLog.Info($"銆恵TBSB}銆戜笅鏂欎换鍔$敓鎴�").Write($"----------------浠诲姟鐢熸垚鎴愬姛  {DateTime.Now} -------------- {Environment.NewLine}", $"銆恵TBSB}銆戜笅鏂欎换鍔$敓鎴�");
+                                            return content.OK();
+                                        }
+                                        else
+                                        {
+                                            return content.Error();
+                                        }
+                                    });
+                                }
 
 
+                            }
                         }
                     }
-                }
-                catch (Exception ex)
-                {
+                    catch (Exception ex)
+                    {
+                        WriteLog.GetLog().Write($"姝f瀬娑傚竷涓嬫枡锛歿DateTime.Now} --------------{ex}", $"姝f瀬娑傚竷涓嬫枡");
+                    }
+                    finally
+                    {
 
-                    //WriteLog.Info($"浠诲姟鐢熸垚").Write($"缁撴潫鏃堕棿锛�   {DateTime.Now}  寮傚父淇℃伅锛歿ex.Message} -------------- {Environment.NewLine}", $"浠诲姟鐢熸垚");
-                    throw;
-                }
-                finally
-                {
-
-                    Interlocked.Exchange(ref _readZTBSignalsoZ_Down, 0);
-                }
+                        Interlocked.Exchange(ref _readZTBSignalsoZ_Down, 0);
+                    }
+                });
+                
             }
         }
 

--
Gitblit v1.9.3