From b67787b031e357c60565d3e1aa8b829706e520e2 Mon Sep 17 00:00:00 2001 From: 海波 张 <2956280567@qq.com> Date: 星期五, 11 七月 2025 17:30:56 +0800 Subject: [PATCH] Mes接口修改 --- dispatch/WcsTask.cs | 304 +++++++++++++++++++++++++++----------------------- 1 files changed, 164 insertions(+), 140 deletions(-) diff --git a/dispatch/WcsTask.cs b/dispatch/WcsTask.cs index 0fdfb0d..d6c265a 100644 --- a/dispatch/WcsTask.cs +++ b/dispatch/WcsTask.cs @@ -41,79 +41,87 @@ string Traycode = mst.S_CNTR_CODE; var isFu = "0"; - var cntr = ContainerHelper.GetCntr(Traycode); - - if (cntr!=null) + try { - if (cntr.N_DETAIL_COUNT>0) + var cntr = ContainerHelper.GetCntr(Traycode); + + if (cntr != null) { - isFu = "1"; + if (cntr.N_DETAIL_COUNT > 0) + { + isFu = "1"; + } } - } - var workFlow = TaskHelper.selectWorkFlowByType(mst.N_TYPE.ToString(), mst.TOOLSTYPE); + var workFlow = TaskHelper.selectWorkFlowByType(mst.N_TYPE.ToString(), mst.TOOLSTYPE); - - if (workFlow != null) - { - if (workFlow.INOROUT.Contains("鍏ュ簱")) + + if (workFlow != null) { - Type = "1"; + if (workFlow.INOROUT.Contains("鍏ュ簱")) + { + Type = "1"; + } + + if (workFlow.INOROUT.Contains("鍑哄簱")) + { + Type = "2"; + var count = TaskHelper.GetConnectionTask(mst.S_END_LOC); + if (count >= 2) + { + return false; + } + + + } } - if (workFlow.INOROUT.Contains("鍑哄簱")) + if (mst.S_CNTR_CODE.Contains("KJZ")) { - Type = "2"; - var count = TaskHelper.GetConnectionTask(mst.S_END_LOC); - if (count>=2) + TrayType = "KJZ"; + } + + var interact = new + { + requestPk = mst.S_CODE,//浠诲姟鍙�+ contNo = Traycode,//鎵樼洏鍙�+ contType = TrayType,//鎵樼洏绫诲瀷 + trkType = Type,//浠诲姟绫诲瀷 + trkPrty = mst.N_PRIORITY,//浠诲姟浼樺厛绾�+ frmPos = mst.S_START_LOC,//璧峰浣嶇疆 + toPos = mst.S_END_LOC,//鐩殑鍦�+ isFull = isFu,//绌烘墭 婊℃墭 + groupNo = Item?.S_ITEM_NAME,//鎼�缁勫彿 + clientCode = "WMS",//鎿嶄綔浜�+ operationTime = DateTime.Now.ToString()//鎿嶄綔鏃堕棿 + }; + LogHelper.Info("Wcs绔嬪簱涓嬪彂浠诲姟 鍦板潃淇℃伅:" + baseUrl + "receive", "绔嬪簱涓嬪彂浠诲姟"); + LogHelper.Info("Wcs绔嬪簱涓嬪彂浠诲姟 鍙傛暟淇℃伅:" + JsonConvert.SerializeObject(interact), "绔嬪簱涓嬪彂浠诲姟"); + var result = apiHelper.Post(baseUrl + "receive", JsonConvert.SerializeObject(interact)); + LogHelper.Info("Wcs绔嬪簱涓嬪彂浠诲姟 杩斿洖淇℃伅:" + JsonConvert.SerializeObject(result), "绔嬪簱涓嬪彂浠诲姟"); + if (!string.IsNullOrEmpty(result)) + { + var res = JsonConvert.DeserializeObject<WcsTaskReturn>(result); + if (res.code == "0") + { + TaskHelper.UpdateStatus(mst, "宸叉帹閫�); + return true; + } + else { return false; } - - - } - } - - if (mst.S_CNTR_CODE.Contains("KJZ")) - { - TrayType = "KJZ"; - } - - var interact = new - { - requestPk = mst.S_CODE,//浠诲姟鍙�- contNo = Traycode,//鎵樼洏鍙�- contType = TrayType,//鎵樼洏绫诲瀷 - trkType = Type,//浠诲姟绫诲瀷 - trkPrty = mst.N_PRIORITY,//浠诲姟浼樺厛绾�- frmPos = mst.S_START_LOC,//璧峰浣嶇疆 - toPos = mst.S_END_LOC,//鐩殑鍦�- isFull = isFu,//绌烘墭 婊℃墭 - groupNo = Item?.S_ITEM_NAME,//鎼�缁勫彿 - clientCode = "WMS",//鎿嶄綔浜�- operationTime = DateTime.Now.ToString()//鎿嶄綔鏃堕棿 - }; - LogHelper.Info("Wcs绔嬪簱涓嬪彂浠诲姟 鍦板潃淇℃伅:" + baseUrl + "receive", "绔嬪簱涓嬪彂浠诲姟"); - LogHelper.Info("Wcs绔嬪簱涓嬪彂浠诲姟 鍙傛暟淇℃伅:" + JsonConvert.SerializeObject(interact), "绔嬪簱涓嬪彂浠诲姟"); - var result = apiHelper.Post(baseUrl + "receive", JsonConvert.SerializeObject(interact)); - LogHelper.Info("Wcs绔嬪簱涓嬪彂浠诲姟 杩斿洖淇℃伅:" + JsonConvert.SerializeObject(result), "绔嬪簱涓嬪彂浠诲姟"); - if (!string.IsNullOrEmpty(result)) - { - var res = JsonConvert.DeserializeObject<WcsTaskReturn>(result); - if (res.code == "0") - { - TaskHelper.UpdateStatus(mst, "宸叉帹閫�); - return true; } else { + LogHelper.Info("Wcs绔嬪簱涓嬪彂浠诲姟 杩斿洖淇℃伅涓虹┖", "绔嬪簱涓嬪彂浠诲姟"); return false; } } - else + catch (Exception) { - LogHelper.Info("Wcs绔嬪簱涓嬪彂浠诲姟 杩斿洖淇℃伅涓虹┖", "绔嬪簱涓嬪彂浠诲姟"); - return false; + + throw; } } @@ -673,8 +681,7 @@ RfidChek.S_RESULT = "RFID鏍¢獙澶辫触"; if (WcsCancellTask(transportTask)) { - ContainerHelper.delCntr(transportTask.S_CNTR_CODE); - ContainerHelper.delCntrItem(transportTask.S_CNTR_CODE); + TaskHelper.Fail(transportTask); TaskProcess.OperateStatus(transportTask, 7); @@ -721,6 +728,11 @@ throw new Exception("淇敼浠诲姟琛ㄥけ璐�); } newDb.CommitTran(); + + var agvTask1 = TaskHelper.GetTaskByWorkNo(transportTask.S_OP_CODE, "agv"); + TaskHelper.opMesTask(agvTask1, 3); + ContainerHelper.delCntr(transportTask.S_CNTR_CODE); + ContainerHelper.delCntrItem(transportTask.S_CNTR_CODE); } else { LogHelper.Info($"RFID鏍¢獙澶辫触锛岄�鐭cs鍙栨秷浠诲姟澶辫触", "Wcs浠诲姟鎵ц閫氱煡"); @@ -989,100 +1001,112 @@ string bit = ""; var Meshod = ""; var newDb = new SqlHelper<object>().GetInstance(); - var tac = newDb.Queryable<WcsSafety>().Where(a => a.TaskNo == mst.S_CODE && a.Sign == state).ToList(); - if (tac.Count() > 0) + + try { - LogHelper.Info("鏌ヨ鍒板畨鍏ㄨ姹備俊鍙疯褰曡〃宸茬粡瀛樺湪鏁版嵁,姝ゆ淇″彿涓嶄笅杈剧粰绔嬪簱", "agv鎵ц閫氱煡"); - return true; - } - switch (state) - { - case 1101: - Type = "1"; - bit = mst.S_START_LOC; - Meshod = "AgvRequest"; - break; - case 1102: - Type = "1"; - bit = mst.S_START_LOC; - Meshod = "Complete"; - break; - case 1103: - Type = "2"; - bit = mst.S_END_LOC; - Meshod = "AgvRequest"; - break; - case 1104: - Type = "2"; - bit = mst.S_END_LOC; - Meshod = "Complete"; - break; - case 7: - Type = "5"; - if (mst.S_TYPE.Contains("鍑哄簱")) - { - bit = mst.S_START_LOC; - } - else { - bit = mst.S_END_LOC; - } - - //閫�簱鍙栨秷鍙慳gv璧风偣 - if (LocationHelper.GetErroArea(mst.S_END_AREA)) - { - bit = mst.S_START_LOC; - } - - - Meshod = "AgvRequestCancel"; - break; - } - - - - - var interact = new - { - requestPk = mst.S_CODE,//浠诲姟鍙�- trkType = Type,//浠诲姟绫诲瀷 - method = Meshod,//API鍚嶇О - stnNo = bit,//鐩殑鍦扮珯鍙板彿 - carNo = forkliftNo,// 杞﹀彿 - clientCode = "WMS",//鎿嶄綔浜�- operationTime = DateTime.Now.ToString()//鎿嶄綔鏃堕棿 - }; - LogHelper.Info("agv鎵ц閫氱煡 鍦板潃淇℃伅:" + baseUrl + "agvCallback", "agv鎵ц閫氱煡"); - LogHelper.Info("agv鎵ц閫氱煡 鍙傛暟淇℃伅:" + JsonConvert.SerializeObject(interact), "agv鎵ц閫氱煡"); - var result = apiHelper.Post(baseUrl + "agvCallback", JsonConvert.SerializeObject(interact)); - LogHelper.Info("agv鎵ц閫氱煡 杩斿洖淇℃伅:" + JsonConvert.SerializeObject(result), "agv鎵ц閫氱煡"); - if (!string.IsNullOrEmpty(result)) - { - var res = JsonConvert.DeserializeObject<WcsTaskCallBack>(result); - if (res.code == "0") + var tac = newDb.Queryable<WcsSafety>().Where(a => a.TaskNo == mst.S_CODE && a.Sign == state).ToList(); + if (tac.Count() > 0) { - WcsSafety Sign = new WcsSafety(); - Sign.TaskNo = mst.S_CODE; - Sign.Sign = state; - newDb.BeginTran(); - var B = newDb.Insertable(Sign).ExecuteCommand(); - if (B == 0) - { - newDb.RollbackTran(); - } - newDb.CommitTran(); - LogHelper.Info("agv鎵ц閫氱煡鎴愬姛:", "agv鎵ц閫氱煡"); + LogHelper.Info("鏌ヨ鍒板畨鍏ㄨ姹備俊鍙疯褰曡〃宸茬粡瀛樺湪鏁版嵁,姝ゆ淇″彿涓嶄笅杈剧粰绔嬪簱", "agv鎵ц閫氱煡"); return true; + } + switch (state) + { + case 1101: + Type = "1"; + bit = mst.S_START_LOC; + Meshod = "AgvRequest"; + break; + case 1102: + Type = "1"; + bit = mst.S_START_LOC; + Meshod = "Complete"; + break; + case 1103: + Type = "2"; + bit = mst.S_END_LOC; + Meshod = "AgvRequest"; + break; + case 1104: + Type = "2"; + bit = mst.S_END_LOC; + Meshod = "Complete"; + break; + case 7: + Type = "5"; + if (mst.S_TYPE.Contains("鍑哄簱")) + { + bit = mst.S_START_LOC; + } + else + { + bit = mst.S_END_LOC; + } + + //閫�簱鍙栨秷鍙慳gv璧风偣 + if (LocationHelper.GetErroArea(mst.S_END_AREA)) + { + bit = mst.S_START_LOC; + } + + + Meshod = "AgvRequestCancel"; + break; + } + + + + + var interact = new + { + requestPk = mst.S_CODE,//浠诲姟鍙�+ trkType = Type,//浠诲姟绫诲瀷 + method = Meshod,//API鍚嶇О + stnNo = bit,//鐩殑鍦扮珯鍙板彿 + carNo = forkliftNo,// 杞﹀彿 + clientCode = "WMS",//鎿嶄綔浜�+ operationTime = DateTime.Now.ToString()//鎿嶄綔鏃堕棿 + }; + LogHelper.Info("agv鎵ц閫氱煡 鍦板潃淇℃伅:" + baseUrl + "agvCallback", "agv鎵ц閫氱煡"); + LogHelper.Info("agv鎵ц閫氱煡 鍙傛暟淇℃伅:" + JsonConvert.SerializeObject(interact), "agv鎵ц閫氱煡"); + var result = apiHelper.Post(baseUrl + "agvCallback", JsonConvert.SerializeObject(interact)); + LogHelper.Info("agv鎵ц閫氱煡 杩斿洖淇℃伅:" + JsonConvert.SerializeObject(result), "agv鎵ц閫氱煡"); + if (!string.IsNullOrEmpty(result)) + { + var res = JsonConvert.DeserializeObject<WcsTaskCallBack>(result); + if (res.code == "0") + { + WcsSafety Sign = new WcsSafety(); + Sign.TaskNo = mst.S_CODE; + Sign.Sign = state; + newDb.BeginTran(); + var B = newDb.Insertable(Sign).ExecuteCommand(); + if (B == 0) + { + newDb.RollbackTran(); + } + newDb.CommitTran(); + LogHelper.Info("agv鎵ц閫氱煡鎴愬姛:", "agv鎵ц閫氱煡"); + return true; + } + else + { + return false; + } } else { + LogHelper.Info("agv鎵ц閫氱煡鎴愬姛 杩斿洖淇℃伅涓虹┖", "agv鎵ц閫氱煡"); return false; } } - else + catch (Exception) { - LogHelper.Info("agv鎵ц閫氱煡鎴愬姛 杩斿洖淇℃伅涓虹┖", "agv鎵ц閫氱煡"); - return false; + + throw; } + + } @@ -1351,7 +1375,7 @@ public string code { get; set; } public string msg { get; set; } public bool success { get; set; } - public DataItem lastTime { get; set; } + public DateTime lastTime { get; set; } } /// <summary> -- Gitblit v1.9.1