From cbd78ef6650440fcaa2f9eb8b47d16ad76cb4d77 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期四, 23 五月 2024 10:26:07 +0800
Subject: [PATCH] 添加叠盘区超时未使用空托入库

---
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/AGVServer.cs |  126 ++++++++++++++++++++++++------------------
 1 files changed, 72 insertions(+), 54 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/AGVServer.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/AGVServer.cs"
index cc86be5..e55620e 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/AGVServer.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/AGVServer.cs"
@@ -19,73 +19,91 @@
 {
     public partial class AGVServer
     {
-        static FreeDB freeDB = new FreeDB();
-        static Respone respone = new Respone();
-        static RequestTask requestTask = new RequestTask();
-        static string postJson = string.Empty;
-        static string report = string.Empty;
+
         /// <summary>
         /// 浠诲姟涓嬪彂
         /// </summary>
         public static void SendAgvTask()
         {
-            try
+            WriteLog.Write_Log("鑷姩涓嬪彂浠诲姟", "SendAgvTask", "");
+            Respone respone = new Respone();
+            RequestTask requestTask = new RequestTask();
+            string postJson = string.Empty;
+            string report = string.Empty;
+
+            VOLContext Context = new VOLContext();
+            Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(Context);
+            var agv_tasks = agvtaskRepository.Find(x => x.agv_taskstate == "Create" && string.IsNullOrEmpty(x.agv_remark)).OrderByDescending(x => x.agv_grade)
+                    .ThenBy(x => x.agv_createtime).ToList();
+            if (agv_tasks.Count < 1)
+                agv_tasks = agvtaskRepository.Find(x => x.agv_taskstate == "Create" && !string.IsNullOrEmpty(x.agv_remark)).OrderByDescending(x => x.agv_grade)
+                    .ThenBy(x => x.agv_createtime).ToList();
+            if (agv_tasks.Count > 0)
             {
-                var agv_task = freeDB.Select<dt_agvtask>()
-                        .Where(t => t.agv_taskstate == AGVTaskStateEnum.Create.ToString()
-                               && (t.agv_tasktype == "TaskType_Outbound" || t.agv_tasktype == "TaskType_Inbound" || t.agv_tasktype == "TaskType_AOutbound")
-                               && string.IsNullOrEmpty(t.agv_remark))
-                        .OrderByDescending(t => t.agv_grade)
-                        .OrderBy(t => t.agv_createtime)
-                        .First();
-                if (agv_task == null)
-                    agv_task = freeDB.Select<dt_agvtask>()
-                        .Where(t => t.agv_taskstate == AGVTaskStateEnum.Create.ToString()
-                               && (t.agv_tasktype == "TaskType_Outbound" || t.agv_tasktype == "TaskType_Inbound" || t.agv_tasktype == "TaskType_AOutbound")
-                               && !string.IsNullOrEmpty(t.agv_remark))
-                        .OrderByDescending(t => t.agv_grade)
-                        .OrderBy(t => t.agv_createtime)
-                        .First();
-                if (agv_task != null)
+                foreach (var agv_task in agv_tasks)
                 {
-                    var Materiel = QueryData.QueryMateriel(agv_task.agv_materielid);//鏌ユ壘杞﹁疆鏁版嵁
-                    if (Materiel == null)
+                    try
                     {
-                        agv_task.agv_remark = "鏈幏鍙栧埌褰撳墠浠诲姟鐨勮溅杞暟鎹�";
-                        freeDB.Update(agv_task).UpdateColumns(t => new { t.agv_remark }).ExecuteAffrows();
-                        throw new Exception("鏈煡璇㈠埌褰撳墠浠诲姟鐨勮溅杞被鍨嬫暟鎹紝浠诲姟ID锛�" + agv_task.agv_tasknum);
+                        var Materiel = QueryData.QueryMateriel(agv_task.agv_materielid);//鏌ユ壘杞﹁疆鏁版嵁
+                        var Materiel1 = QueryData.QueryMateriel1(agv_task.agv_materielid);//鏌ユ壘杞﹁疆鏁版嵁
+                        if (Materiel == null && Materiel1 == null && !agv_task.agv_tasktype.Contains("TaskType_EmptyPallet"))
+                        {
+                            agv_task.agv_remark = "鏈幏鍙栧埌褰撳墠浠诲姟鐨勮溅杞暟鎹�";
+                            agvtaskRepository.Update(agv_task, true);
+                            throw new Exception("鏈煡璇㈠埌褰撳墠浠诲姟鐨勮溅杞被鍨嬫暟鎹紝浠诲姟ID锛�" + agv_task.agv_tasknum);
+                        }
+                        requestTask.TASK_NO = agv_task.agv_tasknum;
+                        requestTask.FROM_POSITION = agv_task.agv_fromaddress;
+                        requestTask.TO_POSITION = agv_task.agv_toaddress;
+                        requestTask.Material = agv_task.agv_materielid;
+                        requestTask.Grade = agv_task.agv_grade;
+                        requestTask.Quantity = agv_task.agv_qty;
+                        requestTask.TrayType = agv_task.agv_Traytype.Contains("Small") ? 1 : 2;//
+                        requestTask.TaskType = agv_task.agv_tasktype.Contains("TaskType_EmptyPallet") ? 2 : 1;//
+                        #region 缁�/鎷嗙┖鐩樹换鍔¢渶澶勭悊
+                        requestTask.StarQuantity = agv_task.StarQuantity;
+                        requestTask.EndQuantity = agv_task.EndQuantity;
+                        #endregion
+                        if (Materiel != null)
+                        {
+                            requestTask.A = Materiel == null ? Materiel1.a : Materiel.a;
+                            requestTask.B = Materiel == null ? Materiel1.b : Materiel.b;
+                            requestTask.C = Materiel == null ? Materiel1.c : Materiel.c;
+                            requestTask.D = Materiel == null ? Materiel1.d : Materiel.d;
+                            requestTask.E = Materiel == null ? Materiel1.e : Materiel.e;
+                            requestTask.F = Materiel == null ? Materiel1.f : Materiel.f;
+                            requestTask.G = Materiel == null ? Materiel1.g : Materiel.g;
+                            requestTask.H = Materiel == null ? Materiel1.h : Materiel.h;
+                        }
+                        postJson = JsonConvert.SerializeObject(requestTask);
+                        //report = Request.RequestData(postJson, AGVAPIAddress.IPAddress_AGVTask);//"http://192.168.12.204:5000/api/TaskCreat/CreatTask"
+                        RequestAGV(agvtaskRepository, agv_task, postJson, AGVAPIAddress.IPAddress_AGVTask);
+                        //respone = JsonConvert.DeserializeObject<Respone>(report);
+                        //if (respone.Success)
+                        //{
+                        //    agv_task.agv_taskstate = AGVTaskStateEnum.SendOut.ToString();
+                        //    agv_task.agv_realesstime = DateTime.Now;
+                        //    agvtaskRepository.Update(agv_task, true);
+                        //    WriteWMSLog.LogAdd(requestTask.TASK_NO, "鎴愬姛 ", "AGV", "WMS", postJson, report, "涓嬪彂AGV浠诲姟", "SendAGVTask", respone.Msg);
+                        //}
+                        //else
+                        //{
+                        //    agv_task.agv_remark = respone.Msg;
+                        //    var task = agvtaskRepository.Find(x => x.agv_tasknum == agv_task.agv_tasknum && x.agv_remark == agv_task.agv_remark).FirstOrDefault();//.Exists
+                        //    if (task == null)
+                        //        agvtaskRepository.Update(agv_task, true);
+                        //    WriteWMSLog.LogAdd(requestTask.TASK_NO, "澶辫触 ", "AGV", "WMS", postJson, report, "涓嬪彂AGV浠诲姟", "SendAGVTask", respone.Msg);
+                        //}
                     }
-                    requestTask.TASK_NO = agv_task.agv_tasknum;
-                    requestTask.FROM_POSITION = agv_task.agv_fromaddress;
-                    requestTask.TO_POSITION = agv_task.agv_toaddress;
-                    requestTask.Material = agv_task.agv_materielid;
-                    requestTask.Grade = agv_task.agv_grade;
-                    requestTask.Quantity = agv_task.agv_qty;
-                    requestTask.A = Materiel.a;
-                    requestTask.B = Materiel.b;
-                    requestTask.C = Materiel.c;
-                    requestTask.D = Materiel.d;
-                    requestTask.E = Materiel.e;
-                    requestTask.F = Materiel.f;
-                    requestTask.G = Materiel.g;
-                    requestTask.H = Materiel.h;
-                    postJson = JsonConvert.SerializeObject(requestTask);
-                    report = Request.RequestData(postJson, "http://192.168.12.250:5566/api/TaskCreat/CreatTask");
-                    respone = JsonConvert.DeserializeObject<Respone>(report);
-                    if (respone.Success)
+                    catch (Exception ex)
                     {
-                        agv_task.agv_taskstate = AGVTaskStateEnum.SendOut.ToString();
-                        agv_task.agv_realesstime = DateTime.Now;
-                        freeDB.Update(agv_task).UpdateColumns(t => new { t.agv_realesstime, t.agv_taskstate }).ExecuteAffrows();
+                        respone.Success = false;
+                        respone.Msg = ex.Message;
+                        WriteWMSLog.LogAdd(requestTask.TASK_NO, "澶辫触", "AGV", "WMS", postJson, report, "涓嬪彂AGV浠诲姟", "SendAGVTask", respone.Msg);
                     }
                 }
             }
-            catch (Exception ex)
-            {
-                respone.Success = false;
-                respone.Msg = ex.Message;
-            }
-            WriteWMSLog.LogAdd(requestTask.TASK_NO, respone.Success ? "鎴愬姛 " : "澶辫触", "AGV", "WMS", postJson, report, "涓嬪彂AGV浠诲姟", "SendAGVTask", respone.Msg);
+
         }
     }
 }

--
Gitblit v1.9.3