| | |
| | | } |
| | | else if (model.state == 1012) |
| | | { |
| | | Task task5 = Task.Run(() => |
| | | Task task5 = Task.Run(async () => |
| | | { |
| | | await Task.Delay(3000);//延时3秒 |
| | | PostScanCode(model.task_no, model.forklift_no);//反馈扫码结果 |
| | | }); |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | var TN_Task = WCSHelper.GetTask(model.task_no);//根据当前model编号查询任务 |
| | | if (TN_Task != null) |
| | | var tN_Task = WCSHelper.GetTask(model.task_no);//根据当前model编号查询任务 |
| | | if (tN_Task != null) |
| | | { |
| | | if (model.state <= 8) |
| | | { |
| | |
| | | switch (model.state) |
| | | { |
| | | case 1: |
| | | WCSHelper.Begin(TN_Task, model.forklift_no);//已推送的任务的状态改成执行 |
| | | WCSHelper.Begin(tN_Task, model.forklift_no);//已推送的任务的状态改成执行 |
| | | Task task4 = Task.Run(() => |
| | | { |
| | | OpenScanCode(model.task_no, model.forklift_no);//开启扫码 |
| | | }); |
| | | break; |
| | | case 3: |
| | | WCSHelper.UpdateStatus(TN_Task, "开始取货");//任务状态改成开始取货 |
| | | WCSHelper.UpdateStatus(tN_Task, "开始取货");//任务状态改成开始取货 |
| | | break; |
| | | case 4: |
| | | WCSHelper.UpdateStatus(TN_Task, "取货完成");//任务状态改成取货完成 |
| | | TaskProcess.OperateStatus(TN_Task, 4);//起点容器货位解绑,解锁起点 |
| | | WCSHelper.UpdateStatus(tN_Task, "取货完成");//任务状态改成取货完成 |
| | | TaskProcess.OperateStatus(tN_Task, 4);//起点容器货位解绑,解锁起点 |
| | | |
| | | Task task3 = Task.Run(() => |
| | | { |
| | | EmptyInStackArea(TN_Task); |
| | | EmptyInStackArea(tN_Task); |
| | | }); |
| | | |
| | | Task task1 = Task.Run(() => |
| | | { |
| | | returnS7Ok(TN_Task); |
| | | returnS7Ok(tN_Task); |
| | | }); |
| | | |
| | | Task task27 = Task.Run(() => |
| | | { |
| | | SpecHelper.DeleteInventoryM(tN_Task); |
| | | }); |
| | | |
| | | break; |
| | | case 5: |
| | | WCSHelper.UpdateStatus(TN_Task, "开始卸货");//任务状态改成开始卸货 |
| | | WCSHelper.UpdateStatus(tN_Task, "开始卸货");//任务状态改成开始卸货 |
| | | |
| | | break; |
| | | case 6: |
| | | WCSHelper.UpdateStatus(TN_Task, "卸货完成");//任务状态改成卸货完成 |
| | | TaskProcess.OperateStatus(TN_Task, 6);//终点容器货位绑定,解锁终点 |
| | | WCSHelper.UpdateStatus(tN_Task, "卸货完成");//任务状态改成卸货完成 |
| | | TaskProcess.OperateStatus(tN_Task, 6);//终点容器货位绑定,解锁终点 |
| | | |
| | | Task task2 = Task.Run(() => |
| | | { |
| | | if (TN_Task.S_TYPE == "空托出库入线") |
| | | if (tN_Task.S_TYPE == "空托出库入线") |
| | | { |
| | | var ip = Settings.ProductionLines.FirstOrDefault(a => a.PointIn == TN_Task.S_END_LOC).ProductionLine_IP; |
| | | var ip = Settings.ProductionLines.FirstOrDefault(a => a.PointIn == tN_Task.S_END_LOC).ProductionLine_IP; |
| | | if (!Settings.S7TestMoni) |
| | | { |
| | | S7Helper.WriteBytes(ip, 10, 2, new byte[] { 0, 11, 1 }); |
| | |
| | | |
| | | Task task29 = Task.Run(() => |
| | | { |
| | | if (TN_Task.S_TYPE == "余料下线入库") |
| | | if (tN_Task.S_TYPE == "余料下线入库") |
| | | { |
| | | SpecHelper.UpdateSurplusDetail(TN_Task.S_CODE); |
| | | SpecHelper.UpdateSurplusDetail(tN_Task.S_CODE); |
| | | } |
| | | }); |
| | | |
| | | Task task30 = Task.Run(() => |
| | | { |
| | | if (TN_Task.S_TYPE.Contains("回炉")) |
| | | if (tN_Task.S_TYPE.Contains("回炉")) |
| | | { |
| | | SpecHelper.UpdateRemeltDetail(TN_Task.S_CODE); |
| | | SpecHelper.UpdateRemeltDetail(tN_Task.S_CODE); |
| | | } |
| | | }); |
| | | |
| | | Task task31 = Task.Run(() => |
| | | { |
| | | if (TN_Task.S_TYPE == "满托出库上线") |
| | | if (tN_Task.S_TYPE == "满托出库上线") |
| | | { |
| | | SpecHelper.UpdateComponentDetail(TN_Task.S_CODE); |
| | | SpecHelper.UpdateComponentDetail(tN_Task.S_CODE); |
| | | } |
| | | }); |
| | | |
| | | |
| | | Task task12 = Task.Run(() => |
| | | { |
| | | if (TN_Task.S_TYPE == "PDA满托下线入库" || TN_Task.S_TYPE == "PLC满托下线入库") |
| | | if (tN_Task.S_TYPE == "PDA满托下线入库" || tN_Task.S_TYPE == "PLC满托下线入库") |
| | | { |
| | | SpecHelper.UpdateComponentDetail(TN_Task.S_CODE); |
| | | SpecHelper.UpdateComponentDetail(tN_Task.S_CODE); |
| | | } |
| | | }); |
| | | |
| | | Task task19 = Task.Run(() => |
| | | { |
| | | if (TN_Task.S_END_AREA == Settings.Areas[1]) |
| | | if (tN_Task.S_END_AREA == Settings.Areas[1]) |
| | | { |
| | | SpecHelper.UpdateInventoryM_RuKu(TN_Task.S_CNTR_CODE); |
| | | SpecHelper.UpdateInventoryM_RuKu(tN_Task.S_CNTR_CODE); |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"更新WMS库存明细的入库时间跳过,TN_Task.S_END_AREA: {TN_Task.S_END_AREA }不等于 Settings.Areas[1]:{Settings.Areas[1]}"); |
| | | LogHelper.Info($"更新WMS库存明细的入库时间跳过,TN_Task.S_END_AREA: {tN_Task.S_END_AREA }不等于 Settings.Areas[1]:{Settings.Areas[1]}"); |
| | | } |
| | | }); |
| | | |
| | | break; |
| | | case 2: |
| | | WCSHelper.End(TN_Task);//任务状态改成结束 |
| | | WCSHelper.End(tN_Task);//任务状态改成结束 |
| | | |
| | | Task task16 = Task.Run(() => |
| | | { |
| | | SpecHelper.RestEndLoc(tN_Task); |
| | | }); |
| | | |
| | | break; |
| | | case 7: |
| | | Task task10 = Task.Run(() => |
| | | { |
| | | if (TN_Task.S_TYPE.Contains("满托下线入库") || TN_Task.S_TYPE.Contains("PDA满托下线入库") || TN_Task.S_END_AREA == Settings.Areas[1]) |
| | | { |
| | | TaskProcess.OperateStatus(TN_Task, 7);//异常处理 |
| | | } |
| | | else |
| | | { |
| | | if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))//未取货完成 |
| | | { |
| | | WCSHelper.Fail(TN_Task);//任务状态改成错误 |
| | | |
| | | 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) |
| | | { |
| | | 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 |
| | | { |
| | | 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);//解锁起点终点 |
| | | |
| | | } |
| | | |
| | | WCSHelper.CancleTaskInfo(tN_Task); |
| | | }); |
| | | break; |
| | | |
| | | case 8: |
| | | |
| | | var res = NDCApi.CancelOrder(TN_Task.S_CODE); |
| | | var res = NDCApi.CancelOrder(tN_Task.S_CODE); |
| | | if (res != null && (res.err_code == 50002 || res.err_code == 0)) |
| | | { |
| | | LogHelper.Info($"异常和取消操作 请求结果成功{res}"); |
| | | |
| | | Task task8 = Task.Run(() => |
| | | { |
| | | WCSHelper.CancleTaskInfo(tN_Task); |
| | | }); |
| | | |
| | | } |
| | | else |
| | | { |
| | |
| | | { |
| | | //推送成功 |
| | | LogHelper.Info($"NDC反馈扫码结果成功,扫码结果:{TcpServer.saoMa[agv.ScanAddress].ToString()}"); |
| | | |
| | | } |
| | | else |
| | | { |