From 7ad79ee463adbdbc51e37c12ae025fb8598ab670 Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期日, 07 四月 2024 14:25:36 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/utils/PlaExcelListener.java | 144 ++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 128 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/zy/asrs/utils/PlaExcelListener.java b/src/main/java/com/zy/asrs/utils/PlaExcelListener.java index b44a089..e971964 100644 --- a/src/main/java/com/zy/asrs/utils/PlaExcelListener.java +++ b/src/main/java/com/zy/asrs/utils/PlaExcelListener.java @@ -5,26 +5,34 @@ import com.core.common.Cools; import com.core.common.SpringUtils; import com.core.exception.CoolException; +import com.zy.asrs.entity.Mat; +import com.zy.asrs.entity.Node; import com.zy.asrs.entity.Pla; import com.zy.asrs.entity.param.GlobleParameter; +import com.zy.asrs.service.MatService; +import com.zy.asrs.service.NodeService; import com.zy.asrs.service.PlaService; import com.zy.common.entity.MatExcel; import com.zy.common.entity.PlaExcel; +import lombok.Data; 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 */ @Slf4j +@Data public class PlaExcelListener extends AnalysisEventListener<PlaExcel> { + private static final String OWNER_HZ = "娴锋鐢熺墿"; + private static final String OWNER_HNE = "娴疯灏�"; + private int total = 0; + private int index = 1; + private String recordLog = ""; private Long userId; public PlaExcelListener() { @@ -53,32 +61,98 @@ */ @Override public void invoke(PlaExcel excel, AnalysisContext ctx) { + index ++; PlaService plaService = SpringUtils.getBean(PlaService.class); + NodeService nodeService = SpringUtils.getBean(NodeService.class); + 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 = excel; - pla.setStep(2); + pla = plaCreate(pla,excel,matService,nodeService); pla.setCreateTime(new Date()); - pla.setStatus(GlobleParameter.PLA_STATUS_0); - if (!plaService.insert(pla)) { - throw new CoolException("淇濆瓨鍟嗗搧淇℃伅澶辫触锛屽晢鍝佺紪鐮侊細" + excel.getMatnr()); + try { + plaService.insert(pla); + }catch (Exception e){ + log.error("淇濆瓨鍟嗗搧淇℃伅澶辫触锛屾壒鍙凤細" + excel.getBatch() + ", 鍖呭彿锛�" + excel.getPackageNo() + "鍘熷洜涓猴細" + e.getMessage()); + throw new CoolException("淇濆瓨鍟嗗搧淇℃伅澶辫触锛屾壒鍙凤細" + excel.getBatch() + ", 鍖呭彿锛�" + excel.getPackageNo() + "鍘熷洜涓猴細" + e.getMessage()); } +// if (!plaService.insert(pla)) { +// throw new CoolException("淇濆瓨鍟嗗搧淇℃伅澶辫触锛屽晢鍝佺紪鐮侊細" + excel.getMatnr()); +// } total++; - }else if (pla.getStatus().equals(GlobleParameter.PLA_STATUS_0)){ + }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(pla.getModifyTime()); - excel.setStep(2); - excel.setStatus(GlobleParameter.PLA_STATUS_0); + excel.setStatus(pla.getStatus()); + excel.setPakinTime(pla.getPakinTime()); + excel.setStash(pla.getStash()); + if(Cools.isEmpty(excel.getLocNo())){ + excel.setLocNo(pla.getLocNo()); + } BeanUtils.copyProperties(excel,pla); - plaService.updateById(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++; + } + } + + private String getType(String matnr){ + String type = matnr.substring(0,3); + if(Cools.eq(type,"301")){ + return "绾爲鑴�"; + } + if (Cools.eq(type,"302")){ + return "鏀规�ф爲鑴�"; + } + if (Cools.eq(type,"303")){ + return "鍓骇鐗�"; + } + if (Cools.eq(type,"304")){ + return "濮旀墭鍔犲伐浜у搧"; + } + if (Cools.eq(type,"305")){ + return "涓欎氦閰�"; + } + + return ""; + } + + private void setPla(Pla pla){ + String batch = pla.getBatch(); + String line = batch.substring(8,10); + + 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("浜岃溅闂�"); + } + } } } @@ -94,4 +168,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; + } } -- Gitblit v1.9.1