From 695e4a085727ef5017597dd1ab72a47d0e9883e6 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期二, 30 五月 2023 19:19:55 +0800 Subject: [PATCH] 代码整合 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java | 160 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 141 insertions(+), 19 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java index 3481b1b..1ed0304 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java @@ -2,28 +2,32 @@ 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.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.ICodeOsattributeService; 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.core.log.exception.ServiceException; +import com.vci.ubcs.omd.feign.IBtmTypeClient; +import com.vci.ubcs.omd.vo.BtmTypeVO; import com.vci.ubcs.starter.bo.WriteExcelData; import com.vci.ubcs.starter.exception.VciBaseException; import com.vci.ubcs.starter.poi.bo.ReadExcelOption; @@ -33,6 +37,7 @@ 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.BladeTreeQueryObject; import com.vci.ubcs.starter.util.LocalFileUtil; import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject; import com.vci.ubcs.starter.web.pagemodel.DataGrid; @@ -44,10 +49,14 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.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; +import org.springblade.core.tool.utils.Func; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -65,15 +74,25 @@ private CodeClassifyMapper codeClassifyMapper; @Resource - private CodeClstemplateMapper codeClstemplateMapper; + private CodeClassifyTemplateMapper codeClassifyTemplateMapper; @Resource private ICodeRuleService codeRuleService; @Resource private CodeOsbtmtypeMapper codeOsbtmtypeMapper; + @Resource - CodeOsbtmtypeattributeMapper codeOsbtmtypeattributeMapper; + private CodeOsbtmtypeattributeMapper codeOsbtmtypeattributeMapper; + + @Resource + private IBtmTypeClient btmTypeClient; + + /** + * 灞炴�ф湇鍔� + */ +// @Autowired +// private OsAttributeServiceI attributeService; /** * 鏃ュ織 @@ -86,7 +105,7 @@ private RevisionModelUtil revisionModelUtil; @Resource - private ICodeKeyattrrepeatService iCodeKeyattrrepeatService; + private ICodeKeyAttrRepeatService iCodeKeyattrrepeatService; /** * 涓婄骇鑺傜偣鐨勫睘鎬у悕绉� */ @@ -254,7 +273,6 @@ return codeClassifyMapper.checkHasChild(oid.trim()); } - /** * 鍒犻櫎涓婚搴撳垎绫� * @param codeClassify 涓婚搴撳垎绫绘暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈� @@ -273,7 +291,7 @@ //鍏堢畝绉版槸鍚︽湁鍏宠仈妯℃澘锛屾湁妯℃澘瑕佸厛鍒犻櫎 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); @@ -297,7 +315,8 @@ //2銆佹煡璇㈣鍒犻櫎鐨勫瓙绫绘暟鎹� List<CodeClassify> codeClassifyDOList = codeClassifyMapper.selectBatchIds(s); deletes.addAll(codeClassifyDOList); - codeClassifyMapper.deleteBatchIds(s); +// codeClassifyMapper.deleteBatchIds(s); + baseMapper.deleteBatchIds(s); } } @@ -358,7 +377,6 @@ return codeClassifyDO2VOs(codeClassifyDOList); } - /** * 浣跨敤涓婚敭闆嗗悎鏌ヨ鏁版嵁瀵硅薄 * @param oidCollections 涓婚敭鐨勯泦鍚� @@ -377,7 +395,6 @@ } return codeClassifyList; } - /** * 鎵归噺鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞� @@ -465,8 +482,45 @@ 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 缂栧彿鐨勮矾寰勶紝涓�瀹氳浠庢渶椤跺眰鑺傜偣寮�濮嬶紝鏍煎紡涓簒xx/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; + } + /*** + * 鏍规嵁涓婄骇鑺傜偣鑾峰彇涓嬬骇鑺傜偣浠e彿璺緞鍜屽悕绉拌矾寰� + * @param classifyId + * @param enable + * @return + */ + @Override + public List<CodeClassifyVO> getIdPathToNamePathByParentId(String classifyId, boolean enable) { + return null; + } -// /** + // /** // * 鏍规嵁鏍戝舰鏌ヨ瀵硅薄鏉ユ煡璇㈡暟鎹璞� // * // * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄 @@ -856,7 +910,7 @@ condition.put("pkbtmtype",topClassifyVO.getBtmtypeid()); List<CodeOsbtmtypeattributeEntity> unDefaultAttributes = codeOsbtmtypeattributeMapper.selectByMap(condition); -// List<OsBtmTypeAttributeVO> unDefaultAttributes = btmService. (topClassifyVO.getBtmtypeid()); + // List<OsBtmTypeAttributeVO> unDefaultAttributes = btmService. (topClassifyVO.getBtmtypeid()); List<CodeOsattributeVO> attributeVOS = new ArrayList<>(); if(!CollectionUtils.isEmpty(unDefaultAttributes)){ unDefaultAttributes.stream().forEach(attr->{ @@ -866,6 +920,7 @@ attributeVO.setAttrlength(Short.valueOf(attr.getAttributelength())); attributeVO.setBtmtypeid(attr.getReferbtmtypeid()); attributeVO.setBtmtypename(attr.getReferbtmtypename()); + attributeVO.setAttributedatatypetext(attr.getReferbtmtypename()); boolean add = true; if(StringUtils.isNotBlank(id) && !attributeVO.getId().contains(id.replace("*",""))){ add = false; @@ -878,8 +933,8 @@ } }); } -// if(!CollectionUtils.isEmpty(attributeService.getDefaultAttributeVOs())){ -// attributeService.getDefaultAttributeVOs().stream().forEach(attr->{ +// if(!CollectionUtils.isEmpty(codeOsattributeService.getDefaultAttributeVOs())){ +// codeOsattributeService.getDefaultAttributeVOs().stream().forEach(attr->{ // boolean add = true; // if(StringUtils.isNotBlank(id) && !attr.getId().contains(id.replace("*",""))){ // add = false; @@ -951,6 +1006,17 @@ } /** + * 涓婚敭鑾峰彇涓婚搴撳垎绫� + * @param oid 涓婚敭 + * @return 涓婚搴撳垎绫绘樉绀哄璞� + * @throws VciBaseException 鍙傛暟涓虹┖锛屾暟鎹笉瀛樺湪鏃朵細鎶涘嚭寮傚父 + */ + @Override + public CodeClassifyVO getObjectByOid(String oid) throws VciBaseException{ + return codeClassifyDO2VO(selectByOid(oid)); + } + + /** * 浣跨敤缂栧彿鐨勮矾寰勮幏鍙栧璞� * * @param idPath 缂栧彿鐨勮矾寰勶紝涓�瀹氳浠庢渶椤跺眰鑺傜偣寮�濮嬶紝鏍煎紡涓簒xx/yyy/zz 杩欐牱 @@ -967,7 +1033,7 @@ } /** - * 涓婚搴撶殑鏍� + * 涓婚搴撶殑鏍�,宸茬粡鑱旇皟涓氬姟绫诲瀷鏌ヨ * * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄 * @return 涓婚搴撴樉绀烘爲 @@ -978,10 +1044,20 @@ treeQueryObject = new TreeQueryObject(); } if(treeQueryObject.getConditionMap() == null){ - treeQueryObject.setConditionMap(new HashMap<>()); + treeQueryObject.setConditionMap(new HashMap<String,String>()); } treeQueryObject.getConditionMap().put(PARENT_FIELD_NAME, "=null"); - return treeCodeClassify(treeQueryObject); + List<Tree> trees = treeCodeClassify(treeQueryObject); + treeQueryObject.getConditionMap().put("domain", AppConstant.APPLICATION_NAME_CODE); + BaseQueryObject baseQueryObject = new BaseQueryObject(); + baseQueryObject.setConditionMap(treeQueryObject.getConditionMap()); + List<BtmTypeVO> btmTypeVOS = btmTypeClient.getRef(baseQueryObject).getData(); + if(Func.isEmpty(btmTypeVOS) || Func.isEmpty(trees)){ + return null; + } + List<Tree> treeList = trees.stream().filter(tree -> btmTypeVOS.stream(). + anyMatch(btmType -> Objects.equals(tree.getAttributes().get("id"), btmType.getId()))).collect(Collectors.toList()); + return treeList; } /** @@ -1021,4 +1097,50 @@ } 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<Map<String, Object>> maps = selectAllLevelParentByOid(codeClassifyOid); + List<CodeClassify> codeClassifyList = selectAllLevelParentByOid(codeClassifyOid); +// for (Map<String, Object> map : maps) { +// CodeClassify codeClassify = new CodeClassify(); +// codeClassify.setOid(String.valueOf(map.get("OID"))); +// codeClassify.setDataLevel((Integer) 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(); + } + } -- Gitblit v1.9.3