| | |
| | | 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; |
| | | |
| | |
| | | |
| | | @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(); |
| | |
| | | return this.baseMapper.queryPageList(page, queryWrapper); |
| | | } |
| | | public List<CommonGenericTree> loadTree() { |
| | | List<ToolsClassify> toolsClassifyList = this.list(); |
| | | List<ToolsClassify> toolsClassifyList = this.lambdaQuery().orderByAsc(ToolsClassify::getId).list(); |
| | | List<CommonGenericTree> commonGenericTreeList = loadTree(toolsClassifyList); |
| | | return commonGenericTreeList; |
| | | } |
| | |
| | | List<CommonGenericTree> list = new ArrayList<>(); |
| | | Map<String, CommonGenericTree> map = new HashMap<>(); |
| | | CommonGenericTree<ToolsClassify> node = new CommonGenericTree<>(); |
| | | node.setKey("-1"); |
| | | node.setTitle("工具分类"); |
| | | node.setRField1(""); |
| | | node.setRField2(""); |
| | | node.setEntity(new ToolsClassify().setId("-1").setClassifyId("0").setTypeName("工具分类").setLeafFlag("2")); |
| | | list.add(node); |
| | | if (CollectionUtils.isNotEmpty(toolsClassifyList)) { |
| | | CommonGenericTree<ToolsClassify> tcNode; |
| | | CommonGenericTree<ToolsClassify> childNode; |
| | | for (ToolsClassify tc : toolsClassifyList) { |
| | | if (StrUtils.isBlankOrNull(tc.getParentId()) || tc.getParentId().equals("-1")) { |
| | | ToolsClassify child = tc; |
| | | if (StrUtils.isBlankOrNull(tc.getParentId())) { |
| | | tcNode = new CommonGenericTree<>(); |
| | | tcNode.setKey(tc.getId()); |
| | | tcNode.setTitle(tc.getClassifyId() + "/" + tc.getTypeName()); |
| | | tcNode.setParentId(node.getKey()); |
| | | tcNode.setIcon(""); |
| | | tcNode.setType(1); |
| | | tcNode.setValue(tc.getId()); |
| | |
| | | tcNode.setRField1(tc.getClassifyId()); |
| | | tcNode.setRField2(getBaseParent(tc.getId(), 0).getClassifyId()); |
| | | tcNode.setEntity(tc); |
| | | node.addChildren(tcNode); |
| | | list.add(tcNode); |
| | | map.put(tc.getId(), tcNode); |
| | | } |
| | | } |
| | | CommonGenericTree<ToolsClassify> childNode; |
| | | for (ToolsClassify tc : toolsClassifyList) { |
| | | ToolsClassify child = tc; |
| | | if (map.containsKey(child.getParentId())) { |
| | | if (StrUtils.isBlankOrNull(tc.getParentId()) || tc.getParentId().equals("-1")) { |
| | | toolsClassify = tc; |
| | | } else { |
| | | tcNode = map.get(child.getParentId()); |
| | | childNode = new CommonGenericTree<>(); |
| | | childNode.setKey(tc.getId()); |
| | | childNode.setTitle(tc.getClassifyId() + "/" + tc.getTypeName()); |
| | | childNode.setParentId(tc.getParentId()); |
| | | childNode.setIcon(""); |
| | | childNode.setType(0); |
| | | childNode.setValue(tc.getId()); |
| | | childNode.setDisabled(CommonConstant.STATUS_0.equals(tc.getStatus()) ? true : false); |
| | | childNode.setRField1(tc.getClassifyId()); |
| | | childNode.setRField2(getBaseParent(tc.getId(), 0).getClassifyId()); |
| | | childNode.setEntity(tc); |
| | | tcNode.addChildren(childNode); |
| | | map.put(child.getId(), childNode); |
| | | } |
| | | } else { |
| | | tcNode = map.get(child.getParentId()); |
| | | childNode = new CommonGenericTree<>(); |
| | | childNode.setKey(tc.getId()); |
| | | childNode.setTitle(tc.getClassifyId() + "/" + tc.getTypeName()); |
| | | childNode.setParentId(tc.getParentId()); |
| | | childNode.setIcon(""); |
| | | childNode.setType(0); |
| | | childNode.setValue(tc.getId()); |
| | | childNode.setDisabled(CommonConstant.STATUS_0.equals(tc.getStatus()) ? true : false); |
| | | childNode.setRField1(tc.getClassifyId()); |
| | | childNode.setRField2(getBaseParent(tc.getId(), 0).getClassifyId()); |
| | | childNode.setEntity(tc); |
| | | tcNode.addChildren(childNode); |
| | | map.put(child.getId(), childNode); |
| | | } |
| | | } |
| | | } |
| | |
| | | // 获取第一个工作表 |
| | | Sheet sheet = workbook.getSheetAt(0); |
| | | for(Row row : sheet) { |
| | | int rowNum = row.getRowNum()+1; |
| | | ToolsClassify newToolsClassify = new ToolsClassify(); |
| | | if (row.getRowNum() == 0) |
| | | continue; |
| | |
| | | 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); |
| | |
| | | }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++; |
| | | } |
| | | } |