skyouc
6 天以前 dc60b3451a2984722c01a5991e5b904b8bd44f0d
组绑解绑
4个文件已修改
95 ■■■■ 已修改文件
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MobileController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MobileController.java
@@ -138,7 +138,11 @@
        if (Objects.isNull(params)) {
            return R.error("参数不能为空!!");
        }
        return mobileService.getItemByContainer(params);
        if (!Objects.isNull(params.get("type")) && params.get("type").equals("unbind")) {
            return mobileService.getUnItemByContainer(params);
        } else {
            return mobileService.getItemByContainer(params);
        }
    }
    @PreAuthorize("hasAuthority('manager:waitPakin:update')")
rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java
@@ -63,6 +63,8 @@
    R getItemByContainer(Map<String, Object> params);
    R getUnItemByContainer(Map<String, Object> params);
    R defectProducts(String trackCode);
    R getPakinInStock(String barcode);
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
@@ -331,10 +331,10 @@
        //TODO 供应商标识未设置,标识由PO单供应商编码转换
        WarehouseAreasItem serviceOne = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>()
//                .eq(WarehouseAreasItem::getAsnItemId, item.getAsnItemId())
                        .eq(WarehouseAreasItem::getMatnrCode, item.getMatnrCode())
                        .eq(!Cools.isEmpty(item.getFieldsIndex()), WarehouseAreasItem::getFieldsIndex, item.getFieldsIndex())
                        .eq(WarehouseAreasItem::getAsnCode, item.getAsnCode())
                        .eq(!Cools.isEmpty(item.getIsptResult()), WarehouseAreasItem::getIsptResult, item.getIsptResult())
                .eq(WarehouseAreasItem::getMatnrCode, item.getMatnrCode())
                .eq(!Cools.isEmpty(item.getFieldsIndex()), WarehouseAreasItem::getFieldsIndex, item.getFieldsIndex())
                .eq(WarehouseAreasItem::getAsnCode, item.getAsnCode())
                .eq(!Cools.isEmpty(item.getIsptResult()), WarehouseAreasItem::getIsptResult, item.getIsptResult())
                .eq(StringUtils.isNotBlank(item.getSplrBatch()), WarehouseAreasItem::getSplrBatch, item.getSplrBatch()));
        if (!Objects.isNull(serviceOne)) {
            item.setId(serviceOne.getId());
@@ -850,21 +850,59 @@
        }
        WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>()
                .eq(WaitPakin::getBarcode, params.get("barcode").toString())
                .eq(WaitPakin::getFlagDefect, flagDefect)
//                .eq(WaitPakin::getFlagDefect, flagDefect)
                .in(WaitPakin::getIoStatus, asList));
        if (Cools.isEmpty(waitPakin)) {
            throw new CoolException("托盘可用");
        }else {
        } else {
            throw new CoolException("托盘不可用");
        }
    }
    /**
     * @param
     * @return
     * @author Ryan
     * @description 通过容器获取组拖物料
     * @time 2025/4/9 16:57
     */
    @Override
    public R getUnItemByContainer(Map<String, Object> params) {
        if (Objects.isNull(params.get("barcode"))) {
            throw new CoolException("参数不能为空!!");
        }
        //获取组拖未生成任务的组拖档
//        List<Short> asList = Arrays.asList(Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val), Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val));
        WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>()
                .eq(WaitPakin::getBarcode, params.get("barcode").toString())
                .eq(WaitPakin::getIoStatus, PakinIOStatus.PAKIN_IO_STATUS_DONE.val));
        if (Objects.isNull(waitPakin)) {
            return R.ok(new ArrayList<>());
        }
        List<WaitPakinItem> pakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>()
                .eq(WaitPakinItem::getPakinId, waitPakin.getId()));
        if (pakinItems.isEmpty()) {
            return R.ok(new ArrayList<>());
        }
        List<Long> list = pakinItems.stream().map(WaitPakinItem::getSource).collect(Collectors.toList());
        LambdaQueryWrapper<WarehouseAreasItem> queryWrapper = new LambdaQueryWrapper<WarehouseAreasItem>().in(WarehouseAreasItem::getId, list);
        List<WarehouseAreasItem> warehouseAreasItems = warehouseAreasItemService.list(queryWrapper);
        for (int i = 0; i < warehouseAreasItems.size(); i++) {
            for (WaitPakinItem pakinItem : pakinItems) {
                if (warehouseAreasItems.get(i).getId().equals(pakinItem.getSource())) {
                    warehouseAreasItems.get(i).setAnfme(pakinItem.getAnfme());
                }
            }
        }
        return R.ok(warehouseAreasItems);
    }
    /**
     * @param
     * @return
     * @author Ryan
     * @description 不良标签
     * @time 2025/4/12 08:12
     */
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
@@ -154,7 +154,7 @@
        for (WaitPakinItem pakinItem : items) {
            WarehouseAreasItem one = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>()
                            .eq(WarehouseAreasItem::getId, pakinItem.getSource()));
                    .eq(WarehouseAreasItem::getId, pakinItem.getSource()));
            if (Objects.isNull(one)) {
                throw new CoolException("收货区数据错误!!");
            }
@@ -190,7 +190,7 @@
    public synchronized WaitPakin unBind(WaitPakinParam param) {
        String barcode = param.getBarcode();
        if (StringUtils.isNotBlank(barcode)) {
            WaitPakin waitPakins = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, barcode), false);
            WaitPakin waitPakins = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, barcode));
            if (Objects.isNull(waitPakins)) {
                throw new CoolException("组托不存在!!");
            }
@@ -198,10 +198,10 @@
            if (Objects.isNull(paramItems) || paramItems.isEmpty()) {
                throw new CoolException("解绑物料不能为空!!");
            }
            List<Long> list = paramItems.stream().map(PakinItem::getMatnrId).collect(Collectors.toList());
            List<Long> list = paramItems.stream().map(PakinItem::getId).collect(Collectors.toList());
            List<WaitPakinItem> pakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>()
                    .eq(WaitPakinItem::getPakinId, waitPakins.getId())
                    .in(WaitPakinItem::getMatnrId, list));
                    .in(WaitPakinItem::getSource, list));
            if (pakinItems.isEmpty()) {
                throw new CoolException("数据错误:组托明细不存在!!");
            }
@@ -209,6 +209,31 @@
            if (!waitPakinItemService.removeByIds(ids)) {
                throw new CoolException("组托明细解绑失败!!");
            }
            List<WarehouseAreasItem> warehouseAreasItems = warehouseAreasItemService.listByIds(list);
            for (int i1 = 0; i1 < pakinItems.size(); i1++) {
                for (int i = 0; i < warehouseAreasItems.size(); i++) {
                    if (warehouseAreasItems.get(i).getId().equals(pakinItems.get(i1).getId())) {
                        double v = warehouseAreasItems.get(i).getWorkQty() - pakinItems.get(i1).getAnfme();
                        warehouseAreasItems.get(i).setWorkQty(v);
                        if (!warehouseAreasItemService.updateById(warehouseAreasItems.get(i))) {
                            throw new CoolException("收货区数量修改失败!!");
                        }
                    }
                }
            }
            double anfmes = warehouseAreasItems.stream().mapToDouble(WarehouseAreasItem::getAnfme).sum();
            if (waitPakins.getAnfme().compareTo(anfmes) <= 0) {
                if (!waitPakinService.removeById(waitPakins.getId())) {
                    throw new CoolException("组托删除失败!!");
                }
            } else {
                waitPakins.setAnfme(waitPakins.getAnfme() - anfmes);
                if (!waitPakinService.updateById(waitPakins)) {
                    throw new CoolException("组托数据修改失败!!");
                }
            }
            return waitPakins;
        }
        return new WaitPakin();