| | |
| | | using HH.WCS.DaYang.dispatch; |
| | | using HH.WCS.DaYang.process; |
| | | using HH.WCS.DaYang.util; |
| | | using HH.WCS.DaYang.wms; |
| | | using System; |
| | | using System.Collections.Generic; |
| | |
| | | var TN_Task = WCSHelper.GetTask(model.No); |
| | | if (TN_Task != null) |
| | | { |
| | | if (WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 2)) |
| | | { |
| | | LogHelper.Info($"任务{TN_Task.S_CODE}已经完成,不接受状态处理"); |
| | | return; |
| | | } |
| | | if (model.State <= 7) |
| | | { |
| | | |
| | |
| | | case 6: |
| | | WCSHelper.UpdateStatus(TN_Task, "卸货完成"); |
| | | TaskProcess.OperateStatus(TN_Task, 6); |
| | | //if (TN_Task.S_TYPE == "入库") |
| | | //{ |
| | | // WMSHelper.AddWHInventory(TN_Task); |
| | | //} |
| | | // WMSHelper.AddAZLInventory(TN_Task); |
| | | if (TN_Task.S_TYPE == "物料入库") |
| | | { |
| | | //入库完成 修改入库时间 |
| | | var cntrItme = ContainerHelper.FindCntrItemByCntr(TN_Task.S_CNTR_CODE); |
| | | if (cntrItme != null) |
| | | { |
| | | ContainerHelper.UpdateInTime(cntrItme); |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"任务{TN_Task.S_CODE},卸货完成,并无托盘物料绑定关系"); |
| | | } |
| | | } |
| | | break; |
| | | #endregion |
| | | case 2: |
| | | WCSHelper.End(TN_Task); |
| | | //查询当前任务是否存在作业,如果有作业则完成作业 |
| | | if (!string.IsNullOrEmpty(TN_Task.S_OP_CODE)) |
| | | { |
| | | var NowmsTask = WCSHelper.GetWcsTaskByState(TN_Task.S_OP_CODE, new int[] { 1, 2 }); |
| | | if (NowmsTask == null) |
| | | { |
| | | var WmsTask = WMSHelper.GetWmsTask(TN_Task.S_OP_CODE); |
| | | if (WmsTask == null) |
| | | { |
| | | WmsTask.N_B_STATE = 3; |
| | | WMSHelper.UpdateTaskState(WmsTask); |
| | | } |
| | | |
| | | } |
| | | } |
| | | break; |
| | | case 7: |
| | | TaskProcess.OperateStatus(TN_Task, 7); |
| | |
| | | public static Result<Empty> NotifyTaskStatus(NotifyTaskStatusModel model) |
| | | { |
| | | Result<Empty> result = new Result<Empty>() { Code = 1, Msg = "反馈成功" }; |
| | | |
| | | try |
| | | { |
| | | var TN_Task = WCSHelper.GetTask(model.TaskNo); |
| | | if (TN_Task != null) |
| | | { |
| | | if (WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 2)) |
| | | { |
| | | |
| | | result.Code = 2; |
| | | result.Msg = $"任务{TN_Task.S_CODE}已经完成,不接受状态处理"; |
| | | LogHelper.Info($"NotifyTaskStatus:{result.Msg}"); |
| | | return result; |
| | | } |
| | | if (model.Status <= 7) |
| | | { |
| | | //有任务号请求 |
| | |
| | | case 4: |
| | | WCSHelper.UpdateStatus(TN_Task, "取货完成"); |
| | | TaskProcess.OperateStatus(TN_Task, 4); |
| | | if (TN_Task.S_START_AREA== "YCLLKQ") |
| | | { |
| | | WMSHelper.OnShelves(TN_Task,2); |
| | | } |
| | | break; |
| | | case 5: |
| | | WCSHelper.UpdateStatus(TN_Task, "开始卸货"); |
| | |
| | | case 6: |
| | | WCSHelper.UpdateStatus(TN_Task, "卸货完成"); |
| | | TaskProcess.OperateStatus(TN_Task, 6); |
| | | |
| | | if (TN_Task.S_TYPE== "叠盘机呼叫空托") |
| | | { |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | |
| | | var containern = db.Queryable<Container>().Where(a => a.S_CODE.Trim() == TN_Task.S_CNTR_CODE).First(); |
| | | if (containern != null) |
| | | { |
| | | containern.S_SOURCE = "1"; |
| | | db.Updateable<Container>(containern).UpdateColumns(a => new { a.S_SOURCE }).ExecuteCommand(); |
| | | } |
| | | } |
| | | if (TN_Task.S_END_AREA == "YCLLKQ") |
| | | { |
| | | //上下架记录 |
| | | WMSHelper.OnShelves(TN_Task, 1); |
| | | //入库完成 修改入库时间 |
| | | var cntrItme = ContainerHelper.FindCntrItemByCntr(TN_Task.S_CNTR_CODE); |
| | | if (cntrItme != null) |
| | | { |
| | | ContainerHelper.UpdateInTime(cntrItme); |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"任务{TN_Task.S_CODE},卸货完成,并无托盘物料绑定关系"); |
| | | } |
| | | } |
| | | break; |
| | | #endregion |
| | | case 2: |
| | | WCSHelper.End(TN_Task); |
| | | //查询当前任务是否存在作业,如果有作业则完成作业 |
| | | if (!string.IsNullOrEmpty(TN_Task.S_OP_CODE)) |
| | | { |
| | | var NowmsTask = WCSHelper.GetWcsTaskByState(TN_Task.S_OP_CODE, new int[] { 0, 1, 2 }); |
| | | if (NowmsTask == null) |
| | | { |
| | | var WmsTask = WMSHelper.GetWmsTask(TN_Task.S_OP_CODE); |
| | | if (WmsTask != null) |
| | | { |
| | | WmsTask.N_B_STATE = 3; |
| | | WMSHelper.UpdateTaskState(WmsTask); |
| | | } |
| | | |
| | | } |
| | | } |
| | | if (TN_Task.S_TYPE == "指定出库") |
| | | { |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | LocationHelper.BindingLoc(TN_Task.S_END_LOC, TN_Task.S_CNTR_CODE.Split(',').ToList()); |
| | | var itemcntr = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == TN_Task.S_CNTR_CODE).First(); |
| | | if (itemcntr != null) { db.Deleteable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == TN_Task.S_CNTR_CODE).ExecuteCommand(); } |
| | | |
| | | } |
| | | break; |
| | | case 7: |
| | | TaskProcess.OperateStatus(TN_Task, 7); |
| | |
| | | result.Msg = $"Error:ex"; |
| | | LogHelper.Info($"EquipmentInfo:{result.Msg}"); |
| | | return result; |
| | | |
| | | |
| | | } |
| | | |
| | | } |