From 23b4700a5a8555684de58b5d80ff06ae387432f2 Mon Sep 17 00:00:00 2001 From: lss <Lss@HanInfo> Date: 星期五, 16 五月 2025 17:24:49 +0800 Subject: [PATCH] 流程开发 --- HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 161 insertions(+), 17 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs index 46fa97f..5f8b1bc 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs @@ -140,7 +140,7 @@ return result; } - + private static object lockObj = new object(); /// <summary> @@ -268,7 +268,7 @@ /// </summary> /// <param name="model"></param> /// <returns></returns> - internal static Result EquipmentInfo(EquipmentInfoModel model) + internal static Result NotifyDeviceSignal(NotifyDeviceSignalModel model) { Result result = new Result { resultCode = 0, resultMsg = "鍒涘缓鎴愬姛" }; if (model == null) @@ -282,28 +282,29 @@ string cntrcode = model.CntrNo; var db = new SqlHelper<object>().GetInstance(); - if (model.DeviceNo=="1")//鍙犵洏鏈�+ if (model.DeviceNo == "1")//鍙犵洏鏈� { - - } - else //鍏ュ簱绌�- { - #region 鑾峰彇璧风偣淇℃伅 - //鏍规嵁鎵樼洏鑾峰彇璧风偣淇℃伅 - var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == cntrcode).First(); - if (CntrLoc == null) + #region 鑾峰彇璧风偣淇℃伅锛屽苟鍒ゆ柇绌烘墭鏄惁鍙犳弧 + //鏍规嵁璧风偣 鑾峰彇缁戝畾鎵樼洏鏁伴噺 + var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == model.Loc).ToList(); + if (CntrLoc.Count < 4) { result.resultCode = -1; - result.resultMsg = $"鏍规嵁鎵樼洏:{cntrcode}鏈壘鍒扮粦瀹氭墭鐩�; - LogHelper.Info($"creattask:鏍规嵁鎵樼洏:{cntrcode}鏈壘鍒扮粦瀹氭墭鐩�); + result.resultMsg = $"鏍规嵁璐т綅:{model.Loc}鑾峰彇鎵樼洏鏁伴噺灏忎簬4"; + LogHelper.Info($"EquipmentInfo:鏍规嵁璐т綅:{model.Loc}鑾峰彇鎵樼洏鏁伴噺灏忎簬4"); return result; } - startloc = LocationHelper.GetLoc(CntrLoc.S_LOC_CODE); + else + { + //鎷兼帴鎵樼洏鍙�+ cntrcode = CntrLoc.Select(a => a.S_CNTR_CODE).ToString(); + } + startloc = LocationHelper.GetLoc(model.Loc); if (startloc == null) { result.resultCode = -1; - result.resultMsg = $"鏍规嵁璧风偣:{CntrLoc.S_LOC_CODE}鏈壘鍒拌揣浣嶄俊鎭�; - LogHelper.Info($"creattask:鏍规嵁璧风偣:{CntrLoc.S_LOC_CODE}鏈壘鍒拌揣浣嶄俊鎭�); + result.resultMsg = $"鏍规嵁璧风偣:{model.Loc}鏈壘鍒拌揣浣嶄俊鎭�; + LogHelper.Info($"EquipmentInfo:鏍规嵁璧风偣:{model.Loc}鏈壘鍒拌揣浣嶄俊鎭�); return result; } @@ -315,9 +316,10 @@ { result.resultCode = -1; result.resultMsg = $"鏈绠楀埌绔嬪簱缁堢偣璐т綅锛岃妫�煡璐т綅鎯呭喌"; - LogHelper.Info($"creattask:鏈绠楀埌绔嬪簱缁堢偣璐т綅锛岃妫�煡璐т綅鎯呭喌"); + LogHelper.Info($"EquipmentInfo:鏈绠楀埌绔嬪簱缁堢偣璐т綅锛岃妫�煡璐т綅鎯呭喌"); return result; } + #endregion #region 鍒涘缓浠诲姟 @@ -347,6 +349,148 @@ } #endregion } + else //鍏ュ簱绌�+ { + //鍏ュ簱鍙g敵璇峰叆搴�+ if (model.SignalType == 1) + { + #region 鑾峰彇璧风偣淇℃伅 + //鏍规嵁鎵樼洏鑾峰彇璧风偣淇℃伅 + var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == cntrcode).First(); + if (CntrLoc == null) + { + result.resultCode = -1; + result.resultMsg = $"鏍规嵁鎵樼洏:{cntrcode}鏈壘鍒扮粦瀹氭墭鐩�; + LogHelper.Info($"EquipmentInfo:鏍规嵁鎵樼洏:{cntrcode}鏈壘鍒扮粦瀹氭墭鐩�); + return result; + } + startloc = LocationHelper.GetLoc(CntrLoc.S_LOC_CODE); + if (startloc == null) + { + result.resultCode = -1; + result.resultMsg = $"鏍规嵁璧风偣:{CntrLoc.S_LOC_CODE}鏈壘鍒拌揣浣嶄俊鎭�; + LogHelper.Info($"EquipmentInfo:鏍规嵁璧风偣:{CntrLoc.S_LOC_CODE}鏈壘鍒拌揣浣嶄俊鎭�); + return result; + } + + #endregion + + #region 璁$畻绔嬪簱缁堢偣 + endloc = LocationHelper.InStorage(startloc); + if (endloc == null) + { + result.resultCode = -1; + result.resultMsg = $"鏈绠楀埌绔嬪簱缁堢偣璐т綅锛岃妫�煡璐т綅鎯呭喌"; + LogHelper.Info($"EquipmentInfo:鏈绠楀埌绔嬪簱缁堢偣璐т綅锛岃妫�煡璐т綅鎯呭喌"); + return result; + } + #endregion + + #region 鍒涘缓浠诲姟 + if (startloc != null && endloc != null) + { + var wcsTask = new WCSTask + { + S_CODE = WCSHelper.GenerateTaskNo(), + S_TYPE = "鍏ュ簱", + S_START_LOC = startloc.S_CODE, + S_END_LOC = endloc.S_CODE, + S_START_WH = startloc.S_WH_CODE, + S_START_AREA = startloc.S_AREA_CODE, + S_END_WH = endloc.S_WH_CODE, + S_END_AREA = endloc.S_AREA_CODE, + N_CNTR_COUNT = 1, + N_SCHEDULE_TYPE = 2, + S_CNTR_CODE = cntrcode + }; + LogHelper.Info("鍒涘缓鍏ュ钩搴撲换鍔★細" + JsonConvert.SerializeObject(wcsTask)); + if (WCSHelper.CreateTask(wcsTask)) + { + LocationHelper.LockLoc(startloc.S_CODE, 2); + LocationHelper.LockLoc(endloc.S_CODE, 1); + LogHelper.Info("鍒涘缓浠诲姟鎴愬姛"); + } + } + #endregion + } + //鍏ュ簱绌虹敵璇峰彔鐩�+ else + { + //鍒ゆ柇璁惧鐘舵�鏄惁灞炰簬鍙犵洏鐘舵� + var DeviceStatu = db.Queryable<EquipmentStatus>().Where(a => a.deviceNo == model.DeviceNo).First(); + if (DeviceStatu != null && DeviceStatu.Status == "1") + { + #region 鑾峰彇璧风偣淇℃伅 + //鏍规嵁鎵樼洏鑾峰彇璧风偣淇℃伅 + var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == cntrcode).First(); + if (CntrLoc == null) + { + result.resultCode = -1; + result.resultMsg = $"鏍规嵁鎵樼洏:{cntrcode}鏈壘鍒扮粦瀹氭墭鐩�; + LogHelper.Info($"EquipmentInfo:鏍规嵁鎵樼洏:{cntrcode}鏈壘鍒扮粦瀹氭墭鐩�); + return result; + } + startloc = LocationHelper.GetLoc(CntrLoc.S_LOC_CODE); + if (startloc == null) + { + result.resultCode = -1; + result.resultMsg = $"鏍规嵁璧风偣:{CntrLoc.S_LOC_CODE}鏈壘鍒拌揣浣嶄俊鎭�; + LogHelper.Info($"EquipmentInfo:鏍规嵁璧风偣:{CntrLoc.S_LOC_CODE}鏈壘鍒拌揣浣嶄俊鎭�); + return result; + } + + #endregion + + #region 鑾峰彇缁堢偣淇℃伅 + string DiePanLoc = ""; + //鏍规嵁鎵樼洏鑾峰彇璧风偣淇℃伅 + endloc = db.Queryable<Location>().Where(a => a.S_CODE == DiePanLoc).First(); + if (endloc == null) + { + result.resultCode = -1; + result.resultMsg = $"鏍规嵁璐т綅缂栫爜锛歿DiePanLoc}鏈壘鍒板彔鐩樿揣浣�; + LogHelper.Info($"EquipmentInfo:鏍规嵁璐т綅缂栫爜锛歿DiePanLoc}鏈壘鍒板彔鐩樿揣浣�); + return result; + } + #endregion + + #region 鍒涘缓浠诲姟 + if (startloc != null && endloc != null) + { + var wcsTask = new WCSTask + { + S_CODE = WCSHelper.GenerateTaskNo(), + S_TYPE = "鍏ュ簱", + S_START_LOC = startloc.S_CODE, + S_END_LOC = endloc.S_CODE, + S_START_WH = startloc.S_WH_CODE, + S_START_AREA = startloc.S_AREA_CODE, + S_END_WH = endloc.S_WH_CODE, + S_END_AREA = endloc.S_AREA_CODE, + N_CNTR_COUNT = 1, + N_SCHEDULE_TYPE = 2, + S_CNTR_CODE = cntrcode + }; + LogHelper.Info("鍒涘缓鍏ュ钩搴撲换鍔★細" + JsonConvert.SerializeObject(wcsTask)); + if (WCSHelper.CreateTask(wcsTask)) + { + LocationHelper.LockLoc(startloc.S_CODE, 2); + LocationHelper.LockLoc(endloc.S_CODE, 1); + LogHelper.Info("鍒涘缓浠诲姟鎴愬姛"); + } + } + + #endregion + } + else + { + result.resultCode = -1; + result.resultMsg = $"褰撳墠鍙犵洏鏈虹姸鎬佷笉灞炰簬鍙犵洏鐘舵�锛屼笉鍏佽绌烘墭鍙犳墭"; + LogHelper.Info($"EquipmentInfo:褰撳墠鍙犵洏鏈虹姸鎬佷笉灞炰簬鍙犵洏鐘舵�锛屼笉鍏佽绌烘墭鍙犳墭"); + return result; + } + } + } return result; -- Gitblit v1.9.1