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.YNJT_BZP/api/ApiHelper.cs | 211 ++++-------- HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/dispatch/GtDispatch.cs | 9 HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/ApiHelper.cs | 18 HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/WMSHelper.cs | 25 - HH.WCS.Mobox3/HH.WCS.Mobox3.HD/dispatch/ShopFloorControl.cs | 45 ++ HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/api/WmsController.cs | 4 HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/WmsController.cs | 116 ++---- HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/ItemHelper.cs | 14 HH.WCS.Mobox3/HH.WCS.Mobox3.HD/wms/WMSHelper.cs | 7 HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/api/ApiHelper.cs | 30 + HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/core/WCSCore.cs | 20 HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/api/MoboxController.cs | 18 + HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/ContainerHelper.cs | 24 - HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/HH.WCS.Mobox3.YNJT_BZP.csproj | 3 HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/core/WCSCore.cs | 15 HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/models/ItemBarcodeInfo.cs | 17 HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/models/MatlInformation.cs | 14 HH.WCS.Mobox3/HH.WCS.Mobox3.HD/core/Monitor.cs | 81 +++-- HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/models/CntrItemRel.cs | 24 - HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/core/Monitor.cs | 11 HH.WCS.Mobox3/HH.WCS.Mobox3.TSSG/core/Monitor.cs | 2 HH.WCS.Mobox3/HH.WCS.Mobox3.HD/api/ApiHelper.cs | 4 HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/WMSHelper.cs | 199 ++++++------ 23 files changed, 444 insertions(+), 467 deletions(-) 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 16e19b6..9e1a722 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/ApiHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/ApiHelper.cs @@ -541,7 +541,7 @@ { WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"璁惧鍙�{bufferLocConfig.deviceNo},鏌ヨ璁惧鐘舵�澶辫触锛岃鑱旂郴宸ヤ綔浜哄憳鏌ョ湅璁惧鏄惁姝e父"); throw new BusinessException($"璁惧鍙�{bufferLocConfig.deviceNo},鏌ヨ璁惧鐘舵�澶辫触锛岃鑱旂郴宸ヤ綔浜哄憳鏌ョ湅璁惧鏄惁姝e父"); - }*/ + }*/ } else { @@ -753,7 +753,7 @@ return responseResult; } - middleLoc = WMSHelper.GetMinTaskTransfeLoc(startLoc.S_AREA_CODE, 2 , 2); + middleLoc = WMSHelper.GetMinTaskTransfeLoc(startLoc.S_AREA_CODE, 2 ); if (middleLoc == null) { WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"MES鍙枡浠诲姟{mesTask.ID},绔嬪簱鎺ラ┏浣嶅彲鑳藉浜庨攣瀹氭垨绂佺敤鐘舵�锛岃鏌ョ湅"); responseResult.code = 1; @@ -1159,7 +1159,7 @@ wmsEndLoc = WMSHelper.getInStockEndLoc(null, container.N_DETAIL_COUNT == 0 ? 0 : 1, container.N_TYPE); if (wmsEndLoc != null) { - agvEndLoc = WMSHelper.GetMinTaskTransfeLoc(wmsEndLoc.S_AREA_CODE, 1, 2); // 1.绔嬪簱鎺ラ┏浣�1.鍏ュ簱 2.闈炵洿杩�+ agvEndLoc = WMSHelper.GetMinTaskTransfeLoc(wmsEndLoc.S_AREA_CODE, 1); if (agvEndLoc != null) { LogHelper.Info($"鍒涘缓绔嬪簱绔欏彴鍒扮珛搴撶殑棰勫垱寤轰换鍔★紝agv缁堢偣璐т綅:{agvEndLoc.S_CODE},绔嬪簱缁堢偣璐т綅:{wmsEndLoc.S_CODE}", "AGV"); @@ -1235,7 +1235,7 @@ wmsEndLoc = WMSHelper.getInStockEndLoc(null, container.N_DETAIL_COUNT == 0 ? 0 : 1, container.N_TYPE); if (wmsEndLoc != null) { - agvEndLoc = WMSHelper.GetMinTaskTransfeLoc(wmsEndLoc.S_AREA_CODE, 1, 2); // 1.绔嬪簱鎺ラ┏浣�1.鍏ュ簱 2.闈炵洿杩�+ agvEndLoc = WMSHelper.GetMinTaskTransfeLoc(wmsEndLoc.S_AREA_CODE, 1); if (agvEndLoc != null) { LogHelper.Info($"鍒涘缓绔嬪簱绔欏彴鍒扮珛搴撶殑棰勫垱寤轰换鍔★紝agv缁堢偣璐т綅:{agvEndLoc.S_CODE},绔嬪簱缁堢偣璐т綅:{wmsEndLoc.S_CODE}", "AGV"); @@ -1246,7 +1246,7 @@ S_OP_CODE = mst.S_CODE, S_CODE = WCSHelper.GenerateTaskNo(), S_CNTR_CODE = cst.S_CNTR_CODE, - S_TYPE = cst.S_TYPE + "銆愬紓甯搞�", + S_TYPE = "寮傚父宸ヨ鍏ュ簱", S_START_LOC = agvEndLoc.S_CODE, S_START_AREA = agvEndLoc.S_AREA_CODE, S_END_LOC = wmsEndLoc.S_CODE, @@ -1348,7 +1348,7 @@ if (locCntrRels.Count > 0) { cntrCode = locCntrRels[0].S_CNTR_CODE; - middleLoc = WMSHelper.GetTransfeRelevanceLoc(startLoc.S_AREA_CODE, 2, 2); + middleLoc = WMSHelper.GetMinTaskTransfeLoc(startLoc.S_AREA_CODE, 2); if (middleLoc != null) { // 1.鍒涘缓鎴愭柊鏈哄彨鏂欎綔涓�@@ -1523,7 +1523,7 @@ Location endLoc = WMSHelper.getCallMaterialLocCode(mesTask.EQP); if (endLoc != null) { - middleLoc = WMSHelper.GetTransfeRelevanceLoc(startLoc.S_AREA_CODE, 2, 2); + middleLoc = WMSHelper.GetMinTaskTransfeLoc(startLoc.S_AREA_CODE, 2); if (middleLoc != null) { // 1.鍒涘缓鎴愭柊鏈哄彨鏂欎綔涓�@@ -1747,7 +1747,7 @@ wmsEndLoc = WMSHelper.getInStockEndLoc(null, container.N_DETAIL_COUNT == 0 ? 0 : 1, container.N_TYPE); if (wmsEndLoc != null) { - agvEndLoc = WMSHelper.GetMinTaskTransfeLoc(wmsEndLoc.S_AREA_CODE, 1, 2); // 1.绔嬪簱鎺ラ┏浣�1.鍏ュ簱 2.闈炵洿杩�+ agvEndLoc = WMSHelper.GetMinTaskTransfeLoc(wmsEndLoc.S_AREA_CODE, 1); if (agvEndLoc != null) { // 棰勫厛鐢熸垚鍏ュ簱绔欏彴-绔嬪簱缁堢偣鐨勬惉杩愪换鍔�@@ -2101,7 +2101,7 @@ { var transfeRelevance = WMSHelper.GetTransfeRelevance(model.locCode); // 鎺ラ┏浣嶅睘鎬� LogHelper.Info($"鍘熺珯鍙板睘鎬э細{JsonConvert.SerializeObject(transfeRelevance)}", "WMS"); - if (transfeRelevance != null && transfeRelevance.N_PROPERTY == 2) + if (transfeRelevance != null) { if (model.signalType == "1") { 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 d88c163..3cce68b 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/WMSHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/WMSHelper.cs @@ -519,26 +519,6 @@ /// <summary> /// 鏌ヨ鎺ラ┏浣嶅叧鑱斿睘鎬�- /// 娉細 - /// 1.鏌ヨ寮傚父鍖鸿揣浣�- /// </summary> - /// <param name="areaCode">搴撳尯</param> - /// <param name="type">鍔ㄤ綔绫诲瀷锛�.浜哄伐鎺ラ┏浣�1.鍏ュ簱鎺ラ┏浣�2.鍑哄簱鎺ラ┏浣嶏級</param> - /// <param name="property">璐т綅灞炴�锛�.鐩磋繛 2.闈炵洿杩烇級</param> - /// <returns></returns> - public static Location GetTransfeRelevanceLoc(string areaCode ,int type ,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_TYPE == type && 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> @@ -556,16 +536,15 @@ /// 娉細鏌ヨ浠诲姟鏈�皯鐨勬帴椹充綅 /// </summary> /// <param name="areaCode">搴撳尯</param> - /// <param name="property">璐т綅灞炴� ( 1.鐩磋繛 2.闈炵洿杩�</param> /// <param name="type">鍔ㄤ綔绫诲瀷 锛�.鍏ュ簱鎺ラ┏浣� 2.鍑哄簱鎺ラ┏浣嶏級</param> /// <returns></returns> - public static Location GetMinTaskTransfeLoc(string areaCode ,int type, 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_TYPE == type && 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), diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.HD/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.HD/api/ApiHelper.cs index b1c7b2b..12bf093 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.HD/api/ApiHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.HD/api/ApiHelper.cs @@ -285,7 +285,7 @@ { LogHelper.Info("鎺ラ┏浣嶏細" + JsonConvert.SerializeObject(item), "Mobox"); var conLoc = LocationHelper.GetLoc(item); - endLoc = WMSHelper.GetEndLocation(areaCode, model.trayItemInfoList[0].itemCode, conLoc.N_ROADWAY, conLoc.N_ROW); + endLoc = WMSHelper.GetEndLocation(areaCode, model.trayItemInfoList[0].itemCode, conLoc.N_ROADWAY, conLoc.N_ROW,4); if (endLoc != null) { firstTaskEnd = conLoc; @@ -666,7 +666,7 @@ else { responseResult.success = false; - responseResult.message = "鏈幏鍙栧埌缁堢偣搴撲綅"; + responseResult.message = "鏈幏鍙栧埌缁堢偣搴撲綅,鍓╀綑璐т綅涓嶈冻"; } return responseResult; } diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.HD/core/Monitor.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.HD/core/Monitor.cs index efa0ea3..834ffda 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.HD/core/Monitor.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.HD/core/Monitor.cs @@ -224,18 +224,28 @@ if (locCntrRel != null) { LogHelper.Info("1111111", "杈撻�绾�); - if (lineSignalInfo.faultMessage == 1) - { - // 鍥炴姤杞﹂棿鎺у埗鍣�- LogHelper.Info("杈撻�绾�绾夸綋銆� + line.code + "銆戣皟鏁翠负鎵嬪姩鐘舵�", "杈撻�绾�); - continue; - } - WMSTask wmsTask = WMSHelper.GetWmsTaskByCntr(locCntrRel.S_CNTR_CODE); if (wmsTask == null) { LogHelper.Info("娌℃湁姝e湪鎵ц鐨勪换鍔★紝璐т綅锛� + locCntrRel.S_LOC_CODE + " 瀹瑰櫒锛� + locCntrRel.S_CNTR_CODE, "杈撻�绾�); continue; + } + + if (lineSignalInfo.faultMessage != 0) + { + // 鍥炴姤杞﹂棿鎺у埗鍣�+ WMSStatusInfo statusInfo = new WMSStatusInfo() + { + wmsId = wmsTask.S_CODE, + errMsg = $"{line.code}杈撻�绾挎晠闅滐紝鏁呴殰缂栫爜锛歿lineSignalInfo.faultMessage}" + }; + ShopFloorControl.wmsUpdateStatus(statusInfo); + + if (lineSignalInfo.faultMessage == 1) + { + LogHelper.Info("杈撻�绾�绾夸綋銆� + line.code + "銆戣皟鏁翠负鎵嬪姩鐘舵�", "杈撻�绾�); + continue; + } } var date = DateTime.Now.ToString("yyMMdd"); @@ -337,33 +347,40 @@ } LogHelper.Info("鍫嗗灈鏈哄叆搴撲换鍔$粓鐐�, "杈撻�绾�); Location endLoc = WMSHelper.GetEndLocation(wmsTask.S_END_AREA, itemCode, originLocation.N_ROADWAY, originLocation.N_ROW); - LogHelper.Info($"鍫嗗灈鏈哄叆搴撲换鍔$粓鐐癸細{endLoc.S_CODE}", "杈撻�绾�); - wmsTask.S_END_LOC = endLoc.S_CODE; - WMSHelper.UpdateTask(wmsTask); - string eqNo = ApiHelper.getEqNo(endLoc.S_AREA_CODE, endLoc.N_ROADWAY); + if (endLoc != null) + { + LogHelper.Info($"鍫嗗灈鏈哄叆搴撲换鍔$粓鐐癸細{endLoc.S_CODE}", "杈撻�绾�); + wmsTask.S_END_LOC = endLoc.S_CODE; + WMSHelper.UpdateTask(wmsTask); + string eqNo = ApiHelper.getEqNo(endLoc.S_AREA_CODE, endLoc.N_ROADWAY); - List<string> areaCdoes = Settings.getStoreAreaCodes(2, 1); - WCSTask twoWcsTask = new WCSTask + List<string> areaCdoes = Settings.getStoreAreaCodes(2, 1); + WCSTask twoWcsTask = new WCSTask + { + S_OP_NAME = wmsTask.S_OP_DEF_NAME, + S_OP_CODE = wmsTask.S_CODE, + S_CODE = WCSHelper.GenerateTaskNo(), + S_CNTR_CODE = wmsTask.S_CNTR_CODE, + S_TYPE = wmsTask.S_TYPE + "-2", + S_START_LOC = originLocation.S_CODE, + S_START_AREA = originLocation.S_AREA_CODE, + S_END_LOC = wmsTask.S_END_LOC, + S_END_AREA = wmsTask.S_END_AREA, + S_EQ_NO = eqNo, + S_SCHEDULE_TYPE = "RB", + T_START_TIME = DateTime.Now, + }; + if (WCSHelper.CreateTask(twoWcsTask)) + { + // 鎺ラ┏浣嶅姞鍑哄簱閿�缁堢偣璐т綅鍔犲叆搴撻攣 + LocationHelper.LockLoc(twoWcsTask.S_START_LOC, 2); + LocationHelper.LockLoc(twoWcsTask.S_END_LOC, 1); + LogHelper.Info("鍫嗗灈鏈哄叆搴撲换鍔″凡涓嬪彂锛屼换鍔′俊鎭細" + JsonConvert.SerializeObject(twoWcsTask), "杈撻�绾�); + } + } + else { - S_OP_NAME = wmsTask.S_OP_DEF_NAME, - S_OP_CODE = wmsTask.S_CODE, - S_CODE = WCSHelper.GenerateTaskNo(), - S_CNTR_CODE = wmsTask.S_CNTR_CODE, - S_TYPE = wmsTask.S_TYPE + "-2", - S_START_LOC = originLocation.S_CODE, - S_START_AREA = originLocation.S_AREA_CODE, - S_END_LOC = wmsTask.S_END_LOC, - S_END_AREA = wmsTask.S_END_AREA, - S_EQ_NO = eqNo, - S_SCHEDULE_TYPE = "RB", - T_START_TIME = DateTime.Now, - }; - if (WCSHelper.CreateTask(twoWcsTask)) - { - // 鎺ラ┏浣嶅姞鍑哄簱閿�缁堢偣璐т綅鍔犲叆搴撻攣 - LocationHelper.LockLoc(twoWcsTask.S_START_LOC, 2); - LocationHelper.LockLoc(twoWcsTask.S_END_LOC, 1); - LogHelper.Info("鍫嗗灈鏈哄叆搴撲换鍔″凡涓嬪彂锛屼换鍔′俊鎭細" + JsonConvert.SerializeObject(twoWcsTask), "杈撻�绾�); + LogHelper.Info($"鍫嗗灈鏈哄叆搴撲换鍔$粓鐐癸細null", "杈撻�绾�); } } else { diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.HD/dispatch/ShopFloorControl.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.HD/dispatch/ShopFloorControl.cs index e40c2dc..e70bc81 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.HD/dispatch/ShopFloorControl.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.HD/dispatch/ShopFloorControl.cs @@ -92,6 +92,45 @@ } /// <summary> + /// WMS鐗╂祦璋冨害鐘舵�鍙嶉 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + public static bool wmsUpdateStatus(WMSStatusInfo model) + { + var msg = ""; + var result = false; + LogHelper.Info("WMS鐗╂祦璋冨害鐘舵�鍙嶉, 鍏ュ弬锛� + JsonConvert.SerializeObject(model), "杞﹂棿鎺у埗鍣�); + var request = JsonConvert.SerializeObject(model); + var response = apiHelper.Post(baseUrl + "/api/hecWms/logistics/wmsUpdateStatus", request); + msg = $"[杞﹂棿鎺у埗鍣�updateStatus] request={request} response={response}"; + Console.WriteLine(msg); + LogHelper.Info("WMS鐗╂祦璋冨害鐘舵�鍙嶉, 鍑哄弬锛� + JsonConvert.SerializeObject(response), "杞﹂棿鎺у埗鍣�); + if (response != null && response != "") + { + try + { + var dataResult = JsonConvert.DeserializeObject<ResponseData>(response); + if (dataResult.success) + { + result = dataResult.code.Equals("200"); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + } + else + { + msg = "[杞﹂棿鎺у埗鍣�updateStatus]WMS鐗╂祦璋冨害鐘舵�鍙嶉澶辫触"; + Console.WriteLine(msg); + } + LogHelper.Info(msg, "杞﹂棿鎺у埗鍣�); + return result; + } + + /// <summary> /// 鐗╂祦璋冨害鎺ュ彛 /// </summary> /// <param name="model"></param> @@ -327,6 +366,12 @@ public string reason { get; set; } // 澶辫触鍘熷洜 } + public class WMSStatusInfo + { + public string wmsId { get; set; } // wms浠诲姟ID + public string errMsg { get; set; } // 閿欒淇℃伅 + } + public class UnBindInfo { public string processTaskId { get; set; } // 宸ュ簭浠诲姟ID public string trayCode{ get; set; } // 鎵樼洏缂栫爜 diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.HD/wms/WMSHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.HD/wms/WMSHelper.cs index fa13ebf..cfbaf3f 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.HD/wms/WMSHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.HD/wms/WMSHelper.cs @@ -676,8 +676,9 @@ /// <param name="itemCode"></param> /// <param name="roadway">鎺ラ┏浣嶆墍鍦ㄥ贩閬�/param> /// <param name="row">鎺ラ┏浣嶆墍鍦ㄦ帓</param> + /// <param name="thresholdValue">搴撳闃堝�</param> /// <returns></returns> - public static Location GetEndLocation(string areaCode, string itemCode ,int roadway ,int row) + public static Location GetEndLocation(string areaCode, string itemCode ,int roadway ,int row ,int thresholdValue = 1) { Location loc = null; try @@ -718,7 +719,7 @@ .LeftJoin<WCSTask>((a,b) => a.S_CODE == b.S_OP_CODE) .LeftJoin<Location>((a, b ,c) => b.S_END_LOC == c.S_CODE) .Where((a, b, c) => b.S_END_AREA == storeAreaInfo.accessArea && c.N_ROADWAY == roadway && a.N_B_STATE < 2 && b.S_TYPE.Contains("鍏ュ簱")).Count(); - if (locList.Count - 2 > taskNum) + if (locList.Count - thresholdValue > taskNum) { // 銆�.2銆戞煡璇㈡繁搴�N_DEEP = 2 ,浣嶇疆 N_POS = 1 涓�鐗╂枡鐩稿悓 鐨勮揣浣� var sameItemLocList = db.Queryable<Location>() @@ -764,7 +765,7 @@ } } catch (Exception ex) { - LogHelper.Error("GetEndLocation:" + ex.Message, ex); + LogHelper.Info("鑾峰彇鍏ュ簱缁堢偣鎶ラ敊锛岄敊璇俊鎭�" + ex.Message,"WMS"); } return loc; } diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/api/ApiHelper.cs index 23136fe..ef363a5 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/api/ApiHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/api/ApiHelper.cs @@ -11,6 +11,7 @@ using System.Linq; using System.Threading; using static HH.WCS.Mobox3.SXJK.api.ApiModel; +using static HH.WCS.Mobox3.SXJK.api.MoboxController; using static HH.WCS.Mobox3.SXJK.api.OtherModel; using static HH.WCS.Mobox3.SXJK.api.WmsController; using static HH.WCS.Mobox3.SXJK.api.WmsController.PutawayOrderIn; @@ -563,6 +564,35 @@ } /// <summary> + /// 鍏ュ簱鍗曢噸缃�+ /// </summary> + /// <param name="model"></param> + /// <returns></returns> + public static SimpleResult inventoryReceiptReset(InventoryReceiptResetModel model) + { + SimpleResult simpleResult = new SimpleResult(); + var inStockList = WMSHelper.GetInStockList(model.asnNo); + if (inStockList != null) + { + var inStockListChildren = WMSHelper.getInstockListChild(model.asnNo); + if(inStockListChildren.Count > 0) + { + foreach (var child in inStockListChildren) + { + var locCntrRel = LocationHelper.GetLocCntrRelByCntr(child.S_TRACE_ID); + if (locCntrRel != null) + { + LocationHelper.UnBindingLoc(locCntrRel.S_LOC_CODE, new List<string>() { locCntrRel.S_CNTR_CODE }); + } + + ContainerHelper.deleteCntrItem(child.S_TRACE_ID); + } + } + } + return simpleResult; + } + + /// <summary> /// 鏇存柊鎶芥淇℃伅 /// </summary> /// <param name="model"></param> diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/api/MoboxController.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/api/MoboxController.cs index a89347e..1d88ff7 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/api/MoboxController.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/api/MoboxController.cs @@ -20,6 +20,24 @@ public class MoboxController : System.Web.Http.ApiController { /// <summary> + /// 鍏ュ簱鍗曢噸缃�+ /// </summary> + /// <returns></returns> + public SimpleResult inventoryReceiptReset(InventoryReceiptResetModel model) + { + LogHelper.Info("[鍏ュ簱鍗曢噸缃甝inventoryReceiptReset 鍏ュ弬锛� + JsonConvert.SerializeObject(model), "Mobox"); + SimpleResult simpleResult = new SimpleResult(); + ApiHelper.inventoryReceiptReset(model); + LogHelper.Info("[鍏ュ簱鍗曢噸缃甝inventoryReceiptReset 鍑哄弬锛� + JsonConvert.SerializeObject(simpleResult), "Mobox"); + return simpleResult; + } + + public class InventoryReceiptResetModel + { + public string asnNo { get; set; } // 鍏ュ簱鍗曞彿 + } + + /// <summary> /// 杩滅▼鍚姩杈撻�绾� /// </summary> /// <returns></returns> diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/api/WmsController.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/api/WmsController.cs index deb2e93..cd94f84 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/api/WmsController.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/api/WmsController.cs @@ -145,7 +145,7 @@ if (!result) { es_bc_info.TYPE = "E"; - es_bc_info.MSG = "绉诲簱鍗曞悓姝ラ敊璇�; + es_bc_info.MSG = "杞Щ鍗曞悓姝ラ敊璇�; } }); } @@ -184,7 +184,7 @@ try { - model.IT_DATA.ForEach(a => + model.IT_DATA.ForEach( a => { var result = ApiHelper.shiftingStockOrderSync(a); if (!result) { diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/core/WCSCore.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/core/WCSCore.cs index d1dad47..b8f72dd 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/core/WCSCore.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/core/WCSCore.cs @@ -225,13 +225,22 @@ var cntrItemRels = ContainerHelper.GetCntrItemRel(cntrCode); if (cntrItemRels != null && cntrItemRels.Count > 0) { - LogHelper.Info($"OperateGZTaskStatus: 2 ,cntrCode:{cntrCode},S_ASN_NO ={cntrItemRels[0].S_ASN_NO},", "WMS"); - var inStockListChilds = WMSHelper.getInstockListChild(cntrCode, cntrItemRels[0].S_ASN_NO); + var cntrItemRel = cntrItemRels[0]; + LogHelper.Info($"OperateGZTaskStatus: 2 ,cntrCode:{cntrCode},S_ASN_NO ={cntrItemRel.S_ASN_NO},", "WMS"); + var inStockListChilds = WMSHelper.getInstockListChild(cntrCode, cntrItemRel.S_ASN_NO); LogHelper.Info($"OperateGZTaskStatus: 2 ,inStockListChilds.count:{inStockListChilds.Count}", "WMS"); if (inStockListChilds != null && inStockListChilds.Count > 0) { LogHelper.Info("OperateGZTaskStatus: 3", "WMS"); - receiveGoodsFeedback(inStockListChilds, cntrItemRels[0].F_NET_WEIGHT.ToString(), cntrCode, TN_Task.S_END_LOC); + receiveGoodsFeedback(inStockListChilds, cntrItemRel.F_NET_WEIGHT.ToString(), cntrCode, TN_Task.S_END_LOC); + + // 鍏ュ簱瀹屾垚锛屽洖鎶MS鍚庯紝鏇存柊SPA鎵规鍙�+ var inStockListChildren = Monitor.getInStockTrayInfo(cntrCode); + if (inStockListChildren != null && inStockListChildren.Count > 0) + { + cntrItemRel.LOTATT04 = inStockListChildren[0].LOTATT04; + ContainerHelper.UpdateCntrItemRel(cntrItemRel); + } } } } diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.TSSG/core/Monitor.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.TSSG/core/Monitor.cs index e403702..f738cab 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.TSSG/core/Monitor.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.TSSG/core/Monitor.cs @@ -66,7 +66,7 @@ LogHelper.Info($"缂撳瓨淇″彿澶勭悊锛岀紦瀛業P锛歿item.Key}", "TSSG"); var instockInfo = item.Value; var end = WMSHelper.GetInstockEnd(instockInfo.item, instockInfo.endArea); - LogHelper.Info("(缂撳瓨淇″彿)缁堢偣璐т綅锛� + JsonConvert.SerializeObject(end), "TSSG"); + LogHelper.Info($"(缂撳瓨淇″彿锛岀洰鏍囧簱鍖猴細{instockInfo.endArea},鐗╂枡缂栫爜锛歿instockInfo.item})缁堢偣璐т綅锛� + JsonConvert.SerializeObject(end), "TSSG"); if (end != null) { ApiHelper.Instock(instockInfo); diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/HH.WCS.Mobox3.YNJT_BZP.csproj b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/HH.WCS.Mobox3.YNJT_BZP.csproj index f1bf06a..0e8f220 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/HH.WCS.Mobox3.YNJT_BZP.csproj +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/HH.WCS.Mobox3.YNJT_BZP.csproj @@ -257,6 +257,8 @@ <Compile Include="models\Area.cs" /> <Compile Include="models\EmptyTrayBuffer.cs" /> <Compile Include="models\ItemBarcodeInfo.cs" /> + <Compile Include="models\iWMS_semi_bld_BCsample.cs" /> + <Compile Include="models\iWMS_semi_bld_BCstatus.cs" /> <Compile Include="models\MatlInformation.cs" /> <Compile Include="models\OI_WMS_OP_DEF.cs" /> <Compile Include="models\OI_WMS_SCHEDULE_TYPE.cs" /> @@ -296,6 +298,7 @@ <Compile Include="models\TN_OOS_Order.cs" /> <Compile Include="models\TN_YiKuDetail.cs" /> <Compile Include="models\TN_YiKuOrder.cs" /> + <Compile Include="models\Trfloc.cs" /> <Compile Include="models\WHInventory.cs" /> <Compile Include="models\TN_WMS_Const.cs" /> <Compile Include="models\WorkOrder.cs" /> 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 7777326..4b65c2b 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 @@ -28,6 +28,7 @@ } + /// <summary> /// 1.鍒涘缓鍏ュ簱浠诲姟 /// </summary> @@ -44,39 +45,6 @@ result.ResultCode = 1; result.ResultMsg = "鐗╂枡淇℃伅涓嶈兘涓虹┖"; return result; - } - else - { - foreach (var item in itemInfos) - { - // 灏哅ES鐨勭墿鏂欑姸鎬佽浆鍖栨垚WMS鍙瘑鍒殑鐗╂枡鐘舵� - if (item.jdge == "" || item.jdge == null) - { - item.jdge = "OK"; - } - else if(item.jdge != "OK") - { - item.jdge = "HOLD"; - } - - // 璁$畻鐢熸晥鏃堕棿銆佸け鏁堟椂闂�- var overage = WMSHelper.getOverage(item.bc_entried); - LogHelper.Info($"璁$畻鐢熸晥鏃堕棿銆佸け鏁堟椂闂达紝杩斿洖鍊硷細{JsonConvert.SerializeObject(overage)}", "WMS"); - if (overage != null) - { - DateTime txndate = DateTime.Parse(item.txndate); - DateTime minTime = txndate.AddHours(overage.MINHOUR); - DateTime maxTime = txndate.AddDays(overage.OVERAGE); - item.effective_time = minTime.ToString("yyyy-MM-dd HH:mm:ss"); - item.expiration_time = maxTime.ToString("yyyy-MM-dd HH:mm:ss"); - } - else - { - result.ResultCode = 1; - result.ResultMsg = $"鏈煡璇㈠埌鐗╂枡瀛樻斁鏃堕棿閰嶇疆淇℃伅锛屾潯褰㈢爜锛歿item.bc_entried}"; - return result; - } - } } } @@ -267,6 +235,13 @@ if (endLoc != null) { + string taskType = "鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔�; + if (model.taskType == 2) + { + taskType = "鎶芥鍙枡鍑哄簱浠诲姟"; + } + + var wmsTask = new WMSTask() { S_CNTR_CODE = descCntrCode, @@ -275,9 +250,9 @@ S_START_AREA = startLoc.S_AREA_CODE, S_END_LOC = endLoc.S_CODE, S_END_AREA = endLoc.S_AREA_CODE, - S_TYPE = "鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔�, + S_TYPE = taskType, S_OP_DEF_CODE = model.taskNo, - S_OP_DEF_NAME = "鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔�, + S_OP_DEF_NAME = "鍙枡鍑哄簱浠诲姟", N_PRIORITY = model.priority, T_START_TIME = DateTime.Now, }; @@ -347,40 +322,8 @@ ReturnResult result = new ReturnResult(); try { - if(model.itemInfo != null && model.itemInfo.Count > 0) - { - foreach (var item in model.itemInfo) - { - // 灏哅ES鐨勭墿鏂欑姸鎬佽浆鍖栨垚WMS鍙瘑鍒殑鐗╂枡鐘舵� - if (item.jdge == "" || item.jdge == null) - { - item.jdge = "OK"; - } - else if (item.jdge != "OK") - { - item.jdge = "HOLD"; - } - - var overage = WMSHelper.getOverage(item.bc_entried); - if (overage != null && overage.OVERAGE != 0) - { - DateTime txndate = DateTime.Parse(item.txndate); - DateTime minTime = txndate.AddHours(overage.MINHOUR); - DateTime maxTime = txndate.AddDays(overage.OVERAGE); - item.effective_time = minTime.ToString("yyyy-MM-dd HH:mm:ss"); - item.expiration_time = maxTime.ToString("yyyy-MM-dd HH:mm:ss"); - } - else - { - result.ResultCode = 1; - result.ResultMsg = $"鏈煡璇㈠埌鐗╂枡瀛樻斁鏃堕棿閰嶇疆淇℃伅锛屾潯褰㈢爜锛歿item.bc_entried}"; - return result; - } - } - } - var container = ContainerHelper.GetCntr(model.trayCode); - if (container != null) + if (container != null) { Location startLoc = LocationHelper.GetLoc(model.startLoc); Location endLoc = WMSHelper.GetInstockEndLoc(container.N_TYPE, model.startLoc, 2); @@ -446,8 +389,13 @@ else { result.ResultCode = 1; - result.ResultMsg = "娌℃湁绌轰綑鐨勮揣浣�; + result.ResultMsg = "绔嬪簱娌℃湁绌轰綑鐨勮揣浣�; } + } + else + { + result.ResultCode = 1; + result.ResultMsg = "WMS绯荤粺涓病鏈夎瀹瑰櫒"; } } catch (Exception ex) @@ -1090,19 +1038,15 @@ { S_ITEM = matl.item, S_BC_ENTRIED = matl.bc_entried, + S_TOOLING_CODE = matl.toolineCode, S_MCN = matl.mcn, - S_OPR = matl.opr, TXNDATE = DateTime.Parse(matl.txndate, enGB) , S_SHIFT = matl.shift, N_QTY = matl.qty, - N_STOCK = matl.stock, - S_LOKASI = matl.lokasi, - S_SARANA = matl.sarana, - BOM1 = matl.bom1, - BOM2 = matl.bom2, - BOM3 = matl.bom3, - S_FOVRAGE = matl.fovrage, S_JDGE = matl.jdge, + N_OVERAGE = matl.overagv, + N_MINHOUR = matl.minhour, + N_PRODUCT_TYPE_CODE = matl.productTypeCode, LAST_MODIFY_TIME = matl.last_modify_time }; itemBarcodeInfos.Add(itemBarcodeInfo); @@ -1112,102 +1056,87 @@ if (!bo) { responseResult.ResultCode = 1; - responseResult.ResultMsg = "鍚屾鐗╂枡鏉$爜淇℃伅澶辫触"; + responseResult.ResultMsg = "鍚屾GT鏉$爜鐗╂枡淇℃伅澶辫触"; } return responseResult; } /// <summary> - /// 鍚屾鐗╂枡鐘舵�淇℃伅 + /// 鍚屾鏉$爜鐘舵�淇℃伅 /// </summary> /// <param name="updateMatlStatuses"></param> /// <returns></returns> - public static ReturnResult synUpdateMatlStatus(List<UpdateMatlStatus> updateMatlStatuses) + public static ReturnResult synBarcodeStatus(List<UpdateMatlStatus> updateMatlStatuses) { ReturnResult responseResult = new ReturnResult(); - var bo = WMSHelper.batchUpdateItemStatus(updateMatlStatuses); - if (!bo) + List<iWMS_semi_bld_BCstatus> list = new List<iWMS_semi_bld_BCstatus> (); + if (updateMatlStatuses.Count > 0) { - responseResult.ResultCode = 1; - responseResult.ResultMsg = "鍚屾鐗╂枡鐘舵�淇℃伅澶辫触"; - } - return responseResult; - } - - /// <summary> - /// 鍚屾鏇存柊鐗╂枡瀛樻斁鏃堕棿閰嶇疆淇℃伅 - /// </summary> - /// <param name="overages"></param> - /// <returns></returns> - public static ReturnResult synUpdateMatlTimeConfig(List<MatlOverage> overages) - { - ReturnResult responseResult = new ReturnResult(); - if (overages != null && overages.Count > 0) - { - List<Overage> overageList = new List<Overage>(); - foreach (var item in overages) + foreach (var item in updateMatlStatuses) { - Overage overage = new Overage + iWMS_semi_bld_BCstatus bCstatus = new iWMS_semi_bld_BCstatus() { - MCNGRP = item.mcngrp, - ITEMPATT = item.itempatt, - OVERAGE = item.overage, - MINHOUR = float.Parse(item.minhour.ToString()), - FLAG_STS = item.flag_sts, - RECID = item.recid, + S_BC_ENTRIED = item.bc_entried, + S_MCNGRP = item.mcngrp, + S_JDGE = item.jdge, + LAST_MODIFY_TIME = item.last_modify_time }; - overageList.Add(overage); + list.Add(bCstatus); } - var bo = WMSHelper.batchUpdateMatlTimeConfig(overageList); + + var bo = WMSHelper.synBarcodeStatus(list); if (!bo) { responseResult.ResultCode = 1; - responseResult.ResultMsg = "鍚屾鐗╂枡鐘舵�淇℃伅澶辫触"; + responseResult.ResultMsg = "鍚屾鏉$爜鐘舵�淇℃伅澶辫触"; } } return responseResult; } /// <summary> - /// 璁板綍鏁版嵁鍚屾鏃堕棿 + /// 鍚屾鏉$爜鐘舵�淇℃伅 /// </summary> - /// <param name="model"></param> + /// <param name="updateMatlStatuses"></param> /// <returns></returns> - public static ReturnResult recordDataSynTime(RecordDataSynTimeModel model) + public static ReturnResult synSamplingStatus(List<UpdateMatlStatus> updateMatlStatuses) { ReturnResult responseResult = new ReturnResult(); - SynDataTimeRecord record = new SynDataTimeRecord() + List<iWMS_semi_bld_BCsample> list = new List<iWMS_semi_bld_BCsample>(); + if (updateMatlStatuses.Count > 0) { - S_SYN_TIME = model.sysTime, - N_SYN_NUM = model.synNum, - RECORD_TABLE = model.recordTable - }; - var bo = WMSHelper.addSynDataTimeReord(record); - if (!bo) - { - responseResult.ResultCode = 1; - responseResult.ResultMsg = "璁板綍鏁版嵁鍚屾鏃堕棿澶辫触"; + foreach (var item in updateMatlStatuses) + { + iWMS_semi_bld_BCsample bCstatus = new iWMS_semi_bld_BCsample() + { + S_BC_ENTRIED = item.bc_entried, + S_MCNGRP = item.mcngrp, + S_JDGE = item.jdge, + LAST_MODIFY_TIME = item.last_modify_time + }; + list.Add(bCstatus); + } + + var bo = WMSHelper.synSamplingStatus(list); + if (!bo) + { + responseResult.ResultCode = 1; + responseResult.ResultMsg = "鍚屾鏉$爜鐘舵�淇℃伅澶辫触"; + } } return responseResult; } - /// <summary> /// 鏌ヨ涓婁竴娆$殑鏁版嵁鍚屾鏃堕棿 /// </summary> - /// <param name="recordTable"></param> + /// <param name="tableType"></param> /// <returns></returns> - public static ReturnResult findLastDataSynTime(string recordTable) + public static ReturnResult findDataLastSynTime(int tableType) { ReturnResult responseResult = new ReturnResult(); - var synDataTime = WMSHelper.getLastDataSynTime(recordTable); - if (synDataTime != null) - { - Dictionary<string, string> map = new Dictionary<string, string>(); - map.Add("S_SYN_TIME", synDataTime.S_SYN_TIME); - map.Add("RECORD_TABLE", synDataTime.RECORD_TABLE); - responseResult.data = map; - } + var synDataTime = WMSHelper.getDataLastSynTime(tableType); + responseResult.data = synDataTime; return responseResult; } @@ -1272,10 +1201,11 @@ public class CreateOutOrderModel { public string taskNo { get; set; } // 浠诲姟鍙�- public string trayCode { get; set; } // 浠诲姟鍙�+ public string trayCode { get; set; } // 鎵樼洏鍙� public string itemCode { get; set; } // 鐗╂枡缂栫爜 public string endLoc { get; set; } // 缁堢偣璐т綅 public int priority { get; set; } = 0; // 浼樺厛绾�榛樿0 + public int taskType { get; set; } = 1; // 1.鎴愬瀷鏈哄彨鏂欎换鍔�2.鎶芥鍑哄簱浠诲姟 } public class EmptyTrayOutOrderModel @@ -1300,16 +1230,15 @@ { public string item { get; set; } // 鐗╁搧浠g爜 public string bc_entried { get; set; } // 鏉″舰鐮佺紪鍙�+ public string toolineCode { get; set; } // 宸ヨ鏉$爜 public string mcn { get; set; } // 鏈哄櫒浠g爜缂栧彿 - public string opr { get; set; } // 鎿嶄綔鍛� public string txndate { get; set; } // 鐢熶骇鏃堕棿 public string shift { get; set; } // 宸ヤ綔鐝 public int qty { get; set; } // 浜у搧鏁伴噺 - public string sarana { get; set; } // 浜у搧鏉愭枡鐨勬墭鐩�鐩�鎺ㄨ溅/璐ц溅ID - public string fovrage { get; set; } // 鏄惁杩囨湡鐨勭姸鎬�Y=杩囨湡锛孨=鏈繃鏈�- public string jdge { get; set; } // 璐ㄩ噺鐘舵� OK=浜у搧鍚堟牸锛孨G=浜у搧涓嶅悎鏍硷紝HLM=浜у搧寰呭畾 - public string effective_time { get; set; } // 鐢熸晥鏃堕棿 (yyyy-MM-dd HH:mm:ss) - public string expiration_time { get; set; } // 澶辨晥鏃堕棿 (yyyy-MM-dd HH:mm:ss) + public string jdge { get; set; } // 璐ㄩ噺鐘舵� OK=浜у搧鍚堟牸锛孒OLD = 浜у搧寰呭畾 + public int overage { get; set; } // 鐢熸晥鏃堕棿 (yyyy-MM-dd HH:mm:ss) + public int minhour { get; set; } // 澶辨晥鏃堕棿 (yyyy-MM-dd HH:mm:ss) + public int productTypeCode { get; set; } // 澶辨晥鏃堕棿 (yyyy-MM-dd HH:mm:ss) } diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/WmsController.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/WmsController.cs index 1d874e5..d2a4ece 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/WmsController.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/WmsController.cs @@ -55,18 +55,19 @@ } /// <summary> - /// 3.鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔�+ /// 3.鍙枡鍑哄簱浠诲姟 /// 涓氬姟鍦烘櫙锛� /// 1.鎴愬瀷鏈哄懠鍙祦绋嬶紙甯︽潫/闆跺害 銆佽儙渚�銆丅EC銆佸唴琛�甯樺竷銆佽儙鍦�涓夎鑳讹級 + /// 2.鎶芥鍑哄簱 /// </summary> /// <param name="model"></param> /// <returns></returns> [HttpPost] public ReturnResult createOutOrder(CreateOutOrderModel model) { - LogHelper.Info("銆�.鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔°�request锛� + JsonConvert.SerializeObject(model), "WMS"); + LogHelper.Info("銆�.鍙枡鍑哄簱浠诲姟銆憆equest锛� + JsonConvert.SerializeObject(model), "WMS"); var result = ApiHelper.createOutOrder(model); - LogHelper.Info("銆�.鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔°�response锛� + JsonConvert.SerializeObject(result), "WMS"); + LogHelper.Info("銆�.鍙枡鍑哄簱浠诲姟銆憆esponse锛� + JsonConvert.SerializeObject(result), "WMS"); return result; } @@ -126,7 +127,7 @@ LogHelper.Info("銆�.涓嬪彂姣嶆嫋鍑哄叆搴撲换鍔°�response锛� + JsonConvert.SerializeObject(result), "WMS"); return result; } - + // ------------------- WCS ---------------- /// <summary> @@ -144,22 +145,6 @@ LogHelper.Info("銆�.WCS浠诲姟鐘舵�鍙嶉銆憆esponse锛� + JsonConvert.SerializeObject(result), "WMS"); return result; } - - /*/// <summary> - /// 8.WCS鍏ュ簱璇荤爜鍙嶉 - /// 涓氬姟鍦烘櫙锛歐CS鍦ㄦ墽琛屼换鍔℃椂锛屽洖鎶ヤ换鍔$姸鎬�- /// </summary> - /// <param name="model"></param> - /// <returns></returns> - [HttpPost] - *//*[Route("notifyTaskStatus")]*//* - public ReturnResult readCodeFeedback(ReadCodeFeedbackModel model) - { - LogHelper.Info("銆�.WCS鍏ュ簱璇荤爜鍙嶉銆慠equest锛� + JsonConvert.SerializeObject(model), "WMS"); - var result = ApiHelper.readCodeFeedback(model); - LogHelper.Info("銆�.WCS鍏ュ簱璇荤爜鍙嶉銆憆esponse锛� + JsonConvert.SerializeObject(result), "WMS"); - return result; - }*/ /// <summary> /// 8.WCS鍙嶉璐т綅鐘舵� @@ -181,14 +166,6 @@ return result; } - public class LocStateFeedBackModel - { - public string reqId { get; set; } - public string reqTime { get; set; } - public string loc_code { get; set; } // 绔欏彴缂栫爜 - public string type { get; set; } // 璇锋眰绫诲瀷 1 鍏佽鍙栬揣 2 鍏佽鏀捐揣 - public string req_no { get; set; } // 浠诲姟鍙�- } // ----------------------------------- GT -------------------------------------------------------------- @@ -209,65 +186,48 @@ } /// <summary> - /// 10.鍚屾鏇存柊鐗╂枡鐘舵� - /// 涓氬姟鍦烘櫙锛欸T鐨勭姸鎬佽繘琛屾洿鏂帮紝wms涔熼渶瑕佸悓姝ユ洿鏂�+ /// 10.鍚屾鏉$爜鐘舵�淇℃伅 /// </summary> /// <param name="model"></param> /// <returns></returns> [HttpPost] /*[Route("notifyTaskStatus")]*/ - public ReturnResult synUpdateMatlStatus(SynUpdateMatlStatusModel model) + public ReturnResult synBarcodeStatus(SynUpdateMatlStatusModel model) { - LogHelper.Info("銆�0.鍚屾鏇存柊鐗╂枡鐘舵�銆慠equest锛� + JsonConvert.SerializeObject(model), "GT"); - var result = ApiHelper.synUpdateMatlStatus(model.updateMatlStatuses); - LogHelper.Info("銆�0.鍚屾鏇存柊鐗╂枡鐘舵�銆憆esponse锛� + JsonConvert.SerializeObject(result), "GT"); + LogHelper.Info("銆�0.鍚屾鏉$爜鐘舵�琛ㄤ俊鎭�Request锛� + JsonConvert.SerializeObject(model), "GT"); + var result = ApiHelper.synBarcodeStatus(model.updateMatlStatuses); + LogHelper.Info("銆�0.鍚屾鏉$爜鐘舵�琛ㄤ俊鎭�response锛� + JsonConvert.SerializeObject(result), "GT"); return result; } /// <summary> - /// 11.璁板綍鏁版嵁鍚屾鏃堕棿 + /// 11.鍚屾鎶芥鐘舵�琛ㄤ俊鎭�+ /// </summary> + /// <param name="model"></param> + /// <returns></returns> + [HttpPost] + /*[Route("notifyTaskStatus")]*/ + public ReturnResult synSamplingStatus(SynUpdateMatlStatusModel model) + { + LogHelper.Info("銆�1.鍚屾鎶芥鐘舵�琛ㄤ俊鎭�Request锛� + JsonConvert.SerializeObject(model), "GT"); + var result = ApiHelper.synSamplingStatus(model.updateMatlStatuses); + LogHelper.Info("銆�1.鍚屾鎶芥鐘舵�琛ㄤ俊鎭�response锛� + JsonConvert.SerializeObject(result), "GT"); + return result; + } + + /// <summary> + /// 11.鏌ヨ涓棿琛ㄦ渶鍚庣殑鍚屾鏃堕棿 /// 涓氬姟鍦烘櫙锛氳褰曠墿鏂欐潯鐮佷俊鎭悓姝ャ�鐗╂枡鐘舵�淇℃伅鍚屾鏃堕棿 /// </summary> /// <param name="model"></param> /// <returns></returns> [HttpPost] /*[Route("notifyTaskStatus")]*/ - public ReturnResult recordDataSynTime(RecordDataSynTimeModel model) + public ReturnResult findDataLastSynTime(SynTableModel model) { - LogHelper.Info("銆�1.璁板綍鏁版嵁鍚屾鏃堕棿銆慠equest锛� + JsonConvert.SerializeObject(model), "GT"); - var result = ApiHelper.recordDataSynTime(model); - LogHelper.Info("銆�1.璁板綍鏁版嵁鍚屾鏃堕棿銆憆esponse锛� + JsonConvert.SerializeObject(result), "GT"); - return result; - } - - /// <summary> - /// 12.鏌ヨ涓婁竴娆$殑鏁版嵁鍚屾鏃堕棿 - /// 涓氬姟鍦烘櫙锛氳褰曠墿鏂欐潯鐮佷俊鎭悓姝ャ�鐗╂枡鐘舵�淇℃伅鍚屾鏃堕棿 - /// </summary> - /// <param name="model"></param> - /// <returns></returns> - [HttpPost] - /*[Route("notifyTaskStatus")]*/ - public ReturnResult findLastDataSynTime(RecordDataSynTimeModel model) - { - LogHelper.Info("銆�2.鏌ヨ涓婁竴娆$殑鏁版嵁鍚屾鏃堕棿銆慠equest锛� + JsonConvert.SerializeObject(model), "GT"); - var result = ApiHelper.findLastDataSynTime(model.recordTable); - LogHelper.Info("銆�2.鏌ヨ涓婁竴娆$殑鏁版嵁鍚屾鏃堕棿銆憆esponse锛� + JsonConvert.SerializeObject(result), "GT"); - return result; - } - - /// <summary> - /// 13.鍚屾鏇存柊鐗╂枡瀛樻斁鏃堕棿閰嶇疆琛�- /// </summary> - /// <param name="model"></param> - /// <returns></returns> - [HttpPost] - /*[Route("notifyTaskStatus")]*/ - public ReturnResult synUpdateMatlTimeConfig(MatlTimeConfigModel model) - { - LogHelper.Info("銆�3.鍚屾鏇存柊鐗╂枡瀛樻斁鏃堕棿閰嶇疆琛ㄣ�Request锛� + JsonConvert.SerializeObject(model), "GT"); - var result = ApiHelper.synUpdateMatlTimeConfig(model.overages); - LogHelper.Info("銆�3.鍚屾鏇存柊鐗╂枡瀛樻斁鏃堕棿閰嶇疆琛ㄣ�response锛� + JsonConvert.SerializeObject(result), "GT"); + LogHelper.Info("銆�1.鏌ヨ涓婁竴娆$殑鏁版嵁鍚屾鏃堕棿銆慠equest锛� + JsonConvert.SerializeObject(model), "GT"); + var result = ApiHelper.findDataLastSynTime(model.tableType); + LogHelper.Info("銆�1.鏌ヨ涓婁竴娆$殑鏁版嵁鍚屾鏃堕棿銆憆esponse锛� + JsonConvert.SerializeObject(result), "GT"); return result; } @@ -287,12 +247,18 @@ public string last_modify_time { get; set; } } - public class RecordDataSynTimeModel + public class LocStateFeedBackModel { - public string sysTime { get; set; } // 鍚屾鏃堕棿 - public int synNum { get; set; } // 鍚屾鏁伴噺 - public string recordTable { get; set; } // 1.鐗╂枡鏉$爜璁板綍琛�2.鑳氳儙鏉$爜鐘舵�琛�3.鐗╂枡瀛樻斁鏃堕棿閰嶇疆琛�+ public string reqId { get; set; } + public string reqTime { get; set; } + public string loc_code { get; set; } // 绔欏彴缂栫爜 + public string type { get; set; } // 璇锋眰绫诲瀷 1 鍏佽鍙栬揣 2 鍏佽鏀捐揣 + public string req_no { get; set; } // 浠诲姟鍙�+ } + public class SynTableModel + { + public int tableType { get; set; } // 1.鍗婂埗鍝佹潯鐮佷俊鎭〃 2.鏉$爜鐘舵�琛�3.鎶芥鐘舵�琛� } public class SynUpdateMatlStatusModel @@ -303,7 +269,9 @@ public class UpdateMatlStatus { public string bc_entried { get; set; } + public string mcngrp { get; set; } public string jdge { get; set; } + public string last_modify_time { get; set; } } public class SynMatlInformationModel diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/core/Monitor.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/core/Monitor.cs index 27a5a5f..a0ea283 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/core/Monitor.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/core/Monitor.cs @@ -138,5 +138,16 @@ } } } + + + + /// <summary> + /// 鏉$爜鐘舵�鏇存柊 + /// </summary> + public static void BarcodeStatusUpdate() + { + + } + } } diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/core/WCSCore.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/core/WCSCore.cs index 1758ea2..5fac5a1 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/core/WCSCore.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/core/WCSCore.cs @@ -81,27 +81,30 @@ { LogHelper.Info($"浠诲姟鍙凤細{TN_Task.S_CODE}锛孉GV浠诲姟瀹屾垚锛屼换鍔′俊鎭洖鎶T", "AGV"); string shift = ApiHelper.getShift(DateTime.Now.TimeOfDay); - string ydate_shiftName = ""; + string ydate= ""; if (shift == "III") { - ydate_shiftName = DateTime.Now.AddDays(-1).ToString("yy/MM/dd") + "-" + shift; + ydate = DateTime.Now.AddDays(-1).ToString("dd/MM/yy"); } else { - ydate_shiftName = DateTime.Now.ToString("yy/MM/dd") + "-" + shift; + ydate = DateTime.Now.ToString("dd/MM/yy"); } - WmsToGtLokasiModel wmsToGtLokasiModel = new WmsToGtLokasiModel() + Trfloc trfloc = new Trfloc() { - ydate_shiftName = ydate_shiftName, + recid = 1, + ydate = ydate, + shift = shift, bc_entried = cntrItemRels[0].S_CG_ID, loc_from = TN_Task.S_START_LOC, loc_to = TN_Task.S_END_LOC, - qty = 1, + qty = cntrItemRels[0].F_QTY, lot = 1, scantime = TN_Task.T_CREATE.ToString("yyyy-MM-dd HH:mm:ss"), - pic = model.ForkliftNo + pic = model.ForkliftNo, + last_modify_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") }; - GtDispatch.agvTaskFeedback(wmsToGtLokasiModel); + } break; case 7: @@ -347,6 +350,7 @@ { // 婊℃枡鎵樼洏鍏ュ簱 itemCode = cntrItemRels[0].S_ITEM_CODE; + int itemType = cntrItemRels[0].N_PRODUCT_TYPE_CODE; var endLoc = WMSHelper.GetInstockEndLoc(container.N_TYPE, null, 1, itemCode); if (endLoc != null) { diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/dispatch/GtDispatch.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/dispatch/GtDispatch.cs index 2c59433..ae3dada 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/dispatch/GtDispatch.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/dispatch/GtDispatch.cs @@ -59,14 +59,17 @@ public class WmsToGtLokasiModel { - public string ydate_shiftName { get; set; } // 鏃堕棿_鐝 + public int recid { get; set; } + public string ydate { get; set; } // 鐝鏃ユ湡 + public string shift { get; set; } // 鐝 public string bc_entried { get; set; } // 鏉$爜 public string loc_from { get; set; } // 璧风偣璐т綅 public string loc_to { get; set; } // 缁堢偣璐т綅 - public int qty { get; set; } // 鏁伴噺 - public int lot { get; set; } // 鎵樻暟 + public float qty { get; set; } // 鏁伴噺 + public int lot { get; set; } = 1; // 鎵樻暟 public string scantime { get; set; } // 鎵爜鍒涘缓浠诲姟鏃堕棿 public string pic { get; set; } // 灏忚溅鍙�+ public string last_modify_time { get; set; } // 鎵爜鍒涘缓浠诲姟鏃堕棿 } } } diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/models/CntrItemRel.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/models/CntrItemRel.cs index 6e004f4..241fa0d 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/models/CntrItemRel.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/models/CntrItemRel.cs @@ -9,31 +9,19 @@ [SugarTable("TN_CG_Detail")] public class CntrItemRel : BaseModel { - public string S_CG_ID { get; set; } // 条形码编码 - public string S_SERIAL_NO { get; set; } - public string S_ITEM_CODE { get; set; } // 物品代码 - public string S_ITEM_NAME { get; set; } = ""; - public string S_ITEM_SPEC { get; set; } - public string S_ITEM_STATE { get; set; } = "OK"; // OK=产品合格,NG=产品不合格,HLM=产品待定 - /// <summary> - /// 1:合格 2:不合格 - /// </summary> - public int N_ITEM_STATE { get; set; } - public string S_BATCH_NO { get; set; } = ""; - - public float F_QTY { get; set; } // 产品数量 - [SugarColumn(IsPrimaryKey = true)] - public string S_CNTR_CODE { get; set; } + public string S_CNTR_CODE { get; set; } // 容器编码 + public string S_CG_ID { get; set; } // 条形码编码 + public string S_ITEM_CODE { get; set; } // 物品代码 + public string S_ITEM_STATE { get; set; } = "OK"; // OK=产品合格,HODE=产品待定 + public float F_QTY { get; set; } // 产品数量 // ------------------ 印尼半制品 ------------------- public string S_MCN { get; set; } // 机器代码编号 - public string S_OPR { get; set; } // 操作员 public string S_TXNDATE { get; set; } // 生产时间 public string S_SHIFT { get; set; } // 工作班次 - public string S_FOVRAGE { get; set; } = "N"; // 是否过期的状态 Y=过期,N=未过期 public string S_EFFECTIVE_TIME { get; set; } // 生效时间 public string S_EXPIRATION_TIME { get; set; } // 失效时间 - public string S_SARANA { get; set; } // 托盘ID + public int N_PRODUCT_TYPE_CODE { get; set; } // 物料类别编码 } } diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/models/ItemBarcodeInfo.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/models/ItemBarcodeInfo.cs index d864157..6d73c61 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/models/ItemBarcodeInfo.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/models/ItemBarcodeInfo.cs @@ -7,24 +7,23 @@ namespace HH.WCS.Mobox3.YNJT_BZP.models { - [SugarTable("TN_Item_Barcode_H")] + /// <summary> + /// 鍗婂埗鍝佹潯鐮佷俊鎭〃 + /// </summary> + [SugarTable("TN_iWMS_semi_BCScan")] internal class ItemBarcodeInfo : BaseModel { public string S_ITEM { get; set; } // 浜у搧鏉愭枡鐨勭墿鍝佷唬鐮侊紙浠庢潯褰㈢爜鏁板瓧宸︿晶璧锋埅鍙栧墠10浣嶏級 public string S_BC_ENTRIED { get; set; } // 浜у搧鏉愭枡鐨勬潯褰㈢爜缂栧彿 + public string S_TOOLING_CODE { get; set; } // 宸ヨ鏉$爜 public string S_MCN { get; set; } // 鏈哄櫒浠g爜缂栧彿 - public string S_OPR { get; set; } // 鎿嶄綔鍛業D public DateTime TXNDATE { get; set; } // 浜у搧鏉愭枡鐨勭敓浜ф椂闂� public string S_SHIFT { get; set; } // 宸ヤ綔鐝浠g爜锛堢彮娆�I (07:00~14:59) - 鐝 II (15:00~22:59) - 鐝 III (23:00~06:59)锛� public int N_QTY { get; set; } // 棣栨鎵弿鐨勬潯鐮佺殑浜у搧鏁伴噺 - public int N_STOCK { get; set; } // 鍦ㄥ姞宸ヨ繃绋嬩腑鐨勫疄鏃跺簱瀛樻暟閲�- public string S_LOKASI { get; set; } // 浜у搧鏉愭枡鐨勪綅缃�浣嶇疆ID - public string S_SARANA { get; set; } // 浜у搧鏉愭枡鐨勬墭鐩�鐩�鎺ㄨ溅/璐ц溅ID - public string BOM1 { get; set; } - public string BOM2 { get; set; } - public string BOM3 { get; set; } - public string S_FOVRAGE { get; set; } // 鏄惁杩囨湡 鏄惁杩囨湡锛坣ull 鎴�绌�榛樿 鍚︼級 Y/N public string S_JDGE { get; set; } // 璐ㄦ鐘舵� + public int N_OVERAGE { get; set; } // 鏈夋晥鏈�+ public int N_MINHOUR { get; set; } // 鏈�綆鏀剧疆鏈�+ public int N_PRODUCT_TYPE_CODE { get; set; } // 鐗╂枡绫诲埆缂栫爜 public string LAST_MODIFY_TIME { get; set; } // 鏈�悗淇敼鏃堕棿 } } diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/models/MatlInformation.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/models/MatlInformation.cs index 3354fa2..b7c5fa8 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/models/MatlInformation.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/models/MatlInformation.cs @@ -14,19 +14,15 @@ { public string item { get; set; } // 浜у搧鏉愭枡鐨勭墿鍝佷唬鐮侊紙浠庢潯褰㈢爜鏁板瓧宸︿晶璧锋埅鍙栧墠10浣嶏級 public string bc_entried { get; set; } // 浜у搧鏉愭枡鐨勬潯褰㈢爜缂栧彿 + public string toolineCode { get; set; } // 宸ヨ鏉$爜 public string mcn { get; set; } // 鏈哄櫒浠g爜缂栧彿 - public string opr { get; set; } // 鎿嶄綔鍛業D public string txndate { get; set; } // 浜у搧鏉愭枡鐨勭敓浜ф椂闂� public string shift { get; set; } // 宸ヤ綔鐝浠g爜锛堢彮娆�I (07:00~14:59) - 鐝 II (15:00~22:59) - 鐝 III (23:00~06:59)锛� public int qty { get; set; } // 棣栨鎵弿鐨勬潯鐮佺殑浜у搧鏁伴噺 - public int stock { get; set; } // 鍦ㄥ姞宸ヨ繃绋嬩腑鐨勫疄鏃跺簱瀛樻暟閲�- public string lokasi { get; set; } // 浜у搧鏉愭枡鐨勪綅缃�浣嶇疆ID - public string sarana { get; set; } // 浜у搧鏉愭枡鐨勬墭鐩�鐩�鎺ㄨ溅/璐ц溅ID - public string bom1 { get; set; } - public string bom2 { get; set; } - public string bom3 { get; set; } - public string fovrage { get; set; } // 鏄惁杩囨湡 鏄惁杩囨湡锛坣ull 鎴�绌�榛樿 鍚︼級 Y/N - public string jdge { get; set; } // 璐ㄦ鐘舵� + public string jdge { get; set; } // 璐ㄦ鐘舵� OK / HOLD + public int overagv { get; set; } // 鏈夋晥鏈�+ public int minhour { get; set; } // 鏈�綆鏀剧疆鏃堕棿锛坔锛�+ public int productTypeCode { get; set; } // 鐗╂枡绫诲埆缂栫爜 public string last_modify_time { get; set; } // 鏈�悗淇敼鏃堕棿 } } diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/ContainerHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/ContainerHelper.cs index 8c7e7cf..0a6c74f 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/ContainerHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/ContainerHelper.cs @@ -68,30 +68,6 @@ var list = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == cntr).ToList(); return list; } - internal static bool BindNewCntrItem(string loc,string cntrCode, string itemCode) { - var res = false; - var itemName = ItemHelper.GetItemInfo(itemCode).S_ITEM_NAME; - var db = new SqlHelper<object>().GetInstance(); - try { - db.BeginTran(); - var cntr = new Container { S_CODE = cntrCode, N_DETAIL_COUNT = 1 }; - db.Insertable(cntr).ExecuteCommand(); - //鑾峰彇鐗╂枡淇℃伅锛屽~鍏呭埌瀹瑰櫒璐у搧鏄庣粏锛屾柟渚夸汉宸ユ煡鐪�- var cir = new CntrItemRel { S_CNTR_CODE = cntr.S_CODE.Trim(), F_QTY = 1, S_ITEM_CODE = itemCode, S_ITEM_NAME = itemName }; - db.Insertable<CntrItemRel>(cir).ExecuteCommand(); - var lcr = new LocCntrRel { S_CNTR_CODE = cntrCode, S_LOC_CODE = loc }; - db.Insertable<LocCntrRel>(lcr).ExecuteCommand(); - db.CommitTran(); - res = true; - } - catch (Exception ex) { - db.RollbackTran(); - Console.WriteLine(ex.Message); - } - - return res; - } - internal static bool addCntrItem(string cntrCode, CntrItemRel cntrItemRel) { diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/ItemHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/ItemHelper.cs index d33696c..327b8b4 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/ItemHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/ItemHelper.cs @@ -59,6 +59,12 @@ { foreach (var itemInfo in itemInfos) { + DateTime txndate = DateTime.Parse(itemInfo.txndate); + DateTime minTime = txndate.AddHours(itemInfo.minhour); + DateTime maxTime = txndate.AddDays(itemInfo.overage); + var effective_time = minTime.ToString("yyyy-MM-dd HH:mm:ss"); + var expiration_time = maxTime.ToString("yyyy-MM-dd HH:mm:ss"); + CntrItemRel cntrItemRel = new CntrItemRel() { S_CNTR_CODE = cntrCode, @@ -67,13 +73,11 @@ S_MCN = itemInfo.mcn, S_ITEM_STATE = itemInfo.jdge, F_QTY = itemInfo.qty, - S_OPR = itemInfo.opr, S_TXNDATE = itemInfo.txndate, S_SHIFT = itemInfo.shift, - S_FOVRAGE = itemInfo.fovrage, - S_EFFECTIVE_TIME = itemInfo.effective_time, - S_EXPIRATION_TIME = itemInfo.expiration_time, - S_SARANA = itemInfo.sarana, + S_EFFECTIVE_TIME = effective_time, + S_EXPIRATION_TIME = expiration_time, + N_PRODUCT_TYPE_CODE = itemInfo.productTypeCode }; ContainerHelper.addCntrItem(cntrCode, cntrItemRel); } 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 b6d7694..d720822 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 @@ -561,6 +561,7 @@ /// <param name="locCode"></param> /// <param name="trayType"></param> /// <param name="inWay">鍏ュ簱鏂瑰紡 1.鑷姩鍏ュ簱 2.浜哄伐鍏ュ簱</param> + /// <param name="itemCode">鐗╂枡缂栫爜</param> /// <returns></returns> public static Location GetInstockEndLoc(int trayType , string locCode = null , int inWay = 1 ,string itemCode = null) { @@ -817,26 +818,22 @@ try { db.BeginTran(); - itemBarcodeInfos.ForEach(item => { - var itemBarcodeInfo = db.Queryable<ItemBarcodeInfo>().Where(a => a.S_BC_ENTRIED == item.S_BC_ENTRIED).First(); - if (itemBarcodeInfo == null) - { - var bo = db.Insertable<ItemBarcodeInfo>(item).ExecuteCommand() > 0; - if (!bo) + if (itemBarcodeInfos.Count > 0) + { + itemBarcodeInfos.ForEach(item => { + var itemBarcodeInfo = db.Queryable<ItemBarcodeInfo>().Where(a => a.S_BC_ENTRIED == item.S_BC_ENTRIED).First(); + if (itemBarcodeInfo == null) { - result = false; - LogHelper.Info($"娣诲姞鐗╂枡鏉$爜淇℃伅澶辫触锛岀墿鏂欐潯鐮佷俊鎭細{JsonConvert.SerializeObject(item)}", "GT"); + var bo = db.Insertable<ItemBarcodeInfo>(item).ExecuteCommand() == 0; + if (bo) + { + result = false; + LogHelper.Info($"娣诲姞鐗╂枡鏉$爜淇℃伅澶辫触锛岀墿鏂欐潯鐮佷俊鎭細{JsonConvert.SerializeObject(item)}", "GT"); + } } - } - }); - if (result) - { - db.CommitTran(); + }); } - else - { - db.RollbackTran(); - } + db.CommitTran(); } catch (Exception ex) { @@ -844,6 +841,62 @@ db.RollbackTran(); } return result; + } + + /// <summary> + /// 鍚屾鏉$爜鐘舵�琛�+ /// </summary> + /// <returns></returns> + public static bool synBarcodeStatus(List<iWMS_semi_bld_BCstatus> model) + { + bool result = true; + var db = new SqlHelper<object>().GetInstance(); + try + { + db.BeginTran(); + if (model.Count > 0) + { + model.ForEach(update => { + db.Insertable(update).ExecuteCommand(); + }); + } + db.CommitTran(); + } + catch (Exception ex) + { + LogHelper.Info($"鍚屾鏉$爜鐘舵�琛ㄩ敊璇紝閿欒淇℃伅锛歿ex.Message}", "GT"); + db.RollbackTran(); + result = false; + } + return result; + } + + /// <summary> + /// 鍚屾鎶芥鐘舵�琛�+ /// </summary> + /// <returns></returns> + public static bool synSamplingStatus(List<iWMS_semi_bld_BCsample> model) + { + bool result = true; + var db = new SqlHelper<object>().GetInstance(); + try + { + db.BeginTran(); + if (model.Count > 0) + { + model.ForEach(update => { + db.Insertable(update).ExecuteCommand(); + }); + } + db.CommitTran(); + } + catch (Exception ex) + { + LogHelper.Info($"鍚屾鎶芥鐘舵�琛ㄩ敊璇紝閿欒淇℃伅锛歿ex.Message}", "GT"); + db.RollbackTran(); + result = false; + } + return result; } /// <summary> @@ -857,28 +910,22 @@ try { db.BeginTran(); - updateMatlStatuses.ForEach(update => { - var itemBarcodeInfo = db.Queryable<ItemBarcodeInfo>().Where(a => a.S_BC_ENTRIED == update.bc_entried).First(); - if (itemBarcodeInfo != null) - { - itemBarcodeInfo.S_JDGE = update.jdge; - db.Updateable(itemBarcodeInfo).ExecuteCommand(); - var cntrItemRel = db.Queryable<CntrItemRel>().Where(a => a.S_CG_ID == update.bc_entried).First(); - if (cntrItemRel != null) + if (updateMatlStatuses.Count > 0) + { + updateMatlStatuses.ForEach(update => { + var itemBarcodeInfo = db.Queryable<ItemBarcodeInfo>().Where(a => a.S_BC_ENTRIED == update.bc_entried).First(); + if (itemBarcodeInfo != null) { - // 灏哅ES鐨勭墿鏂欑姸鎬佽浆鍖栨垚WMS鍙瘑鍒殑鐗╂枡鐘舵� - if (update.jdge == "" || update.jdge == null) + itemBarcodeInfo.S_JDGE = update.jdge; + db.Updateable(itemBarcodeInfo).ExecuteCommand(); + var cntrItemRel = db.Queryable<CntrItemRel>().Where(a => a.S_CG_ID == update.bc_entried).First(); + if (cntrItemRel != null) { - update.jdge = "OK"; + db.Updateable<CntrItemRel>().SetColumns(a => new CntrItemRel() { S_ITEM_STATE = update.jdge }).Where(a => a.S_CG_ID == update.bc_entried).ExecuteCommand(); } - else if (update.jdge != "OK") - { - update.jdge = "HOLD"; - } - db.Updateable<CntrItemRel>().SetColumns(a => new CntrItemRel() { S_ITEM_STATE = update.jdge }).Where(a => a.S_CG_ID == update.bc_entried).ExecuteCommand(); } - } - }); + }); + } db.CommitTran(); } catch (Exception ex) @@ -888,69 +935,6 @@ result = false; } return result; - } - - /// <summary> - /// 鎵归噺鏇存柊鐗╂枡鐘舵� - /// </summary> - /// <returns></returns> - public static bool batchUpdateMatlTimeConfig(List<Overage> overages) - { - bool result = true; - var db = new SqlHelper<object>().GetInstance(); - try - { - db.BeginTran(); - foreach (Overage overage in overages) - { - var overage1 = db.Queryable<Overage>().Where(a => a.RECID == overage.RECID).First(); - if (overage1 != null) - { - overage1.MCNGRP = overage.MCNGRP; - overage1.ITEMPATT = overage.ITEMPATT; - overage1.OVERAGE = overage.OVERAGE; - overage1.MINHOUR = overage.MINHOUR; - overage1.FLAG_STS = overage.FLAG_STS; - db.Updateable(overage1).ExecuteCommand(); - } - else - { - db.Insertable(overage).ExecuteCommand(); - } - } - db.CommitTran(); - } - catch (Exception ex) - { - LogHelper.Info($"鎵归噺鏇存柊鐗╂枡瀛樻斁鏃堕棿閰嶇疆淇℃伅閿欒锛岄敊璇俊鎭細{ex.Message}", "GT"); - db.RollbackTran(); - result = false; - } - return result; - } - /// <summary> - /// 鏌ヨ鐗╂枡瀛樻斁鏃堕棿閰嶇疆淇℃伅 - /// </summary> - /// <param name="bc_entried"></param> - /// <returns></returns> - public static Overage getOverage(string bc_entried) - { - - var db = new SqlHelper<object>().GetInstance(); - - // 鐩存帴鎵ц SQL锛堝弬鏁板寲鏌ヨ锛�- var sql = "SELECT get_ovg_bar(@barcode, @mcngrp) AS overage_value"; - 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"}).First(); - var minhour_bar = db.Ado.SqlQuery<float>(sql1, new { barcode = bc_entried, mcngrp = "1"}).First(); - Overage overage = new Overage() - { - MINHOUR = minhour_bar, - OVERAGE = ovg_bar - }; - return overage; } /// <summary> @@ -997,12 +981,25 @@ /// <summary> /// 鏌ヨ涓婁竴娆$殑鍚屾鏃堕棿 /// </summary> - /// <param name="recordTable"></param> + /// <param name="tableType"></param> /// <returns></returns> - public static SynDataTimeRecord getLastDataSynTime(string recordTable) + public static string getDataLastSynTime(int tableType) { var db = new SqlHelper<object>().GetInstance(); - return db.Queryable<SynDataTimeRecord>().Where(a => a.RECORD_TABLE == recordTable).OrderByDescending(a => a.T_CREATE).First(); + string lastTime = null; + if (tableType == 1) + { + lastTime = db.Queryable<ItemBarcodeInfo>().OrderByDescending(a => a.LAST_MODIFY_TIME).Select(a => a.LAST_MODIFY_TIME).First(); + } + else if (tableType == 2) + { + + } + else if (tableType == 3) + { + + } + return lastTime; } } } -- Gitblit v1.9.1