From b7308bba3d7ffad271ce7fc7a93c8c45d76be87d Mon Sep 17 00:00:00 2001 From: 杨前锦 <1010338399@qq.com> Date: 星期五, 13 六月 2025 17:21:03 +0800 Subject: [PATCH] 优化印尼佳通-硫化胚胎出入库逻辑策略优化 --- HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/WMSHelper.cs | 126 +++++++++++++++++++++++++++++++---------- 1 files changed, 95 insertions(+), 31 deletions(-) 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 47e90f5..66bc083 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/WMSHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/WMSHelper.cs @@ -165,18 +165,39 @@ } /// <summary> - /// + /// 鏌ヨ鎴愬瀷鏈鸿繑鏂欒揣浣� /// </summary> /// <param name="locCode"></param> /// <returns></returns> - public static string getReturnMaterialLocCode(string locCode) + public static SideLocConfig getReturnMaterialLocCode(string locCode) { var db = new SqlHelper<object>().GetInstance(); - var returnMaterialLoc = db.Queryable<SideLocConfig>().Where(a => a.S_LOC_CODE.Trim() == locCode).First(); - if (returnMaterialLoc != null) { - return returnMaterialLoc.S_RETURN_LOC_CODE; + return db.Queryable<SideLocConfig>().Where(a => a.S_LOC_CODE.Trim() == locCode).First(); + } + + /// <summary> + /// 鏌ヨ鎴愬瀷鏈哄彨鏂欎綅 + /// </summary> + /// <param name="jtNo"></param> + /// <returns></returns> + public static Location getCallMaterialLocCode(string jtNo) + { + var db = new SqlHelper<object>().GetInstance(); + + Location loc = null; + var returnMaterialLocs = db.Queryable<SideLocConfig>().Where(a => a.EQP.Trim() == jtNo).ToList(); + if (returnMaterialLocs.Count > 0) + { + foreach (var item in returnMaterialLocs) + { + loc = LocationHelper.GetLoc(item.S_LOC_CODE); + if (loc.N_CURRENT_NUM == 0 && loc.N_LOCK_STATE == 0) + { + break; + } + } } - return null; + return loc; } // --------------------------------------------------------绂忓缓浣抽�----------------------------------------- @@ -239,6 +260,34 @@ .OrderBy(a => a.S_PRI) .First(); return logicConfig; + } + + /// <summary> + /// 鏌ヨ鏌愪釜鐗╂枡鍦ㄤ腑杞簱鐨勫簱瀛樹俊鎭�+ /// </summary> + /// <param name="itemCode"></param> + /// <returns></returns> + public static List<CntrItemRel> getZZKInventoryInfo(string itemCode) + { + var db = new SqlHelper<object>().GetInstance(); + List < CntrItemRel > cntrItemRels = new List<CntrItemRel>(); + string areaCode = Settings.areaPropertyList.Where(a => a.areaName.Contains("涓浆搴�)).Select(a => a.areaCode).FirstOrDefault(); + if (areaCode != null) + { + cntrItemRels = db.Queryable<CntrItemRel>() + .LeftJoin<LocCntrRel>((a, b) => a.S_CNTR_CODE == b.S_CNTR_CODE) + .LeftJoin<Location>((a, b, c) => b.S_LOC_CODE == c.S_CODE) + .LeftJoin<Container>((a, b, c, d) => a.S_CNTR_CODE == d.S_CODE) + .Where((a, b, c, d) => c.S_AREA_CODE == areaCode + && c.N_CURRENT_NUM == 1 + && c.N_LOCK_STATE == 0 + && a.S_ITEM_CODE == itemCode + && d.N_E_STATE == 0 // 鎵樼洏姝e父 + ) + .OrderBy((a, b, c, d) => a.T_INBOUND_TIME) + .ToList(); + } + return cntrItemRels; } /// <summary> @@ -380,7 +429,7 @@ bool result = true; LogHelper.Info(alarmMsg, logSite); var alarmRecord = db.Queryable<AlarmRecord>().Where(a => a.N_IS_READ == 0 && a.S_ALARM_MSG == alarmMsg).First(); - if (alarmRecord == null) + if (alarmRecord == null) { alarmRecord = new AlarmRecord() { @@ -391,6 +440,11 @@ S_FILE_NAME = logSite, }; result = db.Insertable<AlarmRecord>(alarmRecord).ExecuteCommand() > 0; + } + else + { + alarmRecord.T_MODIFY = DateTime.Now; + result = db.Updateable<AlarmRecord>(alarmRecord).ExecuteCommand() > 0; } return result; } @@ -412,12 +466,12 @@ /// <summary> /// 鏌ヨ鎴愬瀷鏈虹嚎杈� /// </summary> - /// <param name="locCode"></param> + /// <param name="jtNo"></param> /// <returns></returns> - public static SideLocConfig GetLineSideLoc(string locCode) + public static SideLocConfig GetLineSideLoc(string jtNo) { var db = new SqlHelper<object>().GetInstance(); - return db.Queryable<SideLocConfig>().Where(a => a.S_LOC_CODE.Trim() == locCode).First(); + return db.Queryable<SideLocConfig>().Where(a => a.EQP.Trim() == jtNo).First(); } /// <summary> @@ -701,7 +755,20 @@ } /// <summary> - /// 鏌ヨMES鍙枡浠诲姟 + /// 鏍规嵁鏈哄彴鍙锋煡璇ES浠诲姟 + /// </summary> + /// <param name="jtNo"></param> + /// <returns></returns> + internal static LjMesTask getLjMesTaskByJtNo(string jtNo) + { + // 1.鏌ヨMES浠诲姟琛�+ var db = new SqlHelper<object>().GetInstance(); + var mesTask = db.Queryable<LjMesTask>().Where(a => a.EQP.Trim() == jtNo && a.RECEIVE_FLAG.Trim() == "PENDING").OrderByDescending(a => a.T_CREATE).First(); + return mesTask; + } + + /// <summary> + /// 鏍规嵁鐐逛綅缂栧彿鏌ヨMES鍙枡浠诲姟 /// </summary> /// <param name="positionId"></param> /// <returns></returns> @@ -722,8 +789,6 @@ { bool result = false; var db = new SqlHelper<object>().GetInstance(); - mesTask.RECEIVE_FLAG = "COMPLETE"; - mesTask.RECEIVE_DATE = DateTime.Now.ToString("yyyy-MM-dd"); result = db.Updateable(mesTask).ExecuteCommand() > 0; return result; } @@ -898,30 +963,29 @@ /// <summary> /// 涓嬪彂XC浠诲姟 /// </summary> - /// <param name="mesTaksId"></param> + /// <param name="mesTask"></param> /// <returns></returns> - public static bool addLjXcTask(int mesTaksId) + public static bool addLjXcTask(LjMesTask mesTask) { bool result = false; var db = new SqlHelper<object>().GetInstance(); - var ljMesTask = GetLjMesTaskById(mesTaksId); - if (ljMesTask != null) { + if (mesTask != null) { LjXcTask ljXcTask = new LjXcTask() { - ID = ljMesTask.ID, - POSITION_ID = ljMesTask.POSITION_ID, - RETURN_CODE = ljMesTask.RETURN_CODE, - MSG_TYPE = ljMesTask.MSG_TYPE, - PALLET_TYPE = ljMesTask.PALLET_TYPE, - MATERIAL_NAME = ljMesTask.MATERIAL_NAME, - MATERIAL_CODE = ljMesTask.MATERIAL_CODE, - QTY = ljMesTask.QTY, - YCL_BATCH = ljMesTask.YCL_BATCH, - PALLET_ID = ljMesTask.PALLET_ID, - AGVORDER_ID = ljMesTask.AGVORDER_ID, + ID = mesTask.ID, + POSITION_ID = mesTask.POSITION_ID, + RETURN_CODE = mesTask.RETURN_CODE, + MSG_TYPE = mesTask.MSG_TYPE, + PALLET_TYPE = mesTask.PALLET_TYPE, + MATERIAL_NAME = mesTask.MATERIAL_NAME, + MATERIAL_CODE = mesTask.MATERIAL_CODE, + QTY = mesTask.QTY, + YCL_BATCH = mesTask.YCL_BATCH, + PALLET_ID = mesTask.PALLET_ID, + AGVORDER_ID = mesTask.AGVORDER_ID, CREATION_DATE = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), - RECEIVE_FLAG = ljMesTask.RECEIVE_FLAG, - EQP = ljMesTask.EQP, - PLAN_ID = ljMesTask.PLAN_ID + RECEIVE_FLAG = mesTask.RECEIVE_FLAG, + EQP = mesTask.EQP, + PLAN_ID = mesTask.PLAN_ID }; result = db.Insertable<LjXcTask>(ljXcTask).ExecuteCommand() > 0; } -- Gitblit v1.9.1