自动化立体仓库 - WMS系统
#
whycq
2025-01-02 5317c6f53f6997e42e5bb9b72da4d8bbd6df9715
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -183,6 +183,21 @@
                            }
                        } catch (Exception ignore){}
                        //更新拣货单完成数量
                        EntityWrapper<ManPakOut> manPakOutEntityWrapper = new EntityWrapper<>();
                        manPakOutEntityWrapper.eq("doc_num",wrkDetl.getOrderNo());
                        manPakOutEntityWrapper.eq("matnr",wrkDetl.getMatnr());
                        ManPakOut manPakOut = manPakOutService.selectOne(manPakOutEntityWrapper);
                        if (!Cools.isEmpty(manPakOut)){
                            if (manPakOut.getCount() + wrkDetl.getAnfme() >= manPakOut.getAnfme()){
                                manPakOut.setStatus(1);
                            }
                            manPakOut.setCount(manPakOut.getCount() + wrkDetl.getAnfme());
                            if (!manPakOutService.update(manPakOut,manPakOutEntityWrapper)){
                                return FAIL.setMsg("更新拣货单完成数量失败");
                            }
                        }
                    }
                    // 修改库位状态 Q ====>> F
                    if (locMast.getLocSts().equals("Q")) {
@@ -198,6 +213,45 @@
                    }
                    break;
                // 并板入库
                case 55:
                    // 根据工作号,查询工作明细档
                    List<WrkDetl> wrkDetls55 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
                    if (wrkDetls55.isEmpty()) {
//                        exceptionHandle("并板入库 ===>> 工作明细档为空;[workNo={0}]", wrkMast.getWrkNo());
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return FAIL.setMsg("并板入库 ===>> 工作明细档为空; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                    }
                    // 修改库存明细数量,如无库存,曾新增
                    for (WrkDetl wrkDetl:wrkDetls55) {
                        LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
                        locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", locDetl.getLocNo()));
                        locDetl = new LocDetl();
                        locDetl.sync(wrkDetl);
                        locDetl.setLocNo(wrkMast.getLocNo()); // 库位号
                        locDetl.setAnfme(wrkDetl.getAnfme()); // 数量
                        locDetl.setZpallet(wrkDetl.getZpallet()); // 托盘条码
                        locDetl.setModiTime(now);
                        locDetl.setAppeTime(now);
                        if (!locDetlService.insert(locDetl)) {
//                                exceptionHandle("并板入库 ===>> 新增库存明细失败;[workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return FAIL.setMsg("并板入库 ===>> 新增库存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                        }
                    }
                    // 修改库位状态 Q ====>> F
                    if (locMast.getLocSts().equals("Q")) {
                        locMast.setLocSts("F");
                        locMast.setBarcode(wrkMast.getBarcode());
                        locMast.setIoTime(now);
                        locMast.setModiTime(now);
                        if (!locMastService.updateById(locMast)) {
//                            exceptionHandle("并板入库 ===>> 修改库位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return FAIL.setMsg("并板入库 ===>> 修改库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                        }
                    }
                    break;
                case 54:
                    // 根据工作号,查询工作明细档
                    List<WrkDetl> wrkDetls54 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
@@ -244,6 +298,7 @@
                        }
                    }
                    break;
                // 盘点入库
                case 57:
                    // 根据工作号,查询工作明细档
@@ -369,27 +424,43 @@
                            return FAIL.setMsg("全板出库 ===>> 修改源库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                        }
                    }
                    EntityWrapper<OrderDetl> orderDetlEntityWrapper = new EntityWrapper<>();
                    orderDetlEntityWrapper.eq("order_no",wrkDetls101.get(0).getOrderNo());
                    orderDetlEntityWrapper.eq("matnr",wrkDetls101.get(0).getMatnr());
                    OrderDetl orderDetl = orderDetlService.selectOne(orderDetlEntityWrapper);
                    for (WrkDetl wrkDetl: wrkDetls101) {
                        if(Cools.isEmpty(wrkDetl)){
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return FAIL.setMsg("全板出库 ===>> 任务明细为空; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                        }
                        if (!wrkDetl.getOrderNo().isEmpty()){
                            //更新订单完成数量
                            EntityWrapper<OrderDetl> orderDetlEntityWrapper = new EntityWrapper<>();
                            orderDetlEntityWrapper.eq("order_no",wrkDetl.getOrderNo());
                            orderDetlEntityWrapper.eq("matnr",wrkDetl.getMatnr());
                    OrderDetl orderDetl1 = new OrderDetl();
                    orderDetl1.setQty(orderDetl.getQty() + wrkDetls101.get(0).getAnfme());
                    orderDetl1.setUpdateTime(now);
                    if (!orderDetlService.update(orderDetl1,orderDetlEntityWrapper)){
                        return FAIL.setMsg("更新订单完成数量失败");
                            OrderDetl orderDetl = orderDetlService.selectOne(orderDetlEntityWrapper);
                            OrderDetl orderDetl1 = new OrderDetl();
                            orderDetl1.setQty(orderDetl.getQty() + wrkDetl.getAnfme());
                            orderDetl1.setUpdateTime(now);
                            if (!orderDetlService.update(orderDetl1,orderDetlEntityWrapper)){
                                return FAIL.setMsg("更新订单完成数量失败");
                            }
                            //更新立库拣货单完成数量
                            EntityWrapper<ManPakOut> manPakOutEntityWrapper = new EntityWrapper<>();
                            manPakOutEntityWrapper.eq("doc_num",wrkDetl.getOrderNo());
                            manPakOutEntityWrapper.eq("matnr",wrkDetl.getMatnr());
                            manPakOutEntityWrapper.eq("loc_no","立库");
                            ManPakOut manPakOut = manPakOutService.selectOne(manPakOutEntityWrapper);
                            if (manPakOut.getCount() + wrkDetl.getAnfme() >= manPakOut.getAnfme()){
                                manPakOut.setStatus(1);
                            }
                            manPakOut.setCount(manPakOut.getCount() + wrkDetl.getAnfme());
                            if (!manPakOutService.update(manPakOut,manPakOutEntityWrapper)){
                                return FAIL.setMsg("更新拣货单完成数量失败");
                            }
                        }
                    }
                    EntityWrapper<ManPakOut> manPakOutEntityWrapper = new EntityWrapper<>();
                    manPakOutEntityWrapper.eq("doc_num",wrkDetls101.get(0).getOrderNo());
                    manPakOutEntityWrapper.eq("matnr",wrkDetls101.get(0).getMatnr());
                    ManPakOut manPakOut = manPakOutService.selectOne(manPakOutEntityWrapper);
                    manPakOut.setCount(manPakOut.getCount() + wrkDetls101.get(0).getAnfme());
                    if (!manPakOutService.update(manPakOut,manPakOutEntityWrapper)){
                        return FAIL.setMsg("更新拣货单完成数量失败");
                    }
                    Boolean finsihed = orderDetlService.checkAllDetlFinish(wrkDetls101.get(0).getOrderNo());