From 4494a005613728c9dc22d018bca42ef5d3ebcf69 Mon Sep 17 00:00:00 2001 From: xiejun <xiejun@vci-tech.com> Date: 星期二, 14 一月 2025 20:41:47 +0800 Subject: [PATCH] 产品型号集成,类型转换,人员组织加日志,申请接口引用码段值校验 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java | 113 +++++++++++++++++++++++++++++++------------------------- 1 files changed, 62 insertions(+), 51 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 d87566d..1b87d97 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 @@ -16,7 +16,6 @@ */ 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; @@ -32,19 +31,26 @@ import com.vci.ubcs.code.service.ICodeClstemplateService; import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO; import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO; +import com.vci.ubcs.common.constant.CommonConstant; +import com.vci.ubcs.flow.core.entity.ProcessTemplate; +import com.vci.ubcs.flow.core.feign.IFlowClient; import com.vci.ubcs.starter.exception.VciBaseException; 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.DefaultAttrAssimtUtil; +import com.vci.ubcs.starter.util.MdmBtmTypeConstant; import com.vci.ubcs.starter.web.pagemodel.DataGrid; import com.vci.ubcs.starter.web.pagemodel.PageHelper; import com.vci.ubcs.starter.web.pagemodel.Tree; import com.vci.ubcs.starter.web.util.BeanUtilForVCI; import com.vci.ubcs.starter.web.util.VciBaseUtil; +import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; 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.factory.annotation.Autowired; import org.springframework.cglib.beans.BeanMap; import org.springframework.context.annotation.Lazy; @@ -105,6 +111,8 @@ private CodeClassifyTemplateMapper codeClassifyTemplateMapper; @Autowired(required = false) private CodePhaseAttrServiceImpl codePhaseattrServiceImpl; + @Autowired(required = false) + private IFlowClient iFlowClient; @Override public IPage<CodeClassifyTemplateVO> selectPlCodeClstemplatePage(IPage<CodeClassifyTemplateVO> page, CodeClassifyTemplateVO plCodeClstemplate) { @@ -502,13 +510,15 @@ 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(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.setCreator(String.valueOf(AuthUtil.getUser().getUserId())); + codeCls_template_insert.setCreator(String.valueOf(AuthUtil.getUser().getAccount())); codeCls_template_insert.setCreateTime(new Date()); codeCls_template_insert.setTs(new Date()); - codeCls_template_insert.setLastModifier(AuthUtil.getUser().getUserName()); + // codeCls_template_insert.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId())); + codeCls_template_insert.setLastModifier(String.valueOf(AuthUtil.getUser().getAccount())); codeCls_template_insert.setLastModifyTime(new Date()); codeCls_template_insert.setRevisionRule(codeCls_template.getRevisionRule()); codeCls_template_insert.setVersionRule(codeCls_template.getVersionRule()); @@ -526,9 +536,14 @@ 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.setOwner(String.valueOf(AuthUtil.getUser().getUserId())); codeCls_template_insert.setCopyFromVersion(codeCls_template.getOid()); int insertCount = baseMapper.insert(codeCls_template_insert); + codeCls_template.setLastR("0"); + codeCls_template.setLastModifyTime(new Date()); + // codeCls_template.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId())); + codeCls_template.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId())); + baseMapper.updateById(codeCls_template); //鍗囩増杩囧悗鐨勬ā鏉縪id String templateNewOid = codeCls_template_insert.getOid(); @@ -544,7 +559,7 @@ } //澶嶅埗妯℃澘娴佺▼ - List<CodeClassifyProcessTemp> codeClassifyProcessTempDOList = copyTemplateProcess(templateOldOid,templateNewOid); + List<ProcessTemplate> codeClassifyProcessTempDOList = copyTemplateProcess(templateOldOid,templateNewOid); //澶嶅埗妯℃澘闃舵锛岄樁娈靛睘鎬� Map phase_attrMap = copyTemplatePhase_attr(templateOldOid,templateNewOid); @@ -556,7 +571,7 @@ //淇濆瓨妯℃澘娴佺▼ if(!CollectionUtils.isEmpty(codeClassifyProcessTempDOList)) { - codeClsflowtempServiceImpl.saveBatch(codeClassifyProcessTempDOList); + iFlowClient.processBatchSave(codeClassifyProcessTempDOList); } //妯℃澘闃舵 if(!CollectionUtils.isEmpty(codeClassifyPhaseDOList)) { @@ -583,6 +598,13 @@ String newOid = VciBaseUtil.getPk(); //鍒嗙被oid,澶嶅埗杩囨潵鐨勬柊鐨勫垎绫籵id String codeClassifyOid = codeClassifyDTO.getCodeclassifyoid(); + + QueryWrapper<CodeClassifyTemplate> wrapper = new QueryWrapper<>(); + wrapper.eq("CODECLASSIFYOID",codeClassifyOid); + Long aLong = baseMapper.selectCount(wrapper); + if(aLong > 0){ + return R.fail("璇ュ垎绫讳笅宸叉湁瀛愭ā鐗堬紝鏃犳硶杩涜澶嶅埗鎿嶄綔锛屼粎鑳借繘琛屽崌鐗堟搷浣滐紒"); + } //澶嶅埗妯℃澘 CodeClassifyTemplate codeClassifyTemplateDO_old = baseMapper.selectById(oldOid);//鏃фā鏉� @@ -611,6 +633,8 @@ codeClassifyTemplateDO_old.setTs(new Date()); codeClassifyTemplateDO_old.setCreateTime(new Date()); codeClassifyTemplateDO_old.setLastModifyTime(new Date()); + // 澶嶅埗鐨勬ā鏉跨敓鍛藉懆鏈熸敼涓虹紪杈戜腑 + codeClassifyTemplateDO_old.setLcStatus(FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_EDITING); List<CodeClassifyTemplate> codeClassifyTemplateDOList = new ArrayList<>(); codeClassifyTemplateDOList.add(codeClassifyTemplateDO_old); @@ -618,10 +642,10 @@ List<CodeClassifyTemplateAttr> codeClassifyTemplateAttrDOList = copyTemplateAttr(oldOid,newOid); //澶嶅埗妯℃澘娴佺▼ - List<CodeClassifyProcessTemp> codeClassifyProcessTempDOList = copyTemplateProcess(oldOid,newOid); + List<ProcessTemplate> codeClassifyProcessTempDOList = copyTemplateProcess(oldOid,newOid); //澶嶅埗妯℃澘闃舵锛岄樁娈靛睘鎬� - Map phase_attrMap = copyTemplatePhase_attr(oldOid,newOid); + 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");//闃舵灞炴�� @@ -632,7 +656,7 @@ // baseMapper.insert(codeClassifyTemplateDOList); this.saveBatch(codeClassifyTemplateDOList); codeTempbuttonServiceImpl.saveBatch(codeClassifyTemplateButtonDOList); - codeClsflowtempServiceImpl.saveBatch(codeClassifyProcessTempDOList); + iFlowClient.processBatchSave(codeClassifyProcessTempDOList); codeClstempattrService.saveBatch(codeClassifyTemplateAttrDOList); codeTempphaseServiceImpl.saveBatch(codeClassifyPhaseDOList); codePhaseattrServiceImpl.saveBatch(codePhaseAttrDOList); @@ -695,22 +719,17 @@ /** * 澶嶅埗妯℃澘娴佺▼ */ - public List<CodeClassifyProcessTemp> copyTemplateProcess(String templateOldOid,String templateNewOid){ -// VciQueryWrapperForDO processWrapper = new VciQueryWrapperForDO(CodeClassifyProcessTempDO.class); -// processWrapper.addQueryMap("classifyTemplateOid",templateOldOid); - -// Map<String,Object> condition = new HashMap<>(1); -// condition.put("classifyTemplateOid",templateOldOid); - QueryWrapper<CodeClassifyProcessTemp> wrapper = new QueryWrapper<>(); - wrapper.eq("classifyTemplateOid",templateOldOid); - List<CodeClassifyProcessTemp> codeClsflowtempEntities = codeClsflowtempServiceImpl.list(wrapper); -// List<CodeClassifyProcessTempDO> codeClassifyProcessTempDOList = codeClassifyProcessTempDaoI.selectByWrapper(processWrapper);//瑕佷繚瀛樼殑鏂扮殑妯℃澘娴佺▼ - for (CodeClassifyProcessTemp codeClassifyProcessTempDO:codeClsflowtempEntities){ -// String newOid = VciBaseUtil.getPk(); - codeClassifyProcessTempDO.setOid(null); - //codeClassifyProcessTempDO.setCodeClassifyOid(templateNewOid); - codeClassifyProcessTempDO.setClassifyTemplateOid(templateNewOid); -// codeClsflowtempMapper.insert(codeClassifyProcessTempDO); + public List<ProcessTemplate> copyTemplateProcess(String templateOldOid,String templateNewOid){ + Map<String,Object> wrapperMap = new HashMap(); + wrapperMap.put("template_id",templateOldOid); + R<List<ProcessTemplate>> listR = iFlowClient.selectByWrapper(wrapperMap); + if(!listR.isSuccess()){ + throw new VciBaseException("鏌ヨ妯℃澘娴佺▼鏃跺嚭閿欙紝璇烽噸璇曪紒"); + } + List<ProcessTemplate> codeClsflowtempEntities = listR.getData(); + for (ProcessTemplate codeClassifyProcessTempDO:codeClsflowtempEntities){ + codeClassifyProcessTempDO.setId(null); + codeClassifyProcessTempDO.setTemplateId(templateNewOid); //modify by lihang - @20220406 璁剧疆妯℃澘涓婚敭浣嶇疆鍑洪敊锛屽鑷村崌鐗堢殑妯℃澘涓殑娴佺▼鏄┖鐨勩�� } return codeClsflowtempEntities; @@ -852,6 +871,7 @@ if(pageHelper.getLimit() != -1){ query.setSize(pageHelper.getLimit()); query.setCurrent(pageHelper.getPage()); + query.setDescs("versionValue"); } // List<CodeClstemplateVO> doList = codeClstemplateMapper.selectPlCodeClstemplatePage(Condition.getPage(query), codeClstemplateVO); @@ -896,33 +916,18 @@ //鎵�鏈夊垎绫婚兘娌℃湁涓氬姟绫诲瀷锛岃繑鍥炴彁绀� if(codeClassifyDOList.size()==0){ - return R.fail("娣诲姞妯℃澘娣诲姞澶辫触,鍒嗙被鍜屼笂绾у垎绫婚兘娌℃湁鍏宠仈涓氬姟绫诲瀷锛�"); + return R.fail(DATA_OID_NOT_EXIST); } //璁剧疆btmtypeid鍜宯ame - CodeClassify codeClassifyDO = codeClassifyDOList.get(0); + DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeClassifyTemplateDO, MdmBtmTypeConstant.CODE_CLASSIFY_TEMPLATE); + CodeClassify codeClassifyDO = codeClassifyDOList.stream().filter(s -> StringUtils.isNotBlank(s.getBtmTypeId())).findFirst().get(); codeClassifyTemplateDO.setBtmTypeId(codeClassifyDO.getBtmTypeId()); - codeClassifyTemplateDO.setNameOid(VciBaseUtil.getPk()); codeClassifyTemplateDO.setBtmTypeName(codeClassifyDO.getBtmTypeName()); codeClassifyTemplateDO.setLcStatus(FRAMEWORK_RELEASE_EDITING); - codeClassifyTemplateDO.setTs(new Date()); codeClassifyTemplateDO.setOwner(String.valueOf(AuthUtil.getUser().getUserId())); codeClassifyTemplateDO.setLctid("codeClsTempLc"); - codeClassifyTemplateDO.setVersionValue("1"); - codeClassifyTemplateDO.setVersionSeq(1); - codeClassifyTemplateDO.setRevisionValue("1"); - codeClassifyTemplateDO.setRevisionSeq(1); - codeClassifyTemplateDO.setVersionRule("0"); codeClassifyTemplateDO.setRevisionRule("numberversionrule"); - codeClassifyTemplateDO.setLastModifyTime(new Date()); - codeClassifyTemplateDO.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId())); - codeClassifyTemplateDO.setCreator(String.valueOf(AuthUtil.getUser().getUserId())); - codeClassifyTemplateDO.setCreateTime(new Date()); - codeClassifyTemplateDO.setLastV("1"); - codeClassifyTemplateDO.setLastR("1"); - codeClassifyTemplateDO.setFirstV("1"); - codeClassifyTemplateDO.setFirstR("1"); - codeClassifyTemplateDO.setBtmname("codeclstemplate"); baseMapper.insert(codeClassifyTemplateDO); //榛樿娣诲姞妯℃澘灞炴�� @@ -1031,7 +1036,7 @@ codeClassifyTemplateDO.setLcStatus(lcstatus); codeClassifyTemplateDO.setVersionValue(versionvalue); codeClassifyTemplateDO.setTs(new Date()); - codeClassifyTemplateDO.setLastModifier(AuthUtil.getUser().getUserName()); + codeClassifyTemplateDO.setLastModifier(AuthUtil.getUser().getAccount()); codeClassifyTemplateDO.setLastModifyTime(new Date()); baseMapper.updateById(codeClassifyTemplateDO); } @@ -1049,13 +1054,16 @@ // Map<String/**妯℃澘鐨勪富閿�**/,String/**鍒嗙被鐨勪富閿�**/> childHasTemplateMap =baseMapper // .selectChildHasReleaseTemplate(FrameWorkDefaultValueConstant.FRAMEWORK_DATA_ENABLED, // codeClassifyOid,CodeClassifyTemplateLC.RELEASED.getValue()); - List<Map<String,String>> childHasTemplateList =baseMapper + 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")); + // 鏈夋椂鍊欐煡璇㈠嚭鏉ョ殑key鏄ぇ鍐欙紝鏈夋椂鍊欐槸灏忓啓鐨刱ey + String oid = Func.isEmpty(cbo.get("OID")) ? cbo.get("oid"):cbo.get("OID"); + String clsoid = Func.isEmpty(cbo.get("CLSOID")) ? cbo.get("clsoid") : cbo.get("CLSOID"); + childHasTemplateMap.put(oid,clsoid); }); } @@ -1072,7 +1080,6 @@ } return codeClassifyTemplateVOList; } - /** * 浣跨敤鍒嗙被涓婚敭閫掑綊鏌ヨ @@ -1096,11 +1103,15 @@ //閫掑綊鎵句笂绾х殑妯℃澘 CodeClassify classifyDO = codeClassifyMapper.selectById(codeClassifyOid); // codeClassifyDaoI.selectByPrimaryKey(codeClassifyOid); - if(classifyDO==null&&StringUtils.isBlank(classifyDO.getParentCodeClassifyOid())){ + if(Func.isEmpty(classifyDO)){ //璇存槑宸茬粡鏄《浜嗭紝涔熸病鎵惧埌鐨勮瘽锛岄偅灏辫繑鍥炰簡 - return null; + return new ArrayList<>(); } - return selectOnlyTemplateByClassifyOid(classifyDO.getParentCodeClassifyOid()); + if(StringUtils.isNotBlank(classifyDO.getParentCodeClassifyOid())) { + return selectOnlyTemplateByClassifyOid(classifyDO.getParentCodeClassifyOid()); + }else{ + return new ArrayList<>(); + } }else{ return templateDOS; } -- Gitblit v1.9.3