From 4695b1501f8dd6850730aeb4131f88fef0e14c9f Mon Sep 17 00:00:00 2001
From: futian.liu <liufutianyoo@163.com>
Date: 星期二, 12 十二月 2023 10:28:56 +0800
Subject: [PATCH] 物品导入

---
 consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java |   73 ++++++++++++++++++++----------------
 1 files changed, 40 insertions(+), 33 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java b/consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java
index da2fb8c..7a5e781 100644
--- a/consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java
+++ b/consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java
@@ -1,9 +1,11 @@
 package com.consum.base.controller;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 
 import org.apache.commons.compress.utils.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,10 +28,12 @@
 import com.consum.base.pojo.BaseGoodsTemplateParam;
 import com.consum.base.pojo.excel.ImportGoodsInfoTemplate;
 import com.consum.base.pojo.response.GoodsTemplateVO;
+import com.consum.base.service.BaseCategoryService;
 import com.consum.base.service.BaseGoodsTemplateService;
 import com.consum.base.service.BaseWarehouseService;
 import com.consum.base.service.FinSysTenantService;
 import com.consum.base.service.LWhGoodsService;
+import com.consum.model.po.BaseCategory;
 import com.consum.model.po.BaseGoodsModels;
 import com.consum.model.po.BaseGoodsTemplate;
 import com.consum.model.po.BaseWarehouse;
@@ -38,7 +42,6 @@
 import com.consum.model.po.SDictData;
 import com.consum.model.vo.BaseGoodsTemplateVo;
 import com.walker.db.page.GenericPager;
-import com.walker.infrastructure.utils.DateUtils;
 import com.walker.infrastructure.utils.StringUtils;
 import com.walker.web.ResponseValue;
 
@@ -66,6 +69,9 @@
 
     @Autowired
     private FinSysTenantService finSysTenantService;
+
+    @Autowired
+    private BaseCategoryService baseCategoryService;
 
     /**
      * @Description 鏂板鐗╁搧妯℃澘
@@ -298,48 +304,47 @@
                     String categoryOne = data.getCategoryOne();
                     String categoryTwo = data.getCategoryTwo();
                     String categoryThree = data.getCategoryThree();
-                    String goodName = data.getGoodName();
-                    String goodModel = data.getGoodModel();
+                    String goodsName = data.getGoodsName();
+                    String goodModelName = data.getGoodModelName();
                     String unit = data.getUnit();
                     String type = data.getType();
                     String agencyName = data.getAgencyName();
 
-                    list.stream().forEach(item -> {
-                        if (!item.getCategoryId().equals(categoryThree)) {
-                            BaseGoodsTemplateParam baseGoodsTemplate = new BaseGoodsTemplateParam();
-                            baseGoodsTemplate.setCategoryId(Long.valueOf(categoryThree));
-                            baseGoodsTemplate.setGoodsName(goodName);
-                            baseGoodsTemplate.setStates(1);
-                            FinSysTenant finSysTenant = finSysTenantService.selectByName(agencyName);
-                            baseGoodsTemplate.setAgencyId(finSysTenant.getId());
+                    BaseCategory baseCategory = baseCategoryService.getByCategoryByName(categoryThree);
+                    Long categoryId = baseCategory.getId();
 
-                            List<BaseGoodsModels> models = Lists.newArrayList();
-                            BaseGoodsModels baseGoodsModels = new BaseGoodsModels();
-                            baseGoodsModels.setModelName(goodModel);
-                            baseGoodsModels.setStates(1);
-                            baseGoodsModels.setGoodsTemplatesId(item.getId());
-                            baseGoodsModels.setUnit(unit);
-                            baseGoodsModels.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
-                            models.add(baseGoodsModels);
-                            baseGoodsTemplate.setModels(models);
-                        } else {
-                            List<BaseGoodsModels> models = item.getModels();
-                            BaseGoodsModels baseGoodsModels = new BaseGoodsModels();
-                            baseGoodsModels.setModelName(goodModel);
-                            baseGoodsModels.setStates(1);
-                            baseGoodsModels.setGoodsTemplatesId(item.getId());
-                            baseGoodsModels.setUnit(unit);
-                            baseGoodsModels.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
-                            models.add(baseGoodsModels);
-                        }
-                    });
+                    Optional<BaseGoodsTemplateParam> optional =
+                        list.stream().filter(item -> item.getCategoryId().equals(categoryId)).findFirst();
 
+                    if (optional.isPresent()) {
+                        BaseGoodsModels baseGoodsModels = new BaseGoodsModels();
+                        baseGoodsModels.setModelName(goodModelName);
+                        baseGoodsModels.setUnit(unit);
+                        optional.get().getModels().add(baseGoodsModels);
+                    } else {
+                        BaseGoodsTemplateParam baseGoodsTemplate = new BaseGoodsTemplateParam();
+                        baseGoodsTemplate.setCategoryId(categoryId);
+                        baseGoodsTemplate.setGoodsName(goodsName);
+                        baseGoodsTemplate.setStates(1);
+                        FinSysTenant finSysTenant = finSysTenantService.selectByName(agencyName);
+                        baseGoodsTemplate.setAgencyId(finSysTenant.getId());
+                        baseGoodsTemplate.setAgencyName(agencyName);
+
+                        List<BaseGoodsModels> models = new ArrayList<>();
+                        BaseGoodsModels baseGoodsModels = new BaseGoodsModels();
+                        baseGoodsModels.setModelName(goodModelName);
+                        baseGoodsModels.setUnit(unit);
+                        models.add(baseGoodsModels);
+                        baseGoodsTemplate.setModels(models);
+
+                        list.add(baseGoodsTemplate);
+                    }
                 }
 
                 @Override
                 public void doAfterAllAnalysed(AnalysisContext analysisContext) {
-                    for (BaseGoodsTemplateParam a : list) {
-                        baseGoodsTemplateService.add(a, sysInfo);
+                    for (BaseGoodsTemplateParam baseGoodsTemplate : list) {
+                        baseGoodsTemplateService.add(baseGoodsTemplate, null);
                     }
                 }
 
@@ -350,6 +355,8 @@
                         Integer row = excelDataConvertException.getRowIndex() + 1;
                         Integer column = excelDataConvertException.getColumnIndex() + 1;
                         throw new RuntimeException("绗�" + row + "琛岋紝绗�" + column + "鍒楄В鏋愬紓甯革紝璇锋纭~鍐�");
+                    } else {
+                        throw new RuntimeException(exception.getMessage());
                     }
                 }
             }).sheet(0).doRead();

--
Gitblit v1.9.1