自动化立体仓库 - WMS系统
pang.jiabao
2024-02-28 a8ab542c3f3bbb304f6fd7e66897433df65a2b3e
src/main/java/com/zy/asrs/utils/PlaExcelListener.java
@@ -75,38 +75,8 @@
        }
        Pla pla = plaService.selectByBatchAndPackageNo(excel.getBatch(),excel.getPackageNo());
        if (pla == null) {
            pla = excel;
            pla.setStep(2);
            pla.setCreateTime(new Date());
            pla.setModifyTime(new Date());
            pla.setStatus(GlobleParameter.PLA_STATUS_00);
            pla.setStockFreeze(1);
            pla.setWeightAnfme(pla.getWeight());
            Mat mat = matService.selectByMaktx(pla.getBrand());
            if(Cools.isEmpty(mat)){
                throw new CoolException("无法找到对应的牌号信息,牌号=" + pla.getBrand());
            }
            pla.setMatnr(mat.getMatnr());
            try {
                pla.setType(getType(mat.getMatnr()));
                //车间、产线、主体
                setPla(pla);
            }catch (Exception e){
                log.info(e.getMessage() + "Pla: " + pla.getBatch());
                throw new CoolException(e.getMessage() + ",批号:" + excel.getBatch() + ", 包号:" + excel.getPackageNo());
            }
            if(!Cools.isEmpty(pla.getLocNo())){
                Node node = nodeService.selectByUuid(pla.getLocNo());
                if(Cools.isEmpty(node)){
                    throw new CoolException("未能找到相应的库位信息,库位编号=" +pla.getLocNo());
                    //log.info("未能找到相应的库位信息,库位编号={}",pla.getLocNo());
                }
                pla.setStash(node.getParentName());
                pla.setLocNo(node.getUuid());
                pla.setStatus(GlobleParameter.PLA_STATUS_1);
                pla.setPakinTime(new Date());
            }
            plaCreate(pla,excel,matService,nodeService);
            try {
                plaService.insert(pla);
            }catch (Exception e){
@@ -117,13 +87,15 @@
//                throw new CoolException("保存商品信息失败,商品编码:" + excel.getMatnr());
//            }
            total++;
        }else if (pla.getStatus().equals(GlobleParameter.PLA_STATUS_00)){
        }else if(Cools.eq(pla.getStatus(),GlobleParameter.PLA_STATUS_0) || Cools.eq(pla.getStatus(),GlobleParameter.PLA_STATUS_1) || Cools.eq(pla.getStatus(),GlobleParameter.PLA_STATUS_00)){
            excel.setId(pla.getId());
            excel.setCreateTime(pla.getCreateTime());
            excel.setModifyTime(new Date());
            excel.setStep(2);
            excel.setStatus(GlobleParameter.PLA_STATUS_00);
            excel.setStatus(pla.getStatus());
            excel.setPakinTime(pla.getPakinTime());
            excel.setStash(pla.getStash());
            excel.setLocNo(pla.getLocNo());
            BeanUtils.copyProperties(excel,pla);
            pla = plaCreate(pla,excel,matService,nodeService);
            try {
                plaService.updateById(pla);
            }catch (Exception e){
@@ -159,19 +131,24 @@
        String batch = pla.getBatch();
        String line = batch.substring(8,10);
        pla.setLine(line);
        if("纯树脂".equals(pla.getType())){
            if("01".equals(line) || "02".equals(line)){
                pla.setOwner(OWNER_HZ);
                pla.setWorkshop("一车间");
            }else {
                pla.setOwner(OWNER_HNE);
                pla.setWorkshop("三车间");
            }
        }else if ("改性树脂".equals(pla.getType())){
            if ("01".equals(line) || "02".equals(line) || "03".equals(line) || "04".equals(line)){
                pla.setOwner(OWNER_HNE);
                pla.setWorkshop("二车间");
        if(Cools.isEmpty(pla.getLine())){
            pla.setLine(line);
        }
        if(Cools.isEmpty(pla.getOwner()) && Cools.isEmpty(pla.getWorkshop())){
            if("纯树脂".equals(pla.getType())){
                if("01".equals(line) || "02".equals(line)){
                    pla.setOwner(OWNER_HZ);
                    pla.setWorkshop("一车间");
                }else {
                    pla.setOwner(OWNER_HNE);
                    pla.setWorkshop("三车间");
                }
            }else if ("改性树脂".equals(pla.getType())){
                if ("01".equals(line) || "02".equals(line) || "03".equals(line) || "04".equals(line)){
                    pla.setOwner(OWNER_HNE);
                    pla.setWorkshop("二车间");
                }
            }
        }
    }
@@ -188,4 +165,42 @@
    public int getTotal() {
        return total;
    }
    private Pla plaCreate(Pla pla, PlaExcel excel, MatService matService, NodeService nodeService){
        pla = excel;
        pla.setStep(2);
        pla.setModifyTime(new Date());
        pla.setStatus(GlobleParameter.PLA_STATUS_00);
        pla.setStockFreeze(1);
        pla.setWeightAnfme(pla.getWeight());
        Mat mat = matService.selectByMaktx(pla.getBrand());
        if(Cools.isEmpty(mat)){
            throw new CoolException("无法找到对应的牌号信息,牌号=" + pla.getBrand());
        }
        pla.setMatnr(mat.getMatnr());
        try {
            if(Cools.isEmpty(pla.getType())){
                pla.setType(getType(mat.getMatnr()));
            }
            //车间、产线、主体
            setPla(pla);
        }catch (Exception e){
            log.info(e.getMessage() + "Pla: " + pla.getBatch());
            throw new CoolException(e.getMessage() + ",批号:" + excel.getBatch() + ", 包号:" + excel.getPackageNo());
        }
        if(!Cools.isEmpty(pla.getLocNo())){
            Node node = nodeService.selectByUuid(pla.getLocNo());
            if(Cools.isEmpty(node)){
                throw new CoolException("未能找到相应的库位信息,库位编号=" +pla.getLocNo());
                //log.info("未能找到相应的库位信息,库位编号={}",pla.getLocNo());
            }
            pla.setStash(node.getParentName());
            pla.setLocNo(node.getUuid());
            pla.setStatus(GlobleParameter.PLA_STATUS_1);
            pla.setPakinTime(new Date());
        }
        return pla;
    }
}