自动化立体仓库 - WMS系统
野心家
2023-07-01 e899597b10286b38fdda652b37872e5a170c8e2b
st订单,平库功能修复
2个文件已修改
196 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -641,7 +641,11 @@
            EntityWrapper<ManPakOut> manPakOutEntityWrapper = new EntityWrapper<>();
            manPakOutEntityWrapper.eq("loc_no",jsonLocNo);
            manPakOutEntityWrapper.eq("matnr",jsonOrderDetl.getMatnr());
            manPakOutEntityWrapper.eq("doc_num",order.getOrderNo());
            ManPakOut manPakOut = manPakOutService.selectOne(manPakOutEntityWrapper); //获取拣货单中的对应的订单
            if(Cools.isEmpty(manPakOut)){
                return R.error("没有找到对应的出库单"+jsonLocNo+"-------"+jsonOrderDetl.getMatnr());
            }
            if(manPakOut.getCount() == null){
                manPakOut.setCount(0.0);
            }
@@ -719,8 +723,7 @@
            EntityWrapper<ManLocDetl> manLocDetlEntityWrapper = new EntityWrapper<>();
            manLocDetlEntityWrapper.eq("loc_no",manPakOut.getLocNo());
            manLocDetlEntityWrapper.eq("matnr",manPakOut.getMatnr());
            if (checkManLocDetl.getAnfme().intValue() == manPakOut.getCount()){
            if (checkManLocDetl.getAnfme() == 0 ){
                if(!manLocDetlService.delete(manLocDetlEntityWrapper)){
                    return R.error("删除平库库存失败");
                }
@@ -741,70 +744,89 @@
        String jsonLocNo = (String) json.get("locNo"); //获取库位码
        String jsonBarNo = (String) json.get("barcode"); //获取托盘码
        WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", jsonBarNo)); //获取对应组托信息
        if (waitPakin.equals(null)){
        List<WaitPakin> waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", jsonBarNo)); //获取对应组托信息
        if (Cools.isEmpty(waitPakins)){
            return R.error("未查询到组托");
        } else if (waitPakin.getIoStatus() == "Y") {
        } else if (waitPakins.get(0).getIoStatus() == "Y") {
            return R.error("组托已经生成工作档");
        }
        Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", waitPakin.getOrderNo()));  //获取对应订单信息
        if (order.equals(null)){
            return R.error("未查询到订单信息");
        }
        OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", waitPakin.
                getOrderNo()).eq("matnr", waitPakin.getMatnr()));  //获取对应订单明细信息
        if (orderDetl.equals(null)){
            return R.error("未查询到订单明细信息");
        }
        Node node = nodeService.selectOne(new EntityWrapper<Node>().eq("name", jsonLocNo));  //获取对应库位信息
        if (node.equals(null)){
            return R.error("未查询到库位信息");
        }
        Date date = new Date();
        ManLocDetl manLocDetl = new ManLocDetl();  //初始化库存实体类
        manLocDetl.setLocNo(node.getName());
        manLocDetl.setNodeId(node.getId());
        manLocDetl.setZpallet(waitPakin.getZpallet());
        manLocDetl.setAnfme(waitPakin.getAnfme());
        manLocDetl.setMatnr(waitPakin.getMatnr());
        manLocDetl.setMaktx(waitPakin.getMaktx());
        manLocDetl.setStatus(1);
        manLocDetl.setCreateBy(user.getId());
        manLocDetl.setCreateTime(date);
        manLocDetl.setUpdateBy(user.getId());
        manLocDetl.setModiTime(date);
        manLocDetl.setOrderNo(waitPakin.getOrderNo());
        manLocDetl.setOwner(waitPakin.getOwner());
        manLocDetl.setPayment(waitPakin.getPayment());
        //判断订单是否完成
        boolean log =true;
        if (!manLocDetlService.insert(manLocDetl)){  //数据库插入实体类信息
            return R.error("物料信息入库失败");
        }
        orderDetl.setQty(orderDetl.getQty()+ waitPakin.getAnfme());  //更新订单明细数量
        if (!orderDetlService.updateById(orderDetl)){
            return R.error("更新订单明细失败");
        }
        for (WaitPakin waitPakin: waitPakins) {
            Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", waitPakin.getOrderNo()));  //获取对应订单信息
            if (order.equals(null)){
                return R.error("未查询到订单信息");
            }
            OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", waitPakin.
                    getOrderNo()).eq("matnr", waitPakin.getMatnr()));  //获取对应订单明细信息
            if (orderDetl.equals(null)){
                return R.error("未查询到订单明细信息");
            }
            Node node = nodeService.selectOne(new EntityWrapper<Node>().eq("name", jsonLocNo));  //获取对应库位信息
            if (node.equals(null)){
                return R.error("未查询到库位信息");
            }
            Date date = new Date();
            ManLocDetl manLocDetl = new ManLocDetl();  //初始化库存实体类
            manLocDetl.setLocNo(node.getName());
            manLocDetl.setNodeId(node.getId());
            manLocDetl.setZpallet(waitPakin.getZpallet());
            manLocDetl.setAnfme(waitPakin.getAnfme());
            manLocDetl.setMatnr(waitPakin.getMatnr());
            manLocDetl.setMaktx(waitPakin.getMaktx());
            manLocDetl.setStatus(1);
            manLocDetl.setCreateBy(user.getId());
            manLocDetl.setCreateTime(date);
            manLocDetl.setUpdateBy(user.getId());
            manLocDetl.setModiTime(date);
            manLocDetl.setOrderNo(waitPakin.getOrderNo());
            manLocDetl.setOwner(waitPakin.getOwner());
            manLocDetl.setPayment(waitPakin.getPayment());
        WaitPakinLog waitPakinLog = new WaitPakinLog(); //初始化入库通知单日志实体类
        waitPakinLog.setZpallet(waitPakin.getZpallet());
        waitPakinLog.setAnfme(waitPakin.getAnfme());
        waitPakinLog.setMatnr(waitPakin.getMatnr());
        waitPakinLog.setLocNo(waitPakin.getLocNo());
        waitPakinLog.setMaktx(waitPakin.getMaktx());
        waitPakinLog.setOrderNo(waitPakin.getOrderNo());
        waitPakinLog.setWeight(waitPakin.getWeight());
        waitPakinLog.setStatus("Y");
        waitPakinLog.setIoStatus("Y");
        waitPakinLog.setModiUser(user.getId());
        waitPakinLog.setModiTime(date);
        waitPakinLog.setAppeUser(user.getId());
        waitPakinLog.setAppeTime(date);
        waitPakinLog.setOwner(waitPakin.getOwner());
        waitPakinLog.setPayment(waitPakin.getPayment());
        waitPakinLog.setUuid(waitPakin.getUuid());
            if (!manLocDetlService.insert(manLocDetl)){  //数据库插入实体类信息
                return R.error("物料信息入库失败");
            }
            orderDetl.setQty(orderDetl.getQty()+ waitPakin.getAnfme());  //更新订单明细数量
            if (!orderDetlService.updateById(orderDetl)){
                return R.error("更新订单明细失败");
            }
        if (!waitPakinLogService.insert(waitPakinLog)){  //插入入库通知历史档数据库
            return R.error("插入历史入库通知档失败");
            WaitPakinLog waitPakinLog = new WaitPakinLog(); //初始化入库通知单日志实体类
            waitPakinLog.setZpallet(waitPakin.getZpallet());
            waitPakinLog.setAnfme(waitPakin.getAnfme());
            waitPakinLog.setMatnr(waitPakin.getMatnr());
            waitPakinLog.setLocNo(waitPakin.getLocNo());
            waitPakinLog.setMaktx(waitPakin.getMaktx());
            waitPakinLog.setOrderNo(waitPakin.getOrderNo());
            waitPakinLog.setWeight(waitPakin.getWeight());
            waitPakinLog.setStatus("Y");
            waitPakinLog.setIoStatus("Y");
            waitPakinLog.setModiUser(user.getId());
            waitPakinLog.setModiTime(date);
            waitPakinLog.setAppeUser(user.getId());
            waitPakinLog.setAppeTime(date);
            waitPakinLog.setOwner(waitPakin.getOwner());
            waitPakinLog.setPayment(waitPakin.getPayment());
            waitPakinLog.setUuid(waitPakin.getUuid());
            if (!waitPakinLogService.insert(waitPakinLog)){  //插入入库通知历史档数据库
                return R.error("插入历史入库通知档失败");
            }
            //订单是否完成
            List<OrderDetl> or = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", waitPakin.getOrderNo()));
            for (OrderDetl o: or) {
                if(o.getAnfme()-o.getQty()>0){
                    log=false;
                    break;
                }
            }
            if(log){
                order.setSettle(4L);
                if(!orderService.update(order,new EntityWrapper<Order>().eq("order_no", waitPakin.getOrderNo()))){
                    return R.error("订单转完成状态失败!!!");
                }
            }
        }
        if (!waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet",jsonBarNo))){  //删除原入库通知档
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -382,37 +382,45 @@
                            return FAIL.setMsg("全板出库 ===>> 修改源库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                        }
                    }
                    if (!wrkDetls101.get(0).getOrderNo().isEmpty()){
                        //更新订单完成数量
                        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);
                        OrderDetl orderDetl1 = new OrderDetl();
                        orderDetl1.setQty(orderDetl.getQty() + wrkDetls101.get(0).getAnfme());
                        orderDetl1.setUpdateTime(now);
                        if (!orderDetlService.update(orderDetl1,orderDetlEntityWrapper)){
                            return FAIL.setMsg("更新订单完成数量失败");
                    for (WrkDetl wrkDetl: wrkDetls101) {
                        if(Cools.isEmpty(wrkDetl)){
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return FAIL.setMsg("全板出库 ===>> 任务明细为空; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                        }
                        //更新拣货单完成数量
                        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);
                        if (manPakOut.getCount() + wrkDetls101.get(0).getAnfme() >= manPakOut.getAnfme()){
                            manPakOut.setStatus(1);
                        }
                        manPakOut.setCount(manPakOut.getCount() + wrkDetls101.get(0).getAnfme());
                        if (!wrkDetl.getOrderNo().isEmpty()){
                            //更新订单完成数量
                            EntityWrapper<OrderDetl> orderDetlEntityWrapper = new EntityWrapper<>();
                            orderDetlEntityWrapper.eq("order_no",wrkDetl.getOrderNo());
                            orderDetlEntityWrapper.eq("matnr",wrkDetl.getMatnr());
                        if (!manPakOutService.update(manPakOut,manPakOutEntityWrapper)){
                            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("更新拣货单完成数量失败");
                            }
                        }
                    }
                    Boolean finsihed = orderDetlService.checkAllDetlFinish(wrkDetls101.get(0).getOrderNo());
                    if (finsihed) {
                        Boolean mastFinished = wrkMastService.checkFinishByOrder(wrkDetls101.get(0).getOrderNo());