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) {