| | |
| | | using HH.WCS.QingXigongchang.process; |
| | | using HH.WCS.QingXigongchang.dispatch; |
| | | using HH.WCS.QingXigongchang.process; |
| | | using HH.WCS.QingXigongchang.util; |
| | | using Newtonsoft.Json; |
| | | using SqlSugar; |
| | |
| | | var date = DateTime.Now.ToString("yyMMdd"); |
| | | return $"TN{date}{id.ToString().PadLeft(4, '0')}"; |
| | | } |
| | | internal static bool UpdateStatus(WMSTask task, string status) |
| | | internal static bool UpdateStatus(WMSTask task, string status, CntrItemRel CntItem = null) |
| | | { |
| | | var res = false; |
| | | var db = new SqlHelper<WMSTask>().GetInstance(); |
| | | task.S_B_STATE = status; |
| | | db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE }).ExecuteCommand(); |
| | | return res; |
| | | if (CntItem != null) |
| | | { |
| | | task.S_ITEM_NAME = CntItem?.S_ITEM_NAME; |
| | | task.S_ITEM_CODE = CntItem?.S_ITEM_CODE; |
| | | task.S_B_STATE = status; |
| | | db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE, it.S_ITEM_NAME, it.S_ITEM_CODE }).ExecuteCommand(); |
| | | return res; |
| | | } |
| | | else |
| | | { |
| | | task.S_B_STATE = status; |
| | | db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE }).ExecuteCommand(); |
| | | return res; |
| | | } |
| | | } |
| | | internal static bool UpdateInfo(WMSTask task, string sourceNo, string endBit, string status) |
| | | { |
| | |
| | | else if (endLoc.S_AREA_CODE == "YWLWJJB") |
| | | { |
| | | //查询任务表 要求是只能生成两个任务 起点库区为YWLWJJB hh_plg 2025年6月9日 |
| | | List<string> TaskState = new List<string>() { "完成", "取消" }; |
| | | List<string> TaskState = new List<string>() { "完成", "取消", "推送异常" }; |
| | | var TaskListNum = LocationHelper.GetList<WMSTask>(x => x.S_END_LAREA == "YWLWJJB" && !TaskState.Contains(x.S_B_STATE)); |
| | | if (TaskListNum.Count() >= 2) |
| | | { |
| | |
| | | } |
| | | if (fromLoc.S_AREA_CODE != "YWLWJJB") |
| | | { |
| | | if (fromLoc.S_LOCK_STATE.Trim() != "无" || endLoc.S_LOCK_STATE.Trim() != "无") |
| | | { |
| | | LogHelper.Info($"CreateTransport- CreateTask Error" + $"起点 {fromLoc.S_LOCK_STATE}或终点{endLoc.S_LOCK_STATE}状态不为 无 "); |
| | | return false; |
| | | } |
| | | if (!taskType.Contains("备货")) |
| | | if (fromLoc.S_LOCK_STATE.Trim() != "无" || endLoc.S_LOCK_STATE.Trim() != "无") |
| | | { |
| | | LogHelper.Info($"CreateTransport- CreateTask Error" + $"起点 {fromLoc.S_LOCK_STATE}或终点{endLoc.S_LOCK_STATE}状态不为 无 "); |
| | | return false; |
| | | } |
| | | } |
| | | if (!taskType.Contains("成品满框-入库")) |
| | | if (endLoc.N_CURRENT_NUM >= endLayer || fromLoc.N_CURRENT_NUM < startLayer) |
| | |
| | | } |
| | | internal static void End(WMSTask task) |
| | | { |
| | | var db = new SqlHelper<WMSTask>().GetInstance(); |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | |
| | | |
| | | //plg 2025年6月13日 10:42:24 |
| | | if (task.S_END_LAREA == "YWLWJJB" && task.S_START_LAREA != "YWLRGDD" && !string.IsNullOrEmpty(task.S_TWO_END_LOC)) |
| | | if (task.S_START_LOC == "YWLT1TSJCD-1" && task.N_START_LAYER == 2) |
| | | { |
| | | var model = db.Queryable<Location>().Where(a => a.S_LOC_CODE == task.S_TWO_END_LOC).First(); |
| | | if (model != null) |
| | | { |
| | | //先解锁终点 在锁定 |
| | | db.Ado.BeginTran(); |
| | | try |
| | | { |
| | | model.S_LOCK_STATE = "无"; |
| | | var res = db.Updateable(model).UpdateColumns(it => new { it.S_LOCK_STATE }).ExecuteCommand() > 0; |
| | | LogHelper.Info(task.S_TWO_END_LOC + "LockLoc:锁结果" + res); |
| | | db.Ado.CommitTran(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | db.Ado.RollbackTran(); |
| | | LogHelper.Info("CreateTask 失败 " + ex.Message); |
| | | } |
| | | var _clrel = LocationHelper.GetLocCntrRel(task.S_START_LOC); |
| | | |
| | | LogHelper.Info(task.S_TWO_END_LOC + "二段任务 开始。 "); |
| | | var b = TaskProcess.CreateTransport(task.S_SRC_NO, task.S_END_LOC, task.S_TWO_END_LOC, "原物料搬运-纸箱", task.S_CNTRS.Split(',').ToList(), task.N_START_LAYER, 1, task.N_CNTR_COUNT, task.N_PRIORITY); |
| | | //if (b) |
| | | //{ |
| | | // if (task != null) |
| | | // { |
| | | // task.S_B_STATE = "完成"; |
| | | // task.T_END_TIME = DateTime.Now; |
| | | // db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE, it.T_END_TIME }).ExecuteCommand(); |
| | | // } |
| | | //} |
| | | if (_clrel != null) |
| | | { |
| | | var sta = db.Queryable<Location>().Where(l => l.S_LOC_CODE == task.S_START_LOC).First(); |
| | | if (sta.N_CURRENT_NUM > 0 && sta.S_LOCK_STATE == "无") |
| | | { |
| | | var sign = Settings.GetTimeStamp(); |
| | | var res = TaskProcess.CreateTransport(sign, task.S_START_LOC, task.S_END_LOC, "原物料搬运-纸箱", new List<string> { _clrel.FirstOrDefault().S_CNTR_CODE }, sta.N_CURRENT_NUM, 1, 1, 60); |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (task.S_END_LAREA == "YWLYLTKQ" || task.S_END_LAREA == "YWLTKKTQ") |
| | | { |
| | | //查询出库锁YWLWJJB |
| | | var ls = LocationHelper.GetList<Location>(x => x.S_AREA_CODE == "YWLWJJB" && x.S_LOCK_STATE == "出库锁"); |
| | | if (ls.Any()) |
| | | { |
| | | var tas = db.Queryable<WMSTask>().Where(a => a.S_START_LOC == ls.First().S_LOC_CODE).ToList().FirstOrDefault(); |
| | | if (tas.S_B_STATE == "已推送") |
| | | { |
| | | NDC.ChangeParamPri(tas.S_TASK_NO, 70); |
| | | } |
| | | } |
| | | } |
| | | ////plg 2025年6月13日 10:42:24 |
| | | //if (task.S_END_LAREA == "YWLWJJB" && task.S_START_LAREA != "YWLRGDD" && !string.IsNullOrEmpty(task.S_TWO_END_LOC)) |
| | | //{ |
| | | // var model = db.Queryable<Location>().Where(a => a.S_LOC_CODE == task.S_TWO_END_LOC).First(); |
| | | // if (model != null) |
| | | // { |
| | | // //先解锁终点 在锁定 |
| | | // db.Ado.BeginTran(); |
| | | // try |
| | | // { |
| | | // model.S_LOCK_STATE = "无"; |
| | | // var res = db.Updateable(model).UpdateColumns(it => new { it.S_LOCK_STATE }).ExecuteCommand() > 0; |
| | | // LogHelper.Info(task.S_TWO_END_LOC + "LockLoc:锁结果" + res); |
| | | // db.Ado.CommitTran(); |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // db.Ado.RollbackTran(); |
| | | // LogHelper.Info("CreateTask 失败 " + ex.Message); |
| | | // } |
| | | |
| | | // LogHelper.Info(task.S_TWO_END_LOC + "二段任务 开始。 "); |
| | | // var b = TaskProcess.CreateTransport(task.S_SRC_NO, task.S_END_LOC, task.S_TWO_END_LOC, "原物料搬运-纸箱", task.S_CNTRS.Split(',').ToList(), task.N_START_LAYER, 1, task.N_CNTR_COUNT, task.N_PRIORITY); |
| | | // //if (b) |
| | | // //{ |
| | | // // if (task != null) |
| | | // // { |
| | | // // task.S_B_STATE = "完成"; |
| | | // // task.T_END_TIME = DateTime.Now; |
| | | // // db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE, it.T_END_TIME }).ExecuteCommand(); |
| | | // // } |
| | | // //} |
| | | // } |
| | | //} |
| | | if (task != null) |
| | | { |
| | | task.S_B_STATE = "完成"; |