| | |
| | | throw new CoolException("条码长度不是8位===>>" + param.getBarcode()); |
| | | } |
| | | |
| | | if (Objects.isNull(param.getType())) { |
| | | param.setType("0"); |
| | | } |
| | | int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode())); |
| | | int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", param.getBarcode())); |
| | | int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode())); |
| | | int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>() |
| | | .eq(!Objects.isNull(param.getType()), "type", param.getType()) |
| | | .eq("zpallet", param.getBarcode())); |
| | | if (countLoc > 0 || countWrk > 0 || countwait > 0) { |
| | | throw new CoolException("组托档/工作档/库存条码数据已存在===>>" + param.getBarcode()); |
| | | } |
| | |
| | | waitPakin.setOrderId(detlDto.getOrderId()); |
| | | waitPakin.setBatch(detlDto.getBatch()); // 序列码 |
| | | waitPakin.setZpallet(param.getBarcode()); // 托盘码 |
| | | waitPakin.setThreeCode(detlDto.getThreeCode()); |
| | | waitPakin.setSuppCode(detlDto.getStandby1()); |
| | | waitPakin.setIoStatus("N"); // 入出状态 |
| | | waitPakin.setAnfme(detlDto.getAnfme()); // 数量 |
| | | waitPakin.setStatus("Y"); // 状态 |
| | |
| | | * @version 1.0 |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R OutCallAgv(AgvCallParams params, Long userId) { |
| | | /**获取入库最早的一条数据**/ |
| | | LocCache locCaches = locCacheService.selectOne(new EntityWrapper<LocCache>() |
| | |
| | | } |
| | | |
| | | @Override |
| | | // @Transactional(rollbackFor = Exception.class) |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R collectionInCall(AgvCallParams params, Long userId) { |
| | | if (Objects.isNull(params.getOrgSite())) { |
| | | throw new CoolException("源站点不能为空!!"); |
| | | } |
| | | |
| | | List<Task> tasks = taskService.selectList(new EntityWrapper<Task>().eq("barcode", params.getBarcode())); |
| | | if (!tasks.isEmpty()) { |
| | | throw new CoolException("托盘码已生成任务"); |
| | | } |
| | | |
| | | BasAreas basAreas = basAreasService.selectOne(new EntityWrapper<BasAreas>().eq("name", params.getTarSite())); |
| | | |
| | | List<LocCache> locCaches = locCacheService.selectList(new EntityWrapper<LocCache>() |
| | | .in("loc_sts", LocStsType.LOC_STS_TYPE_O.type, LocStsType.LOC_STS_TYPE_D.type) |
| | | .in("loc_sts", LocStsType.LOC_STS_TYPE_O.type) |
| | | .eq("area_id", basAreas.getId())); |
| | | if (locCaches.isEmpty()) { |
| | | throw new CoolException("当前暂无空库位!!"); |
| | | } |
| | | |
| | | generateAgvTask("agv", locCaches.get(0), params.getOrgSite(), params.getBarcode(), userId); |
| | | BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", params.getOrgSite())); |
| | | if (Objects.isNull(station)) { |
| | | throw new CoolException("源站点未检索到数据!!"); |
| | | } |
| | | |
| | | generateSOEOInTask("agv", locCaches.get(0), params.getOrgSite(), station.getBarcode(), userId); |
| | | |
| | | return R.ok(); |
| | | } |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void generateSOEOInTask(String type, LocCache loc, String orgSite, String barcode, Long userId) { |
| | | List<BasStationDetl> basStationDetls = basStationDetlService.selectList(new EntityWrapper<BasStationDetl>().eq("dev_no", orgSite)); |
| | | if (Objects.isNull(basStationDetls) || basStationDetls.isEmpty()) { |
| | | throw new CoolException("站点信息不存在!!"); |
| | | } |
| | | |
| | | |
| | | |
| | | List<Task> tasks = taskService.selectList(new EntityWrapper<Task>().eq("barcode", barcode)); |
| | | if (!tasks.isEmpty()) { |
| | | throw new CoolException("托盘已在任务执行中.."); |
| | | } |
| | | // 获取工作号 |
| | | int workNo = commonService.getWorkNo(WorkNoType.PICK.type); |
| | | // 保存工作档 |
| | | Task task = new Task(); |
| | | task.setWrkNo(workNo) |
| | | .setIoTime(new Date()) |
| | | .setWrkSts(1L) // 工作状态:11.生成出库ID |
| | | .setIoType(1) // 入出库状态: 11.库格移载 |
| | | .setTaskType("agv") |
| | | .setIoPri(10D) |
| | | .setLocNo(loc.getLocNo()) // 目标库位 |
| | | .setFullPlt("Y") // 满板:Y |
| | | .setPicking("N") // 拣料 |
| | | .setExitMk("N")// 退出 |
| | | .setSourceStaNo(orgSite) |
| | | .setEmptyMk(loc.getLocSts().equals("D") ? "Y" : "N")// 空板 |
| | | .setBarcode(barcode)// 托盘码 |
| | | .setLinkMis("N") |
| | | .setAppeUser(userId) |
| | | .setAppeTime(new Date()) |
| | | .setModiUser(userId) |
| | | .setModiTime(new Date()); |
| | | if (!taskService.insert(task)) { |
| | | throw new CoolException("保存工作档失败"); |
| | | } |
| | | |
| | | for (BasStationDetl basStationDetl : basStationDetls) { |
| | | TaskDetl wrkDetl = new TaskDetl(); |
| | | BeanUtils.copyProperties(basStationDetl, wrkDetl); |
| | | wrkDetl.setWrkNo(workNo) |
| | | .setIoTime(new Date()) |
| | | .setOrderNo(basStationDetl.getOrderNo()) |
| | | .setAnfme(basStationDetl.getAnfme()) |
| | | .setZpallet(basStationDetl.getBarcode()) |
| | | .setBatch(basStationDetl.getBatch()) |
| | | .setMatnr(basStationDetl.getMatnr()) |
| | | .setMaktx(basStationDetl.getMaktx()) |
| | | .setStandby1(basStationDetl.getStandby1()) |
| | | .setAppeUser(userId) |
| | | .setUnit(basStationDetl.getUnit()) |
| | | .setModel(basStationDetl.getModel()) |
| | | .setAppeTime(new Date()) |
| | | .setModiUser(userId); |
| | | |
| | | //保存工作档明细 |
| | | if (!taskDetlService.insert(wrkDetl)) { |
| | | throw new CoolException("保存工作档明细失败"); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | // 修改目标库位状态 |
| | | if (loc.getLocSts().equals(LocStsType.LOC_STS_TYPE_O.type)) { |
| | | loc.setLocSts(LocStsType.LOC_STS_TYPE_S.type); // S.入库预约 |
| | | loc.setModiTime(new Date()); |
| | | loc.setModiUser(userId); |
| | | if (!locCacheService.updateById(loc)) { |
| | | throw new CoolException("更新目标库位状态失败"); |
| | | } |
| | | } else { |
| | | throw new CoolException("移转失败,目标库位状态:" + loc.getLocSts$()); |
| | | } |
| | | |
| | | // 修改目标站点信息 |
| | | BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", orgSite)); |
| | | if (Objects.isNull(station)) { |
| | | throw new CoolException("站点不存在!!"); |
| | | } |
| | | |
| | | if (station.getLocSts().equals(LocStsType.LOC_STS_TYPE_F.type)) { |
| | | station.setLocSts("R"); // S.入库预约 |
| | | station.setBarcode(barcode); |
| | | station.setModiTime(new Date()); |
| | | station.setModiUser(userId); |
| | | if (!basStationService.updateById(station)) { |
| | | throw new CoolException("更新目标库位状态失败"); |
| | | } |
| | | } else { |
| | | throw new CoolException("移转失败,目标库位状态:" + station.getLocSts()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public R combCacehList(AgvCallParams params) { |
| | | if (Objects.isNull(params.getBarcode())) { |
| | | throw new CoolException("托盘码不能为空!!"); |
| | | if (Objects.isNull(params.getCarBarcode())) { |
| | | throw new CoolException("台车托盘码不能为空!!"); |
| | | } |
| | | if (Objects.isNull(params.getBsCode())) { |
| | | throw new CoolException("BS码不能为空!!"); |
| | |
| | | Task task = taskService.selectOne(new EntityWrapper<Task>() |
| | | .eq("io_type", TaskIOType.PICK_OUT.type) |
| | | .eq("wrk_sts", 14) |
| | | .eq("barcode", params.getBarcode())); |
| | | .eq("barcode", params.getCarBarcode())); |
| | | if (Objects.isNull(task)) { |
| | | throw new CoolException("数据错误:任务信息存在!!"); |
| | | } |
| | | |
| | | List<TaskDetl> taskDetl = taskDetlService.selectList(new EntityWrapper<TaskDetl>() |
| | | .eq("three_code", params.getBsCode()) |
| | | .eq("zpallet", params.getBarcode())); |
| | | .eq("wrk_no", task.getWrkNo()) |
| | | .eq("zpallet", params.getCarBarcode())); |
| | | |
| | | if (Objects.isNull(taskDetl) || taskDetl.isEmpty()) { |
| | | throw new CoolException("当前BS编码不存在!!"); |
| | |
| | | detlDtos.add(detlDto); |
| | | } |
| | | }); |
| | | |
| | | BasContainer container = basContainerService.selectOne(new EntityWrapper<BasContainer>().eq("barcode", param.getBarcode())); |
| | | if (Objects.isNull(container)) { |
| | | throw new CoolException("数据错误:容器码不存在!!"); |
| | | } |
| | | if (container.getMixMax() < detlDtos.size()) { |
| | | throw new CoolException("超出容器最大混装数量,当前容器最大数量为:" + container.getMixMax() + "!!"); |
| | | } |
| | | Set<String> matnrs = detlDtos.stream().map(DetlDto::getMatnr).collect(Collectors.toSet()); |
| | | List<Mat> mats = matService.selectList(new EntityWrapper<Mat>().in("matnr", matnrs)); |
| | | Set<Long> tagIds = mats.stream().map(Mat::getTagId).collect(Collectors.toSet()); |
| | | if (tagIds.size() > 1) { |
| | | throw new CoolException("组托物料类型不一致,只有相同的物料分类才可以组托!!"); |
| | | } |
| | | //还可以放入多少种物料 |
| | | Integer suplus = container.getMixMax(); |
| | | Date now = new Date(); |
| | | for (DetlDto detlDto : detlDtos) { |
| | | Mat mat = matService.selectByMatnr(detlDto.getMatnr()); |
| | | if (Cools.isEmpty(mat)) { |
| | | throw new CoolException(detlDto.getMatnr() + "商品档案不存在"); |
| | | } |
| | | if (mat.getUpQty().compareTo(detlDto.getAnfme()) < 0) { |
| | | throw new CoolException("物料:" + detlDto.getMatnr() + "单次最大组托上限为:" + mat.getUpQty()); |
| | | //最多可放数量 |
| | | Double singleMax = mat.getUpQty() * suplus; |
| | | if (singleMax.compareTo(detlDto.getAnfme()) < 0) { |
| | | throw new CoolException("物料:" + detlDto.getMatnr() + "单次组托上限为:" + mat.getUpQty() + ",当前总量超出托盘装载上限!!"); |
| | | } |
| | | BigDecimal decimal = new BigDecimal(detlDto.getAnfme() / mat.getUpQty()); |
| | | //当前物料需要占用料箱格数 |
| | | Integer curr = decimal.setScale(0, RoundingMode.CEILING).intValue(); |
| | | suplus = suplus - curr; |
| | | if (suplus < 0) { |
| | | throw new CoolException("物料:" + detlDto.getMatnr() + ", 超出当前托盘装载上限!!"); |
| | | } |
| | | |
| | | WaitPakin waitPakin = new WaitPakin(); |
| | | BeanUtils.copyProperties(mat, waitPakin); |
| | | waitPakin.setBatch(detlDto.getBatch()); |
| | | waitPakin.setZpallet(param.getBarcode()); |
| | | //设置组托类型 |
| | | waitPakin.setType(CommonEnum.COMMON_ENUM_Y.type + ""); |
| | | waitPakin.setType(param.getType()); |
| | | waitPakin.setIoStatus("N"); |
| | | waitPakin.setAnfme(detlDto.getAnfme()); |
| | | waitPakin.setThreeCode(detlDto.getThreeCode()); |
| | |
| | | throw new CoolException("站点不能为空!!"); |
| | | } |
| | | //TODO 修改缓存站点状态及数据 |
| | | Task task = taskService.selectOne(new EntityWrapper<Task>().eq("barcode", param.getBarcode())); |
| | | Task task = taskService.selectOne(new EntityWrapper<Task>() |
| | | .eq("wrk_sts", 14L) |
| | | .eq("barcode", param.getCarBarcode())); |
| | | if (Objects.isNull(task)) { |
| | | throw new CoolException("数据错误,任务不存在!!"); |
| | | } |
| | |
| | | if (!basStationService.updateById(station)) { |
| | | throw new CoolException("站点状态修改失败!"); |
| | | } |
| | | |
| | | if (!basStationDetlService.delete(new EntityWrapper<BasStationDetl>().eq("dev_no", station.getDevNo()))) { |
| | | throw new CoolException("站点删除失败!"); |
| | | } |
| | | basStationDetlService.delete(new EntityWrapper<BasStationDetl>().eq("dev_no", station.getDevNo())); |
| | | |
| | | //任务完成 |
| | | task.setWrkSts(15L); |
| | |
| | | throw new CoolException("AGV任务完成失败!!"); |
| | | } |
| | | |
| | | List<WaitPakin> waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("barcodee", param.getBarcode())); |
| | | List<WaitPakin> waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode())); |
| | | if (Objects.isNull(waitPakins) || waitPakins.isEmpty()) { |
| | | throw new CoolException("数据错误,组拖档已不存在!!"); |
| | | } |
| | | |
| | | generateCrnInTask(waitPakins, station, param.getLocType1(), userId); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R collectionPakin(CollectionPakinParams params, Long userId) { |
| | | List<BasStation> basStations = basStationService.selectList(new EntityWrapper<BasStation>().eq("barcode", params.getTarBarcode())); |
| | | if (basStations.isEmpty() && Cools.isEmpty(params.getDevNo())) { |
| | | throw new CoolException("请输入站点号"); |
| | | } |
| | | BasStation basStation = null; |
| | | if (!basStations.isEmpty()) { |
| | | basStation = basStations.get(0); |
| | | }else { |
| | | basStation = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", params.getDevNo())); |
| | | } |
| | | if (Cools.isEmpty(basStation)){ |
| | | throw new CoolException("请输入正确的站点号"); |
| | | } |
| | | for (CollectionPakinParams.CombMat combMat : params.getCombMats()) { |
| | | if (combMat.getWorkQty().compareTo(BigDecimal.ZERO) == 0) { |
| | | continue; |
| | | } |
| | | |
| | | OrderPakin orderPakin = orderPakinService.selectByNo(combMat.getOrderNo()); |
| | | if (Cools.isEmpty(orderPakin)) { |
| | | throw new CoolException("未找到备货入库单"); |
| | | } |
| | | |
| | | UpdateDetailsOfPakin(orderPakin,combMat); |
| | | |
| | | BasStationDetl basStationDetl = basStationDetlService.selectOne(new EntityWrapper<BasStationDetl>() |
| | | .eq("dev_no", basStation.getDevNo()) |
| | | .eq("matnr", combMat.getMatnr()) |
| | | .eq("batch", combMat.getBatch()) |
| | | .eq("standby1", combMat.getStandby1()) |
| | | ); |
| | | if (Cools.isEmpty(basStationDetl)) { |
| | | basStationDetl = new BasStationDetl(); |
| | | Mat mat = matService.selectByMatnr(combMat.getMatnr()); |
| | | BeanUtils.copyProperties(mat,basStationDetl); |
| | | basStationDetl |
| | | .setOrderNo(orderPakin.getOrderNo()) |
| | | .setDevNo(basStation.getDevNo()) |
| | | .setBarcode(params.getTarBarcode()) |
| | | .setBatch(combMat.getBatch()) |
| | | .setStandby1(combMat.getStandby1()) |
| | | .setAnfme(combMat.getWorkQty().doubleValue()) |
| | | ; |
| | | if (!basStationDetlService.insert(basStationDetl)){ |
| | | throw new CoolException("插入明细失败"); |
| | | } |
| | | |
| | | |
| | | }else { |
| | | BigDecimal anfme = new BigDecimal(basStationDetl.getAnfme().toString()).add(combMat.getWorkQty()); |
| | | basStationDetl.setAnfme(anfme.doubleValue()); |
| | | if (!basStationDetlService.updateById(basStationDetl)){ |
| | | throw new CoolException("更新明细数据失败"); |
| | | } |
| | | |
| | | } |
| | | } |
| | | if (basStation.getLocSts().equals(LocStsType.LOC_STS_TYPE_D.type) || basStation.getLocSts().equals(LocStsType.LOC_STS_TYPE_O.type)) { |
| | | basStation.setBarcode(params.getTarBarcode()); |
| | | basStation.setLocSts(LocStsType.LOC_STS_TYPE_F.type); |
| | | basStationService.updateById(basStation); |
| | | } |
| | | |
| | | return R.ok(); |
| | | } |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void UpdateDetailsOfPakin(OrderPakin orderPakin,CollectionPakinParams.CombMat combMat){ |
| | | OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectOne(new EntityWrapper<OrderDetlPakin>() |
| | | .eq("order_id", orderPakin.getId()) |
| | | .eq("matnr", combMat.getMatnr()) |
| | | .eq("batch", combMat.getBatch()) |
| | | .eq("standby1", combMat.getStandby1()) |
| | | ); |
| | | if (Cools.isEmpty(orderDetlPakin)) { |
| | | throw new CoolException("检索单据明细数据失败"); |
| | | } |
| | | if (orderDetlPakin.getWorkQty() >= orderDetlPakin.getAnfme()) { |
| | | throw new CoolException("请勿超出订单明细数量"); |
| | | } |
| | | BigDecimal workQty = new BigDecimal(orderDetlPakin.getWorkQty().toString()).add(combMat.getWorkQty()); |
| | | orderDetlPakin.setWorkQty(workQty.doubleValue()); |
| | | if (!orderDetlPakinService.updateById(orderDetlPakin)){ |
| | | throw new CoolException("更新单据明细数据失败"); |
| | | } |
| | | if (!orderPakin.getSettle().equals(2L)){ |
| | | orderPakin.setSettle(2L); |
| | | if (!orderPakinService.updateById(orderPakin)){ |
| | | throw new CoolException("更新单据状态失败"); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public R collectionPakinView(CollectionPakinParams params) { |
| | | |
| | | WrkMast wrkMast = wrkMastService.selectByBarcode(params.getOrgBarcode()); |
| | | if (Cools.isEmpty(wrkMast)) { |
| | | throw new CoolException("未找到任务"); |
| | | } |
| | | |
| | | if (wrkMast.getIoType().equals(TaskIOType.ALL_OUT.type) && wrkMast.getIoType().equals(TaskIOType.PICK_OUT.type)){ |
| | | throw new CoolException("人物类型错误"); |
| | | } |
| | | |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); |
| | | if (Cools.isEmpty(wrkDetls)) { |
| | | throw new CoolException("未找到任务明细"); |
| | | } |
| | | |
| | | |
| | | return R.ok(wrkDetls); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @date 2025/12/9 13:54 |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void generateCrnInTask(List<WaitPakin> waitPakins, BasStation station, Short locType, Long userId) { |
| | | public void generateCrnInTask(List<WaitPakin> waitPakins, BasStation station, Short locType, Long userId) { |
| | | Date now = new Date(); |
| | | StationRela rela = stationRelaService.selectOne(new EntityWrapper<StationRela>() |
| | | .eq("dev_no", station.getDevNo()) |
| | | .eq("agv_sta", station.getDevNo()) |
| | | .orderAsc(Arrays.asList("crn_sta")) |
| | | .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY")); |
| | | |
| | | if (Objects.isNull(rela)) { |
| | |
| | | LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); |
| | | WaitPakin pakin = waitPakins.stream().findFirst().get(); |
| | | FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(pakin); |
| | | StartupDto dto = commonService.getLocNo( 1, sourceStaNo.getDevNo(),findLocNoAttributeVo, locTypeDto); |
| | | StartupDto dto = commonService.getLocNo(1, sourceStaNo.getDevNo(), findLocNoAttributeVo, locTypeDto); |
| | | int workNo = dto.getWorkNo(); |
| | | // 生成工作档 |
| | | WrkMast wrkMast = new WrkMast(); |
| | |
| | | }); |
| | | // 更新入库通知档 ioStatus ===>> Y |
| | | Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>() |
| | | .eq("zpallet", pakin.getBarcode()); |
| | | .eq("zpallet", pakin.getZpallet()); |
| | | WaitPakin setParam = new WaitPakin(); |
| | | setParam.setLocNo(dto.getLocNo()); |
| | | setParam.setIoStatus("Y"); |
| | |
| | | // 更新源站点信息 |
| | | sourceStaNo.setWrkNo(workNo); |
| | | sourceStaNo.setModiTime(now); |
| | | if (!basDevpService.updateById(sourceStaNo)){ |
| | | if (!basDevpService.updateById(sourceStaNo)) { |
| | | throw new CoolException("更新源站失败"); |
| | | } |
| | | // 更新目标库位状态 |
| | | LocMast locMast = locMastService.selectById(dto.getLocNo()); |
| | | if (locMast.getLocSts().equals("O")){ |
| | | if (locMast.getLocSts().equals("O")) { |
| | | locMast.setLocSts("S"); // S.入库预约 |
| | | locMast.setModiTime(now); |
| | | if (!locMastService.updateById(locMast)){ |
| | | if (!locMastService.updateById(locMast)) { |
| | | throw new CoolException("改变库位状态失败"); |
| | | } |
| | | } else { |
| | | throw new CoolException(dto.getLocNo()+"目标库位已被占用"); |
| | | throw new CoolException(dto.getLocNo() + "目标库位已被占用"); |
| | | } |
| | | |
| | | } |
| | |
| | | } |
| | | List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>() |
| | | .eq("area_id", basAreas.getId()) |
| | | .eq("loc_id", locCaches.getId())); |
| | | .eq("loc_no", locCaches.getLocNo())); |
| | | if (Objects.isNull(locDetls) || locDetls.isEmpty()) { |
| | | throw new CoolException("库存明细不存在!!"); |
| | | } |
| | |
| | | .orderAsc(Arrays.asList("row1", "bay1", "lev1")) |
| | | .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY")); |
| | | locMasts.add(locMast); |
| | | |
| | | //空板出库 |
| | | generateTask(locMasts, TaskIOType.EMPTY_OUT.type, basDevp, userId); |
| | | |
| | | } else { |
| | | if (!locMasts.isEmpty()) { |
| | | //生成堆垛机出库任务 |
| | | generateTask(locMasts, TaskIOType.MERGE_OUT.type, basDevp, userId); |
| | | } |
| | | //生成堆垛机出库任务 |
| | | generateTask(locMasts, TaskIOType.MERGE_OUT.type, basDevp, userId); |
| | | // if (!locMasts.isEmpty()) { |
| | | // |
| | | // } |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | // 修改库位状态: F.在库 ====>>> R.出库预约/P.拣料/盘点/并板出库中 |
| | | locMast = locMastService.selectById(locMast.getLocNo()); |
| | | if (locMast.getLocSts().equals(LocStsType.LOC_STS_TYPE_F.type)) { |
| | | if (locMast.getLocSts().equals(LocStsType.LOC_STS_TYPE_F.type) || locMast.getLocSts().equals(LocStsType.LOC_STS_TYPE_D.type)) { |
| | | locMast.setLocSts(ioType == 101 ? "R" : "P"); |
| | | locMast.setModiUser(userId); |
| | | locMast.setModiTime(now); |
| | |
| | | .setModel(pakin.getModel()) |
| | | .setAppeTime(new Date()) |
| | | .setModiUser(userId); |
| | | taskDetls.add(wrkDetl); |
| | | //保存工作档明细 |
| | | if (!taskDetlService.insert(wrkDetl)) { |
| | | throw new CoolException("保存工作档明细失败"); |
| | | } |
| | | }); |
| | | //保存工作档明细 |
| | | if (!taskDetlService.insertBatch(taskDetls)) { |
| | | throw new CoolException("保存工作档明细失败"); |
| | | } |
| | | } |
| | | |
| | | loc.setLocSts(LocStsType.LOC_STS_TYPE_R.type); |
| | |
| | | List<WaitPakin> pakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode)); |
| | | if (Objects.isNull(pakins) || pakins.isEmpty()) { |
| | | throw new CoolException("组托信息不存在!!"); |
| | | } |
| | | |
| | | List<Task> tasks = taskService.selectList(new EntityWrapper<Task>().eq("barcode", barcode)); |
| | | if (!tasks.isEmpty()) { |
| | | throw new CoolException("托盘已在任务执行中.."); |
| | | } |
| | | // 获取工作号 |
| | | int workNo = commonService.getWorkNo(WorkNoType.PICK.type); |
| | |
| | | |
| | | // 修改目标站点信息 |
| | | BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", orgSite)); |
| | | if (station.getLocSts().equals("O")) { |
| | | if (Objects.isNull(station)) { |
| | | throw new CoolException("站点不存在!!"); |
| | | } |
| | | |
| | | if (station.getLocSts().equals(LocStsType.LOC_STS_TYPE_O.type)) { |
| | | station.setLocSts("R"); // S.入库预约 |
| | | station.setBarcode(barcode); |
| | | station.setModiTime(new Date()); |