From c3202f7d43746c084066d88e58913d85c0173d88 Mon Sep 17 00:00:00 2001 From: 杨张扬 <634643841@qq.com> Date: 星期五, 13 六月 2025 17:14:42 +0800 Subject: [PATCH] 双钱-需求变更,增加复检合格物料自动搬送流程 --- models/TN_CG_Detail.cs | 4 +- Program.cs | 2 + wms/LocationHelper.cs | 6 +- core/Monitor.cs | 78 +++++++++++++++++++++++++++++++++++++++ api/ApiHelper.cs | 12 +++--- api/ApiModel.cs | 4 +- 6 files changed, 93 insertions(+), 13 deletions(-) diff --git a/Program.cs b/Program.cs index db9ded7..c81d455 100644 --- a/Program.cs +++ b/Program.cs @@ -145,6 +145,8 @@ tasks.Add(GetTask(Monitor.FullOutTime));//婊℃墭杩囨湡鍑哄簱 杩囨湡鍚堟牸鍥炲簱锛岃繃鏈熸鍝佸洖鐐� + tasks.Add(GetTask(Monitor.CGOkCheck));// 鍦ㄥ妫�尯妫�祴鐗╁搧鍚堟牸锛屽悎鏍肩殑鐗╁搧鑷姩鍥炲簱 + Task.WaitAll(tasks.ToArray()); } public void Stop() { Console.WriteLine("work stopped"); } diff --git a/api/ApiHelper.cs b/api/ApiHelper.cs index ff81f44..6046611 100644 --- a/api/ApiHelper.cs +++ b/api/ApiHelper.cs @@ -167,10 +167,10 @@ && o.C_ENABLE == "Y" && o.N_CURRENT_NUM == 0). OrderBy(o => o.T_MODIFY, OrderByType.Asc).First();//鏌ヨ鍚堥�鐨勭粓鐐硅揣浣� } - else if (model.cgState == 4)//鎶�湳鍚堟牸鍥炲簱 + else if (model.cgState == 4)//鎶�湳鍒ゅ畾鍥炲簱 { cG_Detail.N_ITEM_STATE = 4; - cG_Detail.S_ITEM_STATE = "鎶�湳鍚堟牸"; + cG_Detail.S_ITEM_STATE = "鎶�湳鍒ゅ畾"; endLoc = db.Queryable<TN_Location>(). Where(o => o.S_AREA_CODE == Settings.Areas[8] && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "鏃� @@ -225,7 +225,7 @@ else { result.resultCode = 6; - result.resultMsg = $"鐗╂枡鐘舵�鍙兘涓�鍚堟牸1寰呮2涓嶅悎鏍硷紝涓嬬嚎鍗冲緟妫�紝3杩囨湡锛�鎶�湳鍚堟牸锛�娣峰悎锛�涓�骇鏂欍�7浜岀骇鏂欙紝濡傛灉涓哄叾浠栧�锛屽垯涓嶅鐞�; + result.resultMsg = $"鐗╂枡鐘舵�鍙兘涓�鍚堟牸1寰呮2涓嶅悎鏍硷紝涓嬬嚎鍗冲緟妫�紝3杩囨湡锛�鎶�湳鍒ゅ畾锛�娣峰悎锛�涓�骇鏂欍�7浜岀骇鏂欙紝濡傛灉涓哄叾浠栧�锛屽垯涓嶅鐞�; LogHelper.Info(result.resultMsg); return result; } @@ -241,7 +241,7 @@ var typeName = (model.cgState == 0) ? "浜哄伐澶嶆鍥炲簱" : "浜哄伐澶嶆鍥炵倝"; - //鍒涘缓浜哄伐鎷嗙洏鍑哄簱浠诲姟 + //鍒涘缓浜哄伐澶嶆浠诲姟 if (WCSHelper.CreateTask(startLoc.S_CODE, endLoc.S_CODE, typeName, 3, locCnt.S_CNTR_CODE,out string taskNo,cG_Detail.S_SPE))//鍒涘缓鎼�浠诲姟锛岃捣鐐圭粓鐐瑰鍣� { LocationHelper.LockLoc(startLoc.S_CODE, 2);//璧风偣鍑哄簱閿侊紝 @@ -1021,13 +1021,13 @@ var waitTime = SpecHelper.GetWaitTime(model.Spe); - //浼樺厛鎶�湳鍚堟牸 + //浼樺厛鎶�湳鍒ゅ畾 var startLoc = db.Queryable<TN_Location>(). LeftJoin<TN_Loc_Container>((o, i) => o.S_CODE == i.S_LOC_CODE). LeftJoin<TN_CG_Detail>((o, i, s) => i.S_CNTR_CODE == s.S_CNTR_CODE). Where((o, i, s) => o.N_CURRENT_NUM > 0 && o.S_AREA_CODE == Settings.Areas[1] && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "鏃� && o.C_ENABLE == "Y" && (s.S_ITEM_SPEC == model.Spe || s.S_SPE == model.Spe)//鎸囧畾瑙勬牸 - && s.N_ITEM_STATE == 4 && s.S_ITEM_STATE == "鎶�湳鍚堟牸"). //鎶�湳鍚堟牸 + && s.N_ITEM_STATE == 4 && s.S_ITEM_STATE == "鎶�湳鍒ゅ畾"). //鎶�湳鍒ゅ畾 First();//绛涢�鏈夊鍣ㄨ揣浣嶅叧绯昏〃淇℃伅锛岀瓫閫夋湁瀹瑰櫒璐у搧鏄庣粏琛ㄤ俊鎭� if (startLoc == null)//鍏舵鍚堟牸 diff --git a/api/ApiModel.cs b/api/ApiModel.cs index e05c371..a0005e7 100644 --- a/api/ApiModel.cs +++ b/api/ApiModel.cs @@ -433,14 +433,14 @@ public string old_StartLoc { get; set; }//鏃у鍣ㄧ殑璧风偣 /// <summary> - /// 0鍚堟牸1寰呮2涓嶅悎鏍硷紝涓嬬嚎鍗冲緟妫�紝3杩囨湡锛�鎶�湳鍚堟牸锛�娣峰悎锛�涓�骇鏂欍�7浜岀骇鏂�+ /// 0鍚堟牸1寰呮2涓嶅悎鏍硷紝涓嬬嚎鍗冲緟妫�紝3杩囨湡锛�鎶�湳鍒ゅ畾锛�娣峰悎锛�涓�骇鏂欍�7浜岀骇鏂� /// </summary> public int old_IsOK { get; set; }//鏃у鍣↖D锛屾棫瀹瑰櫒鐨勮揣鍝佺殑 public string new_CntIds { get; set; }//鎷嗗悗鐨勬柊瀹瑰櫒ID public string new_StartLoc { get; set; }//鏂板鍣↖D璧风偣 /// <summary> - /// 0鍚堟牸1寰呮2涓嶅悎鏍硷紝涓嬬嚎鍗冲緟妫�紝3杩囨湡锛�鎶�湳鍚堟牸锛�娣峰悎锛�涓�骇鏂欍�7浜岀骇鏂�+ /// 0鍚堟牸1寰呮2涓嶅悎鏍硷紝涓嬬嚎鍗冲緟妫�紝3杩囨湡锛�鎶�湳鍒ゅ畾锛�娣峰悎锛�涓�骇鏂欍�7浜岀骇鏂� /// </summary> public int new_IsOK { get; set; }//鏂板鍣↖D鐨勮揣鍝佺殑 public string staff { get; set; } = "None";//鎿嶄綔浜�diff --git a/core/Monitor.cs b/core/Monitor.cs index 29452fc..0bdcc36 100644 --- a/core/Monitor.cs +++ b/core/Monitor.cs @@ -350,6 +350,84 @@ } /// <summary> + /// 鍦ㄥ妫�尯妫�祴鐗╁搧鍚堟牸锛屽悎鏍肩殑鐗╁搧鑷姩鍥炲簱 + /// </summary> + internal static void CGOkCheck() + { + var db = new SqlHelper<object>().GetInstance(); + try + { + var startLoc = db.Queryable<TN_Location>() + .LeftJoin<TN_Loc_Container>((o, i) => o.S_CODE == i.S_LOC_CODE) + .LeftJoin<TN_CG_Detail>((o, i, s) => i.S_CNTR_CODE == s.S_CNTR_CODE) + .Where((o, i, s) => s.N_ITEM_STATE == 0 && s.S_ITEM_STATE == "鍚堟牸" + && o.S_AREA_CODE == Settings.Areas[7] && o.N_CURRENT_NUM > 0 + && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "鏃�).First(); + + if (startLoc== null) + { + LogHelper.Info("澶嶆鍖烘病鏈夊悎鏍肩殑鐗╁搧锛屾棤闇�嚜鍔ㄨ繑鍥�); + return; + } + + var endLoc = db.Queryable<TN_Location>().First(a => a.S_AREA_CODE == Settings.Areas[1] + && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� + && SqlFunc.Subqueryable<TN_Loc_Container>().Where(b => b.S_LOC_CODE == a.S_CODE).NotAny()//涓嶈兘鏈夎揣 + ); + + if (endLoc != null) + { + LogHelper.Info("缁堢偣搴撳尯宸叉弧鎴栬�宸插叏閮ㄩ攣浣�); + return; + } + + var cginfo = db.Queryable<TN_CG_Detail>() + .LeftJoin<TN_Loc_Container>((o, i) => o.S_CNTR_CODE == i.S_CNTR_CODE) + .Where((o, i) => i.S_LOC_CODE == startLoc.S_CODE).First(); + + if (WCSHelper.CreateTask(startLoc.S_CODE, endLoc.S_CODE, "澶嶆鑷姩鍚堟牸鍥炲簱", 3, cginfo.S_CNTR_CODE, out string taskNo, cginfo.S_SPE))//鍒涘缓鎼�浠诲姟锛岃捣鐐圭粓鐐瑰鍣�+ { + LocationHelper.LockLoc(startLoc.S_CODE, 2);//璧风偣鍑哄簱閿侊紝 + LocationHelper.LockLoc(endLoc.S_CODE, 1);//缁堢偣鍏ュ簱閿�+ LogHelper.Info($"鐢熸垚澶嶆鑷姩鍚堟牸鍥炲簱浠诲姟鎴愬姛锛屽鍣ㄥ彿{cginfo.S_CNTR_CODE}锛岃捣鐐箋startLoc.S_CODE}锛岀粓鐐箋endLoc.S_CODE}"); + + Task task99 = Task.Run(() => + { + WMSHelper.InsertOpInfo("鑷姩杞", "澶嶆鑷姩鍚堟牸鍥炲簱", cginfo.S_CNTR_CODE); + }); + + Task task27 = Task.Run(() => + { + var target = new TN_InventoryM() + { + S_ID = cginfo.S_ID, + RFID = cginfo.S_CNTR_CODE, + SPEC = cginfo.S_SPE, + WEIGHT = cginfo.F_QTY, + ITEMSTATE = cginfo.S_ITEM_STATE, + ITEMCODE = cginfo.S_ITEM_CODE, + LOGINNAME = "鑷姩杞", + SHIFT = "鏃�, + }; + SpecHelper.InsertInventoryM(target); + }); + + return ; + } + else + { + LogHelper.Info($"鐢熸垚澶嶆鑷姩鍚堟牸鍥炲簱浠诲姟澶辫触锛屽鍣ㄥ彿{cginfo.S_CNTR_CODE}锛岃捣鐐箋startLoc.S_CODE}锛岀粓鐐箋endLoc.S_CODE}"); + return; + } + + } + catch(Exception ex) + { + LogHelper.Error("CGOkCheck鍙戠敓浜嗗紓甯�, ex); + } + } + + /// <summary> /// 婊℃墭杩囨湡鍑哄簱 杩囨湡鍚堟牸鍥炲簱锛岃繃鏈熸鍝佸洖鐐� /// </summary> internal static void FullOutTime() diff --git a/models/TN_CG_Detail.cs b/models/TN_CG_Detail.cs index 0843946..81fb2b2 100644 --- a/models/TN_CG_Detail.cs +++ b/models/TN_CG_Detail.cs @@ -27,12 +27,12 @@ public string S_SPE { get; set; }//货品规格 /// <summary> - /// 0合格1待检2不合格,下线即待检,3过期,4技术合格,5混合,6一级料、7二级料 + /// 0合格1待检2不合格,下线即待检,3过期,4技术判定,5混合,6一级料、7二级料 /// </summary> public string S_ITEM_STATE { get; set; }//货品状态 /// <summary> - ///0合格1待检2不合格,下线即待检,3过期,4技术合格,5混合,6一级料、7二级料 + ///0合格1待检2不合格,下线即待检,3过期,4技术判定,5混合,6一级料、7二级料 /// </summary> public int N_ITEM_STATE { get; set; }//货品状态_字典 public string S_BATCH_NO { get; set; }//批次号 diff --git a/wms/LocationHelper.cs b/wms/LocationHelper.cs index 2c22fba..6cd1348 100644 --- a/wms/LocationHelper.cs +++ b/wms/LocationHelper.cs @@ -517,7 +517,7 @@ } /// <summary> - /// 0鍚堟牸1寰呮2涓嶅悎鏍硷紝涓嬬嚎鍗冲緟妫�紝3杩囨湡锛�鎶�湳鍚堟牸锛�娣峰悎锛�涓�骇鏂欍�7浜岀骇鏂�+ /// 0鍚堟牸1寰呮2涓嶅悎鏍硷紝涓嬬嚎鍗冲緟妫�紝3杩囨湡锛�鎶�湳鍒ゅ畾锛�娣峰悎锛�涓�骇鏂欍�7浜岀骇鏂� /// </summary> /// <param name="state"></param> /// <returns></returns> @@ -541,7 +541,7 @@ } if (state == 4) { - return "鎶�湳鍚堟牸"; + return "鎶�湳鍒ゅ畾"; } if (state == 5) { @@ -605,7 +605,7 @@ public string rfId { get; set; }//瀹瑰櫒鍙� /// <summary> - /// 0鍚堟牸1寰呮2涓嶅悎鏍硷紝3杩囨湡锛�鎶�湳鍚堟牸锛�娣峰悎锛�涓�骇鏂欍�7浜岀骇鏂�+ /// 0鍚堟牸1寰呮2涓嶅悎鏍硷紝3杩囨湡锛�鎶�湳鍒ゅ畾锛�娣峰悎锛�涓�骇鏂欍�7浜岀骇鏂� /// </summary> public int cgState { get; set; }//鐗╂枡鐘舵� -- Gitblit v1.9.1