futian.liu
2023-12-12 4695b1501f8dd6850730aeb4131f88fef0e14c9f
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();