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/Services/system/Partial/dt_stationinfoService.cs | 45 +++++++++++++++++++++++++++++++++++++-------- 1 files changed, 37 insertions(+), 8 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs" index 6230dc3..d8f6713 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs" @@ -28,6 +28,7 @@ using WIDESEA_Comm; using WIDESEA_Comm.TaskNo; using WIDESEA_Common; +using static FreeSql.Internal.GlobalFilter; namespace WIDESEA_WMS.Services { @@ -111,20 +112,25 @@ VOLContext context = new VOLContext(); Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(context); IVV_Mes_WorkinfoRepository workinfoRepository = new VV_Mes_WorkinfoRepository(context); - string completor = UserContext.Current.UserName; foreach (var Key in saveModel.DelKeys) { try { var station = repository.Find(x => x.id.ToString() == Key.ToString()).FirstOrDefault(); - if (!station.stationCode.Contains("X")) throw new Exception($"鏃爗station.stationCode}浣跨敤鏉冮檺锛�"); + if (!station.stationCode.Contains("X") && !station.stationCode.Contains("W01001004") && !station.stationCode.Contains("W01001005")) throw new Exception($"鏃爗station.stationCode}浣跨敤鏉冮檺锛�"); if (!station.enable) throw new Exception($"{station.stationCode}鏈惎鐢紒"); if (station.location_state == LocationStateEnum.Abnormal.ToString()) throw new Exception($"{station.stationCode}鐘舵�佸紓甯革紒"); if (station.location_state == LocationStateEnum.Empty.ToString()) throw new Exception($"{station.stationCode}鐘舵�佷负绌猴紒"); if (station.remark == "妗佹灦涓嬫枡") throw new Exception($"{station.stationCode}妗佹灦姝e湪涓嬫枡锛�"); - if (agvtaskRepository.Find(x => x.agv_toaddress == station.stationCode).Any()) throw new Exception($"{station.stationCode}瀛樺湪浠诲姟锛�"); - - if (!agvtaskRepository.Find(x => x.agv_fromaddress == station.stationCode).Any()) + + var task = agvtaskRepository.Find(x => x.agv_toaddress == station.stationCode).FirstOrDefault(); + if (task != null) + { + if (task.agv_taskstate != AGVTaskStateEnum.Queue.ToString()) throw new Exception($"{station.stationCode}瀛樺湪浠诲姟锛�"); + task.agv_Traytype = station.tray_type == TrayTypeEnum.SmallTray.ToString() ? TrayTypeEnum.LargeTray.ToString() : TrayTypeEnum.SmallTray.ToString(); + agvtaskRepository.Update(task, x => new { x.agv_Traytype }, true); + } + else if (!agvtaskRepository.Find(x => x.agv_fromaddress == station.stationCode).Any()) { #region 涓虹┖鎵樺苟涓旀暟閲忎负0,鍒涘缓鍙栫┖鎵樹换鍔� if (station.tray_status == TrayStateEnum.EmptyTray.ToString() && station.quantity == 0) @@ -194,6 +200,7 @@ webResponse.Error(webResponse.Message += ex.Message); } } + WriteDBLog.Write($"鎵嬪姩鍒囨崲鎵樼洏 ", new { 淇℃伅 = webResponse.Message }, LogState.Sucess, "WMS", UserContext.Current.UserName); return webResponse; } /// <summary> @@ -208,6 +215,7 @@ Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(context); IVV_Mes_WorkinfoRepository workinfoRepository = new VV_Mes_WorkinfoRepository(context); string completor = UserContext.Current.UserName; + //List<object> jsons = null; foreach (var Key in saveModel.DelKeys) { try @@ -224,6 +232,9 @@ if (agvtaskRepository.Find(x => x.agv_fromaddress == station.stationCode || x.agv_fromaddress == station.stationCode).Any()) throw new Exception($"{station.stationCode}瀛樺湪浠诲姟锛�"); var Work = workinfoRepository.Find(x => x.workOrder == station.Number && x.processCode == "17").FirstOrDefault(); if (Work == null) throw new Exception($"鏈壘鍒拌揣浣峽station.stationCode}鐨勬満鍔犲伐宸ュ崟淇℃伅锛�"); + string tasktype = AGVTaskTypeEnum.TaskType_Inbound.ToString(); + if (!string.IsNullOrEmpty(Work.area) || station.stationCode.Contains("3")) + tasktype = AGVTaskTypeEnum.TaskType_OutsourceInbound.ToString(); dt_agvtask agvtask = new dt_agvtask() { agv_fromaddress = station.stationCode, @@ -234,9 +245,9 @@ agv_taskstate = AGVTaskStateEnum.Queue.ToString(), agv_materielid = station.stationType, agv_qty = station.quantity, - agv_tasktype = station.stationCode.Contains("3") ? AGVTaskTypeEnum.TaskType_OutsourceInbound.ToString() : AGVTaskTypeEnum.TaskType_Inbound.ToString(), + agv_tasktype = tasktype, agv_toaddress = "", - agv_userid = UserContext.Current.UserName, + agv_userid = completor, bindSN = station.bindSN, agv_worktype = Convert.ToInt32(Work.processCode), agv_materbarcode = Work.materialCode, @@ -244,6 +255,7 @@ jobID = station.Number, agv_TrayStatus = station.tray_status }; + //jsons.Add(agvtask); agvtaskRepository.Add(agvtask, true); station.location_state = LocationStateEnum.InBusy.ToString(); repository.Update(station, x => new { x.location_state }, true); @@ -254,6 +266,7 @@ webResponse.Error(webResponse.Message += ex.Message); } } + WriteDBLog.Write($"鎵嬪姩涓嬫枡浠诲姟 ", new { 淇℃伅 = webResponse.Message }, LogState.Sucess, "WMS", completor); return webResponse; } @@ -325,7 +338,7 @@ WebResponseContent content = new WebResponseContent(); VOLContext volContext = new VOLContext(); Idt_stationinfoRepository dsta = new dt_stationinfoRepository(volContext); - string[] stationCodes = { "A", "S", "X", "W", "DD", "B", "C", "D01" }; + string[] stationCodes = { "W", "A", "B", "C", "D01" }; List<Tuple<List<dt_stationinfo>, int>> responseData = new List<Tuple<List<dt_stationinfo>, int>>(); foreach (string code in stationCodes) { @@ -337,5 +350,21 @@ return content; } + public WebResponseContent pcs_dt_stationinfolist() + { + WebResponseContent content = new WebResponseContent(); + VOLContext volContext = new VOLContext(); + Idt_stationinfoRepository dsta = new dt_stationinfoRepository(volContext); + string[] stationCodes = { "X01", "X02", "X03", "S", "DD001" }; + List<Tuple<List<dt_stationinfo>>> responseData = new List<Tuple<List<dt_stationinfo>>>(); + foreach (string code in stationCodes) + { + var data = dsta.Find(_ => true).Where(a => a.stationCode.Contains(code)).OrderBy(a => a.stationCode).ToList(); + responseData.Add(Tuple.Create(data)); + } + content.Data = responseData; + return content; + } + } } -- Gitblit v1.9.3