using System; using HH.WCS.Mobox3.RiDong.dispatch; using HH.WCS.Mobox3.RiDong.models; namespace HH.WCS.Mobox3.RiDong.generalMethod; /// /// agv方法 /// public static class AGVMethod { /// /// 安全请求 /// /// 当前任务 /// 状态值 public static void OperateReq(Task task, int state) { // 入库 if (task.N_TYPE == 1 || task.N_TYPE == 3) { // 读取中间表数据是否为1 var conveyorLinesInfo = AdoSqlMethod.QueryFirst(p => p.LOCATION == task.S_START_LOC); // 信息交互 if (state == 1101) { if (conveyorLinesInfo != null) { // 判断中间表入库信号是否为2 if (conveyorLinesInfo.LOADSTATE == 2) { conveyorLinesInfo.LOADSTATE = 3; AdoSqlMethod.UpdateFirst(conveyorLinesInfo, p => new { p.LOADSTATE }); } // 可取 else if (conveyorLinesInfo.LOADSTATE == 4) { // 调用车取货 NDCHelper.ChangeParam(task.S_CODE, 1, 6); } } } else if (state == 1102) { // 取货完成,修改当前线体为5 conveyorLinesInfo.LOADSTATE = 5; AdoSqlMethod.UpdateFirst(conveyorLinesInfo, p => new { p.LOADSTATE }); } } // 出库 else if (task.N_TYPE == 2 || task.N_TYPE == 4 || task.N_TYPE == 5 || task.N_TYPE == 7) { // 读取中间表数据 var conveyorLinesInfo = AdoSqlMethod.QueryFirst(p => p.LOCATION == task.S_END_LOC); if (state == 1103) { // 表示申请放货 if (conveyorLinesInfo.UNLOADSTATE == 0) { conveyorLinesInfo.UNLOADSTATE = 1; AdoSqlMethod.UpdateFirst(conveyorLinesInfo, p => new { p.UNLOADSTATE }); } // 输送线允许放货 else if (conveyorLinesInfo.UNLOADSTATE == 2) { // 让agv放货 NDCHelper.ChangeParam(task.S_CODE, 1, 6); } } else if (state == 1104) { // 修改任务 var pipeTask = AdoSqlMethod.QueryFirst(p => p.N_B_STATE == 0 && p.S_OP_CODE == task.S_OP_CODE && p.N_SCHEDULE_TYPE == 1); if (pipeTask != null) { // 修改任务为推送状态 pipeTask.N_B_STATE = 1; pipeTask.S_B_STATE = "已推送"; pipeTask.T_START_TIME = DateTime.Now; AdoSqlMethod.UpdateFirst(pipeTask, p => new { p.N_B_STATE, p.S_B_STATE, p.T_START_TIME }); conveyorLinesInfo.UNLOADSTATE = 3; conveyorLinesInfo.BARCODE = pipeTask.S_CNTR_CODE; AdoSqlMethod.UpdateFirst(conveyorLinesInfo, p => new { p.UNLOADSTATE, p.BARCODE }); } } } else if (task.N_TYPE == 6) { if (state == 1103) { // 让agv放货 NDCHelper.ChangeParam(task.S_CODE, 1, 6); } } } }