自动化立体仓库 - WMS系统
#
Junjie
2025-07-18 e9bf533bc284fc9f7b7fa02b89679c33773bd0cb
#
3个文件已修改
135 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/WorkService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/WorkService.java
@@ -102,6 +102,4 @@
    void turnMatLocDetl(EmptyPlateOutParam param, Long userId);
    void adjustLocDetl2(LocDetlAdjustParam param, Long userId);
}
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -837,10 +837,6 @@
        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
        List<WrkDetl> list = JSON.parseArray(JSON.toJSONString(param.getWrkDetls()), WrkDetl.class);
        LocDetlAdjustParam adjustParam = new LocDetlAdjustParam();
        List<LocDetlAdjustParam.LocDetlAdjust> locDetlAdjusts = new ArrayList<>();
        adjustParam.setLocNo(wrkMast.getSourceLocNo());
        // 修改数量
        Iterator<WrkDetl> iterator = wrkDetls.iterator();
        while (iterator.hasNext()) {
@@ -892,11 +888,6 @@
                throw new CoolException("添加" + wrkMast.getWrkNo() + "盘点任务," + wrkDetl.getMatnr() + "商品," + wrkDetl.getBatch() + "批号任务明细失败");
            }
        }
        List<WrkDetl> wrkDetls1 = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
        for (WrkDetl wrkDetl : wrkDetls1) {
            LocDetlAdjustParam.LocDetlAdjust locDetlAdjust = new LocDetlAdjustParam.LocDetlAdjust(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme());
            locDetlAdjusts.add(locDetlAdjust);
        }
        List<WrkDetl> paramWrkDetls = JSON.parseArray(JSON.toJSONString(param.getWrkDetls()), WrkDetl.class);
        for (WrkDetl wrkDetl : paramWrkDetls) {
@@ -921,8 +912,6 @@
        if (!wrkMastService.updateById(wrkMast)) {
            throw new CoolException("修改盘点任务主档失败");
        }
        adjustParam.setList(locDetlAdjusts);
        workService.adjustLocDetl2(adjustParam, userId);
    }
    @Override
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -1151,128 +1151,6 @@
    @Override
    @Transactional
    public void adjustLocDetl2(LocDetlAdjustParam param, Long userId) {
        param.integrate();
        LocMast locMast = locMastService.selectById(param.getLocNo());
        if (Cools.isEmpty(locMast)) {
            throw new CoolException("库位不存在");
        }
        if (!(locMast.getLocSts().equals("P"))) {
            throw new CoolException("当前库位不可调整!库位状态:" + locMast.getLocSts$());
        }
        Date now = new Date();
        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", param.getLocNo()));
        List<LocDetlAdjustParam.LocDetlAdjust> list = param.getList();
        // 添加历史工作主档
        WrkMastLog wrkMast = new WrkMastLog();
        wrkMast.setIoTime(now);
        wrkMast.setWrkSts(5);
        wrkMast.setIoPri(13D); // 优先级
        wrkMast.setCrnNo(locMast.getCrnNo());
        wrkMast.setSourceLocNo(locMast.getLocNo());
        wrkMast.setLocNo(locMast.getLocNo());
        wrkMast.setBarcode(locMast.getBarcode()); // 托盘码
        wrkMast.setFullPlt("Y"); // 满板:Y
        wrkMast.setPicking("N"); // 拣料
        wrkMast.setExitMk("N"); // 退出
        wrkMast.setEmptyMk("N"); // 空板
        wrkMast.setLinkMis("Y");
        // 操作人员数据
        wrkMast.setAppeTime(now);
        wrkMast.setModiTime(now);
        wrkMast.setAppeUser(userId);
        wrkMast.setModiUser(userId);
        // 增删改只创建一次工作主档
        boolean updateFlag = true;
        // 修改数量
        Iterator<LocDetl> iterator = locDetls.iterator();
        while (iterator.hasNext()) {
            LocDetl locDetl = iterator.next();
            Iterator<LocDetlAdjustParam.LocDetlAdjust> iterator1 = list.iterator();
            while (iterator1.hasNext()) {
                LocDetlAdjustParam.LocDetlAdjust adjust = iterator1.next();
                if (adjust.getCount() == 0) {
                    continue;
                }
                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() + "批号修改数量失败");
                        }
                        // 保存调整记录
                        AdjDetl adjDetl = new AdjDetl();
                        adjDetl.setLocNo(locDetl.getLocNo());
                        adjDetl.setMatnr(locDetl.getMatnr());
                        adjDetl.setBatch(locDetl.getBatch());
                        adjDetl.setOriQty(locDetl.getAnfme());
                        adjDetl.setAdjQty(adjust.getCount());
                        adjDetl.setModiTime(now);
                        adjDetl.setModiUser(userId);
                        adjDetl.setAppeTime(now);
                        adjDetl.setAppeUser(userId);
                        adjDetlService.save(adjDetl, userId);
                        if (updateFlag) {
                            wrkMast.setWrkNo(commonService.getWorkNo(3));
                            wrkMast.setIoType(23);
                            boolean res = wrkMastLogService.insert(wrkMast);
                            if (!res) {
                                throw new CoolException("库存调整-修改 保存工作档失败");
                            }
                            updateFlag = false;
                        }
                        // 添加历史工作明细
                        WrkDetlLog wrkDetl = new WrkDetlLog();
                        wrkDetl.sync(locDetl);
                        wrkDetl.setWrkNo(wrkMast.getWrkNo());
                        wrkDetl.setIoTime(wrkMast.getIoTime());
                        wrkDetl.setAnfme(adjust.getCount());
                        wrkDetl.setAppeTime(now);
                        wrkDetl.setModiTime(now);
                        wrkMast.setAppeUser(userId);
                        wrkMast.setModiUser(userId);
                        if (!wrkDetlLogService.insert(wrkDetl)) {
                            throw new CoolException("保存工作明细失败");
                        }
                    }
                    iterator.remove();
                    iterator1.remove();
                }
            }
        }
        // 修改库位状态
        int count = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
        if (locMast.getLocSts().equals("F")) {
            if (count == 0) {
                locMast.setLocSts("D");
            }
        }
        if (locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O")) {
            if (count > 0) {
                locMast.setLocSts("F");
            }
        }
        locMast.setModiUser(userId);
        locMast.setModiTime(now);
        if (!locMastService.updateById(locMast)) {
            throw new CoolException("更新库位状态失败");
        }
    }
    @Override
    @Transactional
    public void cancelWrkMast(String workNo, Long userId) {
        Date now = new Date();
        WrkMast wrkMast = wrkMastService.selectById(workNo);