File was renamed from HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs |
| | |
| | | var wmsTask = db.Queryable<WMSTask>().Where(a => a.S_CODE == model.OperationNo).First(); |
| | | if (wmsTask != null) |
| | | { |
| | | db.Deleteable<WMSTask>().Where(a => a.S_CODE == model.OperationNo).ExecuteCommand(); |
| | | LogHelper.Info($"清除错误作业 解绑托盘 托盘{wmsTask.S_CNTR_CODE}"); |
| | | db.Deleteable<LocCntrRel>().Where(a => a.S_CNTR_CODE == wmsTask.S_CNTR_CODE).ExecuteCommand(); |
| | | db.Deleteable<CntrItemRel>().Where(a => a.S_CNTR_CODE == wmsTask.S_CNTR_CODE).ExecuteCommand(); |
| | |
| | | locInfo.S_LOCK_STATE = "无"; |
| | | db.Updateable(locInfo).UpdateColumns(it => new { it.N_CURRENT_NUM, it.S_LOCK_STATE, it.N_LOCK_STATE }).ExecuteCommand(); |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"清除错误作业 未找到起点{wmsTask.S_START_LOC}的货位"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"清除错误作业 未找到作业号{model.OperationNo}的作业"); |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | internal static SimpleResult GuidelinesIn(WeiLiDisbutionInMolde model) |
| | | { |
| | | int Ntype = 0; string Stype = ""; string S_OP_DEF_NAME = ""; |
| | | var result = new SimpleResult { resultCode = 0 }; |
| | | Location end = null; |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | |
| | | if (string.IsNullOrEmpty(model.endArea) && string.IsNullOrEmpty(model.endLoc)) |
| | | { |
| | | Ntype = 1; |
| | | Stype = "入库"; |
| | | S_OP_DEF_NAME = "指引回库"; |
| | | } |
| | | |
| | | var TrayPrefix = model.cntrNo.Substring(0, 2); |
| | | var endinfo = Settings.LKCodes.Where(a => a.TrayPrefix == TrayPrefix).FirstOrDefault(); |
| | | if (endinfo != null) |
| | | { |
| | | if (string.IsNullOrEmpty(model.endArea)) |
| | | { |
| | | model.endArea = endinfo.LiKuCode; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | result.resultCode = -1; |
| | | result.resultMsg = "终点库区为空 默认回库 找不到托盘前缀对应的回库库区"; |
| | | return result; |
| | | } |
| | | |
| | | var cntrinfo = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == model.cntrNo).First(); |
| | | if (cntrinfo != null) |
| | | { |
| | | var start = db.Queryable<Location>().Where(a => a.S_CODE == cntrinfo.S_LOC_CODE).First(); |
| | | if (start != null) |
| | | { |
| | | if (start.N_LOCK_STATE == 0) |
| | | { |
| | | var conntinfo = Settings.ConnetAreas.Where(a => a.FullList.Contains(start.S_CODE) || a.EmptyList.Contains(start.S_CODE)).FirstOrDefault(); |
| | | if (conntinfo != null) |
| | | { |
| | | if (!string.IsNullOrEmpty(model.endLoc)) |
| | | { |
| | | //创建作业 |
| | | var optask = new WMSTask |
| | | { |
| | | S_CODE = WMSHelper.GenerateTaskNo(), |
| | | S_START_WH = start.S_WH_CODE, |
| | | S_START_LOC = start.S_CODE, |
| | | S_START_AREA = start.S_AREA_CODE, |
| | | S_END_LOC = end.S_CODE, |
| | | S_END_AREA = end.S_AREA_CODE, |
| | | S_END_WH = end.S_WH_CODE, |
| | | S_STATION_LOC = conntinfo.Station, |
| | | N_TYPE = Ntype, |
| | | S_TYPE = Stype, |
| | | N_B_STATE = 0, |
| | | S_CNTR_CODE = model.cntrNo, |
| | | S_OP_DEF_NAME = S_OP_DEF_NAME, |
| | | S_BS_NO = model.workNo |
| | | }; |
| | | var note = Settings.Tasktypes.Where(a => a.StartArea == optask.S_START_AREA && a.EndArea == optask.S_END_AREA).FirstOrDefault(); |
| | | if (note != null) |
| | | { |
| | | optask.S_NOTE = note.TaskType; |
| | | } |
| | | var res = db.Insertable(optask).ExecuteCommand() > 0; |
| | | LocationHelper.LockLoc(start.S_CODE, 2); |
| | | LocationHelper.LockLoc(end.S_CODE, 1); |
| | | } |
| | | else |
| | | { |
| | | //创建作业 |
| | | var optask = new WMSTask |
| | | { |
| | | S_CODE = WMSHelper.GenerateTaskNo(), |
| | | S_START_WH = start.S_WH_CODE, |
| | | S_START_LOC = start.S_CODE, |
| | | S_START_AREA = start.S_AREA_CODE, |
| | | S_END_LOC = "", |
| | | S_END_AREA = model.endArea, |
| | | S_END_WH = start.S_WH_CODE, |
| | | S_STATION_LOC = conntinfo.Station, |
| | | N_TYPE = Ntype, |
| | | S_TYPE = Stype, |
| | | N_B_STATE = 0, |
| | | S_CNTR_CODE = model.cntrNo, |
| | | S_OP_DEF_NAME = S_OP_DEF_NAME, |
| | | S_BS_NO = model.workNo |
| | | }; |
| | | var note = Settings.Tasktypes.Where(a => a.StartArea == optask.S_START_AREA && a.EndArea == optask.S_END_AREA).FirstOrDefault(); |
| | | if (note != null) |
| | | { |
| | | optask.S_NOTE = note.TaskType; |
| | | } |
| | | var res = db.Insertable(optask).ExecuteCommand() > 0; |
| | | LocationHelper.LockLoc(start.S_CODE, 2); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | result.resultCode = -2; |
| | | result.resultMsg = $"货位{start.S_CODE} 在接驳库区配置中找不到对应的拣货位信息"; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | result.resultCode = -3; |
| | | result.resultMsg = $"货位{start.S_CODE} 当前状态为{start.S_LOCK_STATE} 不予生成任务"; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | result.resultCode = -1; |
| | | result.resultMsg = $"查询不到托盘{model.cntrNo} 绑定货位{cntrinfo.S_LOC_CODE}的货位信息"; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | result.resultCode = -1; |
| | | result.resultMsg = $"查询不到托盘{model.cntrNo} 的绑定货位"; |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | internal static SimpleResult GuidelinesOut(GuidelinesOutModel model) |
| | | { |
| | | var result = new SimpleResult(); |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | var cntrInfo = db.Queryable<LocCntrRel>().Where(it => it.S_CNTR_CODE == model.cntrCode).First(); |
| | | if (cntrInfo != null) |
| | | { |
| | | var startloc = db.Queryable<Location>().Where(it => it.S_CODE == cntrInfo.S_LOC_CODE).First(); |
| | | if (startloc != null && startloc.N_LOCK_STATE == 0) |
| | | { |
| | | LogHelper.Info($"托盘{model.cntrCode} 绑定位置{cntrInfo.S_LOC_CODE} 锁状态{startloc.N_LOCK_STATE}"); |
| | | if (Settings.LKCodes.Where(it => it.LiKuCode == startloc.S_AREA_CODE).FirstOrDefault() != null) |
| | | { |
| | | string taskType = ""; |
| | | Location endbit = null; |
| | | |
| | | LogHelper.Info($"托盘{model.cntrCode} 出到分拣位"); |
| | | taskType = "出库"; |
| | | var endList = Settings.ConnetAreas.Where(it => it.LineArea == model.endArea && it.Station == model.station).ToList(); |
| | | if (endList.Count > 0) |
| | | { |
| | | foreach (var endlist in endList) |
| | | { |
| | | for (int i = 0; i < endlist.FullList.Length; i++) |
| | | { |
| | | var endloc = endlist.FullList[i]; |
| | | var end = db.Queryable<Location>().Where(it => it.S_CODE == endloc && it.N_LOCK_STATE == 0 && it.N_CURRENT_NUM == 0).First(); |
| | | if (end != null) |
| | | { |
| | | endbit = end; |
| | | break; |
| | | } |
| | | else LogHelper.Info($"指引出库 货位{endloc} 不可用"); |
| | | } |
| | | if (endbit != null) break; |
| | | } |
| | | } |
| | | else LogHelper.Info($"指引出库 未找到出库口库区编码{model.endArea} 对应的配置文件"); |
| | | |
| | | |
| | | if (endbit != null) |
| | | { |
| | | var optask = new WMSTask |
| | | { |
| | | S_CODE = WMSHelper.GenerateTaskNo(), |
| | | S_START_LOC = cntrInfo.S_LOC_CODE, |
| | | S_START_AREA = startloc.S_AREA_CODE, |
| | | S_START_WH = startloc.S_WH_CODE, |
| | | S_END_LOC = endbit.S_CODE, |
| | | S_END_AREA = endbit.S_AREA_CODE, |
| | | S_END_WH = endbit.S_WH_CODE, |
| | | S_STATION_LOC = model.station, |
| | | S_TYPE = "出库", |
| | | N_TYPE = 2, |
| | | N_B_STATE = 0, |
| | | S_CNTR_CODE = model.cntrCode, |
| | | S_OP_DEF_NAME = taskType, |
| | | S_BS_NO = "" |
| | | }; |
| | | var note = Settings.Tasktypes.Where(it => it.StartArea == optask.S_START_AREA && it.EndArea == optask.S_END_AREA).FirstOrDefault(); |
| | | if (note != null) |
| | | { |
| | | optask.S_NOTE = note.TaskType; |
| | | } |
| | | 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(endbit.S_CODE, 1); |
| | | LogHelper.Info($"修改成功"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | result.resultCode = -1; |
| | | result.resultMsg = $"指引出库 未找到可用分拣货位"; |
| | | LogHelper.Info($"指引出库 未找到可用分拣货位"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | result.resultCode = -1; |
| | | result.resultMsg = $"托盘{model.cntrCode} 不在立库中 无法出库"; |
| | | LogHelper.Info($"托盘{model.cntrCode} 不在立库中 无法出库"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | result.resultCode = -1; |
| | | result.resultMsg = $"指引出库 托盘号{model.cntrCode} 锁定状态异常"; |
| | | LogHelper.Info($"指引出库 托盘号{model.cntrCode} 锁定状态异常"); |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | internal static TaskStateresutl GetTaskState(GetTaskStateModel model) |
| | | { |
| | | var db = new SqlHelper<object>().GetInstance(); |