自动化立体仓库 - WMS系统
src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
@@ -322,10 +322,25 @@
                        LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>()
                                .eq("zpallet", mast.getBarcode())
                                .eq("loc_no", mast.getSourceLocNo()));
                        if (Objects.isNull(locDetl)) {
                        WrkDetl mainWrkDetl = null;
                        if (Objects.isNull(locDetl) && !Cools.isEmpty(mast.getWrkCode())) {
                            mainWrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>()
                                    .eq("wrk_no", mast.getWrkCode())
                                    .eq("zpallet", mast.getBarcode()));
                            if (Objects.isNull(mainWrkDetl)) {
                                mainWrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>()
                                        .eq("wrk_no", mast.getWrkCode()));
                            }
                            if (!Objects.isNull(mainWrkDetl)) {
                                log.info("locDetl为空,回退查询主任务明细,wrkNo={}, mainWrkNo={}, barcode={}",
                                        mast.getWrkNo(), mast.getWrkCode(), mast.getBarcode());
                            }
                        }
                        if (Objects.isNull(locDetl) && Objects.isNull(mainWrkDetl)) {
                            throw new CoolException("明细数据不存在!!");
                        }
                        Mat matnr = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", locDetl.getMatnr()));
                        String matnrNo = Objects.isNull(locDetl) ? mainWrkDetl.getMatnr() : locDetl.getMatnr();
                        Mat matnr = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", matnrNo));
                        if (Objects.isNull(matnr)) {
                            throw new CoolException("物料基础信息不存在!!");
                        }
@@ -333,9 +348,15 @@
                            Double val = Math.round((weight - matnr.getSafeQty()) * 10000) / 10000.0;
                            if (val.compareTo(0.0) > 0) {
                                WrkDetl wrkDetl = new WrkDetl();
                                if (Objects.isNull(locDetl)) {
                                    BeanUtils.copyProperties(mainWrkDetl, wrkDetl);
                                    wrkDetl.setStockQty(Cools.isEmpty(mainWrkDetl.getStockQty()) ? mainWrkDetl.getAnfme() : mainWrkDetl.getStockQty());
                                    wrkDetl.setZpallet(mast.getBarcode());
                                } else {
                                BeanUtils.copyProperties(locDetl, wrkDetl);
                                wrkDetl.setWrkNo(mast.getWrkNo());
                                wrkDetl.setStockQty(locDetl.getAnfme());
                                }
                                wrkDetl.setWrkNo(mast.getWrkNo());
                                wrkDetl.setIoTime(new Date());
                                wrkDetl.setWeight(weight);
                                wrkDetl.setIoTime(mast.getIoTime());