From 3b1b3b354f02ecf558f6dcc9a359dae65c4efca1 Mon Sep 17 00:00:00 2001 From: jinxin <1013386558@qq.com> Date: 星期三, 04 六月 2025 10:38:21 +0800 Subject: [PATCH] 合盘流程 指引出入库 --- C#/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs | 238 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 235 insertions(+), 3 deletions(-) diff --git a/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs "b/C\043/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs" similarity index 94% rename from HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs rename to "C\043/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs" index 7522ccb..be3da4c 100644 --- a/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs +++ "b/C\043/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs" @@ -212,13 +212,14 @@ var result = new SimpleResult(); var db = new SqlHelper<object>().GetInstance(); var wmsTask = db.Queryable<WMSTask>().Where(a => a.S_CODE == model.OperationNo).First(); - if (wmsTask != null) + if (wmsTask != null) { + db.Deleteable<WMSTask>().Where(a => a.S_CODE == model.OperationNo).ExecuteCommand(); LogHelper.Info($"娓呴櫎閿欒浣滀笟 瑙g粦鎵樼洏 鎵樼洏{wmsTask.S_CNTR_CODE}"); db.Deleteable<LocCntrRel>().Where(a => a.S_CNTR_CODE == wmsTask.S_CNTR_CODE).ExecuteCommand(); db.Deleteable<CntrItemRel>().Where(a => a.S_CNTR_CODE == wmsTask.S_CNTR_CODE).ExecuteCommand(); var locInfo = db.Queryable<Location>().Where(a => a.S_CODE == wmsTask.S_START_LOC).First(); - if (locInfo != null) + if (locInfo != null) { LogHelper.Info($"娓呴櫎閿欒浣滀笟 閲嶇疆璐т綅鐘舵� 璐т綅{locInfo.S_CODE}"); locInfo.N_CURRENT_NUM = 0; @@ -226,8 +227,239 @@ locInfo.S_LOCK_STATE = "鏃�; db.Updateable(locInfo).UpdateColumns(it => new { it.N_CURRENT_NUM, it.S_LOCK_STATE, it.N_LOCK_STATE }).ExecuteCommand(); } + else + { + LogHelper.Info($"娓呴櫎閿欒浣滀笟 鏈壘鍒拌捣鐐箋wmsTask.S_START_LOC}鐨勮揣浣�); + } + } + else + { + LogHelper.Info($"娓呴櫎閿欒浣滀笟 鏈壘鍒颁綔涓氬彿{model.OperationNo}鐨勪綔涓�); } + return result; + } + + internal static SimpleResult GuidelinesIn(WeiLiDisbutionInMolde model) + { + int Ntype = 0; string Stype = ""; string S_OP_DEF_NAME = ""; + var result = new SimpleResult { resultCode = 0 }; + Location end = null; + var db = new SqlHelper<object>().GetInstance(); + + if (string.IsNullOrEmpty(model.endArea) && string.IsNullOrEmpty(model.endLoc)) + { + Ntype = 1; + Stype = "鍏ュ簱"; + S_OP_DEF_NAME = "鎸囧紩鍥炲簱"; + } + + var TrayPrefix = model.cntrNo.Substring(0, 2); + var endinfo = Settings.LKCodes.Where(a => a.TrayPrefix == TrayPrefix).FirstOrDefault(); + if (endinfo != null) + { + if (string.IsNullOrEmpty(model.endArea)) + { + model.endArea = endinfo.LiKuCode; + } + } + else + { + result.resultCode = -1; + result.resultMsg = "缁堢偣搴撳尯涓虹┖ 榛樿鍥炲簱 鎵句笉鍒版墭鐩樺墠缂�搴旂殑鍥炲簱搴撳尯"; + return result; + } + + var cntrinfo = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == model.cntrNo).First(); + if (cntrinfo != null) + { + var start = db.Queryable<Location>().Where(a => a.S_CODE == cntrinfo.S_LOC_CODE).First(); + if (start != null) + { + if (start.N_LOCK_STATE == 0) + { + var conntinfo = Settings.ConnetAreas.Where(a => a.FullList.Contains(start.S_CODE) || a.EmptyList.Contains(start.S_CODE)).FirstOrDefault(); + if (conntinfo != null) + { + if (!string.IsNullOrEmpty(model.endLoc)) + { + //鍒涘缓浣滀笟 + var optask = new WMSTask + { + S_CODE = WMSHelper.GenerateTaskNo(), + S_START_WH = start.S_WH_CODE, + S_START_LOC = start.S_CODE, + S_START_AREA = start.S_AREA_CODE, + S_END_LOC = end.S_CODE, + S_END_AREA = end.S_AREA_CODE, + S_END_WH = end.S_WH_CODE, + S_STATION_LOC = conntinfo.Station, + N_TYPE = Ntype, + S_TYPE = Stype, + N_B_STATE = 0, + S_CNTR_CODE = model.cntrNo, + S_OP_DEF_NAME = S_OP_DEF_NAME, + S_BS_NO = model.workNo + }; + var note = Settings.Tasktypes.Where(a => a.StartArea == optask.S_START_AREA && a.EndArea == optask.S_END_AREA).FirstOrDefault(); + if (note != null) + { + optask.S_NOTE = note.TaskType; + } + var res = db.Insertable(optask).ExecuteCommand() > 0; + LocationHelper.LockLoc(start.S_CODE, 2); + LocationHelper.LockLoc(end.S_CODE, 1); + } + else + { + //鍒涘缓浣滀笟 + var optask = new WMSTask + { + S_CODE = WMSHelper.GenerateTaskNo(), + S_START_WH = start.S_WH_CODE, + S_START_LOC = start.S_CODE, + S_START_AREA = start.S_AREA_CODE, + S_END_LOC = "", + S_END_AREA = model.endArea, + S_END_WH = start.S_WH_CODE, + S_STATION_LOC = conntinfo.Station, + N_TYPE = Ntype, + S_TYPE = Stype, + N_B_STATE = 0, + S_CNTR_CODE = model.cntrNo, + S_OP_DEF_NAME = S_OP_DEF_NAME, + S_BS_NO = model.workNo + }; + var note = Settings.Tasktypes.Where(a => a.StartArea == optask.S_START_AREA && a.EndArea == optask.S_END_AREA).FirstOrDefault(); + if (note != null) + { + optask.S_NOTE = note.TaskType; + } + var res = db.Insertable(optask).ExecuteCommand() > 0; + LocationHelper.LockLoc(start.S_CODE, 2); + } + } + else + { + result.resultCode = -2; + result.resultMsg = $"璐т綅{start.S_CODE} 鍦ㄦ帴椹冲簱鍖洪厤缃腑鎵句笉鍒板搴旂殑鎷h揣浣嶄俊鎭�; + } + } + else + { + result.resultCode = -3; + result.resultMsg = $"璐т綅{start.S_CODE} 褰撳墠鐘舵�涓簕start.S_LOCK_STATE} 涓嶄簣鐢熸垚浠诲姟"; + } + } + else + { + result.resultCode = -1; + result.resultMsg = $"鏌ヨ涓嶅埌鎵樼洏{model.cntrNo} 缁戝畾璐т綅{cntrinfo.S_LOC_CODE}鐨勮揣浣嶄俊鎭�; + } + } + else + { + result.resultCode = -1; + result.resultMsg = $"鏌ヨ涓嶅埌鎵樼洏{model.cntrNo} 鐨勭粦瀹氳揣浣�; + } + return result; + } + + internal static SimpleResult GuidelinesOut(GuidelinesOutModel model) + { + var result = new SimpleResult(); + var db = new SqlHelper<object>().GetInstance(); + var cntrInfo = db.Queryable<LocCntrRel>().Where(it => it.S_CNTR_CODE == model.cntrCode).First(); + if (cntrInfo != null) + { + var startloc = db.Queryable<Location>().Where(it => it.S_CODE == cntrInfo.S_LOC_CODE).First(); + if (startloc != null && startloc.N_LOCK_STATE == 0) + { + LogHelper.Info($"鎵樼洏{model.cntrCode} 缁戝畾浣嶇疆{cntrInfo.S_LOC_CODE} 閿佺姸鎬亄startloc.N_LOCK_STATE}"); + if (Settings.LKCodes.Where(it => it.LiKuCode == startloc.S_AREA_CODE).FirstOrDefault() != null) + { + string taskType = ""; + Location endbit = null; + + LogHelper.Info($"鎵樼洏{model.cntrCode} 鍑哄埌鍒嗘嫞浣�); + taskType = "鍑哄簱"; + var endList = Settings.ConnetAreas.Where(it => it.LineArea == model.endArea && it.Station == model.station).ToList(); + if (endList.Count > 0) + { + foreach (var endlist in endList) + { + for (int i = 0; i < endlist.FullList.Length; i++) + { + var endloc = endlist.FullList[i]; + var end = db.Queryable<Location>().Where(it => it.S_CODE == endloc && it.N_LOCK_STATE == 0 && it.N_CURRENT_NUM == 0).First(); + if (end != null) + { + endbit = end; + break; + } + else LogHelper.Info($"鎸囧紩鍑哄簱 璐т綅{endloc} 涓嶅彲鐢�); + } + if (endbit != null) break; + } + } + else LogHelper.Info($"鎸囧紩鍑哄簱 鏈壘鍒板嚭搴撳彛搴撳尯缂栫爜{model.endArea} 瀵瑰簲鐨勯厤缃枃浠�); + + + if (endbit != null) + { + var optask = new WMSTask + { + S_CODE = WMSHelper.GenerateTaskNo(), + S_START_LOC = cntrInfo.S_LOC_CODE, + S_START_AREA = startloc.S_AREA_CODE, + S_START_WH = startloc.S_WH_CODE, + S_END_LOC = endbit.S_CODE, + S_END_AREA = endbit.S_AREA_CODE, + S_END_WH = endbit.S_WH_CODE, + S_STATION_LOC = model.station, + S_TYPE = "鍑哄簱", + N_TYPE = 2, + N_B_STATE = 0, + S_CNTR_CODE = model.cntrCode, + S_OP_DEF_NAME = taskType, + S_BS_NO = "" + }; + var note = Settings.Tasktypes.Where(it => it.StartArea == optask.S_START_AREA && it.EndArea == optask.S_END_AREA).FirstOrDefault(); + if (note != null) + { + optask.S_NOTE = note.TaskType; + } + var res = db.Insertable(optask).ExecuteCommand() > 0; + if (res) + { + startloc.N_LOCK_STATE = 2; + startloc.S_LOCK_STATE = "鍑哄簱閿�; + db.Updateable(startloc).UpdateColumns(it => new { it.S_LOCK_STATE, it.N_LOCK_STATE }).ExecuteCommand(); + LocationHelper.LockLoc(endbit.S_CODE, 1); + LogHelper.Info($"淇敼鎴愬姛"); + } + } + else + { + result.resultCode = -1; + result.resultMsg = $"鎸囧紩鍑哄簱 鏈壘鍒板彲鐢ㄥ垎鎷h揣浣�; + LogHelper.Info($"鎸囧紩鍑哄簱 鏈壘鍒板彲鐢ㄥ垎鎷h揣浣�); + } + } + else + { + result.resultCode = -1; + result.resultMsg = $"鎵樼洏{model.cntrCode} 涓嶅湪绔嬪簱涓�鏃犳硶鍑哄簱"; + LogHelper.Info($"鎵樼洏{model.cntrCode} 涓嶅湪绔嬪簱涓�鏃犳硶鍑哄簱"); + } + } + else + { + result.resultCode = -1; + result.resultMsg = $"鎸囧紩鍑哄簱 鎵樼洏鍙穥model.cntrCode} 閿佸畾鐘舵�寮傚父"; + LogHelper.Info($"鎸囧紩鍑哄簱 鎵樼洏鍙穥model.cntrCode} 閿佸畾鐘舵�寮傚父"); + } + } return result; } @@ -809,7 +1041,7 @@ //if (task.S_B_STATE != "鍙栨秷" && task.S_B_STATE != "瀹屾垚" && task.S_B_STATE != "鍏抽棴" && task.S_B_STATE != "寮哄埗瀹屾垚") //{ TaskProcess.OperateStatus(task, 6); - if (task.S_OP_NAME =="鍏ュ簱") + if (task.S_OP_NAME == "鍏ュ簱") { WMSHelper.AddChange(task); } -- Gitblit v1.9.1