diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java b/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java index 6cabb8b3f..1ff9387b0 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java @@ -8,7 +8,7 @@ public interface ModuleNameConstant { /** * 如果不需要 "" */ - public static final String DEVAUTH ="-pref"; + public static final String DEVAUTH =""; /** * 工厂对接服务名称 diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataCategoryController.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataCategoryController.java index 0daadf364..d8a5fe187 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataCategoryController.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataCategoryController.java @@ -192,7 +192,7 @@ public class BasicdataCategoryController extends BladeController { @PostMapping("/import") @ApiOperationSupport(order = 12) @ApiOperation(value = "导入品类", notes = "传入excel") - public R importWarehousingEntry(MultipartFile file) { + public R importCategory(MultipartFile file) { BasicdataCategoryImporter basicdataGoodsAreaImporter = new BasicdataCategoryImporter(basicdataCategoryService); ExcelUtil.save(file,basicdataGoodsAreaImporter, BasicdataCategoryExcel.class); return R.success("操作成功"); diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataCategoryImporter.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataCategoryImporter.java index e9a8ac042..04356ed71 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataCategoryImporter.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataCategoryImporter.java @@ -1,8 +1,17 @@ package com.logpm.basicdata.excel; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.logpm.basicdata.entity.BasicdataCategoryEntity; import com.logpm.basicdata.service.IBasicdataCategoryService; import lombok.AllArgsConstructor; +import org.springblade.core.cache.utils.CacheUtil; import org.springblade.core.excel.support.ExcelImporter; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.tenant.exception.TenantDataSourceException; +import org.springblade.core.tool.utils.ObjectUtil; +import org.springblade.system.cache.DictBizCache; +import org.springblade.system.entity.DictBiz; +import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; @@ -13,16 +22,84 @@ public class BasicdataCategoryImporter implements ExcelImporter data) { - // 处理数据 - List pList = new ArrayList(); - for (BasicdataCategoryExcel datum : data) { - pList.add(datum.getParentCategory()); + + // 验证data 是否存在name相同的数据 + + boolean hasDuplicates = data.stream() + .map(BasicdataCategoryExcel::getName) + .distinct() + .count() != data.size(); + if(hasDuplicates){ + throw new ServiceException("存在相同的数据"); } - // 验证导入的 + + // 得到目前系统存在品类 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BasicdataCategoryEntity::getIsDeleted,0); + List ls = basicdataCategoryService.list(queryWrapper); + + // 验证导入的数据和查询的数据是否存在相同的名称 + ls.forEach(item->{ + data.forEach(datum -> { + if(item.getName().equals(datum.getName())){ + throw new ServiceException(datum.getName()+"存在相同的数据"); + } + }); + }); + List category = DictBizCache.getList("category"); + // 优先保存 没有父级的数据 + List pList = new ArrayList<>(); + List cList = new ArrayList<>(); + data.forEach(item->{ + if(ObjectUtil.isNotEmpty(item.getName())){ + BasicdataCategoryEntity basicdataCategoryEntity = new BasicdataCategoryEntity(); + basicdataCategoryEntity.setName(item.getName()); + String dictValue = findDictValue(category, item.getType()); + basicdataCategoryEntity.setType(dictValue==null?1:Integer.parseInt(dictValue)); + if(item.getParentCategory()==null){ + pList.add(basicdataCategoryEntity); + }else{ + basicdataCategoryEntity.setReserve1(item.getParentCategory()); + cList.add(basicdataCategoryEntity); + } + } + }); + // 保存 + basicdataCategoryService.saveBatch(pList); + queryWrapper.eq(BasicdataCategoryEntity::getType,1); + ls = basicdataCategoryService.list(queryWrapper); + for (BasicdataCategoryEntity basicdataCategoryEntity : cList) { + for (BasicdataCategoryEntity l : ls) { + if (basicdataCategoryEntity.getReserve1().equals(l.getName())) { + basicdataCategoryEntity.setPid(l.getId()); + //移除临时使用值 + basicdataCategoryEntity.setReserve1(null); + break; + } + } + } + basicdataCategoryService.saveBatch(cList); + + } + + /** + * 寻找字典的value + * @param category + * @param type + * @return + */ + private String findDictValue(List category, String type) { + for (DictBiz dictBiz : category) { + if (dictBiz.getDictValue().equals(type)) { + return dictBiz.getDictKey(); + } + } + return null; } } diff --git a/blade-service/logpm-basicdata/src/main/resources/application-dev.yml b/blade-service/logpm-basicdata/src/main/resources/application-dev.yml index 8286d310f..bea4f60a6 100644 --- a/blade-service/logpm-basicdata/src/main/resources/application-dev.yml +++ b/blade-service/logpm-basicdata/src/main/resources/application-dev.yml @@ -53,4 +53,4 @@ xxl: ip: 127.0.0.1 logpath: ../data/applogs/logpm-factory-data-xxljob/jobhandler logretentiondays: -1 - port: 17018 + port: 17019