From 16d2162a833cebeae72c363962917bb9da8145ef Mon Sep 17 00:00:00 2001 From: 杨前锦 <1010338399@qq.com> Date: 星期五, 06 六月 2025 17:34:47 +0800 Subject: [PATCH] 福建佳通优化 --- HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs | 3 HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/process/TaskProcess.cs | 10 ++ HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/WmsController.cs | 19 +-- HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/api/ApiHelper.cs | 4 HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/util/Settings.cs | 32 +++++- HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/WMSHelper.cs | 14 ++ HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/models/TransfeRelevance.cs | 3 HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/ApiHelper.cs | 141 +++++++++------------------ HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/HH.WCS.Mobox3.FJJT.csproj | 1 HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/config/config.json | 18 +++ HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/process/DeviceProcess.cs | 3 HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/ContainerHelper.cs | 20 --- HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/WMSHelper.cs | 18 +-- 13 files changed, 140 insertions(+), 146 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/HH.WCS.Mobox3.FJJT.csproj b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/HH.WCS.Mobox3.FJJT.csproj index ff0eee7..747e795 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/HH.WCS.Mobox3.FJJT.csproj +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/HH.WCS.Mobox3.FJJT.csproj @@ -181,6 +181,7 @@ <Compile Include="models\other\DayuanOut.cs" /> <Compile Include="models\PutawayDetail.cs" /> <Compile Include="models\PutawayOrder.cs" /> + <Compile Include="models\RfidAnomalyRecord.cs" /> <Compile Include="models\Safety_Inventory.cs" /> <Compile Include="models\SideLocConfig.cs" /> <Compile Include="models\TN_ASN_Detail.cs" /> diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/ApiHelper.cs index e51ab71..6c0af1a 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/ApiHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/ApiHelper.cs @@ -46,42 +46,18 @@ WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"WMS绯荤粺鏈煡璇㈠埌缁堢偣璐т綅锛歿model.endLocCode}"); throw new BusinessException($"WMS绯荤粺鏈煡璇㈠埌缁堢偣璐т綅锛歿model.endLocCode},璇锋鏌ョ粓鐐硅揣浣嶇紪鐮佹槸鍚︽纭�); } - else + + var areaCodes = Settings.getRelAreaCodes(endLoc.S_AREA_CODE); + if (areaCodes.Count == 0) { - if (endLoc.C_ENABLE == "Y") - { - if (endLoc.N_LOCK_STATE != 0) - { - var existTask = WCSHelper.GetTaskByStartOrEnd(model.endLocCode); - if (existTask != null) - { - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"缁堢偣璐т綅锛歿model.endLocCode} 宸叉湁浠诲姟"); - throw new BusinessException($"缁堢偣璐т綅锛歿model.endLocCode} 宸叉湁浠诲姟"); - } - else - { - LocationHelper.UnLockLoc(model.endLocCode); // 娌℃湁浠诲姟灏憋紝鑷姩瑙i攣缁堢偣璐т綅 - } - } - } - else - { - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"缁堢偣璐т綅锛歿model.endLocCode} 宸茬鐢紝璇疯仈绯荤鐞嗕汉鍛樿В闄ょ鐢�); - throw new BusinessException($"缁堢偣璐т綅锛歿model.endLocCode} 宸茬鐢紝璇疯仈绯荤鐞嗕汉鍛樿В闄ょ鐢�); - } + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"鏈厤缃簱鍖�{endLoc.S_AREA_CODE}鐨勫叧鑱斿叧绯�); + throw new BusinessException($"鏈厤缃簱鍖�{endLoc.S_AREA_CODE}鐨勫叧鑱斿叧绯�); } - var transfeRelevance = WMSHelper.GetTransfeRelevance(model.endLocCode); // 鎺ラ┏璐т綅鍏宠仈灞炴� - if (transfeRelevance == null) - { - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"缁堢偣璐т綅锛歿model.endLocCode},缂哄皯閰嶇疆灞炴�锛岃鑱旂郴绠$悊浜哄憳杩涜閰嶇疆灞炴�"); - throw new BusinessException($"缁堢偣璐т綅锛歿model.endLocCode},缂哄皯閰嶇疆灞炴�锛岃鑱旂郴绠$悊浜哄憳杩涜閰嶇疆灞炴�"); - } - - Location startLoc = WMSHelper.getOutStockStartLoc(transfeRelevance.S_RELE_AREA, null); + Location startLoc = WMSHelper.getOutStockStartLoc(areaCodes[0], null); if (startLoc == null) { - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"鏈煡璇㈠埌绌哄伐瑁咃紝绔嬪簱鍙兘缂哄皯绌哄伐瑁�); + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"搴撳尯:{areaCodes[0]}鏈煡璇㈠埌绌哄伐瑁�); throw new BusinessException($"鏈煡璇㈠埌绌哄伐瑁咃紝绔嬪簱鍙兘缂哄皯绌哄伐瑁�); } @@ -98,7 +74,7 @@ S_END_LOC = endLoc.S_CODE, S_END_AREA = endLoc.S_AREA_CODE, S_TYPE = "绌哄伐瑁呭嚭搴撲换鍔�, - S_OP_DEF_NAME = "绌哄伐瑁呭嚭搴撶紦瀛樹綅", + S_OP_DEF_NAME = "绌哄伐瑁呭嚭搴�, N_PRIORITY = 10, T_START_TIME = DateTime.Now, }; @@ -144,10 +120,10 @@ /// <summary> /// WCS璇荤爜璇锋眰娴佺▼ - /// 1.鍒ゆ柇RFID 鏄惁璇诲彇鎴愬姛锛堟墭鐩樺彿鏄惁涓虹┖锛�- /// 2.鏌ヨ鍏充簬RFID鐨勯鍒涘缓浠诲姟 - /// 3.濡傛灉璇诲彇鎴愬姛锛屽垯婵�椿棰勫垱寤轰换鍔�- /// 4.濡傛灉璇诲彇涓嶆垚鍔燂紝鏌ョ湅寮傚父鍖烘槸鍚︽湁绌鸿揣浣嶏紝鏈夊垯鍒涘缓鎼繍寮傚父鍖轰换鍔★紝鏃犲垯锛岃褰曞紓甯告縺娲婚鍒涘缓浠诲姟 + /// 涓氬姟鍦烘櫙锛氳鐮佸叆搴撱�璇荤爜鍑哄簱 + /// 1.鍒ゆ柇RFID鏄惁瀛樺湪WMS绯荤粺涓紝鍚︼紝鍒欓粯璁や负RFID鏃犳硶璇嗗埆 + /// 2.鍒ゆ柇RFID鏄惁涓庝换鍔FID鏄惁涓�嚧 + /// 3.璁板綍RFID寮傚父淇℃伅 /// </summary> /// <param name="request"></param> /// <returns></returns> @@ -155,47 +131,24 @@ ResponseResult responseResult = new ResponseResult(); Location loc = LocationHelper.GetLoc(request.loc); - if (loc == null) + if (loc != null) { - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "涓�, $"璇荤爜浣�{request.loc},娌℃湁鍦╓MS绯荤粺涓綍鍏�); - throw new BusinessException($"璇荤爜浣�{request.loc},娌℃湁鍦╓MS绯荤粺涓綍鍏�); - } - - var locCntrRels = LocationHelper.GetLocCntr(request.loc); - if (locCntrRels.Count > 0) - { - string taskCntrCode = locCntrRels[0].S_CNTR_CODE; - // 2.鏌ヨ鍏充簬RFID鐨勯鍒涘缓浠诲姟 - var cst = WCSHelper.GetPreCreatedTaskByCntr(taskCntrCode); + var cst = WCSHelper.GetTask(request.taskNo); if (cst != null) { - bool errFlag = true; - // 1.鍒ゆ柇RFID 鏄惁璇诲彇鎴愬姛锛堟墭鐩樺彿鏄惁涓虹┖锛�- if (request.cntrNo != null) + var container = ContainerHelper.GetCntr(request.cntrNo); + if (container != null) { - if (request.cntrNo == taskCntrCode) + if (cst.S_CNTR_CODE == request.cntrNo) { - Container container = ContainerHelper.GetCntr(request.cntrNo); - if (container.N_E_STATE == 0) - { - errFlag = false; - WCSHelper.ActivatePreCreateTask(cst.S_OP_CODE); - } - } - else - { - ContainerHelper.UpdateCntrState(taskCntrCode, 1,"WCS鍙嶉RFID涓庝换鍔FID涓嶄竴鑷�); + ContainerHelper.UpdateCntrState(cst.S_CNTR_CODE, 1); + WMSHelper.addRfidAnomalyRecord(cst.S_CNTR_CODE, 2, request.loc, cst.S_CODE); } } - else + else { - ContainerHelper.UpdateCntrState(taskCntrCode, 1,"WCS鍙嶉RFID涓簄ull"); - } - - // 鏂规1 4.婵�椿棰勫垱寤轰换鍔�- if (errFlag) - { - WCSHelper.ActivatePreCreateTask(cst.S_OP_CODE,1); + ContainerHelper.UpdateCntrState(cst.S_CNTR_CODE, 1); + WMSHelper.addRfidAnomalyRecord(cst.S_CNTR_CODE, 1, request.loc, cst.S_CODE); } // 鏂规2 4.濡傛灉璇诲彇涓嶆垚鍔燂紝鏌ョ湅寮傚父鍖烘槸鍚︽湁绌鸿揣浣� @@ -233,15 +186,15 @@ WCSHelper.ActivatePreCreateTask(cst.S_OP_CODE); }*/ } - else + else { - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"璇荤爜浣�{request.loc}瑙﹀彂璇荤爜璇锋眰锛岃鐮佷綅涓婂鍣�{taskCntrCode}娌℃湁棰勫垱寤轰换鍔�); + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"娌℃湁鏌ヨ鍒拌鐮佺殑浠诲姟锛屼换鍔″彿:{request.taskNo}"); } } else { - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "涓�, $"璇荤爜浣�{request.loc},娌℃湁鏌ヨ鍒板鍣�); - throw new BusinessException($"璇荤爜浣�{request.loc},娌℃湁鏌ヨ鍒板鍣�); + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "涓�, $"璇荤爜浣�{request.loc},娌℃湁鍦╓MS绯荤粺涓綍鍏�); + throw new BusinessException($"璇荤爜浣�{request.loc},娌℃湁鍦╓MS绯荤粺涓綍鍏�); } return responseResult; } @@ -267,43 +220,40 @@ /// <returns></returns> public static ResponseResult offLineProcess(OffLineRequest model) { ResponseResult responseResult = new ResponseResult(); + + // 鏌ヨ璧风偣璐т綅鏄惁瀛樺湪宸插瓨鍦ㄤ换鍔★紝闃叉浠诲姟閲嶅鍙戣捣 var existWmsTask = WMSHelper.GetWmsTaskByStart(model.loc); if (existWmsTask == null) { - // 鍒ゆ柇婊℃枡鎺ラ┏浣嶅搴旂殑绌哄伐瑁呯紦瀛樹綅鐘舵�锛堟煡璇㈢嚎浣撳厜鐢碉級 + // 鏌ヨ瀵瑰簲鏈哄彴鐨勭墿鏂欎笅绾块厤缃俊鎭� var logicConfig = WMSHelper.getLogicConfigByJtCode(model.jtNo); if (logicConfig != null) { + // 鏍规嵁鐗╂枡涓嬬嚎閰嶇疆淇℃伅锛屽垽鏂换鍔$被鍨嬫槸鐩磋繛涓嬬嚎杩樻槸闈炵洿杩炰笅绾� if (logicConfig.S_TASK_TYPE == "1" || logicConfig.S_TASK_TYPE == "2") { - // 婊℃枡涓嬬嚎锛堢洿杩烇級 + // 鐩磋繛涓嬬嚎锛岄渶瑕佸垽鏂牎楠孯FID LjMesTask mesTask = null; - if (model.cntrNo != null && model.cntrNo != "") + var container = ContainerHelper.GetCntr(model.cntrNo); + if (container != null) { - var container = ContainerHelper.GetCntr(model.cntrNo); - if (container == null) + mesTask = WMSHelper.getLjMesTaskByCntr(model.cntrNo); + if (mesTask == null) { - ContainerHelper.AddCntr(model.cntrNo); - ContainerHelper.UpdateCntrState(model.cntrNo, 1, $"婊℃枡涓嬬嚎锛堢洿杩烇級,WCS鍙嶉鐨凴FID:{model.cntrNo}鍦╓MS绯荤粺涓笉瀛樺湪"); - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "涓�, $"婊℃枡涓嬬嚎锛堢洿杩烇級,WCS鍙嶉鐨凴FID:{model.cntrNo}鍦╓MS绯荤粺涓笉瀛樺湪"); - } - else - { - ContainerHelper.UpdateCntrState(model.cntrNo, 0, ""); - mesTask = WMSHelper.getLjMesTaskByCntr(model.cntrNo); - if (mesTask == null) - { - ContainerHelper.UpdateCntrState(model.cntrNo, 1, $"鏈煡璇㈠埌MES浠诲姟"); - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"婊℃枡涓嬬嚎锛堢洿杩烇級,瀹瑰櫒:{model.cntrNo}鏈煡璇㈠埌MES浠诲姟"); - } + ContainerHelper.UpdateCntrState(model.cntrNo, 1); + WMSHelper.addRfidAnomalyRecord(model.cntrNo, 3, model.loc, null); } } else { - model.cntrNo = ContainerHelper.GenerateCntrNo(); + model.isNormal = false; + } + + if (!model.isNormal) + { ContainerHelper.AddCntr(model.cntrNo); - ContainerHelper.UpdateCntrState(model.cntrNo, 1, $"WCS鍙嶉鐨凴FID:{model.cntrNo} 涓虹┖"); - WMSHelper.addAlarmRecord("娴佺▼寮傚父", "涓�, $"WCS鍙嶉鐨凴FID:{model.cntrNo} 涓虹┖"); + ContainerHelper.UpdateCntrState(model.cntrNo, 1); + WMSHelper.addRfidAnomalyRecord(model.cntrNo, 1, model.loc, null); } triggerItemOffLineFlow(model.loc, model.cntrNo, logicConfig, mesTask); } @@ -2194,6 +2144,7 @@ { public string reqId { get; set; } public string reqTime { get; set; } + public string taskNo { get; set; } // 鎵樼洏鍙� public string loc { get; set; } // 璐т綅 涓婃枡鐐广�涓嬫枡鐐广�璇荤爜浣嶃�绉伴噸浣嶏紙蹇呭~锛� public string cntrNo { get; set; } // 鎵樼洏鍙� public int signalType { get; set; } //璇锋眰绫诲瀷 1:涓嬬嚎璇锋眰 2锛氬彨鏂欒姹�3锛氳鐮佽姹傦紙蹇呭~锛�@@ -2218,6 +2169,7 @@ public string loc { get; set; } // 璐т綅 涓婃枡鐐广�涓嬫枡鐐广�璇荤爜浣嶃�绉伴噸浣嶏紙蹇呭~锛� public string cntrNo { get; set; } // 鎵樼洏鍙� public string jtNo { get; set; } // 鏈哄彴鍙�+ public bool isNormal { get; set; } //鏄惁寮傚父 } /// <summary> @@ -2227,6 +2179,7 @@ { public string loc { get; set; } // 璐т綅 涓婃枡鐐广�涓嬫枡鐐广�璇荤爜浣嶃�绉伴噸浣嶏紙蹇呭~锛� public string cntrNo { get; set; } // 鎵樼洏鍙�+ public string taskNo { get; set; } // 浠诲姟鍙� } public class AddTaskModel { diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/WmsController.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/WmsController.cs index 9aa224c..007c3b2 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/WmsController.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/WmsController.cs @@ -18,9 +18,7 @@ { /// <summary> /// 1.绌哄伐瑁呭嚭搴�- /// 涓氬姟鍦烘櫙锛�- /// 1.鐩磋繛娴佺▼鍒濆鍖栵紝琛ュ厖绌哄伐瑁�- /// 2.闈炵洿杩炴祦绋嬶紝鍥哄畾绔欏彴鑷姩琛ュ厖绌哄伐瑁�+ /// 涓氬姟鍦烘櫙锛氱洿杩炴祦绋嬪垵濮嬪寲锛岃ˉ鍏呯紦瀛樹綅鐨勭┖宸ヨ /// </summary> /// <param name="model"></param> /// <returns></returns> @@ -36,7 +34,7 @@ } catch (BusinessException be) { - responseResult.code = 501; + responseResult.code = 201; responseResult.msg = be.Message; } catch (Exception ex) @@ -45,7 +43,6 @@ responseResult.msg = $"WMS鍐呴儴閿欒锛岃鑱旂郴寮�彂浜哄憳澶勭悊"; WMSHelper.addAlarmRecord("绯荤粺閿欒", "楂�, $"WMS鍐呴儴閿欒: 绌哄伐瑁呭嚭搴撻敊璇紝閿欒鍘熷洜锛歿ex.Message}"); } - LogHelper.Info("emptyPalletOutStock 鍑哄弬锛� + JsonConvert.SerializeObject(responseResult), "WMS"); return responseResult; } @@ -65,25 +62,25 @@ ResponseResult responseResult = new ResponseResult(); try { - if (model.signalType == 1) // 鐗╂枡涓嬬嚎鍏ュ簱璇锋眰 + if (model.signalType == 1) // 姝e父鐗╂枡涓嬬嚎鍏ュ簱璇锋眰 { - OffLineRequest request = new OffLineRequest() { loc = model.loc, cntrNo = model.cntrNo, jtNo = model.deviceNo }; + OffLineRequest request = new OffLineRequest() { loc = model.loc, cntrNo = model.cntrNo, jtNo = model.deviceNo, isNormal = true}; responseResult = ApiHelper.offLineProcess(request); } else if (model.signalType == 3) // 璇荤爜鍏ュ簱璇锋眰 { - ReadCodeRequest request = new ReadCodeRequest() { loc = model.loc, cntrNo = model.cntrNo }; + ReadCodeRequest request = new ReadCodeRequest() { loc = model.loc, cntrNo = model.cntrNo ,taskNo = model.taskNo }; responseResult = ApiHelper.readCodeProcess(request); } else if (model.signalType == 5) // 寮傚父宸ヨ鍏ュ簱璇锋眰 { - OffLineRequest request = new OffLineRequest() { loc = model.loc, cntrNo = model.cntrNo, jtNo = model.deviceNo }; + OffLineRequest request = new OffLineRequest() { loc = model.loc, cntrNo = model.cntrNo, jtNo = model.deviceNo , isNormal = false}; responseResult = ApiHelper.offLineProcess(request); } } catch (BusinessException be) { - responseResult.code = 501; + responseResult.code = 201; responseResult.msg = be.Message; } catch (Exception ex) @@ -249,9 +246,9 @@ public class OutStockModel { - public string endLocCode { get; set; } public string reqId { get; set; } public string reqTime { get; set; } + public string endLocCode { get; set; } } } } diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/config/config.json b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/config/config.json index e025d6e..382020b 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/config/config.json +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/config/config.json @@ -8,6 +8,20 @@ "FacCode": "0000", "WHCode": "W001", + // 鎺ラ┏鍖恒�缂撳瓨鍖恒�鏈哄彴涓嬬嚎鍖恒�鎴愬瀷鏈哄彨鏂欏尯 瀵瑰簲鐨勭珛搴撳簱鍖�+ "AreaRelevance": [ + { + "areaCode": "", + "relAreaCode": [ "" ] + }, + { + "areaCode": "", + "relAreaCode": [ "" ] + } + ], + + + // cntrType 1.鑳庨潰锛�.鑳庝晶锛�.鍐呰‖锛�.甯樺竷锛�.鐜甫锛�.鍐犲甫锛�.閽㈠寘 // type 1.鐩磋繛 2.闈炵洿杩� "AreaProperty": [ @@ -50,7 +64,7 @@ { "areaCode": "LBLKQ", "areaName": "鐜甫搴�, - "cntrType": [ 5,6 ], + "cntrType": [ 5, 6 ], "type": 2 }, { @@ -66,8 +80,6 @@ "type": 2 } ], - - "DeviceInfo": [ diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/models/TransfeRelevance.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/models/TransfeRelevance.cs index 8325720..e8304aa 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/models/TransfeRelevance.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/models/TransfeRelevance.cs @@ -19,7 +19,6 @@ public string S_RELE_AREA { get; set; } // 鎵�睘搴撳尯 public string S_DEVICE_NO { get; set; } // 璁惧鍙� 鐢ㄩ�锛氱敤浜庢煡璇㈢嚎浣撳厜鐢碉紝鍒ゆ柇缂撳瓨浣嶆槸鍚︿负绌� public int N_IS_MANUAL { get; set; } // 鏄惁涓轰汉宸�(0.闈炰汉宸�2.浜哄伐) 鐢ㄩ�锛氬垏鎹汉宸ョ珯鍙�- public int N_READ_LOC { get; set; } // 鏄惁璇荤爜浣�(0銆佸惁 1.鏄� - + public int N_READ_LOC { get; set; } // 鏄惁璇荤爜浣�(0銆佸惁 1.鏄� } } diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/process/DeviceProcess.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/process/DeviceProcess.cs index 24d9c40..97a2627 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/process/DeviceProcess.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/process/DeviceProcess.cs @@ -35,7 +35,8 @@ // 淇敼鍙傛暟6涓� /* NDCApi.ChangeOrderParam(cst.S_CODE, 6, "3");*/ // 淇敼瀹瑰櫒寮傚父鐘舵� - ContainerHelper.UpdateCntrState(cst.S_CNTR_CODE, 2, $"{plc.deviceNo}AGV鎵爜鍣�鎵弿RFID:{rfid}涓庝换鍔FID:{cst.S_CNTR_CODE}涓嶄竴鑷�); + ContainerHelper.UpdateCntrState(cst.S_CNTR_CODE, 1); + WMSHelper.addRfidAnomalyRecord(cst.S_CNTR_CODE, 2, cst.S_START_LOC, null); } } } diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/util/Settings.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/util/Settings.cs index 3ad20b8..7520040 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/util/Settings.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/util/Settings.cs @@ -16,6 +16,7 @@ public static List<LinePlcInfo> linePlcInfo { get; set; } public static List<PlcValue> plcValue { get; set; } public static List<AreaProperty> areaPropertyList { get; set; } + public static List<AreaRelevance> areaRelevanceList { get; set; } public static int port { get; set; } public static string WHCode { get; set; } public static string FacCode { get; set; } @@ -73,6 +74,10 @@ { areaPropertyList = JsonConvert.DeserializeObject<List<AreaProperty>>(keyValue.Value.ToString()); } + if (keyValue.Name == "AreaRelevance") + { + areaRelevanceList = JsonConvert.DeserializeObject<List<AreaRelevance>>(keyValue.Value.ToString()); + } } } } @@ -92,17 +97,34 @@ return areaPropertyList.Where(a => a.cntrType.Contains(cntrType)).Select(a => a.areaCode).ToList(); } + /// <summary> + /// 鏌ヨ瀛樺偍搴撳尯 + /// </summary> + /// <param name="areaCode"></param> + /// <returns></returns> + public static List<string> getRelAreaCodes(string areaCode) + { + List<string> areaCodes = new List<string>(); + var areaRelevance = areaRelevanceList.Where(a => a.areaCode == areaCode).FirstOrDefault(); + if (areaRelevance != null) + { + areaCodes = areaRelevance.relAreaCode; + } + return areaCodes; + } + + public class AreaRelevance + { + public string areaCode { get; set; } + public List<string> relAreaCode { get; set; } + } + public class AreaProperty { public string areaName { get; set; } public string areaCode { get; set; } public List<int> cntrType { get; set; } // 瀹瑰櫒绫诲瀷 1.鑳庨潰锛�.鑳庝晶锛�.鍐呰‖锛�.甯樺竷锛�.鐜甫锛�.鍐犲甫锛�.閽㈠寘 } - - - - - public class deviceInfo { public string address { get; set; } diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/ContainerHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/ContainerHelper.cs index 7b5c805..c07bb91 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/ContainerHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/ContainerHelper.cs @@ -79,31 +79,21 @@ return res; }*/ - internal static bool AddCntr(string cntrCode ,int detallCount = 1) + internal static bool AddCntr(string cntrCode ,int detallCount = 0) { var res = false; var db = new SqlHelper<object>().GetInstance(); var TN_Container = new Container { S_CODE = cntrCode ,N_DETAIL_COUNT = detallCount }; try { - db.BeginTran(); var container = db.Queryable<Container>().Where(a => a.S_CODE.Trim() == cntrCode).First(); if (container == null) { - db.Insertable<Container>(TN_Container).ExecuteCommand(); + res = db.Insertable<Container>(TN_Container).ExecuteCommand() > 0; } - else - { - container.N_DETAIL_COUNT = detallCount; - container.N_E_STATE = 0; - db.Updateable(container).ExecuteCommand(); - } - db.CommitTran(); - res = true; } catch (Exception ex) { - db.RollbackTran(); WMSHelper.addAlarmRecord("绯荤粺閿欒", "楂�, $"娣诲姞瀹瑰櫒閿欒锛岄敊璇師鍥狅細{ex.Message}"); throw new BusinessException($"娣诲姞瀹瑰櫒閿欒锛岄敊璇師鍥狅細{ex.Message}"); } @@ -322,17 +312,15 @@ /// /// </summary> /// <param name="cntrCode"></param> - /// <param name="state">鎵樼洏寮傚父鐘舵� 0.榛樿 1.WCS璇荤爜寮傚父 2.AGV璇荤爜鍣ㄨ鐮佸紓甯�/param> - /// <param name="errMsg">寮傚父淇℃伅</param> + /// <param name="state">鎵樼洏寮傚父鐘舵� 0.姝e父 1.寮傚父</param> /// <returns></returns> - internal static bool UpdateCntrState(string cntrCode, int state ,string errMsg) { + internal static bool UpdateCntrState(string cntrCode, int state) { var res = false; var db = new SqlHelper<object>().GetInstance(); var models = db.Queryable<Container>().Where(a => a.S_CODE.Trim() == cntrCode).ToList(); if (models.Count > 0) { models.ForEach(a => { a.N_E_STATE = state; - a.S_ERR_DESC = errMsg; db.Updateable(a).UpdateColumns(it => new { it.N_E_STATE,it.S_ERR_DESC }).ExecuteCommand(); }); res = true; diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/WMSHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/WMSHelper.cs index 4dac16e..6dc19e8 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/WMSHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/WMSHelper.cs @@ -392,6 +392,20 @@ return db.Insertable<AlarmRecord>(alarmRecord).ExecuteCommand()>0; } + public static bool addRfidAnomalyRecord(string rfid ,int anomalyType ,string locCode ,string taskNo) + { + var db = new SqlHelper<object>().GetInstance(); + RfidAnomalyRecord anomalyRecord = new RfidAnomalyRecord() + { + S_RFID = rfid, + N_ANOMALY_TYPE = anomalyType, + S_ANOMALY_TYPE = RfidAnomalyRecord.getAnomalyType(anomalyType), + S_LOC_CODE = locCode, + S_TASK_NO = taskNo + }; + return db.Insertable<AlarmRecord>(anomalyRecord).ExecuteCommand() > 0; + } + /// <summary> /// 鏌ヨ鎴愬瀷鏈虹嚎杈� /// </summary> diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs index 27e6ed6..7777326 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs @@ -36,7 +36,7 @@ ReturnResult result = new ReturnResult(); try { - if (model.taskType == "鏈哄彴鍗婂埗鍝佸叆搴� || model.taskType == "鎴愬瀷鏈轰綑鏂欏洖搴�) + if (model.taskType.Contains("鏈哄彴鍗婂埗鍝佸叆搴�) || model.taskType.Contains("鎴愬瀷鏈轰綑鏂欏叆搴�)) { var itemInfos = model.itemInfo; if (itemInfos == null || itemInfos.Count == 0) @@ -61,6 +61,7 @@ // 璁$畻鐢熸晥鏃堕棿銆佸け鏁堟椂闂� var overage = WMSHelper.getOverage(item.bc_entried); + LogHelper.Info($"璁$畻鐢熸晥鏃堕棿銆佸け鏁堟椂闂达紝杩斿洖鍊硷細{JsonConvert.SerializeObject(overage)}", "WMS"); if (overage != null) { DateTime txndate = DateTime.Parse(item.txndate); diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/process/TaskProcess.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/process/TaskProcess.cs index 3b7c42a..ed693e9 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/process/TaskProcess.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/process/TaskProcess.cs @@ -92,6 +92,16 @@ if (state == 1102) { LogHelper.Info("鍚慦CS鍙戦�鍙栬揣瀹屾垚瀹夊叏閫�嚭淇″彿", "AGV"); + var locCntrRels = LocationHelper.GetLocCntr(cst.S_START_LOC); + if (locCntrRels.Count == 1) + { + var container = ContainerHelper.GetCntr(locCntrRels[0].S_CNTR_CODE); + if (container != null && container.N_TYPE == 0) + { + LogHelper.Info("鍙栬揣瀹屾垚鍚庯紝璧风偣璐т綅瀛樺湪姣嶆嫋锛屼笅鍙戞瘝鎷栧叆搴撲换鍔�, "AGV"); + ApiHelper.baseTrayInStock(cst.S_START_LOC, mst.S_CODE); + } + } /*result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "2"); //鍙栬揣瀹屾垚瀹夊叏閫�嚭*/ result = true; } diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/WMSHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/WMSHelper.cs index e276a42..b6d7694 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/WMSHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/WMSHelper.cs @@ -943,18 +943,14 @@ var sql1 = "SELECT get_minhour_bar(@barcode, @mcngrp) AS overage_value"; // 浣跨敤鍖垮悕瀵硅薄浼犻�鍙傛暟 - var ovg_bar = db.Ado.SqlQuery<int>(sql, new { barcode = bc_entried, mcngrp = "1"}); - var minhour_bar = db.Ado.SqlQuery<float>(sql1, new { barcode = bc_entried, mcngrp = "1"}); - if (ovg_bar.Count > 0 && minhour_bar.Count > 0) + var ovg_bar = db.Ado.SqlQuery<int>(sql, new { barcode = bc_entried, mcngrp = "1"}).First(); + var minhour_bar = db.Ado.SqlQuery<float>(sql1, new { barcode = bc_entried, mcngrp = "1"}).First(); + Overage overage = new Overage() { - Overage overage = new Overage() - { - MINHOUR = minhour_bar[0], - OVERAGE = ovg_bar[0] - }; - return overage; - } - return null; + MINHOUR = minhour_bar, + OVERAGE = ovg_bar + }; + return overage; } /// <summary> diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/api/ApiHelper.cs index 7aa1587..aa058eb 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/api/ApiHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/api/ApiHelper.cs @@ -48,7 +48,7 @@ OffLineRecord record = new OffLineRecord() { S_RFID = model.rfid, - S_DEVICE_NO = model.S_DEVICE_NO, + S_DEVICE_NO = model.deviceNo, N_IS_URGENT = model.isUrgent, T_OFF_TIME = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), N_IS_FULL = model.isFull, @@ -948,7 +948,7 @@ public class OffLineModel { public string rfid { get; set; } // 鎵樼洏鍙�- public string S_DEVICE_NO { get; set; } // 鏈哄彴鍙�+ public string deviceNo { get; set; } // 鏈哄彴鍙� public int isUrgent { get; set; } // N_IS_URGENT 鏄惁鍔犳�锛�.鍚�1.鏄級 public int isFull { get; set; } // 鏄惁婊℃嫋 0.鍚�1.鏄� } -- Gitblit v1.9.1