From c8f338feee0b6003d8f069b1d37fd9b90dd1b7f4 Mon Sep 17 00:00:00 2001 From: 杨前锦 <1010338399@qq.com> Date: 星期一, 07 七月 2025 17:31:38 +0800 Subject: [PATCH] 印尼佳通优化 --- HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/WMSHelper.cs | 410 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 319 insertions(+), 91 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 6dc19e8..3cce68b 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/WMSHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/WMSHelper.cs @@ -11,6 +11,7 @@ using System.Globalization; using System.Linq; using System.Linq.Expressions; +using System.Numerics; using System.Reflection; using System.Runtime.ConstrainedExecution; using System.Threading.Tasks; @@ -32,6 +33,10 @@ var id = SYSHelper.GetSerialNumber("鍒嗘嫞鍗�, "SO"); var date = DateTime.Now.ToString("yyMMdd"); return $"SO{date}{id.ToString().PadLeft(4, '0')}"; + } + internal static int GenerateStockRecordNo() + { + return SYSHelper.GetSerialNumber("搴撳瓨璁板綍鍙�, "SR"); } internal static string GenerateAlarmNo() @@ -131,7 +136,13 @@ task.S_B_STATE = WMSTask.GetStateStr(task.N_B_STATE); db.Updateable<WMSTask>(task).UpdateColumns(a => new { a.N_TYPE,a.N_B_STATE, a.S_B_STATE, a.T_MODIFY,a.T_END_TIME }).ExecuteCommand(); } - + + internal static void UpdateWmsTask(WMSTask task) + { + var db = new SqlHelper<object>().GetInstance(); + task.T_MODIFY = DateTime.Now; + db.Updateable<WMSTask>(task).ExecuteCommand(); + } internal static bool UpdateTaskEnd(WMSTask a) { var db = new SqlHelper<object>().GetInstance(); @@ -165,18 +176,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; } // --------------------------------------------------------绂忓缓浣抽�----------------------------------------- @@ -242,6 +274,35 @@ } /// <summary> + /// 鏌ヨ鏌愪釜鐗╂枡鍦ㄤ腑杞簱鐨勫簱瀛樹俊鎭�+ /// </summary> + /// <param name="itemCode"></param> + /// <returns></returns> + public static DateTime getZZKInventoryInfo(string itemCode) + { + DateTime inboundTime = DateTime.MinValue; + var db = new SqlHelper<object>().GetInstance(); + string areaCode = Settings.areaPropertyList.Where(a => a.areaName.Contains("涓浆搴�)).Select(a => a.areaCode).FirstOrDefault(); + if (areaCode != null) + { + inboundTime = 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) + .Select((a, b, c, d) => a.T_INBOUND_TIME) + .First(); + } + return inboundTime; + } + + /// <summary> /// 鏌ヨ鍑哄簱寮�璧风偣 /// 娉細闇�繃婊ゅ爢鍨涙満鏁呴殰鐨勫贩閬� /// </summary> @@ -261,9 +322,14 @@ .LeftJoin<CntrItemRel>((a, b, c, d) => c.S_CODE == d.S_CNTR_CODE) .Where((a, b, c, d) => a.N_CURRENT_NUM > 0 && a.N_LOCK_STATE == 0 && a.C_ENABLE.Trim() == "Y" ); - if (areaCode != null && areaCode != "") + if (areaCode != null && areaCode != "") { - queryable = queryable.Where((a, b, c, d ) => a.S_AREA_CODE.Trim() == areaCode); + queryable = queryable.Where((a, b, c, d) => a.S_AREA_CODE.Trim() == areaCode); + } + else + { + List<string> areaCodes = Settings.areaPropertyList.Select(a => a.areaCode).ToList(); + queryable = queryable.Where((a, b, c, d) => areaCodes.Contains(a.S_AREA_CODE.Trim())); } if (traySatus == 0) { @@ -307,7 +373,7 @@ string S_ZONE_CLS_CODE = ""; if (trayStatus == 0) { - S_ZONE_CLS_CODE = "KGZ"; + S_ZONE_CLS_CODE = "KT"; } else if (trayStatus == 1) { @@ -346,10 +412,6 @@ .Where((a, b, c) => a.S_AREA_CODE.Trim() == item.S_AREA_CODE.Trim() && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.C_ENABLE == "Y" && c.S_ZONE_CLS_CODE.Trim() == S_ZONE_CLS_CODE) .OrderBy((a, b, c) => a.N_LAYER) .First(); - if (location != null) - { - return location; - } } } @@ -369,7 +431,7 @@ .OrderBy((a, b, c) => a.N_LAYER) .First(); } - LogHelper.Info($"鏌ヨ缁撴潫,绔嬪簱缁堢偣璐т綅:{location}","WMS"); + LogHelper.Info($"鏌ヨ缁撴潫,绔嬪簱缁堢偣璐т綅:{JsonConvert.SerializeObject(location)}","WMS"); } catch (Exception ex) { @@ -379,17 +441,29 @@ return location; } - public static bool addAlarmRecord(string alarmType , string alarmLevel ,string alarmMsg ,string logSite = "WMS") { + public static bool addAlarmRecord(string alarmType , string alarmLevel ,string alarmMsg ,string logSite = "WMS") { var db = new SqlHelper<object>().GetInstance(); + bool result = true; LogHelper.Info(alarmMsg, logSite); - AlarmRecord alarmRecord = new AlarmRecord() { - S_ALARM_CODE = GenerateAlarmNo(), - S_ALARM_TYPE = alarmType, - S_ALARM_LEVEL = alarmLevel, - S_ALARM_MSG = alarmMsg, - S_FILE_NAME = logSite, - }; - return db.Insertable<AlarmRecord>(alarmRecord).ExecuteCommand()>0; + var alarmRecord = db.Queryable<AlarmRecord>().Where(a => a.N_IS_READ == 0 && a.S_ALARM_MSG == alarmMsg).First(); + if (alarmRecord == null) + { + alarmRecord = new AlarmRecord() + { + S_ALARM_CODE = GenerateAlarmNo(), + S_ALARM_TYPE = alarmType, + S_ALARM_LEVEL = alarmLevel, + S_ALARM_MSG = alarmMsg, + 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; } public static bool addRfidAnomalyRecord(string rfid ,int anomalyType ,string locCode ,string taskNo) @@ -403,18 +477,18 @@ S_LOC_CODE = locCode, S_TASK_NO = taskNo }; - return db.Insertable<AlarmRecord>(anomalyRecord).ExecuteCommand() > 0; + return db.Insertable<RfidAnomalyRecord>(anomalyRecord).ExecuteCommand() > 0; } /// <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> @@ -445,26 +519,6 @@ /// <summary> /// 鏌ヨ鎺ラ┏浣嶅叧鑱斿睘鎬�- /// 娉細 - /// 1.鏌ヨ寮傚父鍖鸿揣浣�- /// </summary> - /// <param name="areaCode">搴撳尯</param> - /// <param name="property">璐т綅灞炴�锛�.鐩磋繛 2.闈炵洿杩烇級</param> - /// <param name="actType">鍔ㄤ綔绫诲瀷锛�.浜哄伐鎺ラ┏浣�1.鍏ュ簱鎺ラ┏浣�2.鍑哄簱鎺ラ┏浣嶏級</param> - /// <returns></returns> - public static Location GetTransfeRelevanceLoc(string areaCode ,int actType ,int property ) - { - Location loc = null; - var db = new SqlHelper<object>().GetInstance(); - loc = db.Queryable<Location>() - .LeftJoin<TransfeRelevance>((a,b)=> a.S_CODE == b.S_LOC_CODE) - .Where((a, b) => b.S_RELE_AREA.Trim() == areaCode && b.N_PROPERTY == property && b.N_ACT_TYPE == actType && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.C_ENABLE == "Y") - .First(); - return loc; - } - - /// <summary> - /// 鏌ヨ鎺ラ┏浣嶅叧鑱斿睘鎬� /// </summary> /// <param name="locCode"></param> /// <param name="isManual">璐т綅灞炴� (0.闈炰汉宸�1.浜哄伐)</param> @@ -482,16 +536,15 @@ /// 娉細鏌ヨ浠诲姟鏈�皯鐨勬帴椹充綅 /// </summary> /// <param name="areaCode">搴撳尯</param> - /// <param name="property">璐т綅灞炴� ( 0.浜哄伐 1.鐩磋繛 2.闈炵洿杩�</param> - /// <param name="actType">鍔ㄤ綔绫诲瀷 锛�.鍏ュ簱鎺ラ┏浣� 2.鍑哄簱鎺ラ┏浣嶏級</param> + /// <param name="type">鍔ㄤ綔绫诲瀷 锛�.鍏ュ簱鎺ラ┏浣� 2.鍑哄簱鎺ラ┏浣嶏級</param> /// <returns></returns> - public static Location GetMinTaskTransfeLoc(string areaCode ,int actType, int property) + public static Location GetMinTaskTransfeLoc(string areaCode ,int type) { var db = new SqlHelper<object>().GetInstance(); var loc = db.Queryable<Location>() .LeftJoin<TransfeRelevance>((a,b) => a.S_CODE == b.S_LOC_CODE) .LeftJoin<WCSTask>((a,b,c) => a.S_CODE == c.S_END_LOC && c.N_B_STATE < 3) - .Where((a, b, c) => b.S_RELE_AREA.Trim() == areaCode && b.N_ACT_TYPE == actType && b.N_PROPERTY == property && a.N_LOCK_STATE < 3 && a.C_ENABLE == "Y") + .Where((a, b, c) => b.S_RELE_AREA.Trim() == areaCode && b.N_TYPE == type && a.N_LOCK_STATE < 3 && a.C_ENABLE == "Y") .GroupBy((a, b, c) => a.S_CODE) .Select((a, b, c) => new { count = SqlFunc.AggregateCount(c.S_END_LOC), @@ -540,46 +593,140 @@ /// <summary> /// 璇诲彇MES涓嬫枡浠诲姟 - /// 1.澶囦唤瀹瑰櫒鐗╂枡淇℃伅 - /// 2.鏇存柊涓棿琛ㄧ姸鎬佷负宸茶 + /// 1.璇诲彇MES涓嬪彂浠诲姟琛�+ /// 2.璇诲彇鎵樼洏鐗╂枡淇℃伅琛�+ /// 3.璇诲彇鍩虹鐗╂枡淇℃伅琛� /// </summary> /// <param name="taskNo"></param> /// <param name="id"></param> /// <returns></returns> - internal static LjMesTask readLjMesOffItemTask(string taskNo , int id) + internal static bool readLjMesOffItemTask(string taskNo , int id) { + bool res = true; LogHelper.Info($"鏌ヨ鍒癕ES涓嬪彂WMS浠诲姟,mesTaskId:{id},浠诲姟鍙�{taskNo}" , "WMS"); var db = new SqlHelper<object>().GetInstance(); try { db.BeginTran(); - // 1.鏌ヨMES浠诲姟琛�+ // 1.璇诲彇MES涓嬪彂浠诲姟琛� var mesTask = db.Queryable<LjMesTask>().Where(a => a.ID == id && a.RECEIVE_FLAG.Trim() == "PENDING" ).OrderByDescending(a => a.T_CREATE).First(); if (mesTask != null) { - // 閲嶇疆绌哄伐瑁呬俊鎭�- ContainerHelper.AddContainer(mesTask.PALLET_ID, int.Parse(mesTask.PALLET_TYPE),mesTask.QTY == 0 ? 0 : 1); - - mesTask.AGVORDER_ID = taskNo; - mesTask.RETURN_CODE = "1"; - mesTask.RECEIVE_FLAG = "COMPLETE"; - mesTask.RECEIVE_DATE = DateTime.Now.ToString("yyyy-MM-dd"); - db.Updateable(mesTask).ExecuteCommand(); + // 2.璇诲彇鎵樼洏鐗╂枡淇℃伅琛�+ res = updateCarrier(mesTask.PALLET_ID); + if (res) + { + mesTask.AGVORDER_ID = taskNo; + mesTask.RETURN_CODE = "1"; + mesTask.RECEIVE_FLAG = "COMPLETE"; + mesTask.RECEIVE_DATE = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + db.Updateable(mesTask).ExecuteCommand(); + } } else { - LogHelper.Info("鏈煡璇㈠埌MES涓嬪彂WMS浠诲姟", "WMS"); + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "涓�, $"鏈煡璇㈠埌MES涓嬪彂鐨勪换鍔�MES浠诲姟ID锛歿id}"); } db.CommitTran(); - return mesTask; } catch (Exception ex) { + res = false; db.RollbackTran(); LogHelper.Info($"璇诲彇MES涓嬪彂浠诲姟澶辫触锛岄敊璇師鍥�{ex.Message}" , "WMS"); WMSHelper.addAlarmRecord("绯荤粺閿欒", "楂�, $"璇诲彇MES涓嬪彂浠诲姟澶辫触锛岄敊璇師鍥�{ex.Message}"); } - return null; + return res; + } + + public static bool updateCarrier(string palletId) + { + bool res = true; + var db = new SqlHelper<object>().GetInstance(); + var container = ContainerHelper.GetCntr(palletId); + if (container != null) + { + // 1.璇诲彇鎵樼洏鐗╂枡淇℃伅琛�+ var lotCarrier = db.Queryable<LjLotCarrier>().Where(a => a.RECEIVE_FLAG.Trim() == "PENDING" && a.PALLET_ID == palletId).OrderByDescending(a => a.CREATION_DATE).First(); + if (lotCarrier != null) + { + CntrItemRel cntrItemRel = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == palletId).First(); + if (cntrItemRel != null) + { + cntrItemRel.S_CNTR_CODE = lotCarrier.PALLET_ID; + cntrItemRel.S_BATCH_NO = lotCarrier.LOT_NAME; + cntrItemRel.S_SERIAL_NO = lotCarrier.YCL_BATCH; + cntrItemRel.S_ITEM_CODE = lotCarrier.MATERIALCODE; + cntrItemRel.F_QTY = lotCarrier.QTY; + cntrItemRel.D_PRD_DATE = lotCarrier.PRODUCTION_DATE; + cntrItemRel.S_ITEM_STATE = lotCarrier.QC_STATUS; + cntrItemRel.D_EXP_DATE = lotCarrier.SHELFLIFE_DATE; + cntrItemRel.D_EXP_DATE1 = lotCarrier.MINSHELFLIFE_DATE; + db.Updateable(cntrItemRel).ExecuteCommand(); + } + else + { + cntrItemRel = new CntrItemRel() + { + S_CNTR_CODE = lotCarrier.PALLET_ID, + S_BATCH_NO = lotCarrier.LOT_NAME, + S_SERIAL_NO = lotCarrier.YCL_BATCH, + S_ITEM_CODE = lotCarrier.MATERIALCODE, + F_QTY = lotCarrier.QTY, + D_PRD_DATE = lotCarrier.PRODUCTION_DATE, + S_ITEM_STATE = lotCarrier.QC_STATUS, + D_EXP_DATE = lotCarrier.SHELFLIFE_DATE, + D_EXP_DATE1 = lotCarrier.MINSHELFLIFE_DATE, + }; + db.Insertable(cntrItemRel).ExecuteCommand(); + } + + lotCarrier.RECEIVE_FLAG = "COMPLETE"; + lotCarrier.RECEIVE_DATE = DateTime.Now.ToString("yyyy-MM-dd"); + db.Updateable(lotCarrier).UpdateColumns(a => new { a.RECEIVE_FLAG, a.RECEIVE_DATE }).ExecuteCommand(); + + // 璇诲彇鍩虹鐗╂枡淇℃伅琛�+ var material = db.Queryable<LjItem>().Where(a => a.RECEIVE_FLAG.Trim() == "PENDING" && a.MATERIAL_CODE == lotCarrier.MATERIALCODE).OrderByDescending(a => a.CREATION_DATE).First(); + if (material != null) + { + TN_Material tn_material = db.Queryable<TN_Material>().Where(a => a.S_ITEM_CODE == material.MATERIAL_CODE).First(); + + if (tn_material != null) + { + tn_material.S_ITEM_CODE = material.MATERIAL_CODE; + tn_material.S_ITEM_NAME = material.MATERIAL_NAME; + tn_material.S_SPEC = material.SPEC; + tn_material.S_MODEL = material.MODEL; + tn_material.S_UNIT = material.UNIT; + tn_material.S_MEMO = material.MEMO; + db.Updateable(material).ExecuteCommand(); + } + else + { + tn_material = new TN_Material() + { + S_ITEM_CODE = material.MATERIAL_CODE, + S_ITEM_NAME = material.MATERIAL_NAME, + S_SPEC = material.SPEC, + S_MODEL = material.MODEL, + S_UNIT = material.UNIT, + S_MEMO = material.MEMO, + }; + db.Insertable(material).ExecuteCommand(); + } + + material.RECEIVE_FLAG = "COMPLETE"; + material.RECEIVE_DATE = DateTime.Now.ToString("yyyy-MM-dd"); + db.Updateable(material).ExecuteCommand(); + } + } + } + else + { + WMSHelper.addAlarmRecord("娴佺▼寮傚父", "涓�, $"鏈湪WMS绯荤粺涓煡璇㈠埌瀹瑰櫒淇℃伅,瀹瑰櫒缂栫爜锛歿palletId}"); + res = false; + } + return res; } /// <summary> @@ -591,6 +738,7 @@ var lotCarrierList = db.Queryable<LjLotCarrier>().Where(a => a.RECEIVE_FLAG.Trim() == "PENDING").ToList(); foreach (var lotCarrier in lotCarrierList) { + // 鍐欏叆鏂滆鎵樼洏鐗╂枡淇℃伅涓棿琛� CntrItemRel cntrItemRel = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == lotCarrier.PALLET_ID).First(); if (cntrItemRel != null) @@ -677,7 +825,6 @@ /// <returns></returns> internal static LjLotCarrier getLjCntrMaterial(string trayNo) { - // 1.鏌ヨMES浠诲姟琛� var db = new SqlHelper<object>().GetInstance(); var lotCarrier = db.Queryable<LjLotCarrier>().Where(a => a.PALLET_ID.Trim() == trayNo).First(); return lotCarrier; @@ -698,7 +845,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> @@ -719,8 +879,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; } @@ -794,6 +952,28 @@ { var db = new SqlHelper<object>().GetInstance(); return db.Queryable<LjMesTask>().Where(a => a.RECEIVE_FLAG.Trim() == receiveFlag ).ToList(); + } + + /// <summary> + /// 鏌ヨMES浠诲姟琛�鐜甫) + /// </summary> + /// <returns></returns> + public static List<LjMesTask> GetLjMesTaskListHD() + { + var db = new SqlHelper<object>().GetInstance(); + return db.Queryable<LjMesTask>().Where(a => (a.PALLET_TYPE == "5" || a.PALLET_TYPE == "6") && (a.RETURN_CODE.Trim() == "0" || a.RETURN_CODE.Trim() == "1" || a.RETURN_CODE.Trim() == "2")).ToList(); + } + + /// <summary> + /// 鏇存柊MES浠诲姟鐘舵� + /// </summary> + /// <returns></returns> + public static bool updateMesTaskStatus(LjMesTask mesTask) + { + bool result = false; + var db = new SqlHelper<object>().GetInstance(); + result = db.Updateable<LjMesTask>(mesTask).ExecuteCommand() > 0; + return result; } /// <summary> @@ -891,36 +1071,84 @@ // -----------------------------------------鏂滆涓棿琛�--------------------------------------------- - /// <summary> - /// 涓嬪彂XC浠诲姟 + /// 鏇存柊MES浠诲姟鐘舵� /// </summary> - /// <param name="mesTaksId"></param> /// <returns></returns> - public static bool addLjXcTask(int mesTaksId) + public static bool updateXcTaskStatus(LjXcTask xcTask) { bool result = false; var db = new SqlHelper<object>().GetInstance(); - var ljMesTask = GetLjMesTaskById(mesTaksId); - if (ljMesTask != null) { + result = db.Updateable<LjXcTask>(xcTask).ExecuteCommand() > 0; + return result; + } + + /// <summary> + /// 灏哅ES涓嬪彂浠诲姟銆佹墭鐩樼墿鏂欎俊鎭�杞彂缁欐枩瑁�+ /// </summary> + /// <param name="mesTask"></param> + /// <returns></returns> + public static bool addLjXcTask(LjMesTask mesTask) + { + bool result = false; + var db = new SqlHelper<object>().GetInstance(); + if (mesTask != null) { + if (mesTask.MSG_TYPE == "1") + { + // 杞彂鎵樼洏鐗╂枡淇℃伅 + var ljLotCarrier = db.Queryable<LjLotCarrier>().Where(a => a.PALLET_ID == mesTask.PALLET_ID && a.RECEIVE_FLAG == "PENDING").OrderByDescending(a => a.CREATION_DATE).First(); + if (ljLotCarrier != null) + { + LjXcCarrier ljXcCarrier = new LjXcCarrier() + { + ID = ljLotCarrier.ID, + PALLET_ID = ljLotCarrier.PALLET_ID, + LOT_NAME = ljLotCarrier.LOT_NAME, + YCL_BATCH = ljLotCarrier.YCL_BATCH, + MATERIALCODE = ljLotCarrier.MATERIALCODE, + QTY = ljLotCarrier.QTY, + PRODUCTION_DATE = ljLotCarrier.PRODUCTION_DATE, + QC_STATUS = ljLotCarrier.QC_STATUS, + SHELFLIFE_DATE = ljLotCarrier.SHELFLIFE_DATE, + MINSHELFLIFE_DATE = ljLotCarrier.MINSHELFLIFE_DATE, + CREATION_DATE = ljLotCarrier.CREATION_DATE, + RECEIVE_FLAG = ljLotCarrier.RECEIVE_FLAG, + }; + var bo = db.Insertable<LjXcCarrier>(ljXcCarrier).ExecuteCommand() > 0; + if (bo) + { + ljLotCarrier.RECEIVE_FLAG = "COMPLETE"; + ljLotCarrier.RECEIVE_DATE = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + db.Updateable<LjLotCarrier>(ljLotCarrier).ExecuteCommand(); + } + } + } + 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; + if (result) + { + mesTask.RETURN_CODE = "1"; + mesTask.RECEIVE_FLAG = "COMPLETE"; + mesTask.RECEIVE_DATE = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + db.Updateable<LjMesTask>(mesTask).ExecuteCommand(); + } } return result; } -- Gitblit v1.9.1