| | |
| | | |
| | | import com.alibaba.nacos.common.utils.StringUtils; |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; |
| | | import com.vci.ubcs.code.bo.TreeWrapperOptions; |
| | | import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO; |
| | | import com.vci.ubcs.code.entity.CodeClassify; |
| | | import com.vci.ubcs.code.entity.CodeClstemplateEntity; |
| | | import com.vci.ubcs.code.entity.CodeClassifyTemplate; |
| | | import com.vci.ubcs.code.entity.CodeOsbtmtypeEntity; |
| | | import com.vci.ubcs.code.entity.CodeOsbtmtypeattributeEntity; |
| | | import com.vci.ubcs.code.enumpack.FrameworkDataLCStatus; |
| | | import com.vci.ubcs.code.mapper.CodeClassifyMapper; |
| | | import com.vci.ubcs.code.mapper.CodeClstemplateMapper; |
| | | import com.vci.ubcs.code.mapper.CodeClassifyTemplateMapper; |
| | | import com.vci.ubcs.code.mapper.CodeOsbtmtypeMapper; |
| | | import com.vci.ubcs.code.mapper.CodeOsbtmtypeattributeMapper; |
| | | import com.vci.ubcs.code.po.CodeClassifyPO; |
| | | import com.vci.ubcs.code.service.ICodeClassifyService; |
| | | import com.vci.ubcs.code.service.ICodeKeyattrrepeatService; |
| | | import com.vci.ubcs.code.service.ICodeKeyAttrRepeatService; |
| | | import com.vci.ubcs.code.service.ICodeRuleService; |
| | | import com.vci.ubcs.code.vo.CodeOsattributeVO; |
| | | import com.vci.ubcs.code.vo.CodeOsbtmtypeVO; |
| | | import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO; |
| | | import com.vci.ubcs.code.vo.pagemodel.CodeKeyAttrRepeatRuleVO; |
| | | import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO; |
| | | import com.vci.ubcs.code.vo.pagemodel.TreeQueryObject; |
| | | import com.vci.ubcs.com.vci.starter.bo.WriteExcelData; |
| | | import com.vci.ubcs.com.vci.starter.exception.VciBaseException; |
| | | import com.vci.ubcs.com.vci.starter.poi.bo.ReadExcelOption; |
| | | import com.vci.ubcs.com.vci.starter.poi.bo.WriteExcelOption; |
| | | import com.vci.ubcs.com.vci.starter.poi.constant.ExcelLangCodeConstant; |
| | | import com.vci.ubcs.com.vci.starter.poi.util.ExcelUtil; |
| | | import com.vci.ubcs.com.vci.starter.revision.service.RevisionModelUtil; |
| | | import com.vci.ubcs.com.vci.starter.util.LocalFileUtil; |
| | | import com.vci.ubcs.com.vci.starter.web.pagemodel.BaseQueryObject; |
| | | import com.vci.ubcs.com.vci.starter.web.pagemodel.DataGrid; |
| | | import com.vci.ubcs.com.vci.starter.web.pagemodel.Tree; |
| | | import com.vci.ubcs.com.vci.starter.web.util.BeanUtilForVCI; |
| | | import com.vci.ubcs.com.vci.starter.web.util.LangBaseUtil; |
| | | import com.vci.ubcs.com.vci.starter.web.util.VciBaseUtil; |
| | | import com.vci.ubcs.core.log.exception.ServiceException; |
| | | import com.vci.ubcs.starter.bo.WriteExcelData; |
| | | import com.vci.ubcs.starter.exception.VciBaseException; |
| | | import com.vci.ubcs.starter.poi.bo.ReadExcelOption; |
| | | import com.vci.ubcs.starter.poi.bo.WriteExcelOption; |
| | | import com.vci.ubcs.starter.poi.constant.ExcelLangCodeConstant; |
| | | import com.vci.ubcs.starter.poi.util.ExcelUtil; |
| | | import com.vci.ubcs.starter.revision.model.TreeQueryObject; |
| | | import com.vci.ubcs.starter.revision.model.TreeWrapperOptions; |
| | | import com.vci.ubcs.starter.revision.service.RevisionModelUtil; |
| | | import com.vci.ubcs.starter.util.LocalFileUtil; |
| | | import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject; |
| | | import com.vci.ubcs.starter.web.pagemodel.DataGrid; |
| | | import com.vci.ubcs.starter.web.pagemodel.Tree; |
| | | import com.vci.ubcs.starter.web.util.BeanUtilForVCI; |
| | | import com.vci.ubcs.starter.web.util.LangBaseUtil; |
| | | import com.vci.ubcs.starter.web.util.VciBaseUtil; |
| | | import org.apache.poi.hssf.util.HSSFColor; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springblade.core.cache.utils.CacheUtil; |
| | | import org.springblade.core.cache.utils.CacheUtil;import com.vci.ubcs.core.log.exception.ServiceException; |
| | | import org.springblade.core.mp.support.Condition; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.core.tool.api.R; |
| | |
| | | private CodeClassifyMapper codeClassifyMapper; |
| | | |
| | | @Resource |
| | | private CodeClstemplateMapper codeClstemplateMapper; |
| | | private CodeClassifyTemplateMapper codeClassifyTemplateMapper; |
| | | |
| | | // @Resource |
| | | // private ICodeRuleService codeRuleService; |
| | | @Resource |
| | | private ICodeRuleService codeRuleService; |
| | | |
| | | @Resource |
| | | private CodeOsbtmtypeMapper codeOsbtmtypeMapper; |
| | | |
| | | @Resource |
| | | CodeOsbtmtypeattributeMapper codeOsbtmtypeattributeMapper; |
| | | @Resource |
| | | ICodeRuleService ICodeRuleService; |
| | | |
| | | /** |
| | | * 日志 |
| | |
| | | private RevisionModelUtil revisionModelUtil; |
| | | |
| | | @Resource |
| | | private ICodeKeyattrrepeatService iCodeKeyattrrepeatService; |
| | | private ICodeKeyAttrRepeatService iCodeKeyattrrepeatService; |
| | | /** |
| | | * 上级节点的属性名称 |
| | | */ |
| | |
| | | codeClassifyEntity.setCreator(AuthUtil.getUser().getUserName()); |
| | | codeClassifyEntity.setCreateTime(new Date()); |
| | | codeClassifyEntity.setTs(new Date()); |
| | | codeClassifyEntity.setOwner(AuthUtil.getUser().getUserName()); |
| | | codeClassifyEntity.setLastModifier(AuthUtil.getUser().getUserName()); |
| | | codeClassifyEntity.setLastModifyTime(new Date()); |
| | | codeClassifyEntity.setRevisionSeq(1); |
| | | codeClassifyEntity.setVersionSeq(1); |
| | | int insertNumber = codeClassifyMapper.insert(codeClassifyEntity); |
| | | return R.status(SqlHelper.retBool(insertNumber)); |
| | | } |
| | |
| | | if(codeClassifyEntity == null || codeClassifyEntity.getOid() == null){ |
| | | return R.fail("传入数据不能为空!"); |
| | | } |
| | | codeClassifyEntity = selectByOid(codeClassifyEntity.getOid()); |
| | | CodeClassify codeClassifyNew = selectByOid(codeClassifyEntity.getOid()); |
| | | if(codeClassifyNew == null){ |
| | | return R.fail("未查询到相关数据!"); |
| | | } |
| | | codeClassifyNew.setTs(codeClassifyEntity.getTs()); |
| | | return checkIsCanDeleteForDO(codeClassifyEntity); |
| | | } |
| | | |
| | |
| | | private R checkIsCanDeleteForDO(CodeClassify codeClassifyEntity) { |
| | | |
| | | //检查ts |
| | | Map<String,Object> condition = new HashMap<>(2); |
| | | condition.put("oid",codeClassifyEntity.getOid()); |
| | | condition.put("ts",codeClassifyEntity.getTs()); |
| | | CodeClassify detail = codeClassifyMapper |
| | | .selectOne(Condition.getQueryWrapper(condition,CodeClassify.class)); |
| | | // Map<String,Object> condition = new HashMap<>(2); |
| | | // condition.put("oid",codeClassifyEntity.getOid()); |
| | | // condition.put("ts",codeClassifyEntity.getTs()); |
| | | CodeClassify detail = codeClassifyMapper.selectOne(Condition.getQueryWrapper(codeClassifyEntity)); |
| | | // .selectOne(Condition.getQueryWrapper(condition,CodeClassify.class)); |
| | | if(detail == null){//不是最新的不让改 |
| | | throw new ServiceException("当前数据不是最新,请刷新后再修改!"); |
| | | // return R.fail("当前数据不是最新,请刷新后再修改!"); |
| | |
| | | if(StringUtils.isBlank(oid)){ |
| | | throw new ServiceException("oid不能为空!"); |
| | | } |
| | | return codeClassifyMapper.checkHasChild(oid.trim()); |
| | | return !codeClassifyMapper.checkHasChild(oid.trim()); |
| | | } |
| | | |
| | | |
| | |
| | | //先简称是否有关联模板,有模板要先删除 |
| | | Map<String,Object> condition = new HashMap<>(2); |
| | | condition.put("codeClassifyOid",codeClassify.getOid()); |
| | | List<CodeClstemplateEntity> codeClstemplateEntities = codeClstemplateMapper.selectByMap(condition); |
| | | List<CodeClassifyTemplate> codeClstemplateEntities = codeClassifyTemplateMapper.selectByMap(condition); |
| | | // VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(CodeClassifyTemplateDO.class); |
| | | // queryWrapper.addQueryMap("codeClassifyOid",codeClassifyDTO.getOid()); |
| | | // List<CodeClassifyTemplateDO> codeClassifyTemplateDOListHaveTemplate = codeClassifyTemplateMapper.selectByWrapper(queryWrapper); |
| | |
| | | //2、查询要删除的子类数据 |
| | | List<CodeClassify> codeClassifyDOList = codeClassifyMapper.selectBatchIds(s); |
| | | deletes.addAll(codeClassifyDOList); |
| | | codeClassifyMapper.deleteBatchIds(s); |
| | | // codeClassifyMapper.deleteBatchIds(s); |
| | | baseMapper.deleteBatchIds(s); |
| | | } |
| | | |
| | | } |
| | |
| | | //查询修改前ts |
| | | CodeClassify codeClassify = codeClassifyMapper.selectById(oid);//主要是为了查询ts |
| | | codeClassify.setLcStatus(lcStatus); |
| | | codeClassify.setTs(new Date()); |
| | | codeClassify.setLastModifyTime(new Date()); |
| | | codeClassify.setLastModifier(AuthUtil.getUser().getUserName()); |
| | | //启用、停用 |
| | | // int u = codeClassifyMapper.updateLcStatus(oid,lcStatus); |
| | | int count = codeClassifyMapper.updateById(codeClassify); |
| | |
| | | } |
| | | } |
| | | return tree; |
| | | } |
| | | |
| | | /** |
| | | * 根据树形查询对象来查询数据对象 |
| | | * |
| | | * @param treeQueryObject 树形查询对象 |
| | | * @return 查询结果,数据对象 |
| | | */ |
| | | @Override |
| | | public List<CodeClassifyVO> selectCodeClassifyDOByTree(TreeQueryObject treeQueryObject) { |
| | | List<CodeClassify> doList =codeClassifyMapper.selectCodeClassifyVOByTree(treeQueryObject.getParentOid()); |
| | | List<CodeClassifyVO> voList = codeClassifyDO2VOs(doList); |
| | | return voList; |
| | | } |
| | | /** |
| | | * 使用编号的路径获取对象 |
| | | * |
| | | * @param fieldPath 编号的路径,一定要从最顶层节点开始,格式为xxx/yyy/zz 这样 |
| | | * @return 分类的显示对象 |
| | | */ |
| | | @Override |
| | | public CodeClassifyVO getObjectByClsfNamePath(String fieldPath){ |
| | | CodeClassifyVO codeClassifyVO=new CodeClassifyVO(); |
| | | List<CodeClassify> classifyList = codeClassifyMapper.selectByFieldNamePath(fieldPath,"name"); |
| | | if(classifyList.size()>0){ |
| | | codeClassifyVO=codeClassifyDO2VO(classifyList.get(0)); |
| | | } |
| | | return codeClassifyVO; |
| | | } |
| | | /*** |
| | | * 根据上级节点获取下级节点代号路径和名称路径 |
| | | * @param classifyId |
| | | * @param enable |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<CodeClassifyVO> getIdPathToNamePathByParentId(String classifyId, boolean enable) { |
| | | return null; |
| | | } |
| | | |
| | | |
| | |
| | | }); |
| | | throw new VciBaseException("路径有重复,{0}",new String[]{rowIndexList.stream().collect(Collectors.joining(","))}); |
| | | } |
| | | //编号获取业务类型服务还未完成,所以等业务类型完成后进行后续的完成 |
| | | // Map<String, CodeRuleVO> ruleVOMap = Optional.ofNullable(codeRuleService.listCodeRuleByIds( |
| | | // poList.stream().filter(s->StringUtils.isNotBlank(s.getCodeRuleId())).map(CodeClassifyPO::getCodeRuleId).collect(Collectors.toList())) |
| | | // ).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t,(o1,o2)->o2)); |
| | | Map<String, CodeRuleVO> ruleVOMap = null; |
| | | Map<String,CodeKeyAttrRepeatRuleVO> keyRuleVOMap =Optional.ofNullable(iCodeKeyattrrepeatService.listCodeKeyAttrRepeatRuleByOids( |
| | | poList.stream().filter(s->StringUtils.isNotBlank(s.getKeyRepeatRuleId())).map(CodeClassifyPO::getKeyRepeatRuleId).collect(Collectors.toList())) |
| | | //编号获取业务类型服务 |
| | | List<String> ruleOids = poList.stream().filter( |
| | | s -> StringUtils.isNotBlank(s.getCodeRuleId())) |
| | | .map(CodeClassifyPO::getCodeRuleId) |
| | | .collect(Collectors.toList()); |
| | | Map<String, CodeRuleVO> ruleVOMap = Optional.ofNullable(ruleOids.size()==0 ? null:codeRuleService.listCodeRuleByOids(ruleOids) |
| | | ).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t,(o1,o2)->o2)); |
| | | // codeOsbtmtypeMapper.selectList((Wrapper<CodeOsbtmtypeEntity>) poList); |
| | | // Map<String, CodeOsbtmtypeVO> btmVOMap = Optional.ofNullable( |
| | | // codeOsbtmtypeMapper.selectList((Wrapper<CodeOsbtmtypeEntity>) poList) |
| | | // ).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t,(o1,o2)->o2)); |
| | | Map<String, CodeOsbtmtypeVO> btmVOMap = null; |
| | | |
| | | List<String> keyOids = poList.stream().filter(s -> StringUtils.isNotBlank(s.getKeyRepeatRuleId())) |
| | | .map(CodeClassifyPO::getKeyRepeatRuleId).collect(Collectors.toList()); |
| | | Map<String,CodeKeyAttrRepeatRuleVO> keyRuleVOMap =Optional.ofNullable(keyOids.size()==0 ? null: iCodeKeyattrrepeatService.listCodeKeyAttrRepeatRuleByOids(keyOids) |
| | | ).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t,(o1,o2)->o2)); |
| | | |
| | | List<String> btmOids = poList.stream().filter(s -> StringUtils.isNotBlank(s.getKeyRepeatRuleId())) |
| | | .map(CodeClassifyPO::getBtmTypeId).collect(Collectors.toList()); |
| | | Map<String, CodeOsbtmtypeEntity> btmVOMap = Optional.ofNullable(btmOids.size()==0 ? null: codeOsbtmtypeMapper.selectBatchIds(btmOids) |
| | | ).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t,(o1,o2)->o2)); |
| | | // Map<String, CodeOsbtmtypeVO> btmVOMap = null; |
| | | Map<String/**路径**/,String/**主键**/> oidPathMap = new HashMap<>(); |
| | | |
| | | //我们需要查询所有已经存在的分类,主要是路径,用来判断分类的数据 |
| | |
| | | classify.setDescription(po.getDescription()); |
| | | oidPathMap.put(po.getPath(),classify.getOid()); |
| | | if(StringUtils.isNotBlank(po.getBtmTypeId())){ |
| | | CodeOsbtmtypeVO typeVO = btmVOMap.get(po.getBtmTypeId().toLowerCase(Locale.ROOT)); |
| | | CodeOsbtmtypeVO typeVO = (CodeOsbtmtypeVO)btmVOMap.get(po.getBtmTypeId().toLowerCase(Locale.ROOT)); |
| | | classify.setBtmTypeId(typeVO.getId()); |
| | | classify.setBtmTypeName(typeVO.getName()); |
| | | } |
| | |
| | | classifyDO.setTs(new Date()); |
| | | classifyDO.setBtmname("codeclassify"); |
| | | classifyDO.setLcStatus("Enabled"); |
| | | classifyDO.setId("0"); |
| | | classifyDO.setOwner(AuthUtil.getUser().getUserName()); |
| | | classifyDO.setCreator(AuthUtil.getUser().getUserName()); |
| | | classifyDO.setLastModifier(AuthUtil.getUser().getUserName()); |
| | | classifyDO.setLastModifyTime(new Date()); |
| | |
| | | */ |
| | | @Override |
| | | public List<CodeClassify> selectAllLevelParentByOid(String oid){ |
| | | // String sql = "select oid,level from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY) + " start with oid= :oid connect by prior PARENTCODECLASSIFYOID = oid "; |
| | | // Map< String,String> conditionMap = new HashMap< String,String>(); |
| | | // conditionMap.put("oid",oid); |
| | | // String sql = "select oid,level from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY) + " start with oid= :oid connect by prior PARENTCODECLASSIFYOID = oid "; |
| | | // Map< String,String> conditionMap = new HashMap< String,String>(); |
| | | // conditionMap.put("oid",oid); |
| | | |
| | | List<Map<String,Object>> cbos = codeClassifyMapper.selectAllLevelParentByOid(oid); |
| | | Map<String,String> oidLevelMap = new HashMap<>(); |
| | | Optional.ofNullable(cbos).orElseGet(()->new ArrayList<>()).stream().forEach(cbo->{ |
| | | oidLevelMap.put(cbo.get("oid").toString(),cbo.get("level").toString()); |
| | | oidLevelMap.put(cbo.get("OID").toString(),cbo.get("LEVEL").toString()); |
| | | }); |
| | | if(CollectionUtils.isEmpty(oidLevelMap)){ |
| | | return new ArrayList<>(); |
| | |
| | | }); |
| | | } |
| | | return classifyDOS; |
| | | } |
| | | |
| | | /** |
| | | * 主键获取主题库分类 |
| | | * @param oid 主键 |
| | | * @return 主题库分类显示对象 |
| | | * @throws VciBaseException 参数为空,数据不存在时会抛出异常 |
| | | */ |
| | | @Override |
| | | public CodeClassifyVO getObjectByOid(String oid) throws VciBaseException{ |
| | | return codeClassifyDO2VO(selectByOid(oid)); |
| | | } |
| | | |
| | | /** |
| | |
| | | return codeClassifyDO2VO(classifyDO); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 主题库的树 |
| | | * |
| | |
| | | treeQueryObject.getConditionMap().put(PARENT_FIELD_NAME, "=null"); |
| | | return treeCodeClassify(treeQueryObject); |
| | | } |
| | | |
| | | /** |
| | | * 获取这个分类下的业务类型,当前没有就获取上级的第一个业务类型 |
| | | * @param oid 当前分类的oid |
| | | * @return oid,id,name,btmtypeid,btmtypename,没有就返回null |
| | | */ |
| | | @Override |
| | | public CodeClassify selectBtmOrParentBtm(String oid){ |
| | | List<CodeClassify> oidList = selectAllLevelParents(oid); |
| | | return oidList.size()==0?null:oidList.get(0); |
| | | } |
| | | |
| | | /** |
| | | * 获取所有层级上级关联业务类型数据 |
| | | * @param oid 当前分类的oid |
| | | * @return oid,id,name,btmtypeid,btmtypename |
| | | */ |
| | | @Override |
| | | public List<CodeClassify> selectAllLevelParents(String oid){ |
| | | // String sql = "select oid,id,name,btmtypeid,btmtypename from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY) + " where btmtypeid is not null start with oid= :oid connect by prior PARENTCODECLASSIFYOID=oid "; |
| | | // Map< String,String> conditionMap = new HashMap< String,String>(); |
| | | // conditionMap.put("oid",oid); |
| | | // List<Map> dataList = boService.queryBySqlForMap(sql,conditionMap); |
| | | List<Map<String, Object>> dataList = codeClassifyMapper.selectAllLevelParents(oid); |
| | | List<CodeClassify> oidList = new ArrayList<CodeClassify>(); |
| | | if(!CollectionUtils.isEmpty(dataList)){ |
| | | for(Map data:dataList){ |
| | | CodeClassify codeClassifyDO = new CodeClassify(); |
| | | codeClassifyDO.setOid(VciBaseUtil.getStringValueFromObject(data.get("OID"))); |
| | | codeClassifyDO.setId(VciBaseUtil.getStringValueFromObject(data.get("ID"))); |
| | | codeClassifyDO.setName(VciBaseUtil.getStringValueFromObject(data.get("NAME"))); |
| | | codeClassifyDO.setBtmTypeId(VciBaseUtil.getStringValueFromObject(data.get("BTMTYPEID"))); |
| | | codeClassifyDO.setBtmTypeName(VciBaseUtil.getStringValueFromObject(data.get("BTMTYPENAME"))); |
| | | oidList.add(codeClassifyDO); |
| | | } |
| | | } |
| | | return oidList; |
| | | } |
| | | |
| | | /** |
| | | * 使用分类主键获取分类相关的所有信息 |
| | | * |
| | | * @param codeClassifyOid 分类的主键 |
| | | * @return 分类上级,下级的信息 |
| | | */ |
| | | @Override |
| | | public CodeClassifyFullInfoBO getClassifyFullInfo(String codeClassifyOid) { |
| | | VciBaseUtil.alertNotNull(codeClassifyOid,"分类的主键"); |
| | | CodeClassifyFullInfoBO fullInfo = new CodeClassifyFullInfoBO(); |
| | | CodeClassify classifyDO = selectByOid(codeClassifyOid); |
| | | //查询上级 |
| | | fullInfo.setCurrentClassifyVO(codeClassifyDO2VO(classifyDO)); |
| | | List<Map<String, Object>> maps = codeClassifyMapper.selectAllLevelParentByOid(codeClassifyOid); |
| | | List<CodeClassify> codeClassifyList = new ArrayList<>(); |
| | | for (Map<String, Object> map : maps) { |
| | | CodeClassify codeClassify = new CodeClassify(); |
| | | codeClassify.setOid(String.valueOf(map.get("OID"))); |
| | | codeClassify.setOid(String.valueOf(map.get("LEVEL"))); |
| | | codeClassifyList.add(codeClassify); |
| | | } |
| | | fullInfo.setParentClassifyVOs(codeClassifyDO2VOs(codeClassifyList)); |
| | | if(!CollectionUtils.isEmpty(fullInfo.getParentClassifyVOs())){ |
| | | fullInfo.setTopClassifyVO(fullInfo.getParentClassifyVOs().stream().filter(s->StringUtils.isBlank(s.getParentcodeclassifyoid())).findFirst().orElseGet(()->null)); |
| | | } |
| | | return fullInfo; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 统计子节点的个数 |
| | | * |
| | | * @param codeClassifyOid 分类的主键 |
| | | * @return 个数 |
| | | */ |
| | | @Override |
| | | public int countChildrenByClassifyOid(String codeClassifyOid) { |
| | | // Map<String,String> conditionMap = new HashMap<>(); |
| | | // conditionMap.put("parentCodeClassifyOid",codeClassifyOid); |
| | | QueryWrapper<CodeClassify> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("parentCodeClassifyOid",codeClassifyOid); |
| | | return codeClassifyMapper.selectCount(wrapper).intValue(); |
| | | } |
| | | } |