自动化立体仓库 - WMS系统
skyouc
5 天以前 08915b05c42b2ba97a8bb0809aeb48802ae63b46
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -517,7 +517,8 @@
    @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("订单出库异常,请联系管理员");
@@ -554,25 +555,24 @@
            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(!Cools.isEmpty(locDto.getBatch()),"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.setWrkNo(workNo);
@@ -587,8 +587,8 @@
                throw new CoolException("保存工作档明细失败");
            }
            // 修改订单明细
            checkOrderDetls.get(0).setStatus(2);
            if (!checkOrderDetlService.updateById(checkOrderDetls.get(0))) {
            checkOrderDetls.setStatus(2);
            if (!checkOrderDetlService.updateById(checkOrderDetls)) {
                throw new CoolException("保存订单明细失败");
            }
        }
@@ -618,9 +618,9 @@
        }
        // 获取库位
        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)
@@ -690,7 +690,7 @@
            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 {
@@ -1388,8 +1388,7 @@
        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())
@@ -1397,8 +1396,10 @@
                            .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()));
@@ -1406,8 +1407,10 @@
                checkOrder.setSettle(is ? 1L : 12L);
                checkOrderService.updateById(checkOrder);
            }
//            if (!Cools.isEmpty(wrkDetls.get(0).getOrderNo())) {
//
//
//            }
        }
//        // 订单关联