From a6e6575bc3d668e14009ed0e931a376f1a4d86ff Mon Sep 17 00:00:00 2001 From: yuxc <653031404@qq.com> Date: 星期六, 06 五月 2023 18:59:29 +0800 Subject: [PATCH] 编码管理代码上传 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java | 220 ++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 171 insertions(+), 49 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java index ab690db..47ef341 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java @@ -17,8 +17,10 @@ package com.vci.ubcs.code.service.impl; import com.alibaba.nacos.api.utils.StringUtils; +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.vci.ubcs.code.constant.FrameWorkDefaultValueConstant; import com.vci.ubcs.code.dto.CodeClstemplateDTO; import com.vci.ubcs.code.entity.*; import com.vci.ubcs.code.enumpack.CodeClassifyTemplateLC; @@ -87,11 +89,13 @@ @Autowired(required = false) private CodeClsflowtempMapper codeClsflowtempMapper; @Autowired(required = false) - private CodeTemplatePhaseMapper codeTempphaseMapper; + private CodeTempphaseMapper codeTempphaseMapper; @Autowired(required = false) - private CodeClassifyTemplateButtonMapper codeTempbuttonMapper; + private CodeTempbuttonMapper codeTempbuttonMapper; @Autowired(required = false) - private CodePhaseAttrMapper codePhaseattrMapper; + private CodePhaseattrMapper codePhaseattrMapper; + @Autowired(required = false) + private CodeClassifyMapper codeClassifyMapper; @Autowired(required = false) private ICodeClassifyService codeClassifyService; @Autowired(required = false) @@ -484,34 +488,34 @@ // ClientBusinessObject clientBusinessObject_template_insert = null; // try { // clientBusinessObject_template_insert = clientBusinessObjectOperation.reviseBusinessObject(clientBusinessObject_template, ""); - codeCls_template_insert.setOid(VciBaseUtil.getPk()); - codeCls_template_insert.setRevisionOid(VciBaseUtil.getPk()); - codeCls_template_insert.setNameOid(codeCls_template.getNameOid()); - codeCls_template_insert.setBtmname(codeCls_template.getBtmname()); - codeCls_template_insert.setLastR(String.valueOf(1)); - codeCls_template_insert.setFirstR(String.valueOf(0)); - codeCls_template_insert.setFirstV(String.valueOf(1)); - codeCls_template_insert.setLastV(String.valueOf(1)); - codeCls_template_insert.setCreator(AuthUtil.getUser().getUserName()); - codeCls_template_insert.setCreateTime(new Date()); - codeCls_template_insert.setLastModifier(AuthUtil.getUser().getUserName()); - codeCls_template_insert.setLastModifyTime(new Date()); - codeCls_template_insert.setRevisionRule(codeCls_template.getRevisionRule()); - codeCls_template_insert.setVersionRule(codeCls_template.getVersionRule()); - Map rvObj = baseMapper.getNextRevision(codeCls_template.getNameOid()); - codeCls_template_insert.setRevisionSeq(Integer.parseInt(rvObj.get("REVISIONSEQ").toString())); - codeCls_template_insert.setRevisionValue(rvObj.get("REVISIONVAL").toString()); + codeCls_template_insert.setOid(VciBaseUtil.getPk()); + codeCls_template_insert.setRevisionOid(VciBaseUtil.getPk()); + codeCls_template_insert.setNameOid(codeCls_template.getNameOid()); + codeCls_template_insert.setBtmname(codeCls_template.getBtmname()); + codeCls_template_insert.setLastR(String.valueOf(1)); + codeCls_template_insert.setFirstR(String.valueOf(0)); + codeCls_template_insert.setFirstV(String.valueOf(1)); + codeCls_template_insert.setLastV(String.valueOf(1)); + codeCls_template_insert.setCreator(AuthUtil.getUser().getUserName()); + codeCls_template_insert.setCreateTime(new Date()); + codeCls_template_insert.setLastModifier(AuthUtil.getUser().getUserName()); + codeCls_template_insert.setLastModifyTime(new Date()); + codeCls_template_insert.setRevisionRule(codeCls_template.getRevisionRule()); + codeCls_template_insert.setVersionRule(codeCls_template.getVersionRule()); + Map rvObj = baseMapper.getNextRevision(codeCls_template.getNameOid()); + codeCls_template_insert.setRevisionSeq(Integer.parseInt(rvObj.get("REVISIONSEQ").toString())); + codeCls_template_insert.setRevisionValue(rvObj.get("REVISIONVAL").toString()); // VersionValueObject versionObj = this.getVersionValue(item.verRuleName); - codeCls_template_insert.setVersionSeq(Integer.parseInt(rvObj.get("VERSIONSEQ").toString())); - codeCls_template_insert.setVersionValue(rvObj.get("VERSIONVAL").toString()); - codeCls_template_insert.setLctid(codeCls_template.getLctid()); - codeCls_template_insert.setLcStatus("Editing"); - codeCls_template_insert.setId(codeCls_template.getId()); - codeCls_template_insert.setName(codeCls_template.getName()); - codeCls_template_insert.setDescription(codeCls_template.getDescription()); - codeCls_template_insert.setOwner(AuthUtil.getUser().getUserName()); + codeCls_template_insert.setVersionSeq(Integer.parseInt(rvObj.get("VERSIONSEQ").toString())); + codeCls_template_insert.setVersionValue(rvObj.get("VERSIONVAL").toString()); + codeCls_template_insert.setLctid(codeCls_template.getLctid()); + codeCls_template_insert.setLcStatus("Editing"); + codeCls_template_insert.setId(codeCls_template.getId()); + codeCls_template_insert.setName(codeCls_template.getName()); + codeCls_template_insert.setDescription(codeCls_template.getDescription()); + codeCls_template_insert.setOwner(AuthUtil.getUser().getUserName()); // codeCls_template_insert.setCheckinBy(userName); - codeCls_template_insert.setCopyFromVersion(codeCls_template.getOid()); + codeCls_template_insert.setCopyFromVersion(codeCls_template.getOid()); // }catch (VCIError e){ // e.printStackTrace(); // logger.error("===============>鍒嗙被妯℃澘-鍗囩増澶嶅埗鍑洪敊oid锛� "+templateOldOid+",mes"+e.error_message); @@ -548,11 +552,11 @@ //澶嶅埗妯℃澘闃舵锛岄樁娈靛睘鎬� Map phase_attrMap = copyTemplatePhase_attr(templateOldOid,templateNewOid); - List<CodeTemplatePhase> codeClassifyPhaseDOList = (ArrayList<CodeTemplatePhase>)phase_attrMap.get("phase");//妯℃澘闃舵 - List<CodePhaseAttr> codePhaseAttrDOList = (ArrayList<CodePhaseAttr>)phase_attrMap.get("phaseAttr");//闃舵灞炴�� + List<CodeTempphaseEntity> codeClassifyPhaseDOList = (ArrayList<CodeTempphaseEntity>)phase_attrMap.get("phase");//妯℃澘闃舵 + List<CodePhaseattrEntity> codePhaseAttrDOList = (ArrayList<CodePhaseattrEntity>)phase_attrMap.get("phaseAttr");//闃舵灞炴�� //澶嶅埗妯℃澘鎸夐挳 - List<CodeClassifyTemplateButton> codeClassifyTemplateButtonDOList = copyTemplateButton(templateOldOid,templateNewOid); + List<CodeTempbuttonEntity> codeClassifyTemplateButtonDOList = copyTemplateButton(templateOldOid,templateNewOid); //涓�璧蜂繚瀛樻暟鎹� // WebUtil.setPersistence(false);//涓嶆墽琛屼繚瀛� @@ -651,11 +655,11 @@ //澶嶅埗妯℃澘闃舵锛岄樁娈靛睘鎬� Map phase_attrMap = copyTemplatePhase_attr(oldOid,newOid); - List<CodeTemplatePhase> codeClassifyPhaseDOList = (ArrayList<CodeTemplatePhase>)phase_attrMap.get("phase");//妯℃澘闃舵 - List<CodePhaseAttr> codePhaseAttrDOList = (ArrayList<CodePhaseAttr>)phase_attrMap.get("phaseAttr");//闃舵灞炴�� + List<CodeTempphaseEntity> codeClassifyPhaseDOList = (ArrayList<CodeTempphaseEntity>)phase_attrMap.get("phase");//妯℃澘闃舵 + List<CodePhaseattrEntity> codePhaseAttrDOList = (ArrayList<CodePhaseattrEntity>)phase_attrMap.get("phaseAttr");//闃舵灞炴�� //澶嶅埗妯℃澘鎸夐挳 - List<CodeClassifyTemplateButton> codeClassifyTemplateButtonDOList = copyTemplateButton(oldOid,newOid); + List<CodeTempbuttonEntity> codeClassifyTemplateButtonDOList = copyTemplateButton(oldOid,newOid); // baseMapper.insert(codeClassifyTemplateDOList); this.saveBatch(codeClassifyTemplateDOList); @@ -754,21 +758,21 @@ // phaseWrapper.addQueryMap("codeClassifyTemplateOid",templateOldOid); Map<String,Object> condition = new HashMap<>(1); condition.put("codeclassifyTemplateOid",templateOldOid); - List<CodeTemplatePhase> codeTempphaseEntities = codeTempphaseMapper.selectByMap(condition); + List<CodeTempphaseEntity> codeTempphaseEntities = codeTempphaseMapper.selectByMap(condition); // List<CodeTemplatePhaseDO> codeClassifyPhaseDOList = codeTemplatePhaseDaoI.selectByWrapper(phaseWrapper);//瑕佷繚瀛樼殑鏂扮殑妯℃澘娴佺▼ Map<String,String> phaseKeyMap = new HashMap<String,String>();//闇�瑕佸鍒剁殑妯℃澘闃舵灞炴��,key:value,妯℃澘闃舵鑰乷id:妯℃澘灞炴�ф柊oid List<String> phaseOidList = new ArrayList<String>(); - for (CodeTemplatePhase codeTemplatePhaseDO:codeTempphaseEntities){ + for (CodeTempphaseEntity codeTemplatePhaseDO:codeTempphaseEntities){ String oldoid = codeTemplatePhaseDO.getOid(); String newOid = VciBaseUtil.getPk(); codeTemplatePhaseDO.setOid(newOid); - codeTemplatePhaseDO.setCodeClassifyTemplateOid(templateNewOid); + codeTemplatePhaseDO.setCodeclassifytemplateoid(templateNewOid); phaseKeyMap.put(oldoid,newOid); phaseOidList.add(oldoid); } //妯℃澘闃舵鐨勫睘鎬� - List<CodePhaseAttr> codePhaseAttrDOList = new ArrayList<CodePhaseAttr>(); + List<CodePhaseattrEntity> codePhaseAttrDOList = new ArrayList<CodePhaseattrEntity>(); if(!CollectionUtils.isEmpty(phaseOidList)){//size()==0涓嬭竟鏂规硶浼氭姤閿� // Map<String,String> conditionMap = new HashMap<>(); @@ -776,11 +780,11 @@ // codePhaseAttrDOList = codePhaseAttrDaoI.selectByCondition(conditionMap,new PageHelper(-1)); codePhaseAttrDOList = codePhaseattrMapper.selectByPhaseaIds(VciBaseUtil.toInSql(phaseOidList.toArray(new String[0]))); } - for (CodePhaseAttr codePhaseAttrDO:codePhaseAttrDOList){ - String oldPhaseoid = codePhaseAttrDO.getCodePhaseOid(); + for (CodePhaseattrEntity codePhaseAttrDO:codePhaseAttrDOList){ + String oldPhaseoid = codePhaseAttrDO.getCodephaseoid(); // String newOid = VciBaseUtil.getPk(); codePhaseAttrDO.setOid(null); - codePhaseAttrDO.setCodePhaseOid(phaseKeyMap.get(oldPhaseoid)); + codePhaseAttrDO.setCodephaseoid(phaseKeyMap.get(oldPhaseoid)); // codePhaseattrMapper.insert(codePhaseAttrDO); } Map phaseMap = new HashMap(); @@ -792,15 +796,15 @@ /** * 澶嶅埗妯℃澘鎸夐挳 */ - public List<CodeClassifyTemplateButton> copyTemplateButton(String templateOldOid,String templateNewOid){ + public List<CodeTempbuttonEntity> copyTemplateButton(String templateOldOid,String templateNewOid){ Map<String,Object> condition = new HashMap<>(1); condition.put("classifyTemplateOid",templateOldOid); // VciQueryWrapperForDO buttonWrapper = new VciQueryWrapperForDO(CodeClassifyTemplateButtonDO.class); // buttonWrapper.addQueryMap("classifyTemplateOid",templateOldOid); - List<CodeClassifyTemplateButton> codeTempbuttonEntities = codeTempbuttonMapper.selectByMap(condition); + List<CodeTempbuttonEntity> codeTempbuttonEntities = codeTempbuttonMapper.selectByMap(condition); // List<CodeClassifyTemplateButtonDO> codeClassifyTemplateButtonDOList = codeClassifyTemplateButtonDaoI.selectByWrapper(buttonWrapper); - for (CodeClassifyTemplateButton codeClassifyTemplateButtonDO:codeTempbuttonEntities){ + for (CodeTempbuttonEntity codeClassifyTemplateButtonDO:codeTempbuttonEntities){ // String newOid = VciBaseUtil.getPk(); codeClassifyTemplateButtonDO.setOid(null); codeClassifyTemplateButtonDO.setClassifytemplateoid(templateNewOid); @@ -817,11 +821,13 @@ // VciQueryWrapperForDO codeClassifyTemplateAttrQuery = new VciQueryWrapperForDO(CodeClassifyTemplateAttrDO.class); // codeClassifyTemplateAttrQuery.addQueryMap("classifyTemplateOid",templateOldOid); - Map<String,Object> condition = new HashMap<>(1); - condition.put("classifyTemplateOid",templateOldOid); +// Map<String,Object> condition = new HashMap<>(1); +// condition.put("classifyTemplateOid",templateOldOid); + QueryWrapper<CodeClstempattrEntity> wrapper=new QueryWrapper<>(); + wrapper.eq("classifyTemplateOid",templateOldOid); // List<CodeClstempattrEntity> codeClassifyTemplateAttrDOList = codeClassifyTemplateAttrDaoI.selectByWrapper(codeClassifyTemplateAttrQuery); - List<CodeClstempattrEntity> codeClstempattrEntities = codeClstempattrMapper.selectByMap(condition); + List<CodeClstempattrEntity> codeClstempattrEntities = codeClstempattrMapper.selectList(wrapper); for (CodeClstempattrEntity codeClassifyTemplateAttrDO :codeClstempattrEntities){ // String attrOid = VciBaseUtil.getPk(); @@ -1003,7 +1009,7 @@ // condition.put("ts",codeClassifyTemplateDOCopyFromDTO.getTs()); CodeClstemplateEntity detail = baseMapper .selectById(codeClassifyTemplateDOCopyFromDTO.getOid()); - // boolean tsBoolean = boService.checkTs(codeClassifyTemplateAttrDOListemplateDOCopyFromDTO); + // boolean tsBoolean = boService.checkTs(codeClassifyTemplateAttrDOListemplateDOCopyFromDTO); if(detail.getTs().compareTo(codeClassifyTemplateDOCopyFromDTO.getTs()) != 0){//涓嶆槸鏈�鏂扮殑涓嶈鏀� return R.fail("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒"); } @@ -1029,4 +1035,120 @@ return R.data(codeClassifyTemplateDO2VO(codeClassifyTemplateDO)); } + /** + *鏍规嵁鐖跺垎绫籭d鍘绘煡鎵惧彾瀛愯妭鐐圭殑妯℃澘锛屽鏋滄病鏌ュ埌鍒欒涓烘ā鏉垮湪涓婂眰寤虹珛锛屽垯鏍规嵁鍒嗙被鍘绘煡褰撳墠妯℃澘 + * @param codeClassifyOid 鐖跺垎绫荤殑涓婚敭 + * @return + */ + @Override + public List<CodeClstemplateVO> childTemplates(String codeClassifyOid){ + List<CodeClstemplateVO> codeClassifyTemplateVOList=new ArrayList<>(); +// Map<String/**妯℃澘鐨勪富閿�**/,String/**鍒嗙被鐨勪富閿�**/> childHasTemplateMap =baseMapper +// .selectChildHasReleaseTemplate(FrameWorkDefaultValueConstant.FRAMEWORK_DATA_ENABLED, +// codeClassifyOid,CodeClassifyTemplateLC.RELEASED.getValue()); + List<Map<String,String>> childHasTemplateList =baseMapper + .selectChildHasReleaseTemplate(FrameWorkDefaultValueConstant.FRAMEWORK_DATA_ENABLED, + codeClassifyOid,CodeClassifyTemplateLC.RELEASED.getValue()); + Map<String/**妯℃澘鐨勪富閿�**/,String/**鍒嗙被鐨勪富閿�**/> childHasTemplateMap = new HashMap<>(); + if(!CollectionUtils.isEmpty(childHasTemplateList)){ + childHasTemplateList.stream().forEach(cbo->{ + childHasTemplateMap.put(cbo.get("OID"),cbo.get("CLSOID")); + }); + } + + Set<String> templateOid = childHasTemplateMap.keySet(); + List<CodeClstemplateEntity> classifyTemplateDOS=new ArrayList<>(); + if(!CollectionUtils.isEmpty(templateOid)) { + classifyTemplateDOS= this.listCodeClassifyTemplateDOByOidCollections(templateOid); + }else{ + classifyTemplateDOS=selectOnlyTemplateByClassifyOid(codeClassifyOid); + } + List<CodeClstemplateVO> templateVOList = codeClassifyTemplateDO2VOs(classifyTemplateDOS, true); + if(!CollectionUtils.isEmpty(templateVOList)){ + codeClassifyTemplateVOList.addAll(templateVOList); + } + return codeClassifyTemplateVOList; + } + + + /** + * 浣跨敤鍒嗙被涓婚敭閫掑綊鏌ヨ + * @param codeClassifyOid 鍒嗙被鐨勪富閿� + * @return 妯℃澘鐨勬暟鎹璞� + */ + private List<CodeClstemplateEntity> selectOnlyTemplateByClassifyOid(String codeClassifyOid){ + //1.鐩存帴鏌ヨ锛岀湅鐪嬭繖涓垎绫讳笅闈㈡湁娌℃湁鍙戝竷鐘舵�佺殑妯℃澘 + //2.濡傛灉娌℃湁锛屽垯寰�涓婃壘鍒嗙被鐨勫唴瀹癸紝杩欎釜鍒嗙被灞傜骇涓嶄細澶锛屾墍浠ョ洿鎺ラ�掑綊鍗冲彲 + //3.濡傛灉鍒嗙被涓嬮潰娣诲姞浜嗘ā鏉匡紝浣嗘槸娌℃湁鍙戝竷锛屽垯璇存槑妯℃澘鍙兘杩樺湪缂栬緫鐨勭姸鎬侊紝渚濈劧浣跨敤涓婄骇鍒嗙被 + +// Map<String,String> conditionMap = new HashMap<>(); +// conditionMap.put("codeClassifyOid",codeClassifyOid); +// conditionMap.put("lcstatus",CodeClassifyTemplateLC.RELEASED.getValue()); + QueryWrapper<CodeClstemplateEntity> wrapper=new QueryWrapper<>(); + wrapper.eq("codeClassifyOid",codeClassifyOid) + .eq("lcstatus",CodeClassifyTemplateLC.RELEASED.getValue()); + + List<CodeClstemplateEntity> templateDOS = baseMapper.selectList(wrapper); + if(CollectionUtils.isEmpty(templateDOS)){ + //閫掑綊鎵句笂绾х殑妯℃澘 + CodeClassify classifyDO = codeClassifyMapper.selectById(codeClassifyOid); +// codeClassifyDaoI.selectByPrimaryKey(codeClassifyOid); + if(StringUtils.isBlank(classifyDO.getParentCodeClassifyOid())){ + //璇存槑宸茬粡鏄《浜嗭紝涔熸病鎵惧埌鐨勮瘽锛岄偅灏辫繑鍥炰簡 + return null; + } + return selectOnlyTemplateByClassifyOid(classifyDO.getParentCodeClassifyOid()); + }else{ + return templateDOS; + } + } + + /** + * 浣跨敤涓婚搴撶殑鍒嗙被涓婚敭锛岃幏鍙栫敓鏁堢殑妯℃澘 + * + * @param codeClassifyOid 涓婚搴撳垎绫讳富閿� + * @param hasAttribute 鏄惁鍖呭惈灞炴�� + * @return 妯℃澘鐨勪俊鎭� + */ + @Override + public List<CodeClstemplateVO> listReleaseTemplateByClassifyOid(String codeClassifyOid, boolean hasAttribute) { + VciBaseUtil.alertNotNull(codeClassifyOid,"涓婚搴撳垎绫讳富閿�"); + List<CodeClstemplateEntity> templateDOS = selectOnlyTemplateByClassifyOid(codeClassifyOid); + if(CollectionUtils.isEmpty(templateDOS)){ + throw new VciBaseException("褰撳墠鍒嗙被锛屼互鍙婂叾涓婄骇鍒嗙被閮芥病鏈夎缃ā鏉�"); + } + List<CodeClstemplateVO> templateVOList = codeClassifyTemplateDO2VOs(templateDOS, true); + return sortTemplateByRevision(templateVOList); + } + + /** + * 鐢ㄦā鏉跨殑鐗堟湰鏉ユ帓搴� + * @param templateVOList 妯℃澘鐨勬樉绀哄璞� + * @return 鎺掑簭鍚庣殑鍒楄〃 + */ + @Override + public List<CodeClstemplateVO> sortTemplateByRevision(List<CodeClstemplateVO> templateVOList){ + if(!CollectionUtils.isEmpty(templateVOList) && templateVOList.size() >1){ + //鑾峰彇鐗堟湰鍙锋渶澶х殑閭d釜 + templateVOList = templateVOList.stream().sorted((o1,o2)-> + Integer.valueOf(o1.getRevisionSeq()).compareTo(Integer.valueOf(o2.getRevisionValue())) + ).collect(Collectors.toList()); + } + return templateVOList; + } + + /** + * 涓婚敭鑾峰彇鍒嗙被妯℃澘瀵硅薄(鍖呭惈灞炴�э級 + * + * @param oid 涓婚敭 + * @return 鍒嗙被妯℃澘瀵硅薄鏄剧ず瀵硅薄 + * @throws VciBaseException 鍙傛暟涓虹┖锛屾暟鎹笉瀛樺湪鏃朵細鎶涘嚭寮傚父 + */ + @Override + public CodeClstemplateVO getObjectHasAttrByOid(String oid) throws VciBaseException { + List<CodeClstemplateEntity> doList = new ArrayList<>(); + doList.add(selectByOid(oid)); + List<CodeClstemplateVO> templateVOS = codeClassifyTemplateDO2VOs(doList, true); + return CollectionUtils.isEmpty(templateVOS)?null:templateVOS.get(0); + } } -- Gitblit v1.9.3