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