From 53d6a24cb335b0c9b4449e1211ce8ea644d68d67 Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期五, 31 五月 2024 20:48:53 +0800 Subject: [PATCH] 可根据图号更改下料口车轮数量入库条件 --- 代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs | 244 +++++++++++++++++++++++++++++++----------------- 1 files changed, 155 insertions(+), 89 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 c0697aa..41423b5 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,7 @@ using WIDESEA_Entity.DomainModels; using WIDESEA_WMS.IRepositories; using WIDESEA_WMS.Repositories; +using static FreeSql.Internal.GlobalFilter; namespace WIDESEA_WMS.Common { @@ -49,11 +50,12 @@ agv_completedate = DateTime.Now, agv_grade = task.agv_grade, agv_userid = task.agv_userid, - agv_barcode = task.agv_barcode, - agv_code = task.agv_code, + agv_Traytype = task.agv_Traytype, + agv_TrayStatus = task.agv_TrayStatus, agv_worktype = task.agv_worktype, agv_remark = task.agv_remark, bindSN = task.bindSN, + jobID = task.jobID, agv_materbarcode = task.agv_materbarcode, }; htyRepository.Add(agvtask_Hty, true); @@ -65,78 +67,93 @@ /// <param name="task"></param> public static void Updateinventory(dt_agvtask task) { - string[] bindSNs = task.bindSN.Split(","); - int count = 0; - if (bindSNs.Length > 0) + VOLContext context = new VOLContext(); + Idt_inventoryRepository inventoryRepository = new dt_inventoryRepository(context); + if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Carry.ToString()) { - if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString()) + var inventorys = inventoryRepository.Find(x => x.stationCode == task.agv_fromaddress).ToList(); + foreach (var inventory in inventorys) { - foreach (var bindSN in bindSNs) - { - //List<dt_inventory> inventorys = new List<dt_inventory>(); - var inventory = freeDB.Select<dt_inventory>().Where(x => x.SN == bindSN).First(); - //inventorys.Add(inventory); - count = freeDB.Remove(inventory); - if (count < 1) - throw new Exception("搴撳瓨娓呴櫎澶辫触锛丼N鍙�:" + bindSN); - } - + inventory.stationCode = task.agv_toaddress; + inventoryRepository.Update(inventory, true); } - else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString()) - { - 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(); - var mes_head = freeDB.Select<dt_mes_head>().Where(x => x.jobID == mes_detail.jobID).First(); - 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, - //HearthNumber = "", - HeatNumber = mes_detail.heatID, - BilletNumber = mes_detail.billetID, - OnlineTime = task.agv_finishedtime, - Operator = "admin", - stationCode = task.agv_toaddress, - area = station.area, - jobID = mes_detail.jobID, - ID = Guid.NewGuid() - }; - inventorys.Add(inventory); - } - count = freeDB.AddRange(inventorys); - if (count < 1) - throw new Exception("搴撳瓨娣诲姞澶辫触锛佸簱浣嶅彿:" + task.agv_toaddress); - } - - //var Materiel = QueryData.QueryMateriel(task.agv_materielid); - //List<dt_inventory> inventorys = new List<dt_inventory>(); - //foreach (string bindSN in bindSNs) - //{ - // dt_inventory inventory = new dt_inventory() - // { - // SN = bindSN,//寰呭畬鍠� - // Name = "", - // FigureNumber = "", - // //HearthNumber = "", - // HeatNumber = "", - // //BilletNumber=, - // OnlineTime = task.agv_finishedtime, - // Operator = "admin", - // stationCode = task.agv_toaddress, - // area = "", - // jobID = "", - // }; - // inventorys.Add(inventory); - //} - //if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceInbound.ToString()) - // freeDB.AddRange(inventorys); - //else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceOutbound.ToString()) - // freeDB.Remove(inventorys); } + else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString()) + { + string[] bindSNs = task.bindSN.Split(","); + int count = 0; + foreach (var bindSN in bindSNs) + { + //List<dt_inventory> inventorys = new List<dt_inventory>(); + var inventory = freeDB.Select<dt_inventory>().Where(x => x.SN == bindSN).First(); + //inventorys.Add(inventory); + count = freeDB.Remove(inventory); + if (count < 1) + throw new Exception("搴撳瓨娓呴櫎澶辫触锛丼N鍙�:" + bindSN); + } + } + else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString()) + { + string[] bindSNs = task.bindSN.Split(","); + int count = 0; + List<dt_inventory> inventorys = new List<dt_inventory>(); + foreach (string bindSN in bindSNs) + { + var mes_Work = freeDB.Select<VV_Mes_Workinfo>().Where(x => x.SN == bindSN && x.processCode == "17").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_Work.productName, + FigureNumber = mes_Work.drawingNo, + materialCode = task.agv_materbarcode, + 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_Work.jobID, + workOrder = mes_Work.workOrder, + ID = Guid.NewGuid() + }; + inventorys.Add(inventory); + } + count = freeDB.AddRange(inventorys); + if (count < 1) + throw new Exception("搴撳瓨娣诲姞澶辫触锛佸簱浣嶅彿:" + task.agv_toaddress); + } + #region MyRegion + //var Materiel = QueryData.QueryMateriel(task.agv_materielid); + //List<dt_inventory> inventorys = new List<dt_inventory>(); + //foreach (string bindSN in bindSNs) + //{ + // dt_inventory inventory = new dt_inventory() + // { + // SN = bindSN,//寰呭畬鍠� + // Name = "", + // FigureNumber = "", + // //HearthNumber = "", + // HeatNumber = "", + // //BilletNumber=, + // OnlineTime = task.agv_finishedtime, + // Operator = "admin", + // stationCode = task.agv_toaddress, + // area = "", + // jobID = "", + // }; + // inventorys.Add(inventory); + //} + //if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceInbound.ToString()) + // freeDB.AddRange(inventorys); + //else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceOutbound.ToString()) + // freeDB.Remove(inventorys); + #endregion + + //} } /// <summary> @@ -147,26 +164,75 @@ { 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); - station2.quantity = station1.quantity; - station2.bindSN = station1.bindSN; - station2.location_state = LocationStateEnum.Stroge.ToString(); - station2.Number = task.jobID; - station2.heatNumber = station1.heatNumber; - station2.stationType = station1.stationType; - station2.tray_status = station1.tray_status;//妯斁/绔栨斁 - stationinfoRepository.Update(station2, true); - - station1.quantity = 0; - station1.bindSN = string.Empty; - station1.location_state = LocationStateEnum.Empty.ToString(); - station1.Number = string.Empty; - station1.heatNumber = string.Empty; - station1.stationType = string.Empty; - station1.tray_status = LocationStateEnum.Empty.ToString(); - stationinfoRepository.Update(station1, true); + 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" || (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; + station2.bindSN = task.bindSN; + station2.location_state = LocationStateEnum.Stroge.ToString(); + station2.Number = task.jobID; + //station2.heatNumber = station1.heatNumber; + 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; + //else if (station2.stationCode.Contains("X") || station2.stationCode.Contains("W01001004") || station2.stationCode.Contains("W01001005"))//鍑哄簱绌烘墭浠诲姟 + //{ + // station1.location_state = LocationStateEnum.Stroge.ToString(); + // station1.quantity = station1.quantity - 1; + //} + //else + // station1.quantity = 0; + #endregion + 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; + } + else + station1.quantity = 0; + station1.bindSN = string.Empty; + //station1.location_state = station1.quantity == 0 ? LocationStateEnum.Empty.ToString() : LocationStateEnum.Stroge.ToString(); + if (station1.quantity == 0) + { + 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("DD")) + station1.lastUpdateTime = DateTime.Now; + stationinfoRepository.Update(station1, true); + } } } } -- Gitblit v1.9.3