| | |
| | | import com.zy.asrs.entity.param.FullStoreParam; |
| | | import com.zy.asrs.entity.param.LocDetlAdjustParam; |
| | | import com.zy.asrs.entity.param.StockOutParam; |
| | | import com.zy.asrs.enums.ContainerType; |
| | | import com.zy.asrs.enums.LocAreaType; |
| | | import com.zy.asrs.mapper.LocMastMapper; |
| | | import com.zy.asrs.entity.result.FindLocNoAttributeVo; |
| | |
| | | // List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList()); |
| | | // List<String> batchs = param.getList().stream().map(FullStoreParam.MatCodeStore::getBatch).distinct().collect(Collectors.toList()); |
| | | FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(param.getList().get(0)); |
| | | |
| | | // BasContainer container = basContainerService.selectOne(new EntityWrapper<BasContainer>().eq("barcode", param.getBarcode())); |
| | | // if (Objects.isNull(container)) { |
| | | // throw new CoolException("容器编码未维护,请维护后再操作!!"); |
| | | // } |
| | | // |
| | | // Integer whsType = 1; |
| | | // Short lcoType = 1; |
| | | // //用于判断料箱托盘,料箱,笼框 |
| | | // if (!container.getType().equals(ContainerType.CONTAINER_TYPE_BOX.type)) { |
| | | // whsType = 2; |
| | | // if (container.getType().equals(ContainerType.CONTAINER_TYPE_SALVER.type)) { |
| | | // lcoType = 2; |
| | | // } |
| | | // } |
| | | |
| | | StartupDto dto = commonService.getLocNo(1, param.getDevpNo(), sourceStaNo.getDevNo(), findLocNoAttributeVo, locTypeDto); |
| | | if (Cools.isEmpty(dto)) { |
| | | throw new CoolException("查询库位失败!!==》startupFullPutStore ==》 commonService.getLocNo"); |
| | |
| | | locDetl.getBoxType1(), locDetl.getBoxType2(), locDetl.getBoxType3(), locDetl.getAnfme(), locDetl.getThreeCode())); |
| | | locDetl.setOwner(param.getOwnerId()); |
| | | try { |
| | | locDetlService.update(locDetl, new EntityWrapper<LocDetl>().eq("loc_no", locNo).eq("matnr", locDetl.getMatnr())); |
| | | locDetlService.update(locDetl, new EntityWrapper<LocDetl>().eq("loc_no", locNo) |
| | | .eq("supp_code", locDetl.getStandby1()) |
| | | .eq("matnr", locDetl.getMatnr())); |
| | | } catch (Exception e) { |
| | | throw new Exception("更新库存明细拥有者字段信息出错了"); |
| | | } |
| | |
| | | String orderNo = taskDto.getLocDtos().get(0).getOrderNo(); |
| | | // OrderPakout orderPakout = orderPakOutService.selectByNo(orderNo); |
| | | |
| | | int ioType = (taskDto.isAll() ? 101 : 103); |
| | | if(ioType == 101){ |
| | | // int ioType = (taskDto.isAll() ? 101 : 103); |
| | | int ioType = 103; |
| | | if (ioType == 101) { |
| | | boolean DiffQty = taskDto.getLocDtos().stream().allMatch(locDto -> |
| | | locDetlService.selectOne(new EntityWrapper<LocDetl>() |
| | | .eq("loc_no", locDto.getLocNo()) |
| | | .eq("matnr", locDto.getMatnr()) |
| | | .eq("batch", locDto.getBatch()) |
| | | .eq("standby1",locDto.getStandby1()) |
| | | .eq(!Cools.isEmpty(locDto.getBatch()), "batch", locDto.getBatch()) |
| | | .eq("standby1", locDto.getStandby1()) |
| | | ).getDiffQty().compareTo(BigDecimal.ZERO) == 0 |
| | | ); |
| | | if (!DiffQty){ |
| | | if (!DiffQty) { |
| | | ioType = 103; |
| | | } |
| | | } |
| | |
| | | wrkDetl.setZpallet(wrkMast.getBarcode()); |
| | | wrkDetl.setIoTime(now); |
| | | wrkDetl.setWrkNo(workNo); |
| | | wrkDetl.setBoxType1(locDto.getBoxType1()); |
| | | wrkDetl.setBatch(locDto.getBatch()); |
| | | wrkDetl.setOrderNo(locDto.getOrderNo()); |
| | | wrkDetl.setAnfme(locDto.getAnfme()); // 数量 |
| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void checkStockOut(BasDevp staNo, TaskDto taskDto, Long userId) { |
| | | Date now = new Date(); |
| | | List<LocDto> locDtos = taskDto.getLocDtos(); |
| | | List<LocDto> locDtos = taskDto.getLocDtos().stream().distinct().collect(Collectors.toList()); |
| | | // Map<String, List<LocDto>> collect = taskDto.getLocDtos().stream().collect(Collectors.groupingBy(LocDto::getLocNo)); |
| | | for (LocDto locDto : locDtos) { |
| | | if (!taskDto.getLocNo().equals(locDto.getLocNo()) && !taskDto.getStaNo().equals(locDto.getStaNo())) { |
| | | throw new CoolException("订单出库异常,请联系管理员"); |
| | |
| | | throw new CoolException("保存工作档失败,出库库位号:" + taskDto.getLocNo()); |
| | | } |
| | | // 生成工作档明细 |
| | | for (LocDto locDto : taskDto.getLocDtos()) { |
| | | for (LocDto locDto : locDtos) { |
| | | if (locDto.getAnfme() == null || locDto.getAnfme() <= 0.0D) { |
| | | continue; |
| | | } |
| | | |
| | | List<CheckOrderDetl> checkOrderDetls = checkOrderDetlService.selectList(new EntityWrapper<CheckOrderDetl>() |
| | | CheckOrderDetl checkOrderDetls = checkOrderDetlService.selectOne(new EntityWrapper<CheckOrderDetl>() |
| | | .eq("loc_no", locDto.getLocNo()) |
| | | .eq("matnr", locDto.getMatnr()) |
| | | .eq("batch", locDto.getBatch()) |
| | | .eq("order_no", locDto.getOrderNo()) |
| | | ); |
| | | .eq("supp_code", locDto.getSuppCode()) |
| | | .eq("order_no", locDto.getOrderNo())); |
| | | |
| | | if (checkOrderDetls.size() > 1) { |
| | | if (Objects.isNull(checkOrderDetls)) { |
| | | throw new CoolException("数据大于1,请检查数据"); |
| | | } |
| | | |
| | | WrkDetl wrkDetl = new WrkDetl(); |
| | | wrkDetl.sync(checkOrderDetls.get(0)); |
| | | wrkDetl.setOrderId(checkOrderDetls.get(0).getId()); |
| | | wrkDetl.sync(checkOrderDetls); |
| | | wrkDetl.setOrderId(checkOrderDetls.getId()); |
| | | wrkDetl.setZpallet(wrkMast.getBarcode()); |
| | | wrkDetl.setIoTime(now); |
| | | wrkDetl.setBoxType1(locDto.getBoxType1()); |
| | | wrkDetl.setWrkNo(workNo); |
| | | wrkDetl.setBatch(locDto.getBatch()); |
| | | wrkDetl.setOrderNo(locDto.getOrderNo()); |
| | |
| | | throw new CoolException("保存工作档明细失败"); |
| | | } |
| | | // 修改订单明细 |
| | | checkOrderDetls.get(0).setStatus(2); |
| | | if (!checkOrderDetlService.updateById(checkOrderDetls.get(0))){ |
| | | checkOrderDetls.setStatus(2); |
| | | if (!checkOrderDetlService.updateById(checkOrderDetls)) { |
| | | throw new CoolException("保存订单明细失败"); |
| | | } |
| | | } |
| | |
| | | } |
| | | // 获取库位 |
| | | LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", taskDto.getLocNo())); |
| | | int ioType = (taskDto.isAll() ? 101 : 103); |
| | | int ioType = 103; |
| | | // 生成工作号 |
| | | int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); |
| | | int workNo = commonService.getWorkNo(4); |
| | | |
| | | Task task = new Task(); |
| | | task.setWrkNo(workNo) |
| | | .setIoTime(new Date()) |
| | | .setWrkSts(11L) // 工作状态:11.生成出库ID |
| | | .setWrkSts(301L) // 工作状态:11.生成出库ID |
| | | .setIoType(ioType) // 入出库状态 |
| | | .setTaskType("agv") |
| | | .setIoPri(10D) |
| | |
| | | .setIoTime(new Date()) |
| | | .setOrderNo(locDto.getOrderNo()) |
| | | .setAnfme(locDto.getAnfme()) |
| | | .setBoxType1(locDto.getBoxType1()) |
| | | .setZpallet(locCache.getBarcode()) |
| | | .setBatch(locDto.getBatch()) |
| | | .setAppeUser(userId) |
| | |
| | | locCache.setLocSts(ioType == 101 ? "R" : "P"); |
| | | locCache.setModiUser(userId); |
| | | locCache.setModiTime(now); |
| | | if (!locCacheService.updateById(locCache)) { |
| | | if (!locCacheService.update(locCache, new EntityWrapper<LocCache>().eq("loc_no", locCache.getLocNo()))) { |
| | | throw new CoolException("预约库位状态失败,库位号:" + taskDto.getLocNo()); |
| | | } |
| | | } else { |
| | |
| | | wrkDetl.sync(locDetl); |
| | | wrkDetl.setWrkNo(workNo); |
| | | wrkDetl.setIoTime(now); |
| | | wrkDetl.setBoxType1(locDetl.getBoxType1()); |
| | | wrkDetl.setAnfme(locDetl.getAnfme()); |
| | | wrkDetl.setAppeTime(now); |
| | | wrkDetl.setAppeUser(userId); |
| | |
| | | if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch())) { |
| | | if (!locDetl.getAnfme().equals(adjust.getCount())) { |
| | | // todo 盘点记录 |
| | | // 修改库存 |
| | | if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(), |
| | | locDetl.getStandby1(), locDetl.getStandby2(), locDetl.getStandby3(), locDetl.getBoxType1(), locDetl.getBoxType2(), locDetl.getBoxType3())) { |
| | | throw new CoolException(locDetl.getLocNo() + "库位," + locDetl.getMatnr() + "商品," + locDetl.getBatch() + "批号修改数量失败"); |
| | | locDetl.setSuppCode(adjust.getSuppCode()); |
| | | locDetl.setBoxType1(adjust.getBoxType1()); |
| | | locDetl.setAnfme(adjust.getCount()); |
| | | locDetl.setStandby1(adjust.getSuppCode()); |
| | | // locDetl.setZpallet(locDetl.getZpallet()); |
| | | |
| | | |
| | | if (!locDetlService.update(locDetl, new EntityWrapper<LocDetl>().eq("loc_no", locDetl.getLocNo()))) { |
| | | throw new CoolException(locDetl.getLocNo() + "库位," + locDetl.getMatnr() + "商品," + locDetl.getSuppCode() + "供应商修改数量失败"); |
| | | } |
| | | // 修改库存 |
| | | // if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(), |
| | | // locDetl.getStandby1(), locDetl.getStandby2(), locDetl.getStandby3(), locDetl.getBoxType1(), locDetl.getBoxType2(), locDetl.getBoxType3())) { |
| | | // throw new CoolException(locDetl.getLocNo() + "库位," + locDetl.getMatnr() + "商品," + locDetl.getBatch() + "批号修改数量失败"); |
| | | // } |
| | | // 保存调整记录 |
| | | AdjDetl adjDetl = new AdjDetl(); |
| | | adjDetl.setLocNo(locDetl.getLocNo()); |
| | |
| | | adjDetl.setModiUser(userId); |
| | | adjDetl.setAppeTime(now); |
| | | adjDetl.setAppeUser(userId); |
| | | adjDetlService.save(adjDetl, userId); |
| | | |
| | | if (!adjDetlService.insert(adjDetl)) { |
| | | throw new CoolException("调整记录保存失败!!"); |
| | | } |
| | | // adjDetlService.save(adjDetl, userId); |
| | | if (updateFlag) { |
| | | wrkMast.setWrkNo(commonService.getWorkNo(3)); |
| | | wrkMast.setIoType(23); |
| | |
| | | WrkDetlLog wrkDetl = new WrkDetlLog(); |
| | | wrkDetl.sync(locDetl); |
| | | wrkDetl.setWrkNo(wrkMast.getWrkNo()); |
| | | wrkDetl.setBoxType1(locDetl.getBoxType1()); |
| | | wrkDetl.setIoTime(wrkMast.getIoTime()); |
| | | wrkDetl.setAnfme(adjust.getCount()); |
| | | wrkDetl.setAppeTime(now); |
| | |
| | | // todo 盘点记录 |
| | | if (!locDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(), |
| | | locDetl.getStandby1(), locDetl.getStandby2(), locDetl.getStandby3(), locDetl.getBoxType1(), locDetl.getBoxType2(), locDetl.getBoxType3())) { |
| | | throw new CoolException("删除" + locDetl.getLocNo() + "库位," + locDetl.getMatnr() + "商品," + locDetl.getBatch() + "批号库存明细失败"); |
| | | // throw new CoolException("删除" + locDetl.getLocNo() + "库位," + locDetl.getMatnr() + "商品," + locDetl.getBatch() + "批号库存明细失败"); |
| | | } |
| | | // 保存调整记录 |
| | | AdjDetl adjDetl = new AdjDetl(); |
| | |
| | | locDetl.setZpallet(locMast.getBarcode()); |
| | | locDetl.setAnfme(adjust.getCount()); // 数量 |
| | | locDetl.setModiUser(userId); // 操作人员信息 |
| | | locDetl.setSuppCode(adjust.getSuppCode()); |
| | | locDetl.setStandby1(adjust.getSuppCode()); |
| | | locDetl.setBoxType1(adjust.getBoxType1()); |
| | | locDetl.setModiTime(now); |
| | | locDetl.setAppeUser(userId); |
| | | locDetl.setAppeTime(now); |
| | |
| | | wrkDetl.sync(locDetl); |
| | | wrkDetl.setWrkNo(wrkMast.getWrkNo()); |
| | | wrkDetl.setIoTime(wrkMast.getIoTime()); |
| | | wrkDetl.setBoxType1(locDetl.getBoxType1()); |
| | | wrkDetl.setAnfme(adjust.getCount()); |
| | | wrkDetl.setAppeTime(now); |
| | | wrkDetl.setModiTime(now); |
| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void cancelWrkMast(String workNo, Long userId) { |
| | | Date now = new Date(); |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",workNo)); |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", workNo)); |
| | | if (Cools.isEmpty(wrkMast)) { |
| | | throw new CoolException(workNo + "工作档不存在"); |
| | | } |
| | |
| | | |
| | | if (wrkMast.getIoType() == 107) { |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); |
| | | if (!Cools.isEmpty(wrkDetls.get(0).getOrderNo())){ |
| | | |
| | | if (!Objects.isNull(wrkDetls) && !wrkDetls.isEmpty()) { |
| | | for (WrkDetl wrkDetl : wrkDetls) { |
| | | CheckOrderDetl checkOrderDetl = checkOrderDetlService.selectOne(new EntityWrapper<CheckOrderDetl>() |
| | | .eq("loc_no", wrkMast.getSourceLocNo()) |
| | |
| | | .eq("batch", wrkDetl.getBatch()) |
| | | .eq("order_no", wrkDetl.getOrderNo()) |
| | | ); |
| | | checkOrderDetl.setStatus(1); |
| | | checkOrderDetlService.updateById(checkOrderDetl); |
| | | if (!Objects.isNull(checkOrderDetl)) { |
| | | checkOrderDetl.setStatus(1); |
| | | checkOrderDetlService.updateById(checkOrderDetl); |
| | | } |
| | | } |
| | | CheckOrder checkOrder = checkOrderService.selectOne(new EntityWrapper<CheckOrder>().eq("order_no", wrkDetls.get(0).getOrderNo())); |
| | | List<CheckOrderDetl> checkOrderDetls = checkOrderDetlService.selectList(new EntityWrapper<CheckOrderDetl>().eq("order_id", checkOrder.getId())); |
| | | boolean is = checkOrderDetls.stream().allMatch(item -> item.getStatus().equals(1)); |
| | | checkOrder.setSettle(is?1L:12L); |
| | | checkOrder.setSettle(is ? 1L : 12L); |
| | | checkOrderService.updateById(checkOrder); |
| | | } |
| | | |
| | | |
| | | // if (!Cools.isEmpty(wrkDetls.get(0).getOrderNo())) { |
| | | // |
| | | // |
| | | // } |
| | | } |
| | | |
| | | // // 订单关联 |
| | |
| | | |
| | | // .修改并托入库明细托码 |
| | | List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>() |
| | | .eq("area_id", locMast.getAreaId()) |
| | | .eq("area_id", locMast.getAreaId()) |
| | | .eq("loc_no", locMast.getLocNo())); |
| | | if (!Objects.isNull(locDetls) && !locDetls.isEmpty()) { |
| | | locDetls.forEach(locDetl -> { |
| | |
| | | wrkDetl.setZpallet(wrkMast.getBarcode()); |
| | | wrkDetl.setBarcode(wrkMast.getBarcode()); |
| | | if (!wrkDetlService.update(wrkDetl, new EntityWrapper<WrkDetl>() |
| | | .eq("matnr", wrkDetl.getMatnr()) |
| | | .eq("standby1", wrkDetl.getStandby1()) |
| | | .eq("matnr", wrkDetl.getMatnr()) |
| | | .eq("standby1", wrkDetl.getStandby1()) |
| | | .eq("wrk_no", wrkMast.getWrkNo()))) { |
| | | throw new CoolException("任务档明细修改失败!!"); |
| | | } |
| | |
| | | if (Cools.isEmpty(mat)) { |
| | | throw new CoolException("目标库位商品编码有误!"); |
| | | } |
| | | List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getLocDetls().get(0).getMatnr())); |
| | | List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>() |
| | | .eq("matnr", param.getLocDetls().get(0).getMatnr())); |
| | | if (Cools.isEmpty(locDetls) || locDetls.size() < 1) { |
| | | throw new CoolException("待修改商品无库存,无需修改! 品号:" + param.getLocDetls().get(0).getMatnr()); |
| | | } |