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/HandleTask_Mes.cs |  155 ++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 109 insertions(+), 46 deletions(-)

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 69994bc..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,11 +1,17 @@
-锘縰sing Newtonsoft.Json;
+锘縰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
@@ -18,110 +24,167 @@
         /// </summary>
         /// <param name="task"></param>
         /// <exception cref="Exception"></exception>
-        public static void UploadMESInfo(dt_agvtask task)
+        public static MES_Response UploadMESInfo(dt_agvtask task)
         {
+            object obj = new object();  //涓婁紶MES鏁版嵁
+            string mesData = "";//杩斿洖鏁版嵁
+            string ActionName = "";  //璋冪敤MES鏂规硶鍚�
+            string name = "";
+            MES_Response requestMes = new MES_Response();
             try
             {
-                object obj = new object();  //涓婁紶MES鏁版嵁
-                string ActionName = "";  //璋冪敤MES鏂规硶鍚�
                 List<detail> list = new List<detail>(); //杞﹁疆淇℃伅
                 if (task == null)
                 {
                     throw new Exception("鏃犱换鍔℃暟鎹�");
                 }
-                foreach (var item in task.bindSN.Split(","))
+                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())
                 {
-                    detail detail = new detail();
-                    detail.sn = item;
-                    list.Add(detail);
-                }
-
-                if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceOutbound.ToString())
-                {
-                    //agvOutWarehousePara outWarehousePara = new agvOutWarehousePara()
-                    //{
-                    //    JobID = task.jobID,
-                    //    processCode=task.agv_worktype.ToString(),
-                    //    details = list
-                    //};
+                    if(task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString())
+                    {
+                        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()
                     {
+                        WorkOrder = task.jobID,
+                        zoneID = task.agv_fromaddress,
+                        //processCode = task.agv_worktype.ToString(),
                         details = list,
-                        JobID = task.jobID,
-                        processCode = task.agv_worktype.ToString(),
                         layerNo = 1,
                         stackID = "1",
                         warehouseName = "Agv搴�",
-                        zoneID = task.agv_fromaddress,
+                        Operator="AGV鑷姩",
                     };
                     obj = outWarehousePara;
                     ActionName = "agvOutWarehouse";//AGV->MES杞﹁疆鍑哄簱
+                    name = "AGV鍚屾MES杞﹁疆鍑哄簱";
                 }
-                else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceInbound.ToString())
+                else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString() /*|| task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceInbound.ToString()*/)
                 {
+                    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()
                     {
+                        WorkOrder = task.jobID,
+                        zoneID = task.agv_toaddress,
+                        //processCode = task.agv_worktype.ToString(),
                         details = list,
-                        JobID = task.jobID,
-                        processCode = task.agv_worktype.ToString(),
                         layerNo = 1,
                         stackID = "1",
                         warehouseName = "Agv搴�",
-                        zoneID = task.agv_toaddress,
+                        Operator = "AGV鑷姩",
                     };
                     obj = inWarehousePara;
                     ActionName = "agvInWarehouse";//AGV->MES杞﹁疆鍏ュ簱
+                    name = "AGV鍚屾MES杞﹁疆鍏ュ簱";
                 }
                 //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(","))
+                    {
+                        detail1 detail = new detail1();
+                        detail.sn = item;
+                        list1.Add(detail);
+                    }
                     agvMoveWarehousePara moveWarehousePara = new agvMoveWarehousePara()
                     {
-                        details = list,
+                        fromZoneID = task.agv_fromaddress,
+                        toZoneID = task.agv_toaddress,
+                        details = list1,
                         fromLayerNo = "1",
                         fromStackID = "1",
                         fromWarehouseName = "Agv搴�",
-                        fromZoneID = task.agv_fromaddress,
                         toLayerNo = "1",
                         toStackID = "1",
                         toWarehouseName = "Agv搴�",
-                        toZoneID = task.agv_toaddress,
+                        Operator = "AGV鑷姩",
                     };
                     obj = moveWarehousePara;
                     ActionName = "agvMoveWarehouse";//AGV->MES杞﹁疆绉诲簱
+                    name = "AGV鍚屾MES杞﹁疆AB搴撶Щ搴�";
                 }
-                else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString())// 澶栧崗绉诲簱
+                //else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString())// 澶栧崗绉诲簱
+                //{
+                //    var mes_head = FreeDB.Select<dt_mes_head>().Where(x => x.jobID == task.jobID).First();
+                //    agvTransferListPara agvTransferListPara = new agvTransferListPara()
+                //    {
+                //        transferListID = task.agv_tasknum,
+                //        materialCode = mes_head.materialCode,
+                //        details = list,
+                //        drawingNoVer = mes_head.drawingNoVer,
+                //        fromWarehouse = "AGV搴�",
+                //        toWarehouse = "姣涜疆搴�",
+                //        Operator = task.agv_userid,
+                //        updateTime = task.agv_createtime.ToString(),
+                //    };
+                //    obj = agvTransferListPara;
+                //    ActionName = "agvTransferList";
+                //    name = "AGV鍚屾MES杞﹁疆绉诲簱AB搴�->BC搴�";
+                //}
+                else
                 {
-                    var mes_head = FreeDB.Select<dt_mes_head>().Where(x => x.jobID == task.jobID).First();
-                    agvTransferListPara agvTransferListPara = new agvTransferListPara()
-                    {
-                        details = list,
-                        transferListID = task.agv_tasknum,
-                        materialCode = mes_head.materialCode,
-                        drawingNoVer = mes_head.drawingNoVer,
-                        fromWarehouse = "AGV搴�",
-                        toWarehouse = "姣涜疆搴�",
-                        Operator = task.agv_userid,
-                        updateTime = task.agv_createtime
-                    };
-                    obj = agvTransferListPara;
-                    ActionName = "agvTransferList";
+                    requestMes.code = "200";
+                    requestMes.Type = "success";
+                    return requestMes;
                 }
 
                 var postJson = JsonConvert.SerializeObject(obj);
-                string mesData = Request.RequestData(postJson, MESAPIAddress.IPAddress_MES + ActionName);
-                var requestMes = JsonConvert.DeserializeObject<MES_Response>(mesData);
+                mesData = Request.RequestData(postJson, MESAPIAddress.IPAddress_MES + ActionName);
+                if (mesData.Contains("杩炴帴灏濊瘯澶辫触"))
+                    throw new Exception(mesData);
+                requestMes = JsonConvert.DeserializeObject<MES_Response>(mesData);
 
                 if (requestMes.code == "200" && requestMes.Type == "success")
                 {
                     //鏃ュ織璁板綍涓婁紶鏁版嵁鎴愬姛
+                    WriteWMSLog.LogAdd(task.agv_tasknum, "鎴愬姛", "MES", "WMS", JsonConvert.SerializeObject(obj), mesData, name, ActionName, requestMes.message);
                 }
+                else
+                    throw new Exception(requestMes.message);
 
             }
             catch (Exception ex)
             {
-                throw new Exception(ex.Message);
+                requestMes.message = ex.Message;
+                WriteWMSLog.LogAdd(task.agv_tasknum, "澶辫触", "MES", "WMS", JsonConvert.SerializeObject(obj), mesData, name, ActionName, ex.Message);
             }
+            return requestMes;
+            //finally
+            //{
+            //    WriteWMSLog.LogAdd(task.agv_tasknum, "澶辫触", "MES", "WMS", JsonConvert.SerializeObject(obj), mesData, name, ActionName, requestMes.message);
+            //}
         }
     }
 }

--
Gitblit v1.9.3