cuijian
2025-05-15 6b5f508bcd94d3f3d6484075c69d918fae226788
lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java
@@ -13,16 +13,20 @@
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.DictModel;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.ImportExcelUtil;
import org.jeecg.common.util.StrUtils;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.system.mapper.SysDictItemMapper;
import org.jeecg.modules.system.mapper.SysDictMapper;
import org.jeecg.modules.tms.entity.ToolsClassify;
import org.jeecg.modules.tms.mapper.ToolsClassifyMapper;
import org.jeecg.modules.tms.service.IToolsClassifyService;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -49,6 +53,12 @@
    @Value("${jeecg.path.upload}")
    private String upLoadPath;
    @Autowired
    private SysDictMapper sysDictMapper;
    @Autowired
    private SysDictItemMapper sysDictItemMapper;
    @Override
    public IPage<ToolsClassify> queryPageList(Page<ToolsClassify> page, Map<String, String[]> parameterMap) {
        QueryWrapper<ToolsClassify> queryWrapper = Wrappers.query();
@@ -188,6 +198,7 @@
            // 获取第一个工作表
            Sheet sheet = workbook.getSheetAt(0);
            for(Row row : sheet) {
                int rowNum = row.getRowNum()+1;
                ToolsClassify newToolsClassify = new ToolsClassify();
                if (row.getRowNum() == 0)
                    continue;
@@ -197,6 +208,8 @@
                String name = nameCell.getStringCellValue();
                Cell parentNumCell = row.getCell(2);
                String parentNum = parentNumCell.getStringCellValue();
                Cell seqCell = row.getCell(3);
                String seq = seqCell.getStringCellValue();
                Cell leafFlagCell = row.getCell(4);
                String leafFlag = leafFlagCell.getStringCellValue();
                Cell paraTypeFlagCell = row.getCell(5);
@@ -207,47 +220,87 @@
                }else if("否".equals(leafFlag)){
                    leafFlag = "2";
                }else {
                    errorMessage.add("第"+row.getRowNum()+1+"行,是否为叶子节点填写错误,请填写‘是’或’否‘");
                    errorMessage.add("第"+rowNum+"行,是否为叶子节点填写错误,请填写‘是’或’否‘");
                    errorLines++;
                    continue;
                }
                if(StringUtils.isBlank(num)){
                    errorMessage.add("第"+row.getRowNum()+1+"行,分类编码不能为空");
                    errorMessage.add("第"+rowNum+"行,分类编码不能为空");
                    errorLines++;
                    continue;
                }
                if(StringUtils.isBlank(name)){
                    errorMessage.add("第"+row.getRowNum()+1+"行,分类名称不能为空");
                    errorMessage.add("第"+rowNum+"行,分类名称不能为空");
                    errorLines++;
                    continue;
                    //判断是否有上级分类
                }
                //判断参数模板是否存在
                if(StringUtils.isNotBlank(paraTypeFlag)){
                    List<DictModel> dictList = sysDictMapper.queryDictItemValueByCodeAndText("tool_para_type",paraTypeFlag);
                    if(CollectionUtils.isNotEmpty(dictList)){
                        paraTypeFlag = dictList.get(0).getValue();
                    }else {
                        errorMessage.add("第"+rowNum+"行,参数模板不存在");
                        errorLines++;
                        continue;
                    }
                }
                if(StringUtils.isNotBlank(parentNum)){
                    ToolsClassify toolsClassify = this.lambdaQuery()
                            .eq(ToolsClassify::getClassifyId,parentNum)
                            .eq(ToolsClassify::getLeafFlag,"2").one();
                    if(toolsClassify == null){
                        errorMessage.add("第"+row.getRowNum()+1+"行,分类编码为"+num+"的数据的上级分类编号不存在或为叶子节点");
                        errorMessage.add("第"+rowNum+"行,分类编码为"+num+"的数据的上级分类编号不存在或为叶子节点");
                        errorLines++;
                    }else {
                        newToolsClassify.setClassifyId(num)
                                .setTypeName(name)
                                .setStatus("1")
                                .setLeafFlag(leafFlag)
                                .setParentId(toolsClassify.getId())
                                .setParaTypeFlag(paraTypeFlag);
                        this.save(newToolsClassify);
                        //判断编码是否重复,重复的进行更新
                        ToolsClassify tools = this.lambdaQuery().eq(ToolsClassify::getClassifyId,num).one();
                        if(tools != null){
                            tools.setClassifyId(num)
                                    .setTypeName(name)
                                    .setStatus("1")
                                    .setLeafFlag(leafFlag)
                                    .setSeq(seq)
                                    .setParentId(toolsClassify.getId())
                                    .setParaTypeFlag(paraTypeFlag);
                            this.updateById(tools);
                        }else{
                            newToolsClassify.setClassifyId(num)
                                    .setTypeName(name)
                                    .setStatus("1")
                                    .setLeafFlag(leafFlag)
                                    .setSeq(seq)
                                    .setParentId(toolsClassify.getId())
                                    .setParaTypeFlag(paraTypeFlag);
                            this.save(newToolsClassify);
                        }
                        successLines++;
                    }
                    //如果没填写上级分类编号,则新增到根节点
                }else {
                    newToolsClassify.setClassifyId(num)
                            .setTypeName(name)
                            .setStatus("1")
                            .setParentId("-1")
                            .setLeafFlag(leafFlag)
                            .setParaTypeFlag(paraTypeFlag);
                    this.save(newToolsClassify);
                    //判断编码是否重复,重复的进行更新
                    ToolsClassify tools = this.lambdaQuery().eq(ToolsClassify::getClassifyId,num).one();
                    if(tools != null){
                        tools.setClassifyId(num)
                                .setTypeName(name)
                                .setStatus("1")
                                .setLeafFlag(leafFlag)
                                .setSeq(seq)
                                .setParentId("-1")
                                .setParaTypeFlag(paraTypeFlag);
                        this.updateById(tools);
                    }else {
                        newToolsClassify.setClassifyId(num)
                                .setTypeName(name)
                                .setStatus("1")
                                .setParentId("-1")
                                .setSeq(seq)
                                .setLeafFlag(leafFlag)
                                .setParaTypeFlag(paraTypeFlag);
                        this.save(newToolsClassify);
                    }
                    successLines++;
                }
            }