| | |
| | | using HH.WCS.Mobox3.DoubleCoin.device; |
| | | using HH.WCS.Mobox3.DoubleCoin.dispatch; |
| | | using HH.WCS.Mobox3.DoubleCoin.models; |
| | | using HH.WCS.Mobox3.DoubleCoin.process; |
| | | using HH.WCS.Mobox3.DoubleCoin.util; |
| | | using HH.WCS.Mobox3.DoubleCoin.wms; |
| | |
| | | case 7: |
| | | Task task10 = Task.Run(() => |
| | | { |
| | | if (TN_Task.S_TYPE == "满托下线入库") |
| | | if (TN_Task.S_TYPE.Contains("满托下线入库") || TN_Task.S_TYPE.Contains("PDA满托下线入库")) |
| | | { |
| | | TaskProcess.OperateStatus(TN_Task, 7);//异常处理 |
| | | } |
| | | else if(TN_Task.S_TYPE == "满托出库上线") |
| | | { |
| | | WCSHelper.Fail(TN_Task);//任务状态改成错误 |
| | | LocationHelper.UnLockLoc(TN_Task.S_END_LOC); |
| | | if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4)) |
| | | { |
| | | LocationHelper.UnLockLoc(TN_Task.S_START_LOC); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | break; |
| | | case 8: |
| | | |
| | | Task task11 = Task.Run(() => |
| | | { |
| | | if (TN_Task.S_TYPE == "满托下线入库") |
| | | { |
| | | var res = NDCApi.CancelOrder(TN_Task.S_CODE); |
| | | if (res != null && (res.err_code ==50002 || res.err_code == 0)) |
| | | { |
| | | TaskProcess.OperateStatus(TN_Task, 7);//异常处理 |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"异常和取消操作 请求结果失败{res}"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | var res = NDCApi.CancelOrder(TN_Task.S_CODE); |
| | | if (res != null && (res.err_code == 50002 || res.err_code == 0)) |
| | | if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))//未取货完成 |
| | | { |
| | | WCSHelper.Fail(TN_Task);//任务状态改成错误 |
| | | LocationHelper.UnLockLoc(TN_Task.S_END_LOC); |
| | | if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4)) |
| | | |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | var cginfo = db.Queryable<TN_CG_Detail>().First(a => a.S_CNTR_CODE == TN_Task.S_CNTR_CODE); |
| | | if (cginfo != null) |
| | | { |
| | | LocationHelper.UnLockLoc(TN_Task.S_START_LOC); |
| | | db.Deleteable<TN_InventoryM>().Where(it => it.S_ID == cginfo.S_ID || it.RFID == TN_Task.S_CNTR_CODE).ExecuteCommand(); |
| | | } |
| | | else |
| | | { |
| | | db.Deleteable<TN_InventoryM>().Where(it => it.RFID == TN_Task.S_CNTR_CODE).ExecuteCommand(); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"异常和取消操作 请求结果失败{res}"); |
| | | WCSHelper.End(TN_Task);//任务状态改成结束 |
| | | LocationHelper.BindingLoc(TN_Task.S_END_LOC, TN_Task.S_CNTR_CODE.Split(',').ToList()); |
| | | |
| | | } |
| | | |
| | | LocationHelper.UnLockLoc(TN_Task.S_END_LOC); |
| | | LocationHelper.UnLockLoc(TN_Task.S_START_LOC);//解锁起点终点 |
| | | } |
| | | |
| | | }); |
| | | break; |
| | | |
| | | case 8: |
| | | |
| | | var res = NDCApi.CancelOrder(TN_Task.S_CODE); |
| | | if (res != null && (res.err_code == 50002 || res.err_code == 0)) |
| | | { |
| | | LogHelper.Info($"异常和取消操作 请求结果成功{res}"); |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"异常和取消操作 请求结果失败{res}"); |
| | | } |
| | | |
| | | break; |
| | | } |
| | | WCSHelper.AddActionRecord(model.task_no, model.state, model.forklift_no, model.ext_data); |
| | | //调用第三方接口(如果有)TaskProcess.ReportStatus,添加任务动作关系表 |