自动化立体仓库 - WMS系统
whycq
2022-08-06 f41349d180a4c42a3a127c9fbd102fe4603890fb
Merge remote-tracking branch 'origin/hylyasrs' into hylyasrs
8个文件已修改
1个文件已添加
1个文件已删除
191 ■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java 118 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/CodeRes.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/WcsController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkMastMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/waitPakin/waitPakin.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
version/doc/自动化立体仓库ASRS与ERP对接协议_20220625A.docx 补丁 | 查看 | 原始文档 | blame | 历史
version/doc/自动化立库平台对接协议.docx 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -12,6 +12,7 @@
import com.zy.asrs.entity.param.OpenOrderPakinParam;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.MatUtils;
import com.zy.common.CodeRes;
import com.zy.common.constant.MesConstant;
import com.zy.common.entity.Parameter;
import com.zy.common.model.DetlDto;
@@ -85,6 +86,13 @@
                eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
            throw new CoolException(param.getBarcode() + "数据正在进行入库");
        }
        int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
        int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()));
        if (countLoc > 0 || countWrk > 0) {
            throw new CoolException("工作档/库存条码数据已存在===>>" + param.getBarcode());
        }
        Date now = new Date();
        // æ— å•组托
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -140,9 +140,13 @@
                if (!orderDetlService.increase(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) {
                    throw new CoolException("修改单据明细数量失败");
                }
                // ä¿®æ”¹è®¢å•作业数量
                if (!orderDetlService.increaseWorkQty(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) {
                    throw new CoolException("修改单据作业数量失败");
                }
            }
        } catch (Exception e) {
            log.error("", e);
            log.error("saveHandlerOrder===>>", e);
            return false;
        }
        return true;
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -726,6 +726,7 @@
    @Override
    @Transactional
    public void cancelWrkMast(String workNo, Long userId) {
        Date now = new Date();
        WrkMast wrkMast = wrkMastService.selectById(workNo);
        if (Cools.isEmpty(wrkMast)){
            throw new CoolException(workNo+"工作档不存在");
@@ -745,7 +746,7 @@
                    throw new CoolException("取消库位转移失败,源库位不存在:"+ wrkMast.getSourceLocNo());
                }
                locMast.setLocSts(wrkMast.getFullPlt().equalsIgnoreCase("N")?"D":"F");
                locMast.setModiTime(new Date());
                locMast.setModiTime(now);
                locMast.setModiUser(userId);
                locMastService.updateById(locMast);
            }
@@ -767,7 +768,7 @@
                    throw new CoolException("取消库位转移失败,目标库位不存在:"+ wrkMast.getSourceLocNo());
                }
                locMast.setLocSts("O");
                locMast.setModiTime(new Date());
                locMast.setModiTime(now);
                locMast.setModiUser(userId);
                locMastService.updateById(locMast);
            }
@@ -777,23 +778,50 @@
        //取消入库工作档时,查询组托表,如果有将状态改为待处理
        if(wrkMast.getIoType() == 1) {
            WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
            if (!Cools.isEmpty(waitPakin)) {
                waitPakin.setIoStatus("N");
                waitPakinService.update(waitPakin, new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
            List<WaitPakin> waitPakins=waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
            for (WaitPakin waitPakin:waitPakins){
                if (!Cools.isEmpty(waitPakin)) {
                    waitPakin.setIoStatus("N");
                    waitPakin.setLocNo("");
                    waitPakinService.update(waitPakin, new EntityWrapper<WaitPakin>()
                            .eq("order_no", waitPakin.getOrderNo())
                            .eq("matnr", waitPakin.getMatnr())
                            .eq("batch", waitPakin.getBatch()));
                }
            }
        }
        //取消出库工作档时,查询单据管理表,回滚作业中数量
        if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103) {
//            OrderDetl orderDetl = orderDetlService.selectItem()
            List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
            for (WrkDetl wrkDetl : wrkDetls) {
                if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
                    if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
                        throw new CoolException("订单数据回滚失败");
                    }
                    //修改订单主表状态,没有作业数量时才可以修改
                    boolean flag = true;
                    List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",wrkDetl.getOrderNo()));
                    for(OrderDetl orderDetl : orderDetls){
                        if(orderDetl.getWorkQty() > 0){
                            flag = false;
                        }
                    }
                    if(flag){
                        Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()));
                        if(!Cools.isEmpty(order) && order.getSettle()==2){
                            order.setSettle(1L);
                            order.setUpdateBy(userId);
                            order.setUpdateTime(now);
                        }
                        if(!orderService.update(order,new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()))){
                            throw new CoolException("修改订单状态失败");
                        }
                    }
                }
            }
        }
//        // è®¢å•关联
@@ -811,7 +839,7 @@
        // å–消操作人员记录
        wrkMast.setManuType("手动取消");
        wrkMast.setModiUser(userId);
        wrkMast.setModiTime(new Date());
        wrkMast.setModiTime(now);
        if (!wrkMastService.updateById(wrkMast)) {
            throw new CoolException("取消工作档失败");
        }
@@ -837,7 +865,7 @@
            throw new CoolException("取消工作档失败,库位不存在:"+ locNo);
        }
        locMast.setLocSts(locSts);
        locMast.setModiTime(new Date());
        locMast.setModiTime(now);
        locMast.setModiUser(userId);
        boolean locMastRes = locMastService.updateById(locMast);
        if (!wrkMastRes || !locMastRes) {
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -52,7 +52,9 @@
        LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
        try {
            if (null == locMast) {
                exceptionHandle("工作档[workNo={0}]库位号错误[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
//                exceptionHandle("工作档[workNo={0}]库位号错误[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return FAIL.setMsg("工作档[workNo=" + wrkMast.getWrkNo() + "]库位号错误[locNo=" + wrkMast.getLocNo() + "]");
            }
            assert locMast != null;
            switch (wrkMast.getIoType()) {
@@ -67,7 +69,9 @@
                        locMast.setIoTime(now);
                        locMast.setModiTime(now);
                        if (!locMastService.updateById(locMast)) {
                            exceptionHandle("空板入库 ===>> ä¿®æ”¹åº“位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
//                            exceptionHandle("空板入库 ===>> ä¿®æ”¹åº“位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return FAIL.setMsg("空板入库 ===>> ä¿®æ”¹åº“位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                        }
                    }
                    break;
@@ -81,7 +85,9 @@
                    // æ ¹æ®å·¥ä½œå·ï¼ŒæŸ¥è¯¢å·¥ä½œæ˜Žç»†æ¡£
                    List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
                    if (wrkDetls.isEmpty()) {
                        exceptionHandle("全板入库 ===>> å·¥ä½œæ˜Žç»†æ¡£ä¸å­˜åœ¨ï¼›[workNo={0}]", wrkMast.getWrkNo());
//                        exceptionHandle("全板入库 ===>> å·¥ä½œæ˜Žç»†æ¡£ä¸å­˜åœ¨ï¼›[workNo={0}]", wrkMast.getWrkNo());
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return FAIL.setMsg("全板入库 ===>> å·¥ä½œæ˜Žç»†æ¡£ä¸å­˜åœ¨; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                    }
                    // éåŽ†å·¥ä½œæ˜Žç»†ï¼Œæ›´æ–°åº“å­˜æ˜Žç»†å’Œå…¥åº“é€šçŸ¥æ¡£
                    for (WrkDetl wrkDetl : wrkDetls) {
@@ -89,7 +95,9 @@
                        LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
                        if (null != locDetl) {
                            if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
                                exceptionHandle("全板入库 ===>> æ›´æ–°åº“存明细失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
//                                exceptionHandle("全板入库 ===>> æ›´æ–°åº“存明细失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                return FAIL.setMsg("全板入库 ===>> æ›´æ–°åº“存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                            }
                        } else {
                            locDetl = new LocDetl();
@@ -100,7 +108,9 @@
                            locDetl.setModiTime(now);
                            locDetl.setAppeTime(now);
                            if (!locDetlService.insert(locDetl)) {
                                exceptionHandle("全板入库 ===>> æ·»åŠ åº“å­˜æ˜Žç»†å¤±è´¥ï¼›[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
//                                exceptionHandle("全板入库 ===>> æ·»åŠ åº“å­˜æ˜Žç»†å¤±è´¥ï¼›[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                return FAIL.setMsg("全板入库 ===>> æ·»åŠ åº“å­˜æ˜Žç»†å¤±è´¥; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                            }
                        }
@@ -110,8 +120,10 @@
                            if(!Cools.isEmpty(orderDetl)){
                                if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
                                        wrkDetl.getBatch(),wrkDetl.getAnfme())){
                                    exceptionHandle("全板入库 ===>> æ›´æ–°è®¢å•完成数量失败;[workNo={0}],[locNo={1}]",
                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
//                                    exceptionHandle("全板入库 ===>> æ›´æ–°è®¢å•完成数量失败;[workNo={0}],[locNo={1}]",
//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                    return FAIL.setMsg("全板入库 ===>> æ›´æ–°è®¢å•完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                                }
                            }
                        } catch (Exception ignore){}
@@ -124,7 +136,9 @@
                        locMast.setIoTime(now);
                        locMast.setModiTime(now);
                        if (!locMastService.updateById(locMast)) {
                            exceptionHandle("全板入库 ===>> ä¿®æ”¹åº“位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
//                            exceptionHandle("全板入库 ===>> ä¿®æ”¹åº“位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return FAIL.setMsg("全板入库 ===>> ä¿®æ”¹åº“位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                        }
                    }
                    break;
@@ -133,14 +147,18 @@
                    // æ ¹æ®å·¥ä½œå·ï¼ŒæŸ¥è¯¢å·¥ä½œæ˜Žç»†æ¡£
                    List<WrkDetl> wrkDetls53 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
                    if (wrkDetls53.isEmpty()) {
                        exceptionHandle("拣料入库 ===>> å·¥ä½œæ˜Žç»†æ¡£ä¸ºç©ºï¼›[workNo={0}]", wrkMast.getWrkNo());
//                        exceptionHandle("拣料入库 ===>> å·¥ä½œæ˜Žç»†æ¡£ä¸ºç©ºï¼›[workNo={0}]", wrkMast.getWrkNo());
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return FAIL.setMsg("拣料入库 ===>> å·¥ä½œæ˜Žç»†æ¡£ä¸ºç©º; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                    }
                    for (WrkDetl wrkDetl : wrkDetls53) {
                        LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
                        if (null != locDetl) {
                            if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
                                exceptionHandle("拣料入库 ===>> ä¿®æ”¹åº“存明细数量失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
//                                exceptionHandle("拣料入库 ===>> ä¿®æ”¹åº“存明细数量失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                return FAIL.setMsg("拣料入库 ===>> ä¿®æ”¹åº“存明细数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                            }
                        }
@@ -150,8 +168,10 @@
                            if(!Cools.isEmpty(orderDetl)){
                                if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
                                        wrkDetl.getBatch(),wrkDetl.getAnfme())){
                                    exceptionHandle("拣料入库 ===>> æ›´æ–°è®¢å•完成数量失败;[workNo={0}],[locNo={1}]",
                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
//                                    exceptionHandle("拣料入库 ===>> æ›´æ–°è®¢å•完成数量失败;[workNo={0}],[locNo={1}]",
//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                    return FAIL.setMsg("拣料入库 ===>> æ›´æ–°è®¢å•完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                                }
                            }
                        } catch (Exception ignore){}
@@ -164,7 +184,9 @@
                        locMast.setIoTime(now);
                        locMast.setModiTime(now);
                        if (!locMastService.updateById(locMast)) {
                            exceptionHandle("拣料入库 ===>> ä¿®æ”¹åº“位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
//                            exceptionHandle("拣料入库 ===>> ä¿®æ”¹åº“位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return FAIL.setMsg("拣料入库 ===>> ä¿®æ”¹åº“位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                        }
                    }
                    break;
@@ -173,7 +195,9 @@
                    // æ ¹æ®å·¥ä½œå·ï¼ŒæŸ¥è¯¢å·¥ä½œæ˜Žç»†æ¡£
                    List<WrkDetl> wrkDetls54 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
                    if (wrkDetls54.isEmpty()) {
                        exceptionHandle("并板入库 ===>> å·¥ä½œæ˜Žç»†æ¡£ä¸ºç©ºï¼›[workNo={0}]", wrkMast.getWrkNo());
//                        exceptionHandle("并板入库 ===>> å·¥ä½œæ˜Žç»†æ¡£ä¸ºç©ºï¼›[workNo={0}]", wrkMast.getWrkNo());
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return FAIL.setMsg("并板入库 ===>> å·¥ä½œæ˜Žç»†æ¡£ä¸ºç©º; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                    }
                    // ä¿®æ”¹åº“存明细数量,如无库存,曾新增
                    for (WrkDetl wrkDetl:wrkDetls54) {
@@ -181,7 +205,9 @@
                        LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
                        if (null != locDetl) {
                            if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
                                exceptionHandle("并板入库 ===>> ä¿®æ”¹åº“存明细数量失败;[workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
//                                exceptionHandle("并板入库 ===>> ä¿®æ”¹åº“存明细数量失败;[workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                return FAIL.setMsg("并板入库 ===>> ä¿®æ”¹åº“存明细数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                            }
                        } else {
                            locDetl = new LocDetl();
@@ -192,7 +218,9 @@
                            locDetl.setModiTime(now);
                            locDetl.setAppeTime(now);
                            if (!locDetlService.insert(locDetl)) {
                                exceptionHandle("并板入库 ===>> æ–°å¢žåº“存明细失败;[workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
//                                exceptionHandle("并板入库 ===>> æ–°å¢žåº“存明细失败;[workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                return FAIL.setMsg("并板入库 ===>> æ–°å¢žåº“存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                            }
                        }
                    }
@@ -203,7 +231,9 @@
                        locMast.setIoTime(now);
                        locMast.setModiTime(now);
                        if (!locMastService.updateById(locMast)) {
                            exceptionHandle("并板入库 ===>> ä¿®æ”¹åº“位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
//                            exceptionHandle("并板入库 ===>> ä¿®æ”¹åº“位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return FAIL.setMsg("并板入库 ===>> ä¿®æ”¹åº“位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                        }
                    }
                    break;
@@ -212,7 +242,9 @@
                    // æ ¹æ®å·¥ä½œå·ï¼ŒæŸ¥è¯¢å·¥ä½œæ˜Žç»†æ¡£
                    List<WrkDetl> wrkDetls57 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
                    if (wrkDetls57.isEmpty()) {
                        exceptionHandle("盘点入库 ===>> å·¥ä½œæ˜Žç»†æ¡£ä¸ºç©ºï¼›[workNo={0}]", wrkMast.getWrkNo());
//                        exceptionHandle("盘点入库 ===>> å·¥ä½œæ˜Žç»†æ¡£ä¸ºç©ºï¼›[workNo={0}]", wrkMast.getWrkNo());
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return FAIL.setMsg("盘点入库 ===>> å·¥ä½œæ˜Žç»†æ¡£ä¸ºç©º; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                    }
                    // ä¿®æ”¹åº“位状态 Q ====>> F
                    if (locMast.getLocSts().equals("Q")) {
@@ -221,7 +253,9 @@
                        locMast.setIoTime(now);
                        locMast.setModiTime(now);
                        if (!locMastService.updateById(locMast)) {
                            exceptionHandle("盘点入库 ===>> ä¿®æ”¹åº“位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
//                            exceptionHandle("盘点入库 ===>> ä¿®æ”¹åº“位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return FAIL.setMsg("盘点入库 ===>> ä¿®æ”¹åº“位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                        }
                    }
                    break;
@@ -234,7 +268,9 @@
                        locSts = "F";
                        // è½¬ç§»åº“存明细数据: åº“存号 ç”±å·¥ä½œæ¡£æºåº“位变为目标库位
                        if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) {
                            exceptionHandle("库位移转 ===>> è½¬ç§»åº“存明细数据失败;[源库位={0}],[目标库位={1}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
//                            exceptionHandle("库位移转 ===>> è½¬ç§»åº“存明细数据失败;[源库位={0}],[目标库位={1}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return FAIL.setMsg("库位移转 ===>> è½¬ç§»åº“存明细数据失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                        }
                    }
                    // ä¿®æ”¹æºåº“位状态 ==> O
@@ -245,7 +281,9 @@
                        sourceLoc.setModiTime(now);
                        sourceLoc.setIoTime(now);
                        if (!locMastService.updateById(sourceLoc)) {
                            exceptionHandle("库位移转 ===>> ä¿®æ”¹æºåº“位状态失败;[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
//                            exceptionHandle("库位移转 ===>> ä¿®æ”¹æºåº“位状态失败;[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return FAIL.setMsg("库位移转 ===>> ä¿®æ”¹æºåº“位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                        }
                    }
                    // ä¿®æ”¹ç›®æ ‡åº“位状态 ==> .locSts
@@ -254,7 +292,9 @@
                    locMast.setIoTime(now);
                    locMast.setModiTime(now);
                    if (!locMastService.updateById(locMast)) {
                        exceptionHandle("库位移转 ===>> ä¿®æ”¹ç›®æ ‡åº“位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
//                        exceptionHandle("库位移转 ===>> ä¿®æ”¹ç›®æ ‡åº“位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return FAIL.setMsg("库位移转 ===>> ä¿®æ”¹ç›®æ ‡åº“位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                    }
                    break;
                default:
@@ -264,7 +304,9 @@
            wrkMast.setWrkSts(5L);
            wrkMast.setModiTime(now);
            if (!wrkMastService.updateById(wrkMast)) {
                exceptionHandle("更新入库完成状态失败;[workNo={0}]", wrkMast.getWrkNo());
//                exceptionHandle("更新入库完成状态失败;[workNo={0}]", wrkMast.getWrkNo());
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return FAIL.setMsg("更新入库完成状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
            }
        } catch (Exception e) {
            log.error("fail", e);
@@ -280,7 +322,9 @@
        LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
        try {
            if (null == locMast) {
                exceptionHandle("工作档[workNo={0}]库位号错误[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
//                exceptionHandle("工作档[workNo={0}]库位号错误[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return FAIL.setMsg("工作档库位号错误; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
            }
            assert locMast != null;
            switch (wrkMast.getIoType()) {
@@ -293,7 +337,9 @@
                    // æ ¹æ®å·¥ä½œå·ï¼ŒæŸ¥è¯¢å·¥ä½œæ˜Žç»†æ¡£
                    List<WrkDetl> wrkDetls101 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
                    if (wrkDetls101.isEmpty()) {
                        exceptionHandle("全板出库 ===>> å·¥ä½œæ˜Žç»†æ¡£ä¸ºç©ºï¼›[workNo={0}]", wrkMast.getWrkNo());
//                        exceptionHandle("全板出库 ===>> å·¥ä½œæ˜Žç»†æ¡£ä¸ºç©ºï¼›[workNo={0}]", wrkMast.getWrkNo());
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return FAIL.setMsg("全板出库 ===>> å·¥ä½œæ˜Žç»†æ¡£ä¸ºç©º; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                    }
                    for (WrkDetl wrkDetl : wrkDetls101) {
                        // æ›´æ–°è®¢å•完成数量
@@ -302,15 +348,19 @@
                            if(!Cools.isEmpty(orderDetl)){
                                if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
                                        wrkDetl.getBatch(),wrkDetl.getAnfme())){
                                    exceptionHandle("全板出库 ===>> æ›´æ–°è®¢å•完成数量失败;[workNo={0}],[locNo={1}]",
                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
//                                    exceptionHandle("全板出库 ===>> æ›´æ–°è®¢å•完成数量失败;[workNo={0}],[locNo={1}]",
//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                    return FAIL.setMsg("全板出库 ===>> æ›´æ–°è®¢å•完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                                }
                            }
                        } catch (Exception ignore){}
                    }
                    // åˆ é™¤å·¥ä½œæ¡£æºåº“位的库存明细
                    if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) {
                        exceptionHandle("全板出库 ===>> åˆ é™¤åº“存明细失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
//                        exceptionHandle("全板出库 ===>> åˆ é™¤åº“存明细失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return FAIL.setMsg("全板出库 ===>> åˆ é™¤åº“存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                    }
                    // ä¿®æ”¹æºåº“位状态 R ===>> O
                    if (locMast.getLocSts().equals("R")) {
@@ -319,7 +369,9 @@
                        locMast.setModiTime(now);
                        locMast.setIoTime(now);
                        if (!locMastService.updateById(locMast)) {
                            exceptionHandle("全板出库 ===>> ä¿®æ”¹æºåº“位状态失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
//                            exceptionHandle("全板出库 ===>> ä¿®æ”¹æºåº“位状态失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return FAIL.setMsg("全板出库 ===>> ä¿®æ”¹æºåº“位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                        }
                    }
                    break;
@@ -332,7 +384,9 @@
                        locMast.setModiTime(now);
                        locMast.setIoTime(now);
                        if (!locMastService.updateById(locMast)) {
                            exceptionHandle("空板出库 ===>> ä¿®æ”¹æºåº“位状态失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
//                            exceptionHandle("空板出库 ===>> ä¿®æ”¹æºåº“位状态失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return FAIL.setMsg("空板出库 ===>> ä¿®æ”¹æºåº“位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                        }
                    }
                    break;
@@ -343,7 +397,9 @@
            wrkMast.setWrkSts(15L);
            wrkMast.setModiTime(now);
            if (!wrkMastService.updateById(wrkMast)) {
                exceptionHandle("更新出库完成状态失败;[workNo={0}]", wrkMast.getWrkNo());
//                exceptionHandle("更新出库完成状态失败;[workNo={0}]", wrkMast.getWrkNo());
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return FAIL.setMsg("更新出库完成状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
            }
        } catch (Exception e) {
            log.error("fail", e);
src/main/java/com/zy/common/CodeRes.java
@@ -9,6 +9,7 @@
    String USER_10002 = "10002-账号已被禁用";
    String USER_10003 = "10003-密码错误";
    String EXIST_500 = "500-工作档/库存条码数据已存在";
    String PICK_600 = "600-拣料任务";
    String NO_COMB_700 = "700-请先组托";
src/main/java/com/zy/common/web/WcsController.java
@@ -47,6 +47,7 @@
    @PostMapping("/pakin/loc/v1")
    @ResponseBody
    public synchronized R getLocNo(@RequestBody SearchLocParam param) {
        log.info("收到WCS入库接口请求====>>入参:{}", param);
        if (Cools.isEmpty(param.getIoType())) {
            return R.error("入出库类型不能为空");
        }
@@ -69,7 +70,7 @@
            int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
            int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()));
            if (countLoc > 0 || countWrk > 0) {
                return R.error("工作档/库存条码数据已存在");
                return R.error(CodeRes.EXIST_500);
            }
        }
        if (Cools.isEmpty(param.getLocType1())){
@@ -93,10 +94,9 @@
            default:
                break;
        }
        log.info("/pakin/loc/v1:"+dto + "======托盘码:"+param.getBarcode());
        log.info("WCS入库接口返参:{},托盘码:{}", dto, param.getBarcode());
        return R.ok().add(dto);
    }
    /**
     * å…¨æ¿å…¥åº“
@@ -151,6 +151,7 @@
        Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
                .eq("zpallet", barcode);
        WaitPakin setParam = new WaitPakin();
        setParam.setLocNo(dto.getLocNo());
        setParam.setIoStatus("Y");
        setParam.setModiTime(now);
        if (!waitPakinService.update(setParam, wrapper)) {
src/main/resources/mapper/WrkMastMapper.xml
@@ -63,7 +63,7 @@
    </resultMap>
    <select id="selectToBeCompleteData" resultMap="BaseResultMap">
        select * from asr_wrk_mast where ((wrk_sts = 4 Or wrk_sts = 14 ) and io_type != 103 and io_type != 104 and io_type != 107 ) or (wrk_sts = 2 and io_type=6) order by upd_mk,io_time,wrk_no
        select * from asr_wrk_mast where ((wrk_sts = 4 Or wrk_sts = 14 ) and io_type != 103 and io_type != 104 and io_type != 107 ) or (wrk_sts = 2 and io_type=6) order by upd_mk,error_time,io_time,wrk_no
    </select>
    <select id="selectToBeHistoryData" resultMap="BaseResultMap">
src/main/webapp/static/js/waitPakin/waitPakin.js
@@ -2,7 +2,8 @@
function getCol() {
    var cols = [ {type: 'checkbox'} ];
    cols.push.apply(cols, detlCols);
    cols.push({field: 'status', align: 'center',title: '数据状态', templet:function(row){
    cols.push({field: 'locNo', align: 'center',title: '库位号'}
        ,{field: 'status', align: 'center',title: '数据状态', templet:function(row){
                var html = "<input value='status' type='checkbox' lay-skin='switch' lay-text='正常|锁定'' lay-filter='tableCheckbox' disabled='disabled' table-index='"+row.LAY_TABLE_INDEX+"'";
                if(row.status === 'Y'){html += " checked ";}
                html += ">";
version/doc/×Ô¶¯»¯Á¢Ìå²Ö¿âASRSÓëERP¶Ô½ÓЭÒé_20220625A.docx
Binary files differ
version/doc/×Ô¶¯»¯Á¢¿âƽ̨¶Ô½ÓЭÒé.docx
Binary files differ