自动化立体仓库 - WMS系统
skyouc
7 小时以前 4ad955ed562ce9add346779791f8678b55b8c2a8
Merge branch 'jsxswms' of http://47.97.1.152:5880/r/zy-asrs into jsxswms
2个文件已修改
98 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
@@ -74,7 +74,7 @@
    @Override
    @Transactional
    public void pickWrkMast(String workNo, Long userId) {
        Task wrkMast = this.selectById(workNo);
        Task wrkMast = this.selectOne(new EntityWrapper<Task>().eq("wrk_no", workNo) );
        if (Cools.isEmpty(wrkMast)) {
            throw new CoolException(workNo + "工作档不存在");
        }
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -59,6 +59,8 @@
    private BasStationServiceImpl basStationService;
    @Autowired
    private CheckOrderDetlService checkOrderDetlService;
    @Autowired
    private WaitPakinLogService waitPakinLogService;
    public ReturnT<String> start(WrkMast wrkMast) {
        // 4.入库完成
@@ -831,6 +833,7 @@
    @Transactional(rollbackFor = Exception.class)
    public ReturnT<String> agvDoIn(Task wrkMast) {
        LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", wrkMast.getLocNo()));
        if(wrkMast.getIoType().equals(1)){
        if (Objects.isNull(locCache)) {
            throw new CoolException("数据错误,库位不存在!!");
        }
@@ -878,11 +881,104 @@
            throw new CoolException("任务状态修改失败!!");
        }
            for (WaitPakin pakin : apallet){
                WaitPakinLog waitPakinLog = new WaitPakinLog();
                BeanUtils.copyProperties(pakin, waitPakinLog);
                waitPakinLogService.insert(waitPakinLog);
                waitPakinService.deleteById(pakin.getId());
            }
        Set<Long> list = apallet.stream().map(WaitPakin::getOrderId).collect(Collectors.toSet());
        List<OrderPakin> pakins = orderPakinService.selectList(new EntityWrapper<OrderPakin>().in("id", list));
        if (Objects.isNull(pakins) || pakins.isEmpty()) {
//            throw new CoolException("单据不存在!!");
        }
        }else if(wrkMast.getIoType().equals(53)){
            // 根据工作号,查询工作明细档
            List<TaskDetl> wrkDetls53 = taskDetlService
                    .selectList(new EntityWrapper<TaskDetl>().eq("wrk_no", wrkMast.getWrkNo()));
            if (wrkDetls53.isEmpty()) {
                // exceptionHandle("拣料入库 ===>> 工作明细档为空;[workNo={0}]", wrkMast.getWrkNo());
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return FAIL.setMsg("拣料入库 ===>> 工作明细档为空; [workNo=" + wrkMast.getWrkNo() + "],[locNo="
                        + wrkMast.getLocNo() + "]");
            }
            for (TaskDetl wrkDetl : wrkDetls53) {
                LocDetl locDetl = locDetlService.selectItem(locCache.getLocNo(), wrkDetl.getMatnr(),
                        wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(),
                        wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(),
                        wrkDetl.getBoxType3());
                if (null != locDetl) {
                    if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locCache.getLocNo(),
                            wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(),
                            wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(),
                            wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) {
                        // exceptionHandle("拣料入库 ===>> 修改库存明细数量失败;[workNo={0}],[locNo={1}]",
                        // wrkMast.getWrkNo(), wrkMast.getLocNo());
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return FAIL.setMsg("拣料入库 ===>> 修改库存明细数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo="
                                + wrkMast.getLocNo() + "]");
                    }
                }
                // 更新订单完成数量
                OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(),
                        wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(),
                        wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
                        wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
                if (orderDetlPakout == null) {
                    orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
                            wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(),
                            wrkDetl.getStandby2(), wrkDetl.getStandby3(),
                            wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
                }
                try {
                    if (!Cools.isEmpty(orderDetlPakout)) {
                        if (!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(),
                                wrkDetl.getMatnr(),
                                orderDetlPakout.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(),
                                wrkDetl.getStandby2(), wrkDetl.getStandby3(),
                                wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(),
                                wrkDetl.getAnfme())) {
                            // exceptionHandle("拣料入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]",
                            // wrkMast.getWrkNo(), wrkMast.getLocNo());
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return FAIL.setMsg("拣料入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo()
                                    + "],[locNo=" + wrkMast.getLocNo() + "]");
                        }
                    }
                } catch (Exception ignore) {
                }
            }
            Date now = new Date();
            // 修改库位状态 Q ====>> F
            if (locCache.getLocSts().equals("Q")) {
                locCache.setLocSts("F");
                locCache.setBarcode(wrkMast.getBarcode());
                locCache.setIoTime(now);
                locCache.setModiTime(now);
                if (!locCacheService.updateById(locCache)) {
                    // exceptionHandle("拣料入库 ===>> 修改库位状态失败;[workNo={0}],[locNo={1}]",
                    // wrkMast.getWrkNo(), wrkMast.getLocNo());
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    return FAIL.setMsg("拣料入库 ===>> 修改库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo="
                            + wrkMast.getLocNo() + "]");
                }
            }
            // 修改工作主档状态
            wrkMast.setWrkSts(5L);
            wrkMast.setModiTime(now);
            if (!taskService.updateById(wrkMast)) {
                // exceptionHandle("更新入库完成状态失败;[workNo={0}]", wrkMast.getWrkNo());
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return FAIL
                        .setMsg("更新入库完成状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
            }
        }
        return SUCCESS;
    }