| | |
| | | db.Updateable(task).UpdateColumns(it => new { it.S_NOTE }).ExecuteCommand(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | internal static WeiLiResult CancelOrder(CancelOrderModel model) |
| | | { |
| | | WeiLiResult result = new WeiLiResult(); |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | var tasks = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.orderNo).ToList(); |
| | | var tasks = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.task_no).ToList(); |
| | | if (tasks.Count >= 1) |
| | | { |
| | | //流程任务数量执行超过一条 任务不允许取消 |
| | |
| | | result.msg = "流程任务执行中途不允许取消"; |
| | | return result; |
| | | } |
| | | var task = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.orderNo).OrderByDescending(a => a.T_CREATE).First(); |
| | | var task = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.task_no).OrderByDescending(a => a.T_CREATE).First(); |
| | | if (task != null) |
| | | { |
| | | if (WCSHelper.CheckActionRecordExist(task.S_CODE, 4)) |
| | |
| | | if (task.N_B_STATE == 0) |
| | | { |
| | | //等待直接修改状态为取消 |
| | | WCSHelper.UpdateStatus(model.orderNo, 5); |
| | | WCSHelper.UpdateStatus(model.task_no, 5); |
| | | //result.msg = "任务等待,直接取消"; |
| | | } |
| | | else if (task.N_B_STATE != 3 && task.N_B_STATE != 4) |
| | |
| | | else |
| | | { |
| | | //已推送但是没有完成或者取消,通知hosttoagv |
| | | NDCHelper.Cancel(task.S_CODE.Trim()); |
| | | //NDCHelper.Cancel(task.S_CODE.Trim()); |
| | | NDCApi.CancelOrder(task.S_CODE.Trim()); |
| | | //result.msg = "任务取消已经发送给小车"; |
| | | } |
| | | } |
| | |
| | | else |
| | | { |
| | | //通知杭叉修改优先级 |
| | | NDCHelper.Cancel(task.S_CODE.Trim()); |
| | | //NDCHelper.Cancel(task.S_CODE.Trim()); |
| | | NDCApi.CancelOrder(task.S_CODE.Trim()); |
| | | result.msg = "修改优先级成功"; |
| | | } |
| | | } |
| | |
| | | return result; |
| | | } |
| | | |
| | | internal static ReturnResult bindCntr(bindModel model) |
| | | { |
| | | ReturnResult result = new ReturnResult() {ResultCode = -1 }; |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | |
| | | if (TaskProcess.BindLocCntr(model.S_LOC_CODE, model.S_CNTR_CODE, model.S_ITEM_CODE, model.S_BATCH_CODE)) |
| | | { |
| | | int num = model.S_CNTR_CODE.Split(',').Count(); |
| | | var locInfo = db.Queryable<Location>().Where(a => a.S_CODE == model.S_LOC_CODE).First(); |
| | | if(locInfo != null) |
| | | { |
| | | locInfo.N_CURRENT_NUM = locInfo.N_CURRENT_NUM + num > locInfo.N_CAPACITY ? locInfo.N_CAPACITY : locInfo.N_CURRENT_NUM + num; |
| | | db.Updateable(locInfo).UpdateColumns(a => new { a.N_CURRENT_NUM }).ExecuteCommand(); |
| | | result.ResultCode = 0; |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | internal static ReturnResult unBindCntr(unBindModel model) |
| | | { |
| | | ReturnResult result = new ReturnResult() { ResultCode = -1 }; |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | var locInfo = db.Queryable<Location>().Where(a => a.S_CODE == model.S_LOC_CODE).First(); |
| | | if(locInfo != null) |
| | | { |
| | | var cntrList = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == model.S_LOC_CODE).ToList(); |
| | | if(cntrList.Count > 0) |
| | | { |
| | | for (int i = cntrList.Count - 1; i >= 0; i --) |
| | | { |
| | | string cntrCode = cntrList[i].S_CNTR_CODE; |
| | | db.Deleteable<CntrItemRel>().Where(a => a.S_CNTR_CODE == cntrCode).ExecuteCommand(); |
| | | db.Deleteable<LocCntrRel>().Where(a => a.S_CNTR_CODE == cntrCode).ExecuteCommand(); |
| | | db.Deleteable<Container>().Where(a => a.S_CODE == cntrCode).ExecuteCommand(); |
| | | } |
| | | } |
| | | locInfo.N_CURRENT_NUM = locInfo.N_CURRENT_NUM - 1; |
| | | if (locInfo.N_CURRENT_NUM < 0) locInfo.N_CURRENT_NUM = 0; |
| | | db.Updateable(locInfo).UpdateColumns(a => new { a.N_CURRENT_NUM }).ExecuteCommand(); |
| | | result.ResultCode = 0; |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | internal static ReturnResult JBIn(JBInModel model) |
| | | { |
| | | ReturnResult result = new ReturnResult() { ResultCode = -1 }; |
| | | string cntrCode = Guid.NewGuid().ToString("N"); |
| | | string batch = ""; |
| | | if (model.S_ITEM_TYPE == "小包装盖") |
| | | { |
| | | //小包装盖默认一层 |
| | | batch = "小包装盖"; |
| | | } |
| | | if (model.S_ITEM_TYPE == "瓶坯") |
| | | { |
| | | //瓶坯默认两层 |
| | | cntrCode = cntrCode + ","+ Guid.NewGuid().ToString("N"); |
| | | } |
| | | if (model.S_ITEM_TYPE == "大包装盖") |
| | | { |
| | | //大包装盖默认三层 |
| | | cntrCode = cntrCode + "," + Guid.NewGuid().ToString("N") + "," + Guid.NewGuid().ToString("N"); |
| | | batch = "大包装盖"; |
| | | } |
| | | //创建作业 |
| | | LogHelper.Info($"JBIn:{model.S_LOC_CODE},{cntrCode},{"指定库区-" + model.S_END_AREA}"); |
| | | if(WMSHelper.CreateOpTask(model.S_LOC_CODE, "", "入库", "接驳位入库", cntrCode, "指定库区-" + model.S_END_AREA)) |
| | | { |
| | | TaskProcess.BindLocCntr(model.S_LOC_CODE, cntrCode, model.S_ITEM_CODE, batch); |
| | | result.ResultCode = 0; |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | internal static ReturnResult PtpTask(PtpTaskModel model, ReturnResult result) |
| | | { |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | var startLoc = db.Queryable<Location>().Where(a => a.S_CODE == model.S_START_LOC).First(); |
| | | if(startLoc != null && startLoc.S_LOCK_STATE == "无") |
| | | { |
| | | string cntrCode = ""; |
| | | var cntrInfo = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoc.S_CODE).First(); |
| | | if(cntrInfo != null) |
| | | { |
| | | cntrCode = cntrInfo.S_CNTR_CODE; |
| | | } |
| | | else |
| | | { |
| | | cntrCode = Guid.NewGuid().ToString("N"); |
| | | } |
| | | var endLoc = db.Queryable<Location>().Where(a => a.S_CODE == model.S_END_LOC).First(); |
| | | if (endLoc != null && endLoc.S_LOCK_STATE == "无") |
| | | { |
| | | WMSHelper.CreateOpTask(model.S_START_LOC, model.S_END_LOC, "入库", "点到点转运", cntrCode, ""); |
| | | } |
| | | else |
| | | { |
| | | result.ResultMsg = $"终点货位不存在或者有锁,货位编码:{model.S_END_LOC}"; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | result.ResultMsg = $"起点货位不存在或者有锁,货位编码:{model.S_START_LOC}"; |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | |
| | | //public class AddTaskModel |
| | | //{ |