| | |
| | | .setPicking("N") // 拣料 |
| | | .setExitMk("N")// 退出 |
| | | .setStaNo(wrkMast.getMemo()) |
| | | .setSourceStaNo("Z-"+wrkMast.getSourceStaNo()) |
| | | .setSourceStaNo(wrkMast.getSourceStaNo()) |
| | | .setEmptyMk("N")// 空板 |
| | | .setBarcode(wrkMast.getBarcode())// 托盘码 |
| | | .setLinkMis("N") |
| | |
| | | return; |
| | | } |
| | | //查询所有agv待下发任务 |
| | | List<Task> wrkSts = taskService.selectList(new EntityWrapper<Task>().eq("wrk_sts", 301)); |
| | | List<Task> wrkSts = taskService.selectList(new EntityWrapper<Task>().eq("wrk_sts", 301).orderBy("appe_time")); |
| | | if (wrkSts != null && !wrkSts.isEmpty()) { |
| | | for (Task task : wrkSts) { |
| | | //查询是否有正在作业的源站和目标站有一样的agv搬运任务 |
| | |
| | | .eq("wrk_sts", 302) |
| | | .andNew() |
| | | .in("source_sta_no", task.getSourceStaNo(), task.getStaNo()) |
| | | .or() |
| | | .in("sta_no", task.getStaNo(), task.getSourceStaNo())); |
| | | Boolean flag = true; |
| | | if (Cools.isEmpty(task1)) { |
| | |
| | | //如果是接驳站点则需要判断接驳站点是否有空料架 |
| | | //如果有空料架需要判断是否有出库任务 |
| | | //有出库任务则禁止下发本次搬运任务 |
| | | if (task.getStaNo().equals("Z-401") || task.getStaNo().equals("Z-402") || task.getStaNo().equals("Z-307")) { |
| | | if (task.getStaNo().equals("401") || task.getStaNo().equals("402") || task.getStaNo().equals("307")) { |
| | | flag = false; |
| | | BasDevp basDevp = basDevpService.checkSiteStatus(Integer.parseInt(task.getStaNo())); |
| | | if (basDevp != null && !Cools.isEmpty(basDevp.getInreq1()) && basDevp.getInreq1().equals("Y")) { |
| | | if (basDevp != null && !Cools.isEmpty(basDevp.getInreq1()) |
| | | && basDevp.getInreq1().equals("Y") |
| | | && basDevp.getLoading().equals("N") |
| | | && basDevp.getWrkNo()!=9991 |
| | | && basDevp.getWrkNo()!=9999) { |
| | | List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() |
| | | .in("io_type", 101, 110) |
| | | .eq("sta_no", task1.getStaNo())); |
| | | flag = false; |
| | | if (Cools.isEmpty(wrkMasts)) { |
| | | .le("wrk_sts", 14) |
| | | .eq("sta_no", task.getStaNo())); |
| | | List<WrkMast> wrkMasts1 = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("io_type", 1).eq("sta_no", task.getStaNo())); |
| | | if (Cools.isEmpty(wrkMasts)&&Cools.isEmpty(wrkMasts1)) { |
| | | //判断是否已经生成空料架搬运回空料架补库区 |
| | | //如果有的话,不在生成任务 |
| | | Task task2 = taskService.selectOne(new EntityWrapper<Task>().eq("sta_no", task1.getStaNo()).eq("source_sta_no", task1.getSourceStaNo())); |
| | | Task task2 = taskService.selectOne(new EntityWrapper<Task>().eq("task_type","AGV空料架回缓存区").eq("source_sta_no", task.getStaNo())); |
| | | //有入库任务搬运,需要生成空料架搬运到空料架缓冲区AGV任务 |
| | | if (Cools.isEmpty(task2)) { |
| | | |
| | | //生成AGV搬运出库任务 |
| | | // 保存工作档 |
| | | String SourceStaNo = ""; |
| | | if (task.getStaNo().equals("Z-401")) { |
| | | if (task.getStaNo().equals("401")) { |
| | | //大料架缓冲区 |
| | | SourceStaNo = "Q-E3"; |
| | | }else if (task.getStaNo().equals("Z-402")) { |
| | | }else if (task.getStaNo().equals("402")) { |
| | | SourceStaNo = "Q-E2"; |
| | | }else if (task.getStaNo().equals("Z-307")) { |
| | | }else if (task.getStaNo().equals("307")) { |
| | | SourceStaNo = "Q-E1"; |
| | | } |
| | | Task task3 = new Task(); |
| | | Date date = new Date(); |
| | | String TaskNo = task.getTaskNo() + "-" + date.getTime(); |
| | | String TaskNo = task.getTaskNo() + "bb" + date.getTime(); |
| | | task3.setWrkNo(999999) |
| | | .setTaskNo(TaskNo) |
| | | .setIoTime(date) |
| | | .setWrkSts(301L) // 工作状态:301.任务下发 |
| | | .setIoType(4) // 入出库状态: 3.站到站 4.站到区域 |
| | | .setTaskType("agv") |
| | | .setTaskType("AGV空料架回缓存区") |
| | | .setIoPri(10D) |
| | | .setFullPlt("Y") // 满板:Y |
| | | .setPicking("N") // 拣料 |
| | | .setExitMk("N")// 退出 |
| | | .setStaNo(task.getStaNo()) |
| | | .setSourceStaNo(SourceStaNo)//空料架缓存区E1 |
| | | .setStaNo(SourceStaNo) |
| | | .setSourceStaNo(task.getStaNo())//空料架缓存区E1 |
| | | .setEmptyMk("N")// 空板 |
| | | .setBarcode("")// 托盘码 |
| | | .setLinkMis("N") |
| | |
| | | .setAppeTime(date) |
| | | .setModiUser(9945L) |
| | | .setModiTime(date); |
| | | if (!taskService.insert(task)) { |
| | | if (!taskService.insert(task3)) { |
| | | throw new CoolException("保存工作档失败"); |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | }else if(basDevp != null && !Cools.isEmpty(basDevp.getInreq1()) |
| | | && basDevp.getInreq1().equals("N") |
| | | && basDevp.getLoading().equals("N") |
| | | ) { |
| | | flag = true; |
| | | } |
| | | |
| | | } |
| | | if (flag) { |
| | | if (flag || task.getTaskType().equals("AGV空料架回缓存区")) { |
| | | //AGV任务下发 |
| | | ReturnT<String> start = AGVTaskReportHandler.start(task); |
| | | if (!start.isSuccess()) { |
| | |
| | | if (!taskService.updateById(task)) { |
| | | log.error("工作档[workNo={}]标记待处理失败", task.getWrkNo()); |
| | | } |
| | | break; |
| | | }else { |
| | | task.setCtnType(task.getCtnType()+1); |
| | | task.setModiTime(new Date()); |