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_WMS/Common/AGVTask/HandleTask_Mes.cs |   55 +++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 43 insertions(+), 12 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 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杞﹁疆绉诲簱

--
Gitblit v1.9.3