From a765da90e5ee63e04d2d8460a5ad1ebd0e8eb4db Mon Sep 17 00:00:00 2001 From: huanghongfeng <huanghongfeng@hnkhzn.com> Date: 星期一, 15 七月 2024 21:43:59 +0800 Subject: [PATCH] 工单处理 --- 代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs | 86 +++++++++++++++++++++++++++++++----------- 1 files changed, 63 insertions(+), 23 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs" index b7932b0..691465f 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs" @@ -11,6 +11,8 @@ using WIDESEA_Entity.DomainModels; using WIDESEA_WMS.IRepositories; using WIDESEA_WMS.Repositories; +using static FreeSql.Internal.GlobalFilter; +using static System.Collections.Specialized.BitVector32; namespace WIDESEA_WMS.Common { @@ -27,6 +29,27 @@ VOLContext context = new VOLContext(); Idt_agvtask_htyRepository htyRepository = new dt_agvtask_htyRepository(context); Idt_agvtaskRepository repository = new dt_agvtaskRepository(context); + Idt_mes_headRepository idt_Mes_Head = new dt_mes_headRepository(context); + Idt_mes_detailRepository idt_Mes_Detail=new dt_mes_detailRepository(context); + + if (task.agv_worktype == 17) + { + string[] bindSNs = task.bindSN.Split(","); + foreach (var item in bindSNs) + { + var mes_detail = idt_Mes_Detail.Find(x => x.SN == item).FirstOrDefault(); + var mes_head= idt_Mes_Head.Find(x=>x.jobID==mes_detail.jobID).FirstOrDefault(); + if(mes_head != null) + { + + mes_head.agv_finishNum = mes_head.agv_finishNum == null ? task.agv_qty : mes_head.agv_finishNum + task.agv_qty; + idt_Mes_Head.Update(mes_head, x => new { x.agv_finishNum }, true); + break; + } + } + + } + dt_agvtask_hty agvtask_Hty = new dt_agvtask_hty() { hty_pkid = Guid.NewGuid(), @@ -66,11 +89,18 @@ /// <param name="task"></param> public static void Updateinventory(dt_agvtask task) { - //string[] bindSNs = task.bindSN.Split(","); - //int count = 0; - //if (bindSNs.Length > 0) - //{ - if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString()) + VOLContext context = new VOLContext(); + Idt_inventoryRepository inventoryRepository = new dt_inventoryRepository(context); + if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Carry.ToString()) + { + var inventorys = inventoryRepository.Find(x => x.stationCode == task.agv_fromaddress).ToList(); + foreach (var inventory in inventorys) + { + inventory.stationCode = task.agv_toaddress; + inventoryRepository.Update(inventory, true); + } + } + else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString()) { string[] bindSNs = task.bindSN.Split(","); int count = 0; @@ -83,7 +113,6 @@ if (count < 1) throw new Exception("搴撳瓨娓呴櫎澶辫触锛丼N鍙�:" + bindSN); } - } else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString()) { @@ -92,26 +121,25 @@ List<dt_inventory> inventorys = new List<dt_inventory>(); foreach (string bindSN in bindSNs) { - var mes_detail = freeDB.Select<dt_mes_detail>().Where(x => x.SN == bindSN).First(); - if (mes_detail == null) - throw new Exception("鏈壘鍒板伐鍗曚俊鎭紒"); - var mes_head = freeDB.Select<dt_mes_head>().Where(x => x.jobID == mes_detail.jobID).First(); - if (mes_head == null) + var mes_Work = freeDB.Select<VV_Mes_Workinfo>().Where(x => x.SN == bindSN && x.processCode == "17").OrderByDescending(x => x.CreateTime).First(); + if (mes_Work == null) throw new Exception("鏈壘鍒板伐鍗曚俊鎭紒"); var station = freeDB.Select<dt_stationinfo>().Where(x => x.stationCode == task.agv_toaddress).First(); dt_inventory inventory = new dt_inventory() { SN = bindSN, - Name = mes_head.productName, - FigureNumber = mes_head.drawingNo, + Name = mes_Work.productName, + FigureNumber = mes_Work.drawingNo, materialCode = task.agv_materbarcode, - HeatNumber = mes_detail.heatID, - BilletNumber = mes_detail.billetID, + HeatNumber = mes_Work.heatID, + drawingNoVer = mes_Work.drawingNoVer, + BilletNumber = mes_Work.billetID, OnlineTime = task.agv_finishedtime, Operator = "admin", stationCode = task.agv_toaddress, area = station.area, - jobID = mes_detail.jobID, + jobID = mes_Work.jobID, + workOrder = mes_Work.workOrder, ID = Guid.NewGuid() }; inventorys.Add(inventory); @@ -158,15 +186,15 @@ { VOLContext context = new VOLContext(); Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context); - var station1 = stationinfoRepository.FindFirst(t => t.stationCode == task.agv_fromaddress); - var station2 = stationinfoRepository.FindFirst(t => t.stationCode == task.agv_toaddress); if (task.agv_taskstate == AGVTaskStateEnum.Complete1.ToString()) { + var station2 = stationinfoRepository.FindFirst(t => t.stationCode == task.agv_toaddress); + if (station2 == null) throw new Exception("鏈壘鍒扮粓鐐瑰湴鍧�锛�"); ////绌烘墭浠诲姟闇�淇敼閫昏緫 if (station2.stationCode.Contains("X")) station2.quantity = 0;// task.agv_tasktype.Contains("TaskType_EmptyPallet") ? 0 : task.agv_qty; //task.agv_qty; - else if (station2.area == "10" || station2.area == "11") //鍏ュ簱绌烘墭浠诲姟 + else if (station2.area == "10" || station2.area == "11" || (station2.stationCode.Contains("C") && task.agv_tasktype == "TaskType_EmptyPallet") || station2.stationCode.Contains("DD")) //鍏ュ簱绌烘墭浠诲姟 station2.quantity = station2.quantity + task.agv_qty; else station2.quantity = task.agv_qty; @@ -177,10 +205,13 @@ station2.stationType = task.agv_materielid; station2.tray_status = task.agv_TrayStatus;//妯斁/绔栨斁 station2.tray_type = task.agv_Traytype; + station2.lastUpdateTime = DateTime.Now; stationinfoRepository.Update(station2, true); } else if (task.agv_taskstate == AGVTaskStateEnum.Complete.ToString()) { + var station1 = stationinfoRepository.FindFirst(t => t.stationCode == task.agv_fromaddress); + if (station1 == null) throw new Exception("鏈壘鍒拌捣鐐瑰湴鍧�锛�"); #region MyRegion //if (station1.stationCode.Contains("S")) // station1.quantity = 0; @@ -192,8 +223,14 @@ //else // station1.quantity = 0; #endregion - - if (station1.area == "10" || station1.area == "11") //鍑哄簱绌烘墭浠诲姟 + if (station1.stationCode.Contains("DD"))//鍙犵洏搴撲綅 + { + station1.quantity = station1.quantity - task.agv_qty; + station1.location_state = LocationStateEnum.Stroge.ToString(); + } + else if (station1.area == "10" || station1.area == "11" + || ((station1.stationCode.Contains("C") || station1.stationCode.Contains("B")) + && task.agv_tasktype == AGVTaskTypeEnum.TaskType_EmptyPallet.ToString())) //鍑哄簱绌烘墭浠诲姟 { station1.location_state = LocationStateEnum.Stroge.ToString(); station1.quantity = station1.quantity - 1; @@ -206,13 +243,16 @@ { station1.location_state = LocationStateEnum.Empty.ToString(); station1.Number = string.Empty; + station1.billetID = string.Empty; station1.heatNumber = string.Empty; station1.stationType = string.Empty; station1.tray_status = string.Empty; station1.remark = string.Empty; - if (!station1.stationCode.Contains("X") && !station1.stationCode.Contains("S") && !station1.stationCode.Contains("W01001004") && !station1.stationCode.Contains("W01001005")) - station1.tray_type = string.Empty; + //if (!station1.stationCode.Contains("X") && !station1.stationCode.Contains("S") && !station1.stationCode.Contains("W01001004") && !station1.stationCode.Contains("W01001005")) + // station1.tray_type = string.Empty; } + if (!station1.stationCode.Contains("DD")) + station1.lastUpdateTime = DateTime.Now; stationinfoRepository.Update(station1, true); } } -- Gitblit v1.9.3