自动化立体仓库 - WMS系统
#
DELL
2022-05-06 b43d307ac60607bcc556ca52c54cee0176b66273
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -125,7 +125,7 @@
        // 生成工作档明细
        List<MatCodeCountDto> matDtos = new ArrayList<>();
        param.getList().forEach(elem -> {
            matDtos.add(new MatCodeCountDto(elem.getMatNo(), elem.getSupplier(), elem.getCount()));
            matDtos.add(new MatCodeCountDto(elem.getMatNo(), elem.getSupplier(), elem.getCount(),elem.getMemo(),elem.getSource(),elem.getVendor()));
        });
        wrkDetlService.createWorkDetail(workNo, matDtos, param.getBarcode(), userId);
        // 更新源站点信息
@@ -264,6 +264,10 @@
            }
            // 生成工作档明细
            for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
                MatCode matCode = matCodeService.selectById(detlDto.getLocDetl().getMatNo());
                if(Cools.isEmpty(matCode)){
                    throw new CoolException("产品编码在基础数据中不存在,请确认");
                }
                // 出库时,数量为0的直接忽略
                if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
                WrkDetl wrkDetl = new WrkDetl();
@@ -276,6 +280,17 @@
                wrkDetl.setAppeUser(userId);
                wrkDetl.setModiTime(new Date());
                wrkDetl.setModiUser(userId);
                wrkDetl.setMemo(detlDto.getLocDetl().getMemo());
                wrkDetl.setQtyBox(matCode.getStr6()!=null ? matCode.getStr6() : 0);
                wrkDetl.setWeight(matCode.getWeight()!=null ? matCode.getWeight() : 0);
                wrkDetl.setAllWeight(matCode.getWeight()!=null ? qty*matCode.getWeight()+30 : 0);
                wrkDetl.setAllQty(matCode.getStr6()!=null ? qty*matCode.getStr6() : 0);
                wrkDetl.setVendor(detlDto.getLocDetl().getVendor());
                wrkDetl.setSource(detlDto.getLocDetl().getSource());
                wrkDetl.setSupplier(detlDto.getLocDetl().getSupplier());
                wrkDetl.setStr5(matCode.getStr5());
                wrkDetl.setStr4(matCode.getStr4());
                wrkDetl.setStr3(matCode.getStr3());
                if (!wrkDetlService.insert(wrkDetl)) {
                    throw new CoolException("保存工作档明细失败");
                }
@@ -490,6 +505,7 @@
                LocDetl sqlParam = new LocDetl();
                sqlParam.setLocNo(paramLocDetl.getLocNo());
                sqlParam.setMatNo(paramLocDetl.getMatNo());
                sqlParam.setSupplier(paramLocDetl.getSupplier());
                LocDetl one = locDetlService.selectOne(new EntityWrapper<>(sqlParam));
                if (null != one) locDetlDtos.add(new LocDetlDto(one, one.getQty()));
            }
@@ -651,6 +667,7 @@
            LocDetl sqlParam = new LocDetl();
            sqlParam.setLocNo(locMast.getLocNo());
            sqlParam.setMatNo(adjust.getMatNo());
            sqlParam.setSupplier(adjust.getSupplier());
            LocDetl one = locDetlService.selectOne(new EntityWrapper<>(sqlParam));
            // 保存新库存明细
            if (Cools.isEmpty(one)) {
@@ -662,11 +679,29 @@
                locDetl.setLocNo(locMast.getLocNo());
                locDetl.setQty(adjust.getCount()); // 数量
                VersionUtils.setLocDetl(locDetl, matCode); // 版本控制
                if (Cools.isEmpty(adjust.getSupplier())){
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
                    locDetl.setSupplier(sdf.format(new Date()));
                }else {
                    locDetl.setSupplier(adjust.getSupplier());
                }
                locDetl.setModiUser(userId); // 操作人员信息
                locDetl.setModiTime(new Date());
                locDetl.setAppeUser(userId);
                locDetl.setAppeTime(new Date());
                locDetl.setZpallet(param.getZpallet());//托盘号
                locDetl.setVendor(adjust.getVendor());
                locDetl.setSource(adjust.getSource());
                locDetl.setSupplier(adjust.getSupplier());
                locDetl.setQtyBox(matCode.getStr6());
                locDetl.setAllQty(matCode.getStr6()*adjust.getCount());
                locDetl.setAllWeight(matCode.getWeight()*adjust.getCount()+30);
                locDetl.setStr3(matCode.getStr3());
                locDetl.setStr4(matCode.getStr4());
                locDetl.setStr5(matCode.getStr5());
                if (!locDetlService.insert(locDetl)) {
                    throw new CoolException("保存库存明细失败");
                }
@@ -687,13 +722,25 @@
                            throw new CoolException("清除库存明细失败");
                        }
                    } else {
                        MatCode matCode = matCodeService.selectById(adjust.getMatNo());
                        LocDetl sqlParam1 = new LocDetl();
                        sqlParam1.setQty(adjust.getCount());
                        sqlParam1.setSupplier(adjust.getSupplier());
                        sqlParam1.setModiTime(new Date());
                        sqlParam1.setModiUser(userId);
                        sqlParam1.setVendor(adjust.getVendor());
                        sqlParam1.setSource(adjust.getSource());
                        sqlParam1.setSupplier(adjust.getSupplier());
                        sqlParam1.setQtyBox(matCode.getStr6());
                        sqlParam1.setAllQty(matCode.getStr6()*adjust.getCount());
                        sqlParam1.setAllWeight(matCode.getWeight()*adjust.getCount()+30);
                        sqlParam1.setStr5(matCode.getStr5());
                        sqlParam1.setStr4(matCode.getStr4());
                        sqlParam1.setStr3(matCode.getStr3());
                        if (!locDetlService.update(sqlParam1, new EntityWrapper<LocDetl>()
                                .eq("loc_no", locMast.getLocNo())
                                .eq("mat_no", adjust.getMatNo()))) {
                                .eq("mat_no", adjust.getMatNo())
                                .eq("supplier",adjust.getSupplier()))) {
                            throw new CoolException("修改库存明细失败");
                        }
                    }