| | |
| | | generateTaskDto(locDtos,taskDtos,agvTaskDtos); |
| | | |
| | | //生成AGV出库任务 |
| | | agvWorkService.stockOutWrkMast(agvTaskDtos, getUserId()); |
| | | agvWorkService.processOut(agvTaskDtos, getUserId()); |
| | | |
| | | // 生成出库任务 |
| | | taskDtos.stream().map(TaskDto::getLocNo).distinct().collect(Collectors.toList()); |
| | | for (TaskDto taskDto : taskDtos) { |
| | | BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo()); |
| | | workService.stockOut(staNo, taskDto, getUserId()); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | |
| | | void stockOutWrkMast(List<TaskDto> agvTaskDtos, Long userId); |
| | | |
| | | /* |
| | | 生成出库任务 |
| | | */ |
| | | void processOut(List<TaskDto> agvTaskDtos, Long userId); |
| | | |
| | | /* |
| | | 生成拣料入库任务 |
| | | */ |
| | | void pickIn(List<AgvWrkMast> agvWrkMastList); |
| | |
| | | }); |
| | | } |
| | | |
| | | /* |
| | | 加工出库 |
| | | */ |
| | | @Transactional |
| | | public void processOut(List<TaskDto> agvTaskDtos, Long userId) { |
| | | Date now = new Date(); |
| | | |
| | | agvTaskDtos.forEach(taskDto -> { |
| | | |
| | | List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectByTaskDto(taskDto); |
| | | |
| | | //AgvLocDetl agvLocDetl = agvLocDetlService.selectOne(new EntityWrapper<AgvLocDetl>().eq("loc_no", taskDto.getLocNo())); |
| | | |
| | | //工作档所需参数 |
| | | |
| | | long wrkSts = 21L; |
| | | String sourceLocNo = taskDto.getLocNo(); |
| | | String targetLocNo = taskDto.getAgvStaNo(); |
| | | //String barcode = agvLocDetls.get(0).getSuppCode(); |
| | | String containerCode = taskDto.getLocDtos().get(0).getContainerCode(); |
| | | |
| | | |
| | | //判断是否全板出库 |
| | | int ioType = 107; |
| | | //生成工作档 |
| | | AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,containerCode,now,userId,Short.valueOf(containerCode.substring(0,2))); |
| | | //生成工作档明细 |
| | | taskDto.getLocDtos().forEach(locDto -> { |
| | | if (!BaseController.isJSON(locDto.getOrderNo())) { |
| | | //明细档所需参数 |
| | | createWrkDetlReWrite(locDto.getMatnr(), |
| | | wrkMast.getWrkNo(), |
| | | locDto.getOrderNo(), |
| | | locDto.getBatch(), |
| | | locDto.getAnfme(), |
| | | locDto.getContainerCode(), |
| | | now, |
| | | userId, |
| | | locDto.getCsocode(), |
| | | locDto.getIsoseq(), |
| | | locDto.getProcessSts()); |
| | | }else { |
| | | List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class); |
| | | orderDtoList.forEach(orderDto -> { |
| | | //明细档所需参数 |
| | | createWrkDetlReWrite(locDto.getMatnr(), |
| | | wrkMast.getWrkNo(), |
| | | orderDto.getOrderNo(), |
| | | locDto.getBatch(), |
| | | orderDto.getAnfme(), |
| | | locDto.getContainerCode(), |
| | | now, |
| | | userId, |
| | | locDto.getCsocode(), |
| | | locDto.getIsoseq(), |
| | | locDto.getProcessSts()); |
| | | }); |
| | | } |
| | | |
| | | //修改订单信息 |
| | | modifyOrderDetl(locDto, userId); |
| | | }); |
| | | // //修改订单信息 |
| | | // modifyOrderDetl(taskDto.getLocDtos().get(0), userId); |
| | | //更新源站点信息 |
| | | String locSts = "R"; |
| | | updateAgvLocMast(agvLocMastService.selectById(sourceLocNo),locSts); |
| | | //更新目标站点状态 |
| | | //locSts = ioType == 101 ? "S" : "Q"; |
| | | updateAgvBasDevp(agvBasDevpService.selectById(targetLocNo),"S"); |
| | | |
| | | }); |
| | | } |
| | | |
| | | //拣料入库 |
| | | @Transactional |
| | | public void pickIn(List<AgvWrkMast> agvWrkMastList){ |
| | |
| | | locType = 4; |
| | | } else if (containerType == 20 && agvBasDevp.getFloor() == 3) { |
| | | locType = 2; |
| | | } else if (containerType == 30) { |
| | | locType = 3; |
| | | } else { |
| | | locType = agvBasDevp.getLocType1(); |
| | | } |