api/ApiModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
api/WmsSpaHelper.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
core/WMSCore.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
process/TaskProcess.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
api/ApiModel.cs
@@ -385,7 +385,7 @@ public string cntr_code { get; set; }//容器 public string cntr_type { get; set; }//容器 public string start { get; set; }//容器 //public string start { get; set; }//容器 public bool IsHK { get; set; }//容器 public string arrival_no { get; set; } public List<Mater> MaterList { get; set; } api/WmsSpaHelper.cs
@@ -1750,10 +1750,10 @@ using (var db = new SqlHelper<object>().GetInstance()) { Location endloc = new Location(); var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE == model.cntr_code).First(); var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE.Trim() == model.cntr_code).First(); if (hwbd!=null) { endloc = db.Queryable<Location>().Where(a => a.S_CODE == hwbd.S_LOC_CODE).First(); endloc = db.Queryable<Location>().Where(a => a.S_CODE == hwbd.S_LOC_CODE.Trim()).First(); if (endloc?.N_LOCK_STATE != 0) { result.resultCode = 3; @@ -2025,10 +2025,10 @@ if (!string.IsNullOrEmpty(model.cntr_code)) { var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE == model.cntr_code).First(); var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE.Trim() == model.cntr_code).First(); if (hwbd!=null) { end = db.Queryable<Location>().Where(s => s.S_CODE == hwbd.S_LOC_CODE).First(); end = db.Queryable<Location>().Where(s => s.S_CODE == hwbd.S_LOC_CODE.Trim()).First(); } else { @@ -2127,16 +2127,25 @@ { var result = new SimpleResult(); // var db = new SqlHelper<object>().GetInstance(); using (var db = new SqlHelper<object>().GetInstance()) { try { result.resultMsg = "成功"; var start = ""; var startloc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == model.cntr_code).First(); if (startloc!=null) { start = startloc.S_LOC_CODE; } else { result.resultMsg = "出库单号不能为空"; result.resultCode = 1; return result; } result.resultMsg = "成功"; result.resultCode = 0; if (string.IsNullOrEmpty(model.arrival_no)) { @@ -2159,27 +2168,27 @@ //根据不同出库类型 回调sap if (po.S_OUT_TYPE == "冲销出库") { result = await CXAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.start); result = await CXAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, start); } else if (po.S_OUT_TYPE == "出库")//普通出库 { LogHelper.Info($"S_OUT_TYPE{po.S_OUT_TYPE}"); result = await AddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.start); result = await AddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, start); } else if (po.S_OUT_TYPE == "计划外发料出库") { result = await jhwtlAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.start); result = await jhwtlAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, start); } else if (po.S_OUT_TYPE == "成本中心出库") { result = await CBAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.start); result = await CBAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, start); } //通用接口 对容器货品的删减 和生成回库单 都要用的接口 result = await TYAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.IsHK, model.start, po.S_OUT_TYPE, model.cntr_type); result = await TYAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.IsHK, start, po.S_OUT_TYPE, model.cntr_type); if (result.resultCode == 1) { { return result; } #region 升降量 @@ -2316,9 +2325,10 @@ //回参物料信息 List<OutboundRecord> records = new List<OutboundRecord>(); var pz = db.Queryable<MaterialVoucher>().Where(a => a.S_NO == arrival_no).First(); var pzlist = db.Queryable<MaterialVoucher>().Where(a => a.S_NO == arrival_no).ToList(); foreach (var item in MaterList) { var pz=pzlist.Where(s=>s.S_WLBM== item.item_code).FirstOrDefault(); // 插入到托盘明细表 var cntr = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == cntr_code).ToList(); if (cntr.Count() > 0) @@ -2388,10 +2398,12 @@ return result; } Location endloc = new Location(); var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE == cntr_code).First(); LogHelper.Info($"获取托盘信息{cntr_code}容器"); var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE.Trim() == cntr_code).First(); if (hwbd != null) { endloc = db.Queryable<Location>().Where(a => a.S_CODE == hwbd.S_LOC_CODE).First(); endloc = db.Queryable<Location>().Where(a => a.S_CODE == hwbd.S_LOC_CODE.Trim()).First(); if (endloc?.N_LOCK_STATE != 0) { result.resultCode = 3; @@ -4569,7 +4581,7 @@ } string combinedIds = string.Join(",", po.Details.Select(x => x.N_ROW_NO)); var KEY = WCSHelper.Generate13DigitIds(); var s_key = db.Queryable<TN_InBounder_Sh>().Where(a => a.S_NO == model.S_NO && a.N_ROW_NO == combinedIds).First(); var s_key = db.Queryable<TN_InBounder_Sh>().Where(a => a.S_NO == model.S_NO && a.N_ROW_NO == combinedIds).ToList().FirstOrDefault(); if (s_key != null) { KEY = s_key.S_KEY; core/WMSCore.cs
@@ -34,7 +34,8 @@ //WMSHelper.GetWaitingSortingOrderList(); } internal static void CheckDistributionCNTROrder() { internal static void CheckDistributionCNTROrder() { LogHelper.Info($"配盘生成作业 "); var db = new SqlHelper<object>().GetInstance(); //获取配盘单 @@ -44,17 +45,17 @@ foreach (var item in list) { var lcr = db.Queryable<LocCntrRel>().Where(c => c.S_CNTR_CODE == item.S_CNTR_CODE).First(); if (lcr!=null) if (lcr != null) { //起始库位 var startloc = db.Queryable<Location>().Where(it => it.S_CODE == lcr.S_LOC_CODE).First(); if (startloc != null )//&& if (startloc != null)//&& { //终点货位 var endloc = db.Queryable<Location>().Where(it => it.S_AREA_CODE == "AGVXHQ" && it.N_LOCK_STATE == 0 && it.N_CURRENT_NUM == 0).First(); // var endloc = db.Queryable<Location>().Where(it => it.S_CODE == item.S_END_LOC).First(); if (endloc != null ) // var endloc = db.Queryable<Location>().Where(it => it.S_CODE == item.S_END_LOC).First(); if (endloc != null) { var optask = new WMSTask { @@ -82,9 +83,9 @@ item.N_B_STATE = 2; item.S_B_STATE = "作业启动"; item.S_SORT_TYPE = "待分拣"; db.Updateable(item).UpdateColumns(it => new { it.S_B_STATE, it.N_B_STATE,it.S_SORT_TYPE }).ExecuteCommand(); db.Updateable(item).UpdateColumns(it => new { it.S_B_STATE, it.N_B_STATE, it.S_SORT_TYPE }).ExecuteCommand(); } } else @@ -95,19 +96,124 @@ } else { LogHelper.Info($"{item.S_BS_NO}配盘 库区{item.S_AREA_CODE}无货位"); LogHelper.Info($"{item.S_BS_NO}配盘 库区{item.S_AREA_CODE}无货位"); } } } else { LogHelper.Info($"配盘生成作业容器未绑定货位"); } } } catch (Exception ex) { LogHelper.Info($"配盘生成作业错误 {ex.Message}"); throw; } LogHelper.Info($"获取配盘数量 {list.Count}"); } internal static void podetailSend() { LogHelper.Info($"自动生成出库任务 "); var db = new SqlHelper<object>().GetInstance(); //获取入库明细单 var list = db.Queryable<TN_Inbound_Detail>().Where(a => a.N_B_STATE == 1).ToList(); try { foreach (var item in list) { var cir2 = db.Queryable<CGRels>().Where(a => a.S_ITEM_CODE == item.S_ITEM_CODE).First(); var S_CNTR_CODE = ""; if (cir2 != null) { S_CNTR_CODE=cir2.S_CNTR_CODE; } var lcr = db.Queryable<LocCntrRel>().Where(c => c.S_CNTR_CODE == S_CNTR_CODE).First(); if (lcr != null) { //起始库位 var startloc = db.Queryable<Location>().Where(it => it.S_CODE == lcr.S_LOC_CODE).First(); var wsc= db.Queryable<WCSTask>().Where(it => it.S_CODE == lcr.S_LOC_CODE&&it.N_B_STATE<3).First(); if (wsc!=null) { item.N_B_STATE = 2; db.Updateable(item).UpdateColumns(it => new { it.N_B_STATE }).ExecuteCommand(); } else { if (startloc != null)//&& { //终点货位 var endloc = db.Queryable<Location>().Where(it => it.S_AREA_CODE == "QYQXHQ" && it.N_LOCK_STATE == 0 && it.N_CURRENT_NUM == 0).First(); // var endloc = db.Queryable<Location>().Where(it => it.S_CODE == item.S_END_LOC).First(); if (endloc != null) { var optask = new WMSTask { S_CODE = WMSHelper.GenerateTaskNo(), S_START_LOC = startloc.S_CODE, S_START_AREA = startloc.S_AREA_CODE, S_START_WH = startloc.S_WH_CODE, S_END_LOC = endloc.S_CODE, S_END_AREA = endloc.S_AREA_CODE, S_END_WH = endloc.S_WH_CODE, S_TYPE = "出库区", N_TYPE = 2, N_B_STATE = 0, S_BS_NO = "", S_CNTR_CODE = S_CNTR_CODE, S_OP_DEF_NAME = item.S_BS_TYPE }; var res = db.Insertable(optask).ExecuteCommand() > 0; if (res) { startloc.N_LOCK_STATE = 2; startloc.S_LOCK_STATE = "出库锁"; db.Updateable(startloc).UpdateColumns(it => new { it.S_LOCK_STATE, it.N_LOCK_STATE }).ExecuteCommand(); LocationHelper.LockLoc(endloc.S_CODE, 1); item.N_B_STATE = 2; db.Updateable(item).UpdateColumns(it => new { it.N_B_STATE }).ExecuteCommand(); } } else { LogHelper.Info($"{item.S_BS_NO}配盘 库区AGVXHQ无空货位"); } } else { LogHelper.Info($"{item.S_BS_NO}配盘 库区无货位"); } } } else { LogHelper.Info($"配盘生成作业容器未绑定货位"); } } } catch (Exception ex) process/TaskProcess.cs
@@ -766,14 +766,14 @@ dic1.Add("From", start); dic1.Add("To", end); dic1.Add("Func", "0"); if (mst.S_TYPE.Contains("入库")) { dic1.Add("Data", "512"); } else { //if (mst.S_TYPE.Contains("入库")) //{ // dic1.Add("Data", "0"); //} //else //{ dic1.Add("Data", "0"); } //} dic1.Add("FRow", "0"); LogHelper.Info($"推送{start}{end}"); //判断