自动化立体仓库 - WMS系统
pang.jiabao
2025-04-17 391dd89a6583e0f1eceaf1297fd852e3da32bf68
src/main/java/com/zy/asrs/utils/PlaExcelListener.java
@@ -18,10 +18,7 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
 * Created by vincent on 2019-11-25
@@ -35,6 +32,7 @@
    private int total = 0;
    private int index = 1;
    private String recordLog = "";
    private Long userId;
    public PlaExcelListener() {
@@ -69,14 +67,16 @@
        MatService matService = SpringUtils.getBean(MatService.class);
        Date now = new Date();
        // 商品
        if(Cools.isEmpty(excel.getBatch()) || Cools.isEmpty(excel.getPackageNo())){
            return;
            throw new CoolException("第" +  index++ + "数据错误,包号或者批号为空");
        }
        Pla pla = plaService.selectByBatchAndPackageNo(excel.getBatch(),excel.getPackageNo());
        Pla pla = plaService.selectByBatchAndPackageNo(excel.getBatch(),excel.getPackageNo(),excel.getBrand());
        if (pla == null) {
            pla = plaCreate(pla,excel,matService,nodeService);
            pla.setCreateTime(new Date());
            plaCreate(pla,excel,matService,nodeService);
            try {
                plaService.insert(pla);
            }catch (Exception e){
@@ -87,20 +87,58 @@
//                throw new CoolException("保存商品信息失败,商品编码:" + excel.getMatnr());
//            }
            total++;
        }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)){
        }else if(Cools.eq(pla.getStatus(),GlobleParameter.PLA_STATUS_0) || Cools.eq(pla.getStatus(),GlobleParameter.PLA_STATUS_00) || Cools.eq(pla.getStatus(),GlobleParameter.PLA_STATUS_1) ){
            excel.setId(pla.getId());
            excel.setCreateTime(pla.getCreateTime());
            excel.setStatus(pla.getStatus());
            excel.setPakinTime(pla.getPakinTime());
            excel.setStash(pla.getStash());
            excel.setLocNo(pla.getLocNo());
            excel.setStockFreeze(pla.getStockFreeze());
            if(Cools.isEmpty(excel.getLocNo())){
                excel.setLocNo(pla.getLocNo());
            }
            BeanUtils.copyProperties(excel,pla);
            pla = plaCreate(pla,excel,matService,nodeService);
            try {
                plaService.updateById(pla);
                recordLog = recordLog + index + "," + pla.getBatch() + "," + pla.getPackageNo() + ";" ;
            }catch (Exception e){
                log.error("保存商品信息失败,批号:" + excel.getBatch() + ", 包号:" + excel.getPackageNo() + "原因为:" + e.getMessage());
                throw new CoolException("保存商品信息失败,批号:" + excel.getBatch() + ", 包号:" + excel.getPackageNo() + "原因为:" + e.getMessage());
            }
            total++;
        } else if (Cools.eq(pla.getStatus(),GlobleParameter.PLA_STATUS_2) || Cools.eq(pla.getStatus(),GlobleParameter.PLA_STATUS_3) || Cools.eq(pla.getStatus(),GlobleParameter.PLA_STATUS_4)) {
            // 补传质量指标
            pla.setProDate(excel.getProDate());
            pla.setWeight(excel.getWeight());
            pla.setPackageType(excel.getPackageType());
            pla.setZpalletType(excel.getZpalletType());
            pla.setFingerMelting(excel.getFingerMelting());
            pla.setWater(excel.getWater());
            pla.setFusingPoint(excel.getFusingPoint());
            pla.setVadf1(excel.getVadf1());
            pla.setVadf2(excel.getVadf2());
            pla.setYellowness(excel.getYellowness());
            pla.setOpacity(excel.getOpacity());
            pla.setL(excel.getL());
            pla.setA(excel.getA());
            pla.setB(excel.getB());
            pla.setFillIn(excel.getFillIn());
            pla.setStr1(excel.getStr1());
            pla.setStr2(excel.getStr2());
            pla.setStr3(excel.getStr3());
            pla.setStr4(excel.getStr4());
            pla.setStr5(excel.getStr5());
            pla.setStr6(excel.getStr6());
            pla.setMassState(excel.getMassState());
            pla.setProblem(excel.getProblem());
            pla.setModifyTime(now);
            try {
                plaService.updateById(pla);
                recordLog = recordLog + index + "," + pla.getBatch() + "," + pla.getPackageNo() + ";" ;
            } catch (Exception e){
                log.error("补传质量指标异常,批号:" + excel.getBatch() + ", 包号:" + excel.getPackageNo() + "原因为:" + e.getMessage());
                throw new CoolException("补传质量指标异常,批号:" + excel.getBatch() + ", 包号:" + excel.getPackageNo() + "原因为:" + e.getMessage());
            }
            total++;
        }
@@ -145,7 +183,10 @@
                    pla.setWorkshop("三车间");
                }
            }else if ("改性树脂".equals(pla.getType())){
                if ("01".equals(line) || "02".equals(line) || "03".equals(line) || "04".equals(line)){
                if (pla.getBrand() != null && (pla.getBrand().equals("161") || pla.getBrand().equals("171") || pla.getBrand().equals("181"))) {
                    pla.setOwner(OWNER_HZ);
                    pla.setWorkshop("一车间");
                } else if ("01".equals(line) || "02".equals(line) || "03".equals(line) || "04".equals(line)){
                    pla.setOwner(OWNER_HNE);
                    pla.setWorkshop("二车间");
                }
@@ -171,12 +212,15 @@
        pla.setStep(2);
        pla.setModifyTime(new Date());
        pla.setStatus(GlobleParameter.PLA_STATUS_00);
        pla.setStockFreeze(1);
        pla.setStockFreeze(Cools.isEmpty(excel.getStockFreeze()) ? 1 : excel.getStockFreeze());
        pla.setWeightAnfme(pla.getWeight());
        Mat mat = matService.selectByMaktx(pla.getBrand());
        if(Cools.isEmpty(mat)){
            throw new CoolException("无法找到对应的牌号信息,牌号=" + pla.getBrand());
        }
        if (!Cools.isEmpty(excel.getProblem()) && excel.getProblem().contains("实验料")) {
            excel.setMassState("实验料");
        }
        pla.setMatnr(mat.getMatnr());
        try {
            if(Cools.isEmpty(pla.getType())){