自动化立体仓库 - WMS系统
zwl
6 天以前 57610f520d214c9b5797191f7dbc68c121c7f0c1
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -145,7 +145,7 @@
                            Double v = Math.round((selectOne.getStockQty() - selectOne.getAnfme()) * 10000) / 10000.0;
                            OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), null, null, null, null,
                            OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), "", "", "", "",
                                    null, null, null);
                            if (!Objects.isNull(orderDetlPakout)) {
@@ -469,24 +469,27 @@
        }
        /***/
        if (!Objects.isNull(wrkMast.getWrkCode())) {
            LocMast lcmst = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
            lcmst.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
            if (!locMastService.updateById(lcmst)) {
                throw new CoolException("库位状态修改失败!!");
            }
        if (wrkMast.getIoType() !=2){
            if (!Objects.isNull(wrkMast.getWrkCode())) {
                LocMast lcmst = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
                lcmst.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
                if (!locMastService.updateById(lcmst)) {
                    throw new CoolException("库位状态修改失败!!");
                }
            LocAroundBind bLocNo = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>().eq("b_loc_no", wrkMast.getSourceLocNo()));
            if (Objects.isNull(bLocNo)) {
                throw new CoolException("工位不存在 !!");
            }
            bLocNo.setLocType(LocStsType.LOC_STS_TYPE_O.type);
            if (!locAroundBindService.updateById(bLocNo)) {
                throw new CoolException("工位状态修改失败!!");
            }
                LocAroundBind bLocNo = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>().eq("b_loc_no", wrkMast.getSourceLocNo()));
                if (Objects.isNull(bLocNo)) {
                    throw new CoolException("工位不存在 !!");
                }
                bLocNo.setLocType(LocStsType.LOC_STS_TYPE_O.type);
                if (!locAroundBindService.updateById(bLocNo)) {
                    throw new CoolException("工位状态修改失败!!");
                }
            locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()));
                locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()));
            }
        }
        return SUCCESS;
    }
@@ -494,31 +497,65 @@
    public void movLoc(WrkMast wrkMast) {
        LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
        if (Objects.isNull(locMast)) {
            throw new CoolException("目标库位不存在!!");
        }
        Date now = new Date();
        Long operatorUser = wrkMast.getModiUser();
        if (Objects.isNull(operatorUser)) {
            operatorUser = wrkMast.getAppeUser();
        }
        // 默认目标库位是空板
        String locSts = "D";
        // 库位移转判断是否为空板移转
        if (wrkMast.getEmptyMk().equals("N")) {
        if ("N".equals(wrkMast.getEmptyMk())) {
            locSts = "F";
            // 转移库存明细数据: 库存号 由工作档源库位变为目标库位
            if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) {
//                            exceptionHandle("库位移转 ===>> 转移库存明细数据失败;[源库位={0}],[目标库位={1}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                log.info("库位移转 ===>> 转移库存明细数据失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
            List<LocDetl> sourceDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()));
            for (LocDetl sourceDetl : sourceDetls) {
                LocDetl targetDetl = locDetlService.selectItem(wrkMast.getLocNo(), sourceDetl.getMatnr(), sourceDetl.getBatch(), sourceDetl.getBrand(),
                        sourceDetl.getStandby1(), sourceDetl.getStandby2(), sourceDetl.getStandby3(), sourceDetl.getBoxType1(),
                        sourceDetl.getBoxType2(), sourceDetl.getBoxType3());
                if (null != targetDetl && !Objects.equals(targetDetl.getId(), sourceDetl.getId())) {
                    Double targetQty = targetDetl.getAnfme() == null ? 0D : targetDetl.getAnfme();
                    Double sourceQty = sourceDetl.getAnfme() == null ? 0D : sourceDetl.getAnfme();
                    targetDetl.setAnfme(Math.round((targetQty + sourceQty) * 10000) / 10000.0);
                    targetDetl.setAreaId(locMast.getAreaId());
                    targetDetl.setAreaName(locMast.getAreaName());
                    targetDetl.setModiTime(now);
                    if (!Objects.isNull(operatorUser)) {
                        targetDetl.setModiUser(operatorUser);
                    }
                    if (!locDetlService.updateById(targetDetl)) {
                        throw new CoolException("库位移转 ===>> 合并库存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[sourceLoc=" + wrkMast.getSourceLocNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                    }
                    if (!locDetlService.deleteById(sourceDetl.getId())) {
                        throw new CoolException("库位移转 ===>> 删除源库存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[sourceLoc=" + wrkMast.getSourceLocNo() + "]");
                    }
                } else {
                    sourceDetl.setLocNo(wrkMast.getLocNo());
                    sourceDetl.setAreaId(locMast.getAreaId());
                    sourceDetl.setAreaName(locMast.getAreaName());
                    sourceDetl.setModiTime(now);
                    if (!Objects.isNull(operatorUser)) {
                        sourceDetl.setModiUser(operatorUser);
                    }
                    if (!locDetlService.updateById(sourceDetl)) {
                        throw new CoolException("库位移转 ===>> 转移库存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[sourceLoc=" + wrkMast.getSourceLocNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                    }
                }
            }
        }
        // 修改源库位状态 ==> O
        LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
        if (null != sourceLoc) {
            sourceLoc.setBarcode("");
            sourceLoc.setLocSts("O");
            sourceLoc.setModiTime(now);
            sourceLoc.setIoTime(now);
            if (!locMastService.updateById(sourceLoc)) {
//                            exceptionHandle("库位移转 ===>> 修改源库位状态失败;[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                log.info("库位移转 ===>> 修改源库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
            }
        if (null == sourceLoc) {
            throw new CoolException("源库位不存在!!");
        }
        sourceLoc.setBarcode("");
        sourceLoc.setLocSts("O");
        sourceLoc.setModiTime(now);
        sourceLoc.setIoTime(now);
        if (!locMastService.updateById(sourceLoc)) {
            throw new CoolException("库位移转 ===>> 修改源库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
        }
        // 修改目标库位状态 ==> .locSts
        locMast.setLocSts(locSts);
@@ -526,9 +563,7 @@
        locMast.setIoTime(now);
        locMast.setModiTime(now);
        if (!locMastService.updateById(locMast)) {
//                        exceptionHandle("库位移转 ===>> 修改目标库位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
           log.info("库位移转 ===>> 修改目标库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
            throw new CoolException("库位移转 ===>> 修改目标库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
        }
    }