From 27e00e4c0d354727728ac4b8770b1575b5077399 Mon Sep 17 00:00:00 2001 From: 海波 张 <2956280567@qq.com> Date: 星期一, 14 七月 2025 17:30:59 +0800 Subject: [PATCH] 出库修改 --- wms/TaskHelper.cs | 602 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 488 insertions(+), 114 deletions(-) diff --git a/wms/TaskHelper.cs b/wms/TaskHelper.cs index 7b16b6d..dda45de 100644 --- a/wms/TaskHelper.cs +++ b/wms/TaskHelper.cs @@ -1,6 +1,9 @@ -锘縰sing HH.WCS.ZhongCeJinTan.device; +锘縰sing HH.WCS.ZhongCeJinTan.api; +using HH.WCS.ZhongCeJinTan.core; +using HH.WCS.ZhongCeJinTan.device; using HH.WCS.ZhongCeJinTan.dispatch; using HH.WCS.ZhongCeJinTan.util; +using ICSharpCode.SharpZipLib.Zip; using Newtonsoft.Json; using SqlSugar; using System; @@ -12,6 +15,8 @@ using System.Xml.Linq; using static HH.WCS.ZhongCeJinTan.util.Settings; using static HH.WCS.ZhongCeJinTan.wms.WcsModel; + + namespace HH.WCS.ZhongCeJinTan.wms { @@ -48,6 +53,21 @@ var task = db.Queryable<WMSTask>().Where(a => a.S_CODE.Trim() == no).First(); return task; } + + //鏌ユ壘WCS绔嬪簱浠诲姟 鍙傛暟浣滀笟缂栫爜,璋冨害绫诲瀷 agv/wcs + internal static WMSTask GetTaskByWorkNo(string no,string type) + { + var db = new SqlHelper<WMSTask>().GetInstance(); + var task = db.Queryable<WMSTask>().Where(a => a.S_OP_CODE == no && a.S_SCHEDULE_TYPE== type).First(); + return task; + } + + + internal static WmsWork GetWmsWork(string no) { + var db = new SqlHelper<WmsWork>().GetInstance(); + return db.Queryable<WmsWork>().Where(it => it.S_CODE == no).First(); + } + internal static WMSTask GetTaskByCntrCode(string cntrCode) @@ -204,6 +224,7 @@ CreateOneTask(operation); break; case 7: + //鍑哄簱涓ゆ浠诲姟 CreateOutTowTask(operation); break; case 9: @@ -235,13 +256,15 @@ { var tasks = new List<Task>(); + + // 浠诲姟1 var task1 = new WMSTask() { // 浣滀笟缂栫爜 S_OP_CODE = operation.S_CODE, // 浠诲姟鍙�- S_CODE = GenerateTaskNo(), + S_CODE = operation.S_CODE + "_1", // 浠诲姟绫诲瀷 N_TYPE = operation.N_TYPE, // 浠诲姟绫诲瀷 @@ -250,6 +273,10 @@ S_START_LOC = operation.S_START_LOC, // 璧风偣搴撳尯 S_START_AREA = operation.S_START_AREA, + //璧风偣搴撳尯鍚嶇О + S_START_AREA_NAME = operation.S_START_AREA_NAME, + //缁堢偣搴撳尯鍚嶇О + S_END_AREA_NAME = operation.S_END_AREA_NAME, // 缁堢偣璐т綅 S_END_LOC = operation.S_END_LOC, // 缁堢偣搴撳尯 @@ -266,6 +293,10 @@ N_PRIORITY = operation.N_PRIORITY, //宸ヨ绫诲瀷 TOOLSTYPE = operation.TOOLSTYPE, + + + + }; try @@ -278,12 +309,14 @@ { LocationHelper.LockLoc(operation.S_START_LOC, "鍑哄簱閿�, 2); LocationHelper.LockLoc(operation.S_END_LOC, "鍏ュ簱閿�, 1); - LogHelper.Info($"浠诲姟{task1.S_OP_CODE}鍒涘缓鎴愬姛", "浠诲姟"); + LogHelper.Info($"浠诲姟{task1.S_CODE}鍒涘缓鎴愬姛", "浠诲姟"); var db = new SqlHelper<object>().GetInstance(); db.Updateable(operation).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE }).ExecuteCommand(); + + TaskHelper.opMesTask(task1, 0); } else { - LogHelper.Info($"浠诲姟{task1.S_OP_CODE}鍒涘缓澶辫触", "浠诲姟"); + LogHelper.Info($"浠诲姟{task1.S_CODE}鍒涘缓澶辫触", "浠诲姟"); } } @@ -335,6 +368,10 @@ N_PRIORITY = operation.N_PRIORITY, //宸ヨ绫诲瀷 TOOLSTYPE = operation.TOOLSTYPE, + //璧风偣搴撳尯鍚嶇О + S_START_AREA_NAME = operation.S_START_AREA_NAME, + //缁堢偣搴撳尯鍚嶇О + S_END_AREA_NAME = operation.CONNECTION_AREA, }; @@ -369,6 +406,10 @@ N_PRIORITY = operation.N_PRIORITY, //宸ヨ绫诲瀷 TOOLSTYPE = operation.TOOLSTYPE, + //璧风偣搴撳尯鍚嶇О + S_START_AREA_NAME = operation.CONNECTION_AREA, + //缁堢偣搴撳尯鍚嶇О + S_END_AREA_NAME = operation.S_END_AREA_NAME, }; try @@ -379,12 +420,14 @@ if (CreateTask(task1) && CreateTask(task2)) { - LocationHelper.LockLoc(operation.S_START_LOC, "鍑哄簱閿�, 2); - LocationHelper.LockLoc(operation.S_END_LOC, "鍏ュ簱閿�, 1); - LocationHelper.LockLoc(operation.CONNECTION, "鍏朵粬閿�, 3); + //LocationHelper.LockLoc(operation.S_START_LOC, "鍑哄簱閿�, 2); + //LocationHelper.LockLoc(operation.S_END_LOC, "鍏ュ簱閿�, 1); + //LocationHelper.LockLoc(operation.CONNECTION, "鍏朵粬閿�, 3); LogHelper.Info($"浠诲姟{task1.S_CODE},{task2.S_CODE}鍒涘缓鎴愬姛", "浠诲姟"); var db = new SqlHelper<object>().GetInstance(); db.Updateable(operation).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE }).ExecuteCommand(); + LogHelper.Info($"鍥炴姤{task1.S_OP_CODE}", "鍥炴姤Mes浠诲姟"); + TaskHelper.opMesTask(task1, 0); } else { @@ -404,99 +447,117 @@ var ConnectionLoc = LocationHelper.GetLocOne(operation.CONNECTION); - - // 浠诲姟1 - var task1 = new WMSTask() + var count = LocationHelper.GetConnectionTaskCount(operation.CONNECTION); + LogHelper.Info($"CreateOneTask 浣滀笟:{operation.S_CODE},鎺ラ┏浣�{operation.CONNECTION}锛屼换鍔℃暟閲忥細{count}", "浠诲姟"); + if (count<=2) { - // 浣滀笟缂栫爜 - S_OP_CODE = operation.S_CODE, - // 浠诲姟鍙�- S_CODE = operation.S_CODE + "_2", - // 浠诲姟绫诲瀷 - N_TYPE = operation.N_TYPE, - // 浠诲姟绫诲瀷 - S_TYPE = operation.S_TYPE, - // 璧风偣璐т綅 - S_START_LOC = operation.S_START_LOC, - // 璧风偣搴撳尯 - S_START_AREA = operation.S_START_AREA, - // 缁堢偣璐т綅 - S_END_LOC = operation.CONNECTION, - // 缁堢偣搴撳尯 - S_END_AREA = ConnectionLoc.S_AREA_CODE, - // 璁惧绫诲瀷 - N_SCHEDULE_TYPE = 2, - // 璁惧绫诲瀷 - S_SCHEDULE_TYPE = "wcs", - // 瀹瑰櫒缂栫爜 - S_CNTR_CODE = operation.S_CNTR_CODE, - //浠诲姟鐘舵� - S_B_STATE = "鏈墽琛�, - // 浼樺厛绾�- N_PRIORITY = operation.N_PRIORITY, - //宸ヨ绫诲瀷 - TOOLSTYPE = operation.TOOLSTYPE, - }; - // 浠诲姟2 - var task2 = new WMSTask() - { - // 浣滀笟缂栫爜 - S_OP_CODE = operation.S_CODE, - // 浠诲姟鍙�- S_CODE = operation.S_CODE + "_1", - // 浠诲姟绫诲瀷 - N_TYPE = operation.N_TYPE, - // 浠诲姟绫诲瀷 - S_TYPE = operation.S_TYPE, - // 璧风偣璐т綅 - S_START_LOC = operation.CONNECTION, - // 璧风偣搴撳尯 - S_START_AREA = ConnectionLoc.S_AREA_CODE, - // 缁堢偣璐т綅 - S_END_LOC = operation.S_END_LOC, - // 缁堢偣搴撳尯 - S_END_AREA = operation.S_END_AREA, - // 璁惧绫诲瀷 - N_SCHEDULE_TYPE = 3, - // 璁惧绫诲瀷 - S_SCHEDULE_TYPE = "agv", - // 瀹瑰櫒缂栫爜 - S_CNTR_CODE = operation.S_CNTR_CODE, - //浠诲姟鐘舵� - S_B_STATE = "鏈墽琛�, - // 浼樺厛绾�- N_PRIORITY = operation.N_PRIORITY, - //宸ヨ绫诲瀷 - TOOLSTYPE = operation.TOOLSTYPE, - }; - - try - { - // 淇敼浣滀笟鐘舵�涓烘墽琛屼腑 - operation.N_B_STATE = 1; - operation.S_B_STATE = "鎵ц"; - - if (CreateTask(task1) && CreateTask(task2)) + // 浠诲姟1 + var task1 = new WMSTask() { - LocationHelper.LockLoc(operation.S_START_LOC, "鍑哄簱閿�, 2); - LocationHelper.LockLoc(operation.S_END_LOC, "鍏ュ簱閿�, 1); - LocationHelper.LockLoc(operation.CONNECTION, "鍏ュ簱閿�, 1); - LogHelper.Info($"浠诲姟{task1.S_CODE},{task2.S_CODE}鍒涘缓鎴愬姛", "浠诲姟"); - var db = new SqlHelper<object>().GetInstance(); - db.Updateable(operation).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE }).ExecuteCommand(); - } - else - { - LogHelper.Info($"浠诲姟{task1.S_CODE},{task2.S_CODE}鍒涘缓澶辫触", "浠诲姟"); - } + // 浣滀笟缂栫爜 + S_OP_CODE = operation.S_CODE, + // 浠诲姟鍙�+ S_CODE = operation.S_CODE + "_1", + // 浠诲姟绫诲瀷 + N_TYPE = operation.N_TYPE, + // 浠诲姟绫诲瀷 + S_TYPE = operation.S_TYPE, + // 璧风偣璐т綅 + S_START_LOC = operation.S_START_LOC, + // 璧风偣搴撳尯 + S_START_AREA = operation.S_START_AREA, + // 缁堢偣璐т綅 + S_END_LOC = operation.CONNECTION, + // 缁堢偣搴撳尯 + S_END_AREA = ConnectionLoc.S_AREA_CODE, + // 璁惧绫诲瀷 + N_SCHEDULE_TYPE = 2, + // 璁惧绫诲瀷 + S_SCHEDULE_TYPE = "wcs", + // 瀹瑰櫒缂栫爜 + S_CNTR_CODE = operation.S_CNTR_CODE, + //浠诲姟鐘舵� + S_B_STATE = "鏈墽琛�, + // 浼樺厛绾�+ N_PRIORITY = operation.N_PRIORITY, + //宸ヨ绫诲瀷 + TOOLSTYPE = operation.TOOLSTYPE, + //璧风偣搴撳尯鍚嶇О + S_START_AREA_NAME = operation.S_START_AREA_NAME, + //缁堢偣搴撳尯鍚嶇О + S_END_AREA_NAME = operation.CONNECTION_AREA, + }; + // 浠诲姟2 + var task2 = new WMSTask() + { + // 浣滀笟缂栫爜 + S_OP_CODE = operation.S_CODE, + // 浠诲姟鍙�+ S_CODE = operation.S_CODE + "_2", + // 浠诲姟绫诲瀷 + N_TYPE = operation.N_TYPE, + // 浠诲姟绫诲瀷 + S_TYPE = operation.S_TYPE, + // 璧风偣璐т綅 + S_START_LOC = operation.CONNECTION, + // 璧风偣搴撳尯 + S_START_AREA = ConnectionLoc.S_AREA_CODE, + // 缁堢偣璐т綅 + S_END_LOC = operation.S_END_LOC, + // 缁堢偣搴撳尯 + S_END_AREA = operation.S_END_AREA, + // 璁惧绫诲瀷 + N_SCHEDULE_TYPE = 3, + // 璁惧绫诲瀷 + S_SCHEDULE_TYPE = "agv", + // 瀹瑰櫒缂栫爜 + S_CNTR_CODE = operation.S_CNTR_CODE, + //浠诲姟鐘舵� + S_B_STATE = "鏈墽琛�, + // 浼樺厛绾�+ N_PRIORITY = operation.N_PRIORITY, + //宸ヨ绫诲瀷 + TOOLSTYPE = operation.TOOLSTYPE, + //璧风偣搴撳尯鍚嶇О + S_START_AREA_NAME = operation.CONNECTION_AREA, + //缁堢偣搴撳尯鍚嶇О + S_END_AREA_NAME = operation.S_END_AREA_NAME, + }; + + try + { + // 淇敼浣滀笟鐘舵�涓烘墽琛屼腑 + operation.N_B_STATE = 1; + operation.S_B_STATE = "鎵ц"; + + if (CreateTask(task1) && CreateTask(task2)) + { + //LocationHelper.LockLoc(operation.S_START_LOC, "鍑哄簱閿�, 2); + //LocationHelper.LockLoc(operation.S_END_LOC, "鍏ュ簱閿�, 1); + //LocationHelper.LockLoc(operation.CONNECTION, "鍏ュ簱閿�, 1); + LogHelper.Info($"浠诲姟{task1.S_CODE},{task2.S_CODE}鍒涘缓鎴愬姛", "浠诲姟"); + var db = new SqlHelper<object>().GetInstance(); + db.Updateable(operation).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE }).ExecuteCommand(); + + TaskHelper.opMesTask(task2, 0); + } + else + { + LogHelper.Info($"浠诲姟{task1.S_CODE},{task2.S_CODE}鍒涘缓澶辫触", "浠诲姟"); + } + + } + catch (Exception e) + { + LogHelper.Info("CreateOneTask寮傚父淇℃伅" + e.Message, "浠诲姟"); + throw; + } } - catch (Exception e) - { - LogHelper.Info("CreateOneTask寮傚父淇℃伅" + e.Message, "浠诲姟"); - throw; - } + + + } @@ -518,6 +579,7 @@ var db = new SqlHelper<WmsTaskAction>().GetInstance(); var action = new WmsTaskAction() { S_ACTION = state.ToString(), + N_ACTION_CODE = state, S_TASK_CODE = no, S_EQ_CODE = forkliftNo, S_EQ_TYPE = "agv", @@ -525,7 +587,95 @@ }; return db.Insertable(action).ExecuteCommand() > 0; } - internal static WmsTaskAction GetActionRecord(string taskNo,string action) + + internal static bool opMesTask(WMSTask task, int state) + { + + HttpHelper apiHelper = new HttpHelper(); + string baseUrl = Settings.MesApiAddres; + try + { + var cntrItem = ContainerHelper.GetCntrItem(task.S_CNTR_CODE); + if (cntrItem == null) + { + LogHelper.Info($"浠诲姟{task.S_CODE}娌℃煡鍒板鍣ㄧ墿鏂檣task.S_CNTR_CODE}", "鍥炴姤Mes浠诲姟"); + return false; + } + + var work = TaskHelper.GetWmsWork(task.S_OP_CODE); + + if (work == null) { + LogHelper.Info($"浠诲姟{task.S_CODE}娌℃煡鍒颁綔涓歿task.S_OP_CODE}", "鍥炴姤Mes浠诲姟"); + return false; + } + var endArea = ""; + + if (LocationHelper.GetErroArea(task.S_END_AREA)) + { + if (task.S_TYPE.Contains("鍑哄簱")) + { + endArea = task.S_END_LOC; + } + else { + endArea = task.S_END_AREA; + } + + + } + else { + if (task.S_TYPE.Contains("鍑哄簱")) + { + endArea = task.S_END_LOC; + } + else { + endArea = work.S_END_AREA; + } + } + + + + + var interact = new + { + taskNo = task.S_OP_CODE,//浠诲姟鍙�+ updater = "WMS",// 鎿嶄綔浜�濡俉MS/MES绛�+ endStock = endArea,//缁堢偣 + taskStatus = state,//0锛氬垵濮嬬姸鎬侊紝1锛氳繘琛屼腑锛�锛氬畬鎴愶紝3锛氫换鍔″彇娑�+ updateTime = DateTime.Now.ToString(),//鎿嶄綔鏃堕棿 + TurnCardNum = cntrItem.TurnCardNum,//鍛ㄨ浆鍗″彿 + TOOLS_NO = task.S_CNTR_CODE//宸ヨ缂栧彿 + + }; + LogHelper.Info("Mes鏇存柊浠诲姟鐘舵� 鍦板潃淇℃伅:" + baseUrl + "updateTask", "鍥炴姤Mes浠诲姟"); + LogHelper.Info("Mes鏇存柊浠诲姟鐘舵� 鍙傛暟淇℃伅:" + JsonConvert.SerializeObject(interact), "鍥炴姤Mes浠诲姟"); + var result = apiHelper.Post(baseUrl + "updateTask", JsonConvert.SerializeObject(interact)); + LogHelper.Info("Mes鏇存柊浠诲姟鐘舵� 杩斿洖淇℃伅:" + JsonConvert.SerializeObject(result), "鍥炴姤Mes浠诲姟"); + if (!string.IsNullOrEmpty(result)) + { + var res = JsonConvert.DeserializeObject<MesTaskReturn>(result); + if (res.success && res.code == "0") + { + return true; + } + else + { + return false; + } + } + else + { + LogHelper.Info("Mes鏇存柊浠诲姟鐘舵� 杩斿洖淇℃伅涓虹┖", "鍥炴姤Mes浠诲姟"); + return false; + } + } + catch (Exception ex) + { + LogHelper.Info("Mes鏇存柊浠诲姟鐘舵�寮傚父"+ex.Message, "鍥炴姤Mes浠诲姟"); + return false; + } + + } + internal static WmsTaskAction GetActionRecord(string taskNo,string action) { var db = new SqlHelper<WmsTaskAction>().GetInstance(); @@ -534,7 +684,26 @@ return ac; } - + /// <summary> + /// 浠诲姟鎷︽埅 + /// </summary> + /// <param name="task"></param> + /// <returns></returns> + internal static bool Intercept() + { + var db = new SqlHelper<object>().GetInstance(); + + var model = db.Queryable<ManualTaskSwitch>().First(); + if (model != null && model.State == "Y") + { + return false; + } + else + { + return true; + } + + } internal static bool WcsAddActionRecord(string no, string state, string forkliftNo, string extData = "0") @@ -543,6 +712,7 @@ var action = new WmsTaskAction() { S_ACTION = state.ToString(), + N_ACTION_CODE = int.Parse(state), S_TASK_CODE = no, S_EQ_CODE = forkliftNo, S_EQ_TYPE = "wcs", @@ -558,18 +728,18 @@ var db = new SqlHelper<WmsTaskAction>().GetInstance(); return db.Queryable<WmsTaskAction>().Count(a => a.S_TASK_CODE.Trim() == no.Trim() && a.S_ACTION == code) > 0; } - internal static void Begin(WMSTask task,string avgNo) { - var db = new SqlHelper<WMSTask>().GetInstance(); - if (task != null) { - if (task.S_B_STATE.Trim() == "宸叉帹閫�) { - task.S_B_STATE = "鎵ц涓�; - task.T_START_TIME = DateTime.Now; - task.S_EQ_NO = avgNo; - db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE, it.T_START_TIME,it.S_EQ_NO }).ExecuteCommand(); - } + //internal static void Begin(WMSTask task,string avgNo) { + // var db = new SqlHelper<WMSTask>().GetInstance(); + // if (task != null) { + // if (task.S_B_STATE.Trim() == "宸叉帹閫�) { + // task.S_B_STATE = "鎵ц涓�; + // task.T_START_TIME = DateTime.Now; + // task.S_EQ_NO = avgNo; + // db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE, it.T_START_TIME,it.S_EQ_NO }).ExecuteCommand(); + // } - } - } + // } + //} internal static WcsRfidCheckoutEntitys GetRfid(string TaskCode) { @@ -581,7 +751,7 @@ - internal static void Begin(WMSTask task) + internal static void Begin(WMSTask task, string avgNo="") { var db = new SqlHelper<WMSTask>().GetInstance(); if (task != null) @@ -590,8 +760,9 @@ { task.N_B_STATE = 2; task.S_B_STATE = WMSTask.GetStateStr(task.N_B_STATE); + task.S_EQ_NO = avgNo; task.T_START_TIME = DateTime.Now; - db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE, it.T_START_TIME }).ExecuteCommand(); + db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE, it.T_START_TIME,it.S_EQ_NO }).ExecuteCommand(); } } } @@ -659,12 +830,28 @@ if (task.S_TYPE.Contains("鍑哄簱") && task.S_SCHEDULE_TYPE.Contains("wcs")) { LocationHelper.LockLoc(task.S_END_LOC, "鍑哄簱閿�, 2); } - - if (task.S_TYPE.Contains("鍑哄簱")&&task.S_SCHEDULE_TYPE.Contains("agv") ) + + if (task.S_SCHEDULE_TYPE.Contains("agv")) + { + + if (LocationHelper.GetErroArea(task.S_END_AREA)) + { + db.Deleteable<Container>().Where(it => it.S_CODE == task.S_CNTR_CODE).ExecuteCommand(); + db.Deleteable<LocCntrRel>().Where(it => it.S_CNTR_CODE == task.S_CNTR_CODE).ExecuteCommand(); + db.Deleteable<CntrItemRel>().Where(it => it.S_CNTR_CODE == task.S_CNTR_CODE).ExecuteCommand(); + } + else + { + TaskHelper.opMesTask(task, 2); + } + } + + + if (task.S_TYPE.Contains("鍑哄簱") && task.S_SCHEDULE_TYPE.Contains("agv")) { var location = db.Queryable<Location>().Where(a => a.S_CODE == task.S_END_LOC).First(); location.N_CURRENT_NUM = 0; - db.Updateable(location).UpdateColumns(it => new { it.N_CURRENT_NUM}).ExecuteCommand(); + db.Updateable(location).UpdateColumns(it => new { it.N_CURRENT_NUM }).ExecuteCommand(); db.Deleteable<Container>().Where(it => it.S_CODE == task.S_CNTR_CODE).ExecuteCommand(); db.Deleteable<LocCntrRel>().Where(it => it.S_CNTR_CODE == task.S_CNTR_CODE).ExecuteCommand(); db.Deleteable<CntrItemRel>().Where(it => it.S_CNTR_CODE == task.S_CNTR_CODE).ExecuteCommand(); @@ -680,13 +867,22 @@ { task.N_B_STATE = 5; task.S_B_STATE = WMSTask.GetStateStr(task.N_B_STATE); - db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE }).ExecuteCommand(); + task.T_END_TIME = DateTime.Now; + db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE,it.T_END_TIME}).ExecuteCommand(); } } internal static bool CreateTask(WMSTask wmsTask) { var db = new SqlHelper<WMSTask>().GetInstance(); + + var task = db.Queryable<WMSTask>().Where(a => a.S_CODE == wmsTask.S_CODE).First(); + + if (task!=null) + { + return false; + } + return db.Insertable(wmsTask).ExecuteCommand() > 0; } @@ -796,5 +992,183 @@ } } + + + /// <summary> + /// 鏍规嵁浠诲姟鐘舵�鍜岃捣鐐瑰拰绫诲瀷鏌ユ壘浠诲姟 + /// </summary> + /// <param name="state"></param> + /// <returns></returns> + internal static WMSTask GetTaskByType(string start,string type,string state) + { + try + { + var db = new SqlHelper<object>().GetInstance(); + return db.Queryable<WMSTask>().Where(a => a.S_B_STATE.Trim() == state && a.S_TYPE.Contains(type) && a.S_START_LOC.Contains(start)).First(); + } + catch (Exception ex) + { + LogHelper.Error(ex.Message, ex); + return new WMSTask(); + } + + } + + + + /// <summary> + /// 鏍规嵁浣滀笟缂栫爜鍜岃澶囩被鍨嬭幏鍙栧崟涓换鍔�+ /// </summary> + /// <param name="state"></param> + /// <returns></returns> + internal static WMSTask GetTaskByWork(string eq, string opCode) + { + try + { + var db = new SqlHelper<object>().GetInstance(); + return db.Queryable<WMSTask>().Where(a => a.S_SCHEDULE_TYPE.Contains(eq) && a.S_OP_CODE.Contains(opCode)).First(); + } + catch (Exception ex) + { + LogHelper.Error(ex.Message, ex); + return new WMSTask(); + } + + } + + /// <summary> + /// 杩斿洖褰撳墠鎺ラ┏浣嶆墽琛屼腑浠诲姟鏁伴噺 + /// </summary> + internal static int GetConnectionTask(string Connection) + { + var db = new SqlHelper<object>().GetInstance(); + + + var ConnectionList = 0; + ConnectionList = db.Queryable<WMSTask>().Where(a => a.S_END_LOC.Contains(Connection) && a.S_TYPE.Contains("鍑哄簱") && a.S_B_STATE != "瀹屾垚" && a.S_B_STATE != "鍙栨秷" && a.S_B_STATE != "鏈墽琛�).ToList().Count(); + + return ConnectionList; + } + + + //internal static bool CreateAgvState(AgvState agvState) + //{ + // try + // { + // var db = new SqlHelper<object>().GetInstance(); + + // return db.Insertable<AgvState>(agvState).ExecuteCommand() > 0; + // } + // catch (Exception ex) + // { + // LogHelper.Info($"娣诲姞Agv鍔ㄤ綔缂撳瓨寮傚父" + ex.Message, "NDC"); + // throw; + // } + //} + + + internal static bool CreateMesKtTask(MesKtTask cntr) + { + try + { + var db = new SqlHelper<object>().GetInstance(); + + return db.Insertable<MesKtTask>(cntr).ExecuteCommand() > 0; + } + catch (Exception ex) + { + LogHelper.Info($"娣诲姞Mes绌烘墭缂撳瓨寮傚父" + ex.Message, "Mes浠诲姟涓嬪彂"); + throw; + } + } + + internal static MesKtTask GetMesKtTask(string end) + { + + var db = new SqlHelper<object>().GetInstance(); + + return db.Queryable<MesKtTask>().Where(a => a.Location_To==end && a.Status=="N").First(); + } + + internal static bool ChangeMesKtTask(MesKtTask kt) + { + + var db = new SqlHelper<object>().GetInstance(); + kt.Status = "Y"; + return db.Updateable(kt).UpdateColumns(it => new { + it.Status + }).ExecuteCommand()>0; + + + } + + internal static List<UnlimitedLoc> GetMesKtLoc() + { + + var db = new SqlHelper<object>().GetInstance(); + + return db.Queryable<UnlimitedLoc>().Where(a=>a.Enable=="Y").ToList(); + } + + + /// <summary> + /// 鑾峰彇鍏ュ簱浼樺厛绾ц〃 + /// </summary> + /// <returns></returns> + internal static List<InPri> GetInPri() + { + + var db = new SqlHelper<object>().GetInstance(); + + return db.Queryable<InPri>().Where(a=>a.Enable=="Y") .ToList(); + } + /// <summary> + /// 鑾峰彇鍑哄簱鎻愰珮浼樺厛绾ц〃 + /// </summary> + /// <returns></returns> + internal static OutMinutePriority GetOutMinutePriority() + { + + var db = new SqlHelper<object>().GetInstance(); + + return db.Queryable<OutMinutePriority>().Where(a => a.Enable == "Y").First(); + } + + + + + /// <summary> + /// 娣诲姞agv鍔ㄤ綔缂撳瓨 + /// </summary> + /// <param name="agv"></param> + /// <returns></returns> + internal static bool CreateAgvActionState(AgvActionState agv) + { + try + { + var db = new SqlHelper<object>().GetInstance(); + return db.Insertable<AgvActionState>(agv).ExecuteCommand() > 0; + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + throw; + } + } + + + /// <summary> + /// 鑾峰彇agv鍔ㄤ綔 + /// </summary> + /// <returns></returns> + internal static List<AgvActionState> GetAgvActionState( string taskNo) + { + + var db = new SqlHelper<object>().GetInstance(); + + return db.Queryable<AgvActionState>().Where(a => a.task_no==taskNo).ToList(); + } + + } } -- Gitblit v1.9.1