futian.liu
2023-12-12 4695b1501f8dd6850730aeb4131f88fef0e14c9f
物品导入
7个文件已修改
224 ■■■■ 已修改文件
admin-web/src/views/foundation/material/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/BaseGoodsTemplateParam.java 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/excel/ImportGoodsInfoTemplate.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/BaseCategoryService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/BaseCategoryServiceImpl.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/BaseGoodsTemplateServiceImpl.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin-web/src/views/foundation/material/index.vue
@@ -110,7 +110,7 @@
          dialogShow: false,
          fileSettings: {
              data: {},
              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 上传地址
              uploadUrl: getBaseUrl()+"/pc/base/goods/template/import", // 上传地址
              accept: '.xls', // 格式
              type: 'text', // 回显形式
              loading: false // 导入效果
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)) {
                    BaseCategory baseCategory = baseCategoryService.getByCategoryByName(categoryThree);
                    Long categoryId = baseCategory.getId();
                    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(Long.valueOf(categoryThree));
                            baseGoodsTemplate.setGoodsName(goodName);
                        baseGoodsTemplate.setCategoryId(categoryId);
                        baseGoodsTemplate.setGoodsName(goodsName);
                            baseGoodsTemplate.setStates(1);
                            FinSysTenant finSysTenant = finSysTenantService.selectByName(agencyName);
                            baseGoodsTemplate.setAgencyId(finSysTenant.getId());
                        baseGoodsTemplate.setAgencyName(agencyName);
                            List<BaseGoodsModels> models = Lists.newArrayList();
                        List<BaseGoodsModels> models = new ArrayList<>();
                            BaseGoodsModels baseGoodsModels = new BaseGoodsModels();
                            baseGoodsModels.setModelName(goodModel);
                            baseGoodsModels.setStates(1);
                            baseGoodsModels.setGoodsTemplatesId(item.getId());
                        baseGoodsModels.setModelName(goodModelName);
                            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);
                        }
                    });
                        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();
consum-base/src/main/java/com/consum/base/pojo/BaseGoodsTemplateParam.java
@@ -1,10 +1,13 @@
package com.consum.base.pojo;
import java.util.List;
import com.consum.model.po.BaseGoodsModels;
import com.walker.web.param.ParamRequest;
import java.util.List;
import lombok.Data;
@Data
public class BaseGoodsTemplateParam extends ParamRequest {
    private Long id;
    /**
@@ -36,67 +39,9 @@
     */
    private Long agencyId;
    public Long getId() {
        return id;
    }
    /**
     * 机构名称
     */
    private String agencyName;
    public void setId(Long id) {
        this.id = id;
    }
    public String getGoodsCode() {
        return goodsCode;
    }
    public void setGoodsCode(String goodsCode) {
        this.goodsCode = goodsCode;
    }
    public Long getCategoryId() {
        return categoryId;
    }
    public void setCategoryId(Long categoryId) {
        this.categoryId = categoryId;
    }
    public String getGoodsName() {
        return goodsName;
    }
    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }
    public List<BaseGoodsModels> getModels() {
        return models;
    }
    public void setModels(List<BaseGoodsModels> models) {
        this.models = models;
    }
    public Integer getStates() {
        return states;
    }
    public void setStates(Integer states) {
        this.states = states;
    }
    public String getClassification() {
        return classification;
    }
    public void setClassification(String classification) {
        this.classification = classification;
    }
    public Long getAgencyId() {
        return agencyId;
    }
    public void setAgencyId(Long agencyId) {
        this.agencyId = agencyId;
    }
}
consum-base/src/main/java/com/consum/base/pojo/excel/ImportGoodsInfoTemplate.java
@@ -20,9 +20,9 @@
    @ExcelProperty("三级分类")
    private String categoryThree;
    @ExcelProperty("物品名称")
    private String goodName;
    private String goodsName;
    @ExcelProperty("规格型号")
    private String goodModel;
    private String goodModelName;
    @ExcelProperty("单位")
    private String unit;
    @ExcelProperty("采购类型")
consum-base/src/main/java/com/consum/base/service/BaseCategoryService.java
@@ -1,12 +1,13 @@
package com.consum.base.service;
import java.util.List;
import com.consum.base.pojo.BaseCategoryParam;
import com.consum.base.pojo.ProjectTreeResult;
import com.consum.model.po.BaseCategory;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.jdbc.service.BaseService;
import java.util.List;
public interface BaseCategoryService extends BaseService {
@@ -27,4 +28,12 @@
    List<ProjectTreeResult> tree();
    List<BaseCategory> queryForLv3Tree();
    /**
     * 根据名称查询分类
     *
     * @param categoryName
     * @return
     */
    BaseCategory getByCategoryByName(String categoryName);
}
consum-base/src/main/java/com/consum/base/service/impl/BaseCategoryServiceImpl.java
@@ -1,5 +1,13 @@
package com.consum.base.service.impl;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import com.consum.base.Constants;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.pojo.BaseCategoryParam;
@@ -11,13 +19,6 @@
import com.walker.infrastructure.utils.DateUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.jdbc.service.BaseServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
/**
 * @Description 物品分类
@@ -27,7 +28,8 @@
@Service
public class BaseCategoryServiceImpl extends BaseServiceImpl implements BaseCategoryService {
    private static final String QUERY_TREE_ALL = "select * from base_category where states = 1  order by FATHER_CATEGORY_ID, LEVELS ASC";
    private static final String QUERY_TREE_ALL =
        "select * from base_category where states = 1  order by FATHER_CATEGORY_ID, LEVELS ASC";
    /**
     * @Description 新增分类
@@ -187,7 +189,8 @@
                projectTreeResult.setChildren(getChildren(projectTreeResult, all));
            }
            return projectTreeResult;
        }).sorted(Comparator.comparingInt(menu -> (menu.getSort() == null ? 0 : menu.getSort()))).collect(Collectors.toList());
        }).sorted(Comparator.comparingInt(menu -> (menu.getSort() == null ? 0 : menu.getSort())))
            .collect(Collectors.toList());
        return menus;
    }
@@ -196,7 +199,8 @@
     * 递归查找所有菜单的子菜单
     */
    private List<ProjectTreeResult> getChildren(ProjectTreeResult root, List<BaseCategory> all) {
        List<ProjectTreeResult> children = all.stream().filter(entity -> entity.getFatherCategoryId().equals(root.getId())).map(entity -> {
        List<ProjectTreeResult> children =
            all.stream().filter(entity -> entity.getFatherCategoryId().equals(root.getId())).map(entity -> {
            ProjectTreeResult projectTreeResult = new ProjectTreeResult(entity);
            //通过递归找到子分类
@@ -206,10 +210,10 @@
                projectTreeResult.setChildren(getChildren(projectTreeResult, all));
            }
            return projectTreeResult;
        }).sorted(Comparator.comparingInt(menu -> (menu.getSort() == null ? 0 : menu.getSort()))).collect(Collectors.toList());
            }).sorted(Comparator.comparingInt(menu -> (menu.getSort() == null ? 0 : menu.getSort())))
                .collect(Collectors.toList());
        return children;
    }
    /**
     * @return
@@ -218,7 +222,19 @@
     * @Date 2023/10/30
     */
    public List<BaseCategory> queryForLv3Tree() {
        StringBuilder sql = new StringBuilder("SELECT * FROM base_category WHERE states = 1 and levels = 3 order by ORDER_NUMBER,CREATE_TIME desc");
        StringBuilder sql = new StringBuilder(
            "SELECT * FROM base_category WHERE states = 1 and levels = 3 order by ORDER_NUMBER,CREATE_TIME desc");
        return this.select(sql.toString(), new Object[]{}, new BaseCategory());
    }
    @Override
    public BaseCategory getByCategoryByName(String categoryName) {
        StringBuilder sql = new StringBuilder("SELECT * FROM base_category WHERE 1 = 1 ");
        HashMap<String, Object> paramts = new HashMap<>();
        // 分类名称
        sql.append(" and category_name =:category_name ");
        paramts.put("category_name", categoryName);
        BaseCategory baseCategory = this.get(sql.toString(), paramts, new BaseCategory());
        return baseCategory;
    }
}
consum-base/src/main/java/com/consum/base/service/impl/BaseGoodsTemplateServiceImpl.java
@@ -1,6 +1,14 @@
package com.consum.base.service.impl;
import cn.hutool.core.convert.Convert;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import com.consum.base.Constants;
import com.consum.base.core.CodeGeneratorService;
import com.consum.base.core.utils.IdUtil;
@@ -8,21 +16,19 @@
import com.consum.base.service.BaseCategoryService;
import com.consum.base.service.BaseGoodsModelsService;
import com.consum.base.service.BaseGoodsTemplateService;
import com.consum.model.po.*;
import com.consum.model.po.BaseCategory;
import com.consum.model.po.BaseGoodsModels;
import com.consum.model.po.BaseGoodsTemplate;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.SDictData;
import com.consum.model.vo.BaseGoodsTemplateVo;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.jdbc.service.BaseServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import cn.hutool.core.convert.Convert;
/**
 * @Description 物品模板
@@ -86,10 +92,13 @@
        //TODO 一级二级三级机构编号
        //当前机构的父级机构编号
        //机构层级
        if (currentUser != null) {
        //机构编号
        baseGoodsTemplate.setAgencyId(Long.valueOf(currentUser.getTenantId()));
        //机构名称
        baseGoodsTemplate.setAgencyName(currentUser.getTenantName());
        }
        //创建时间
        long createTime = DateUtils.getDateTimeNumber(System.currentTimeMillis());
        baseGoodsTemplate.setCreateDate(createTime);
@@ -247,7 +256,9 @@
     * @return
     */
    private static String QUERY_GOODSINFO_BY_MODELID = "SELECT model.MODEL_NAME modelName,model.UNIT,temp.id goodsId, temp.GOODS_CODE goodsCode,temp.GOODS_NAME goodsName,temp.CLASSIFICATION classification,temp.CATEGORY_ID categoryId FROM BASE_GOODS_MODELS model LEFT JOIN BASE_GOODS_TEMPLATE temp ON model.GOODS_TEMPLATES_ID=temp.id WHERE 1=1 ";
    private static String QUERY_GOODSINFO_BY_MODELID =
        "SELECT model.MODEL_NAME modelName,model.UNIT,temp.id goodsId, temp.GOODS_CODE goodsCode,temp.GOODS_NAME goodsName,temp.CLASSIFICATION classification,temp.CATEGORY_ID categoryId FROM BASE_GOODS_MODELS model LEFT JOIN BASE_GOODS_TEMPLATE temp ON model.GOODS_TEMPLATES_ID=temp.id WHERE 1=1 ";
    @Override
    public Map<String, Object> queryGoodsInfoByModelId(Long modelId) {
        StringBuilder sqlStr = new StringBuilder(QUERY_GOODSINFO_BY_MODELID);
@@ -298,7 +309,8 @@
     */
    @Override
    public List<SDictData> queryClassificationCode() {
        StringBuilder sql = new StringBuilder("SELECT * FROM s_dict_data WHERE dict_type = 'CLASSIFICATION_CODE' order by dict_sort");
        StringBuilder sql =
            new StringBuilder("SELECT * FROM s_dict_data WHERE dict_type = 'CLASSIFICATION_CODE' order by dict_sort");
        return this.select(sql.toString(), new Object[]{}, new SDictData());
    }
@@ -322,7 +334,8 @@
     * @return
     */
    @Override
    public List<BaseGoodsTemplate> queryGoodsTemplateByCategoryId(Long agencyId, Long categoryId, Short states, String goodsName) {
    public List<BaseGoodsTemplate> queryGoodsTemplateByCategoryId(Long agencyId, Long categoryId, Short states,
        String goodsName) {
        StringBuilder sql = new StringBuilder("SELECT * FROM base_goods_template WHERE 1=1 ");
        Map<String, Object> params = new HashMap<>();
        if (agencyId != null) {