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 | 546 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 341 insertions(+), 205 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..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,32 +16,43 @@ */ 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.dto.CodeClstemplateDTO; +import com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant; +import com.vci.ubcs.code.dto.CodeClassifyTemplateDTO; import com.vci.ubcs.code.entity.*; import com.vci.ubcs.code.enumpack.CodeClassifyTemplateLC; import com.vci.ubcs.code.enumpack.FrameworkDataLCStatus; import com.vci.ubcs.code.mapper.*; +import com.vci.ubcs.code.service.ICodeClassifyProcessTempService; import com.vci.ubcs.code.service.ICodeClassifyService; +import com.vci.ubcs.code.service.ICodeClassifyTemplateAttrService; import com.vci.ubcs.code.service.ICodeClstemplateService; -import com.vci.ubcs.code.vo.CodeClstempattrVO; -import com.vci.ubcs.code.vo.CodeClstemplateVO; +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.springframework.beans.BeanUtils; +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; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -61,14 +72,14 @@ * @since 2023-04-10 */ @Service -public class CodeClstemplateServiceImpl extends ServiceImpl<CodeClstemplateMapper, CodeClstemplateEntity> implements ICodeClstemplateService { +public class CodeClstemplateServiceImpl extends ServiceImpl<CodeClassifyTemplateMapper, CodeClassifyTemplate> implements ICodeClstemplateService { /** * 妯℃澘灞炴�х殑鏈嶅姟 */ @Lazy @Autowired(required = false) - CodeClstempattrServiceImpl codeClstempattrService; + ICodeClassifyTemplateAttrService codeClstempattrService; /** * 瀵硅薄鐨勬搷浣� @@ -77,15 +88,15 @@ private RevisionModelUtil revisionModelUtil; @Autowired(required = false) - private CodeClstempattrMapper codeClstempattrMapper; + private CodeClassifyTemplateAttrMapper codeClstempattrMapper; @Autowired(required = false) private CodeTempphaseServiceImpl codeTempphaseServiceImpl; @Autowired(required = false) - private CodeTempbuttonServiceImpl codeTempbuttonServiceImpl; + private CodeClassifyTemplateButtonServiceImpl codeTempbuttonServiceImpl; @Autowired(required = false) - private CodeClsflowtempServiceImpl codeClsflowtempServiceImpl; - @Autowired(required = false) - private CodeClsflowtempMapper codeClsflowtempMapper; + private ICodeClassifyProcessTempService codeClsflowtempServiceImpl; + // @Autowired(required = false) +// private CodeClsflowtempMapper codeClsflowtempMapper; @Autowired(required = false) private CodeTemplatePhaseMapper codeTempphaseMapper; @Autowired(required = false) @@ -93,16 +104,18 @@ @Autowired(required = false) private CodePhaseAttrMapper codePhaseattrMapper; @Autowired(required = false) + private CodeClassifyMapper codeClassifyMapper; + @Autowired(required = false) private ICodeClassifyService codeClassifyService; @Autowired(required = false) - private CodeClstemplateMapper codeClstemplateMapper; + private CodeClassifyTemplateMapper codeClassifyTemplateMapper; @Autowired(required = false) - private CodePhaseattrServiceImpl codePhaseattrServiceImpl; - - + private CodePhaseAttrServiceImpl codePhaseattrServiceImpl; + @Autowired(required = false) + private IFlowClient iFlowClient; @Override - public IPage<CodeClstemplateVO> selectPlCodeClstemplatePage(IPage<CodeClstemplateVO> page, CodeClstemplateVO plCodeClstemplate) { + public IPage<CodeClassifyTemplateVO> selectPlCodeClstemplatePage(IPage<CodeClassifyTemplateVO> page, CodeClassifyTemplateVO plCodeClstemplate) { return page.setRecords(baseMapper.selectPlCodeClstemplatePage(page, plCodeClstemplate)); } @@ -113,12 +126,12 @@ */ @Override public List<Tree> treeCodeClassifyTemplate(TreeQueryObject treeQueryObject) { - List<CodeClstemplateEntity> doList =selectCodeClassifyTemplateDOByTree(treeQueryObject); + List<CodeClassifyTemplate> doList =selectCodeClassifyTemplateDOByTree(treeQueryObject); - List<CodeClstemplateVO> voList = codeClassifyTemplateDO2VOs(doList); + List<CodeClassifyTemplateVO> voList = codeClassifyTemplateDO2VOs(doList); TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(PARENT_FIELD_NAME); treeWrapperOptions.copyFromTreeQuery(treeQueryObject); - return revisionModelUtil.doList2Trees(voList,treeWrapperOptions,(CodeClstemplateVO s) ->{ + return revisionModelUtil.doList2Trees(voList,treeWrapperOptions,(CodeClassifyTemplateVO s) ->{ //鍙互鍦ㄨ繖閲屽鐞嗘爲鑺傜偣鐨勬樉绀� return s.getId() + " " + s.getName() + (FrameworkDataLCStatus.DISABLED.getValue().equalsIgnoreCase(s .getLcStatus()) ? (" 銆愬仠鐢ㄣ�� ") : ""); @@ -132,7 +145,7 @@ * @return 鏌ヨ缁撴灉,鏁版嵁瀵硅薄 */ @Override - public List<CodeClstemplateEntity> selectCodeClassifyTemplateDOByTree(TreeQueryObject treeQueryObject) { + public List<CodeClassifyTemplate> selectCodeClassifyTemplateDOByTree(TreeQueryObject treeQueryObject) { // VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(null,CodeClassifyTemplateDO.class); // VciParentQueryOption parentQueryOption = new VciParentQueryOption(); // parentQueryOption.setParentFieldName(PARENT_FIELD_NAME); @@ -152,7 +165,7 @@ * @return 鏄剧ず瀵硅薄 */ @Override - public List<CodeClstemplateVO> codeClassifyTemplateDO2VOs(Collection<CodeClstemplateEntity> codeClassifyTemplateDOs) { + public List<CodeClassifyTemplateVO> codeClassifyTemplateDO2VOs(Collection<CodeClassifyTemplate> codeClassifyTemplateDOs) { return codeClassifyTemplateDO2VOs(codeClassifyTemplateDOs,false); } @@ -163,11 +176,11 @@ * @return 鏄剧ず瀵硅薄 */ @Override - public List<CodeClstemplateVO> codeClassifyTemplateDO2VOs(Collection<CodeClstemplateEntity> codeClassifyTemplateDOs,boolean hasAttr) { - List<CodeClstemplateVO> voList = new ArrayList<CodeClstemplateVO>(); + public List<CodeClassifyTemplateVO> codeClassifyTemplateDO2VOs(Collection<CodeClassifyTemplate> codeClassifyTemplateDOs, boolean hasAttr) { + List<CodeClassifyTemplateVO> voList = new ArrayList<CodeClassifyTemplateVO>(); if(!CollectionUtils.isEmpty(codeClassifyTemplateDOs)){ - for(CodeClstemplateEntity s: codeClassifyTemplateDOs){ - CodeClstemplateVO vo = codeClassifyTemplateDO2VO(s); + for(CodeClassifyTemplate s: codeClassifyTemplateDOs){ + CodeClassifyTemplateVO vo = codeClassifyTemplateDO2VO(s); if(vo != null){ voList.add(vo); } @@ -175,15 +188,19 @@ } if(hasAttr){ //涓�涓垎绫婚噷闈㈡�讳笉鑳借秴杩�1000涓敓鏁堢殑鐗堟湰鍚э紒锛侊紒 - VciBaseUtil.switchCollectionForOracleIn(voList.stream().map(CodeClstemplateVO::getOid).collect(Collectors.toList())).forEach(tempOids->{ - List<CodeClstempattrVO> attrVOList = codeClstempattrService.listCodeClassifyTemplateAttrByTemplateOids(tempOids); + VciBaseUtil.switchCollectionForOracleIn(voList.stream().map(CodeClassifyTemplateVO::getOid).collect(Collectors.toList())).forEach(tempOids->{ + List<CodeClassifyTemplateAttrVO> attrVOList = codeClstempattrService.listCodeClassifyTemplateAttrByTemplateOids(tempOids); if(!CollectionUtils.isEmpty(attrVOList)){ - Map<String, List<CodeClstempattrVO>> attrVOMap = attrVOList.stream().collect(Collectors.groupingBy(s -> s.getClassifytemplateoid())); + Map<String, List<CodeClassifyTemplateAttrVO>> attrVOMap = attrVOList.stream().collect(Collectors.groupingBy(s -> s.getClassifyTemplateOid())); voList.stream().forEach(templateVO->{ if(attrVOMap.containsKey(templateVO.getOid())){ - templateVO.setAttributes(attrVOMap.get(templateVO.getOid())); + List<CodeClassifyTemplateAttrVO> codeClstempattrVO = new ArrayList<>(); + for (CodeClassifyTemplateAttrVO codeClassifyTemplateAttrVO : attrVOMap.get(templateVO.getOid())) { + codeClstempattrVO.add(codeClassifyTemplateAttrVO); + } + templateVO.setAttributes(codeClstempattrVO); } }); } @@ -198,8 +215,8 @@ * @return 鏄剧ず瀵硅薄 */ @Override - public CodeClstemplateVO codeClassifyTemplateDO2VO(CodeClstemplateEntity codeClassifyTemplateDO) { - CodeClstemplateVO vo = new CodeClstemplateVO(); + public CodeClassifyTemplateVO codeClassifyTemplateDO2VO(CodeClassifyTemplate codeClassifyTemplateDO) { + CodeClassifyTemplateVO vo = new CodeClassifyTemplateVO(); if(codeClassifyTemplateDO != null){ BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateDO,vo); //濡傛灉鏈塴cstatus鐨勭被鐨勮瘽 @@ -215,37 +232,37 @@ * @return 鎵ц缁撴灉 success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾� */ @Override - public R checkIsCanDelete(CodeClstemplateDTO codeClstemplateDTO) { + public R checkIsCanDelete(CodeClassifyTemplateDTO codeClstemplateDTO) { VciBaseUtil.alertNotNull(codeClstemplateDTO,"鏁版嵁浼犺緭瀵硅薄",codeClstemplateDTO.getOid(),"涓婚敭"); - CodeClstemplateEntity codeClstemplateEntity = baseMapper.selectById(codeClstemplateDTO.getOid()); - return checkIsCanDeleteForDO(codeClstemplateDTO,codeClstemplateEntity); + CodeClassifyTemplate codeClassifyTemplate = baseMapper.selectById(codeClstemplateDTO.getOid()); + return checkIsCanDeleteForDO(codeClstemplateDTO, codeClassifyTemplate); } /** * 鏍¢獙鏄惁鍙互鍒犻櫎锛屽鏋滃瓨鍦ㄤ笅绾э紝骞朵笖涓嬬骇鏈夋暟鎹紩鐢ㄥ垯涓嶈兘鍒犻櫎 * @param codeClstemplateDTO 鏁版嵁浼犺緭瀵硅薄 - * @param codeClstemplateEntity 鏁版嵁搴撲腑鐨勬暟鎹璞� + * @param codeClassifyTemplate 鏁版嵁搴撲腑鐨勬暟鎹璞� * @return success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾� */ - private R checkIsCanDeleteForDO(CodeClstemplateDTO codeClstemplateDTO, CodeClstemplateEntity codeClstemplateEntity) { - CodeClstemplateEntity codeClassifyTemplateDOCopyFromDTO = new CodeClstemplateEntity(); + private R checkIsCanDeleteForDO(CodeClassifyTemplateDTO codeClstemplateDTO, CodeClassifyTemplate codeClassifyTemplate) { + CodeClassifyTemplate codeClassifyTemplateDOCopyFromDTO = new CodeClassifyTemplate(); BeanUtilForVCI.copyPropertiesIgnoreCase(codeClstemplateDTO,codeClassifyTemplateDOCopyFromDTO); //妫�鏌s // Map<String,Object> condition = new HashMap<>(2); // condition.put("oid",codeClstemplateDTO.getOid()); // condition.put("ts",codeClstemplateDTO.getTs()); - CodeClstemplateEntity detail = baseMapper + CodeClassifyTemplate detail = baseMapper .selectById(codeClstemplateDTO.getOid()); if(!detail.getTs().toString().equals(codeClstemplateDTO.getTs().toString())){//涓嶆槸鏈�鏂扮殑涓嶈鏀� return R.fail("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒"); } //鏍¢獙涓嬬骇鏄惁鏈夊紩鐢� - if(checkChildIsLinked(codeClstemplateEntity.getOid())){ + if(checkChildIsLinked(codeClassifyTemplate.getOid())){ return R.fail(DATA_CASCADE_LINKED_NOT_DELETE); } - return R.success(String.valueOf(checkHasChild(codeClstemplateEntity.getOid()))); + return R.success(String.valueOf(checkHasChild(codeClassifyTemplate.getOid()))); } /** @@ -298,11 +315,11 @@ */ @Transactional @Override - public R deleteCodeClassifyTemplate(CodeClstemplateDTO codeClstemplateDTO) { + public R deleteCodeClassifyTemplate(CodeClassifyTemplateDTO codeClstemplateDTO) { checkIsCanDelete(codeClstemplateDTO); VciBaseUtil.alertNotNull(codeClstemplateDTO,"鍒嗙被妯℃澘瀵硅薄鏁版嵁瀵硅薄",codeClstemplateDTO.getOid(),"鍒嗙被妯℃澘瀵硅薄鐨勪富閿�"); - CodeClstemplateEntity codeClassifyTemplateDO = baseMapper.selectById(codeClstemplateDTO.getOid()); + CodeClassifyTemplate codeClassifyTemplateDO = baseMapper.selectById(codeClstemplateDTO.getOid()); //鍙湁缂栬緫涓墠鑳藉垹 if(!CodeClassifyTemplateLC.EDITING.getValue().equals(codeClassifyTemplateDO.getLcStatus())){ @@ -340,11 +357,11 @@ //鍒犻櫎妯℃澘灞炴�� // VciQueryWrapperForDO templateQueryWrapper = new VciQueryWrapperForDO(CodeClassifyTemplateAttrDO.class); // templateQueryWrapper.addQueryMap("classifyTemplateOid",templateOid); - List<CodeClstempattrEntity> codeClstempattrEntityList = codeClstempattrMapper.selectRefByOid(templateOid); + List<CodeClassifyTemplateAttr> codeClstempattrEntityList = codeClstempattrMapper.selectRefByOid(templateOid); if(!CollectionUtils.isEmpty(codeClstempattrEntityList)) { List<String> templateAttrOids = new ArrayList<String>(); - for (CodeClstempattrEntity codeClstempattrEntity:codeClstempattrEntityList){ + for (CodeClassifyTemplateAttr codeClstempattrEntity:codeClstempattrEntityList){ templateAttrOids.add(codeClstempattrEntity.getOid()); } @@ -371,14 +388,14 @@ * @return 鍒嗙被妯℃澘瀵硅薄鏄剧ず瀵硅薄 */ @Override - public CodeClstemplateVO getObjectByOid(String oid) { + public CodeClassifyTemplateVO getObjectByOid(String oid) { return codeClassifyTemplateDO2VO(selectByOid(oid)); } @Override - public Collection<CodeClstemplateVO> listCodeClassifyTemplateByOids(List<String> oidCollections) { + public Collection<CodeClassifyTemplateVO> listCodeClassifyTemplateByOids(List<String> oidCollections) { VciBaseUtil.alertNotNull(oidCollections,"鏁版嵁瀵硅薄涓婚敭闆嗗悎"); - List<CodeClstemplateEntity> codeClassifyTemplateDOList = listCodeClassifyTemplateDOByOidCollections(oidCollections); + List<CodeClassifyTemplate> codeClassifyTemplateDOList = listCodeClassifyTemplateDOByOidCollections(oidCollections); return codeClassifyTemplateDO2VOs(codeClassifyTemplateDOList); } @@ -408,12 +425,12 @@ * @param oidCollections 涓婚敭鐨勯泦鍚� * @return 鏁版嵁瀵硅薄鍒楄〃 */ - private List<CodeClstemplateEntity> listCodeClassifyTemplateDOByOidCollections(Collection<String> oidCollections){ - List<CodeClstemplateEntity> codeClassifyTemplateDOList = new ArrayList<CodeClstemplateEntity>(); + private List<CodeClassifyTemplate> listCodeClassifyTemplateDOByOidCollections(Collection<String> oidCollections){ + List<CodeClassifyTemplate> codeClassifyTemplateDOList = new ArrayList<CodeClassifyTemplate>(); if(!CollectionUtils.isEmpty(oidCollections)){ Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections); for(Collection<String> oids: oidCollectionsList){ - List<CodeClstemplateEntity> tempDOList = baseMapper.selectBatchIds(oids); //codeClassifyTemplateMapper.selectByPrimaryKeyCollection(oids); + List<CodeClassifyTemplate> tempDOList = baseMapper.selectBatchIds(oids); //codeClassifyTemplateMapper.selectByPrimaryKeyCollection(oids); if(!CollectionUtils.isEmpty(tempDOList)){ codeClassifyTemplateDOList.addAll(tempDOList); } @@ -427,13 +444,13 @@ * @param oid 涓婚敭 * @return 鏁版嵁瀵硅薄 */ - private CodeClstemplateEntity selectByOid(String oid) { + private CodeClassifyTemplate selectByOid(String oid) { VciBaseUtil.alertNotNull(oid,"涓婚敭"); - CodeClstemplateEntity codeClstemplateEntity = baseMapper.selectById(oid.trim()); - if(codeClstemplateEntity == null || StringUtils.isBlank(codeClstemplateEntity.getOid())){ + CodeClassifyTemplate codeClassifyTemplate = baseMapper.selectById(oid.trim()); + if(codeClassifyTemplate == null || StringUtils.isBlank(codeClassifyTemplate.getOid())){ throw new VciBaseException(DATA_OID_NOT_EXIST); } - return codeClstemplateEntity; + return codeClassifyTemplate; } /** @@ -445,19 +462,27 @@ @Transactional @Override public R updateLcStatus( String oid, String lcStatus){ - CodeClstemplateEntity codeClassifyTemplateDO = baseMapper.selectById(oid); + CodeClassifyTemplate codeClassifyTemplateDO = baseMapper.selectById(oid); //鍋滅敤鐨勬椂鍊欙紝楠岃瘉妯℃澘鏄惁涓哄凡鍙戝竷 if(CodeClassifyTemplateLC.DISABLED.getValue().equals(lcStatus)){ -// CodeClstemplateEntity codeClassifyTemplateDO = baseMapper.selectById(oid); if(!CodeClassifyTemplateLC.RELEASED.getValue().equals(codeClassifyTemplateDO.getLcStatus())){ return R.fail("妯℃澘鏈惎鐢紝涓嶈兘鍋滅敤锛�"); } } + + if(lcStatus.equals(CodeClassifyTemplateLC.RELEASED.getValue())){ + QueryWrapper<CodeClassify> classifyQueryWrapper = new QueryWrapper<>(); + classifyQueryWrapper.eq("oid",codeClassifyTemplateDO.getCodeClassifyOid()); + classifyQueryWrapper.eq("lcstatus","Enabled"); + List<CodeClassify> codeClassifyList = codeClassifyService.selectByWrapper(classifyQueryWrapper); + if(codeClassifyList.size()==0){ + return R.fail("鏌ヨ鍒版墍灞炲垎绫绘湭鍚敤锛岃鍏堣繘琛屽惎鐢紒锛侊紒"); + } + } + //鍚敤銆佸仠鐢� codeClassifyTemplateDO.setLcStatus(lcStatus); int u = baseMapper.updateById(codeClassifyTemplateDO); -// codeClassifyTemplateMapper.updateLcStatus(oid,lcStatus); - return u==0?R.fail("淇敼澶辫触锛�"):R.success("淇敼鎴愬姛"); } @@ -467,23 +492,19 @@ */ @Transactional @Override - public R Upgrade(CodeClstemplateDTO codeClassifyDTO) { + public R Upgrade(CodeClassifyTemplateDTO codeClassifyDTO) { //鏃х殑妯℃澘oid String templateOldOid = codeClassifyDTO.getOid(); //鍙湁宸插彂甯冪殑鎵嶈兘鍗囩増 - CodeClstemplateEntity codeClassifyTemplateDOOld = baseMapper.selectById(templateOldOid); + CodeClassifyTemplate codeClassifyTemplateDOOld = baseMapper.selectById(templateOldOid); if(!FRAMEWORK_RELEASE_RELEASED.equals(codeClassifyTemplateDOOld.getLcStatus())){ return R.fail("璇ユā鏉挎湭鍙戝竷锛屼笉鑳藉崌鐗堬紒"); } //闇�瑕佹柊澧炵殑鍗囩骇妯℃澘 -// ClientBusinessObject clientBusinessObject_template = boService.selectCBOByOid(codeClassifyDTO.getOid(), "codeclstemplate"); - CodeClstemplateEntity codeCls_template = baseMapper.selectById(templateOldOid); - CodeClstemplateEntity codeCls_template_insert = new CodeClstemplateEntity(); -// ClientBusinessObject clientBusinessObject_template_insert = null; -// try { -// clientBusinessObject_template_insert = clientBusinessObjectOperation.reviseBusinessObject(clientBusinessObject_template, ""); + CodeClassifyTemplate codeCls_template = baseMapper.selectById(templateOldOid); + CodeClassifyTemplate codeCls_template_insert = new CodeClassifyTemplate(); codeCls_template_insert.setOid(VciBaseUtil.getPk()); codeCls_template_insert.setRevisionOid(VciBaseUtil.getPk()); codeCls_template_insert.setNameOid(codeCls_template.getNameOid()); @@ -492,16 +513,22 @@ 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.setLastModifier(AuthUtil.getUser().getUserName()); + codeCls_template_insert.setTs(new Date()); + // 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()); + codeCls_template_insert.setBtmTypeId(codeCls_template.getBtmTypeId()); + codeCls_template_insert.setBtmTypeName(codeCls_template.getBtmTypeName()); + codeCls_template_insert.setCodeClassifyOid(codeCls_template.getCodeClassifyOid()); + codeCls_template_insert.setCodeClassifyOidName(codeCls_template.getCodeClassifyOidName()); 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()); @@ -509,42 +536,30 @@ 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.setOwner(String.valueOf(AuthUtil.getUser().getUserId())); codeCls_template_insert.setCopyFromVersion(codeCls_template.getOid()); -// }catch (VCIError e){ -// e.printStackTrace(); -// logger.error("===============>鍒嗙被妯℃澘-鍗囩増澶嶅埗鍑洪敊oid锛� "+templateOldOid+",mes"+e.error_message); -// return BaseResult.error("鍗囩増鍑洪敊"); -// } int insertCount = baseMapper.insert(codeCls_template_insert); -// CodeClstemplateEntity codeClassifyTemplateDO = new CodeClstemplateEntity(); -// BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyDTO,codeClassifyTemplateDO); -// WebUtil.copyValueToObjectFromCbos(clientBusinessObject_template_insert,codeClassifyTemplateDO); - //modify by weidy@2022-2-27 - //鍗囩増鍚庝笉鑳戒娇鐢╥nsert鏂规硶锛屽洜涓洪偅涓案杩滄槸鏂板涓�鏉℃暟鎹紝 - //涓婃柟鍏堜粠dto杞粰do锛岀劧鍚庢妸鍗囩増鐨勫垵濮嬪寲鐨勫睘鎬ф嫹璐濈粰do锛屾渶鍚庡啀浠巇o鎷疯礉鍒癱bo涓� -// WebUtil.copyValueToCboFromObj(clientBusinessObject_template_insert,codeClassifyTemplateDO); + 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(); //闇�瑕佸鍒剁殑妯℃澘灞炴�� //鏌ヨ鑰佹ā鏉夸笅杈圭殑鎵�鏈夊睘鎬э紝璧嬪�兼柊妯℃澘oid -// VciQueryWrapperForDO codeClassifyTemplateAttrQuery = new VciQueryWrapperForDO(CodeClassifyTemplateAttrDO.class); -// codeClassifyTemplateAttrQuery.addQueryMap("classifyTemplateOid",templateOldOid); Map<String,Object> condition = new HashMap<>(1); condition.put("classifyTemplateOid",templateOldOid); - List<CodeClstempattrEntity> codeClstempattrEntities = codeClstempattrMapper.selectByMap(condition); -// List<CodeClassifyTemplateAttrDO> codeClassifyTemplateAttrDOList = codeClassifyTemplateAttrDaoI.selectByWrapper(codeClassifyTemplateAttrQuery); - for (CodeClstempattrEntity codeClassifyTemplateAttrDO :codeClstempattrEntities){ -// String attrOid = VciBaseUtil.getPk(); - codeClassifyTemplateAttrDO.setOid(null); - codeClassifyTemplateAttrDO.setClassifytemplateoid(templateNewOid); + List<CodeClassifyTemplateAttr> codeClstempattrEntities = codeClstempattrMapper.selectByMap(condition); + for (CodeClassifyTemplateAttr codeClassifyTemplateAttrDO :codeClstempattrEntities){ + codeClassifyTemplateAttrDO.setOid(VciBaseUtil.getPk()); + codeClassifyTemplateAttrDO.setClassifyTemplateOid(templateNewOid); codeClstempattrMapper.insert(codeClassifyTemplateAttrDO); } //澶嶅埗妯℃澘娴佺▼ - List<CodeClsflowtempEntity> codeClassifyProcessTempDOList = copyTemplateProcess(templateOldOid,templateNewOid); + List<ProcessTemplate> codeClassifyProcessTempDOList = copyTemplateProcess(templateOldOid,templateNewOid); //澶嶅埗妯℃澘闃舵锛岄樁娈靛睘鎬� Map phase_attrMap = copyTemplatePhase_attr(templateOldOid,templateNewOid); @@ -554,69 +569,45 @@ //澶嶅埗妯℃澘鎸夐挳 List<CodeClassifyTemplateButton> codeClassifyTemplateButtonDOList = copyTemplateButton(templateOldOid,templateNewOid); - //涓�璧蜂繚瀛樻暟鎹� -// WebUtil.setPersistence(false);//涓嶆墽琛屼繚瀛� - //淇濆瓨妯℃澘 -// BatchCBO batchCBOTemplate = new BatchCBO(); - //batchCBO淇濆瓨鐨勬椂鍊欐病鏈夎兘澶熻嚜鍔╱pdate婧愭暟鎹殑isLastR - //batchCBOTemplate.getCreateCbos().add(clientBusinessObject_template_insert); - //浣跨敤saveRevisionBuisnessObject鍙互瑙e喅杩欎釜闂锛岃繖閲屽厛鏆傛椂鎵ц涓ゆ淇濆瓨 -// try { -// clientBusinessObjectOperation.saveRevisionBuinessObject(clientBusinessObject_template_insert); -// } catch (VCIError vciError) { -// throw new VciBaseException("鍗囩増淇濆瓨鍑洪敊浜�",new String[0],vciError); -// } - // end --modify by lihang @20220408 - //codeClassifyTemplateMapper.insert(codeClassifyTemplateDO); - //淇濆瓨妯℃澘灞炴�� -// if(!CollectionUtils.isEmpty(codeClassifyTemplateAttrDOList)){ -// BatchCBO batchCBOTemplateAttr = codeClassifyTemplateAttrDaoI.batchInsert(codeClassifyTemplateAttrDOList); -// batchCBOTemplate.copyFromOther(batchCBOTemplateAttr); -// } -// -// //淇濆瓨妯℃澘娴佺▼ -// if(!CollectionUtils.isEmpty(codeClassifyProcessTempDOList)) { -// BatchCBO batchCBOTemplateProcessAttr = codeClassifyProcessTempDaoI.batchInsert(codeClassifyProcessTempDOList); -// batchCBOTemplate.copyFromOther(batchCBOTemplateProcessAttr); -// } -// //妯℃澘闃舵 -// if(!CollectionUtils.isEmpty(codeClassifyPhaseDOList)) { -// BatchCBO batchCBOTemplatePhaseAttr = codeTemplatePhaseDaoI.batchInsert(codeClassifyPhaseDOList); -// batchCBOTemplate.copyFromOther(batchCBOTemplatePhaseAttr); -// } -// -// //妯℃澘闃舵灞炴�� -// if(!CollectionUtils.isEmpty(codePhaseAttrDOList)) { -// BatchCBO batchCBOTemplatePhaseAttrAttr = codePhaseAttrDaoI.batchInsert(codePhaseAttrDOList); -// batchCBOTemplate.copyFromOther(batchCBOTemplatePhaseAttrAttr); -// } -// -// //妯℃澘鎸夐挳 -// if(!CollectionUtils.isEmpty(codeClassifyTemplateButtonDOList)) { -// BatchCBO batchCBOTemplateButtonAttr = codeClassifyTemplateButtonDaoI.batchInsert(codeClassifyTemplateButtonDOList); -// batchCBOTemplate.copyFromOther(batchCBOTemplateButtonAttr); -// } -// -// WebUtil.setPersistence(true);//鎵ц淇濆瓨 -// -// boService.persistenceBatch(batchCBOTemplate);//涓�璧锋墽琛屼繚瀛� + //淇濆瓨妯℃澘娴佺▼ + if(!CollectionUtils.isEmpty(codeClassifyProcessTempDOList)) { + iFlowClient.processBatchSave(codeClassifyProcessTempDOList); + } + //妯℃澘闃舵 + if(!CollectionUtils.isEmpty(codeClassifyPhaseDOList)) { + codeTempphaseServiceImpl.saveBatch(codeClassifyPhaseDOList); + } -// return BaseResult.success("鍗囩増鎴愬姛锛�"); + //妯℃澘闃舵灞炴�� + if(!CollectionUtils.isEmpty(codePhaseAttrDOList)) { + codePhaseattrServiceImpl.saveBatch(codePhaseAttrDOList); + } +// //妯℃澘鎸夐挳 + if(!CollectionUtils.isEmpty(codeClassifyTemplateButtonDOList)) { + codeTempbuttonServiceImpl.saveBatch(codeClassifyTemplateButtonDOList); + } return R.success("鍗囩増鎴愬姛锛�"); } @Override @Transactional - public R copyTemplate(CodeClstemplateDTO codeClassifyDTO) { + public R copyTemplate(CodeClassifyTemplateDTO codeClassifyDTO) { //鏃х殑妯℃澘oid String oldOid = codeClassifyDTO.getOid(); //鏂扮殑妯℃澘oid String newOid = VciBaseUtil.getPk(); //鍒嗙被oid,澶嶅埗杩囨潵鐨勬柊鐨勫垎绫籵id - String codeClassifyOid = codeClassifyDTO.getCodeClassifyOid(); + String codeClassifyOid = codeClassifyDTO.getCodeclassifyoid(); + + QueryWrapper<CodeClassifyTemplate> wrapper = new QueryWrapper<>(); + wrapper.eq("CODECLASSIFYOID",codeClassifyOid); + Long aLong = baseMapper.selectCount(wrapper); + if(aLong > 0){ + return R.fail("璇ュ垎绫讳笅宸叉湁瀛愭ā鐗堬紝鏃犳硶杩涜澶嶅埗鎿嶄綔锛屼粎鑳借繘琛屽崌鐗堟搷浣滐紒"); + } //澶嶅埗妯℃澘 - CodeClstemplateEntity codeClassifyTemplateDO_old = baseMapper.selectById(oldOid);//鏃фā鏉� + CodeClassifyTemplate codeClassifyTemplateDO_old = baseMapper.selectById(oldOid);//鏃фā鏉� //楠岃瘉锛屼笟鍔$被鍨嬫槸涓嶆槸涓�鑷� CodeClassify codeClassifyDO_old = codeClassifyService.selectBtmOrParentBtm(codeClassifyTemplateDO_old.getCodeClassifyOid()); @@ -639,17 +630,22 @@ codeClassifyTemplateDO_old.setDescription(codeClassifyDTO.getDescription());//鎻忚堪 codeClassifyTemplateDO_old.setCodeClassifyOid(codeClassifyOid);//鍒嗙被oid codeClassifyTemplateDO_old.setOid(newOid); - List<CodeClstemplateEntity> codeClassifyTemplateDOList = new ArrayList<CodeClstemplateEntity>(); + 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); //澶嶅埗妯℃澘灞炴�� - List<CodeClstempattrEntity> codeClassifyTemplateAttrDOList = copyTemplateAttr(oldOid,newOid); + List<CodeClassifyTemplateAttr> codeClassifyTemplateAttrDOList = copyTemplateAttr(oldOid,newOid); //澶嶅埗妯℃澘娴佺▼ - List<CodeClsflowtempEntity> 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");//闃舵灞炴�� @@ -660,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); @@ -723,19 +719,17 @@ /** * 澶嶅埗妯℃澘娴佺▼ */ - public List<CodeClsflowtempEntity> 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); - List<CodeClsflowtempEntity> codeClsflowtempEntities = codeClsflowtempMapper.selectByMap(condition); -// List<CodeClassifyProcessTempDO> codeClassifyProcessTempDOList = codeClassifyProcessTempDaoI.selectByWrapper(processWrapper);//瑕佷繚瀛樼殑鏂扮殑妯℃澘娴佺▼ - for (CodeClsflowtempEntity 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; @@ -803,7 +797,7 @@ for (CodeClassifyTemplateButton codeClassifyTemplateButtonDO:codeTempbuttonEntities){ // String newOid = VciBaseUtil.getPk(); codeClassifyTemplateButtonDO.setOid(null); - codeClassifyTemplateButtonDO.setClassifytemplateoid(templateNewOid); + codeClassifyTemplateButtonDO.setClassifyTemplateOid(templateNewOid); } return codeTempbuttonEntities; } @@ -812,21 +806,23 @@ /** * 澶嶅埗妯℃澘灞炴�� */ - public List<CodeClstempattrEntity> copyTemplateAttr(String templateOldOid,String templateNewOid){ + public List<CodeClassifyTemplateAttr> copyTemplateAttr(String templateOldOid,String templateNewOid){ // 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<CodeClassifyTemplateAttr> wrapper=new QueryWrapper<>(); + wrapper.eq("classifyTemplateOid",templateOldOid); -// List<CodeClstempattrEntity> codeClassifyTemplateAttrDOList = codeClassifyTemplateAttrDaoI.selectByWrapper(codeClassifyTemplateAttrQuery); - List<CodeClstempattrEntity> codeClstempattrEntities = codeClstempattrMapper.selectByMap(condition); +// List<CodeClassifyTemplateAttr> codeClassifyTemplateAttrDOList = codeClassifyTemplateAttrDaoI.selectByWrapper(codeClassifyTemplateAttrQuery); + List<CodeClassifyTemplateAttr> codeClstempattrEntities = codeClstempattrMapper.selectList(wrapper); - for (CodeClstempattrEntity codeClassifyTemplateAttrDO :codeClstempattrEntities){ + for (CodeClassifyTemplateAttr codeClassifyTemplateAttrDO :codeClstempattrEntities){ // String attrOid = VciBaseUtil.getPk(); codeClassifyTemplateAttrDO.setOid(null); - codeClassifyTemplateAttrDO.setClassifytemplateoid(templateNewOid); + codeClassifyTemplateAttrDO.setClassifyTemplateOid(templateNewOid); // codeClstempattrMapper.insert(codeClassifyTemplateAttrDO); } return codeClstempattrEntities; @@ -836,14 +832,14 @@ /** * 鍒嗙被妯℃澘鍒楄〃 * - * @param plCodeClstemplate 鏌ヨ鏉′欢 - * @param query 鍒嗛〉瀵硅薄 + * @param conditionMap 鏌ヨ鏉′欢 + * @param pageHelper 鍒嗛〉瀵硅薄 * @return 鏄剧ず瀵硅薄 * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 */ @Override - public DataGrid<CodeClstemplateVO> gridCodeClassifyTemplate(CodeClstemplateVO plCodeClstemplate, Query query) throws VciBaseException { - DataGrid<CodeClstemplateVO> dataGrid=new DataGrid<CodeClstemplateVO>(); + public DataGrid<CodeClassifyTemplateVO> gridCodeClassifyTemplate(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException { + DataGrid<CodeClassifyTemplateVO> dataGrid=new DataGrid<CodeClassifyTemplateVO>(); //娌℃湁浼犲垎绫籭d锛屼笉鎵ц鏌ヨ閫昏緫锛岀洿鎺ヨ繑鍥� // if(conditionMap.size()==0){ // dataGrid.setData(new ArrayList<>()); @@ -855,16 +851,41 @@ // } // pageHelper.addDefaultDesc("revisionSeq"); +// CodeClassifyTemplateVO codeClstemplateVO = new CodeClassifyTemplateVO(); - List<CodeClstemplateVO> doList = codeClstemplateMapper.selectPlCodeClstemplatePage(Condition.getPage(query), plCodeClstemplate); - if (!CollectionUtils.isEmpty(doList)) { + CodeClassifyTemplate codeClstemplateQuery = new CodeClassifyTemplate(); +// BeanUtil.toBean(map,codeClstempattrVO); +// BeanUtil + CodeClassifyTemplateDTO codeClassifyTemplateDTO = new CodeClassifyTemplateDTO(); + BeanMap beanMap = BeanMap.create(codeClassifyTemplateDTO); + beanMap.putAll(conditionMap); +// BeanUtils.copyProperties(codeClstemplateVO,codeClstemplateQuery); + BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateDTO,codeClstemplateQuery); + if (pageHelper == null) { + pageHelper = new PageHelper(-1); + } +// IPage iPage = new IPage(); + Query query = new Query(); +// query.setSize(100); + if(pageHelper.getLimit() != -1){ + query.setSize(pageHelper.getLimit()); + query.setCurrent(pageHelper.getPage()); + query.setDescs("versionValue"); + } + +// List<CodeClstemplateVO> doList = codeClstemplateMapper.selectPlCodeClstemplatePage(Condition.getPage(query), codeClstemplateVO); + + IPage<CodeClassifyTemplate> doList = baseMapper. + selectPage(Condition.getPage(query), Condition.getQueryWrapper(codeClstemplateQuery)); + if (!CollectionUtils.isEmpty(doList.getRecords())) { // QueryWrapper<CodeClstemplateVO> codeClstemplateVOQueryWrapper = new QueryWrapper<>(); // codeClstemplateVOQueryWrapper.allEq(plCodeClstemplate); - List<CodeClstemplateEntity> codeClstemplateEntity = new ArrayList<>(); - BeanUtils.copyProperties(doList,codeClstemplateEntity); - dataGrid.setData(codeClassifyTemplateDO2VOs(codeClstemplateEntity)); - dataGrid.setTotal(VciBaseUtil.getInt(String.valueOf(codeClstemplateMapper.selectCount(Condition.getQueryWrapper(plCodeClstemplate))))); +// List<CodeClstemplateEntity> codeClstemplateEntity = new ArrayList<>(); +// BeanUtils.copyProperties(doList,codeClstemplateEntity); + + dataGrid.setData(codeClassifyTemplateDO2VOs(doList.getRecords())); + dataGrid.setTotal(VciBaseUtil.getInt(String.valueOf(codeClassifyTemplateMapper.selectCount(Condition.getQueryWrapper(codeClstemplateQuery))))); } return dataGrid; } @@ -877,43 +898,36 @@ * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父 */ @Override - public R<CodeClstemplateVO> addSave(CodeClstemplateDTO codeClassifyTemplateDTO) throws VciBaseException{ + public R<CodeClassifyTemplateVO> addSave(CodeClassifyTemplateDTO codeClassifyTemplateDTO) throws VciBaseException{ VciBaseUtil.alertNotNull(codeClassifyTemplateDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄"); + + QueryWrapper<CodeClassifyTemplate> wrapper = new QueryWrapper<>(); + wrapper.eq("CODECLASSIFYOID",codeClassifyTemplateDTO.getCodeclassifyoid()); + Long aLong = baseMapper.selectCount(wrapper); + if(aLong > 0){ + return R.fail("璇ュ垎绫讳笅宸叉湁瀛愭ā鐗堬紝鏃犳硶鏂板锛屼粎鑳借繘琛屽崌鐗堟搷浣滐紒"); + } //灏咲TO杞崲涓篋O - CodeClstemplateEntity codeClassifyTemplateDO = new CodeClstemplateEntity(); + CodeClassifyTemplate codeClassifyTemplateDO = new CodeClassifyTemplate(); BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateDTO,codeClassifyTemplateDO); //鏌ヨ鍒嗙被浠ュ強涓婄骇鍒嗙被鐨勪笟鍔$被鍨媌tmtypeid銆乥tmtypename - List<CodeClassify> codeClassifyDOList = codeClassifyService.selectAllLevelParents(codeClassifyTemplateDTO.getCodeClassifyOid()); + List<CodeClassify> codeClassifyDOList = codeClassifyService.selectAllLevelParents(codeClassifyTemplateDTO.getCodeclassifyoid()); //鎵�鏈夊垎绫婚兘娌℃湁涓氬姟绫诲瀷锛岃繑鍥炴彁绀� 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.setBtmTypeName(codeClassifyDO.getBtmTypeName()); codeClassifyTemplateDO.setLcStatus(FRAMEWORK_RELEASE_EDITING); - codeClassifyTemplateDO.setTs(new Date()); - codeClassifyTemplateDO.setOwner(AuthUtil.getUser().getUserName()); + 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(AuthUtil.getUser().getUserName()); - codeClassifyTemplateDO.setCreator(AuthUtil.getUser().getUserName()); - codeClassifyTemplateDO.setCreateTime(new Date()); - codeClassifyTemplateDO.setLastV("1"); - codeClassifyTemplateDO.setLastR("1"); - codeClassifyTemplateDO.setFirstV("1"); - codeClassifyTemplateDO.setFirstR("1"); - codeClassifyTemplateDO.setBtmname("codeclstemplate"); baseMapper.insert(codeClassifyTemplateDO); //榛樿娣诲姞妯℃澘灞炴�� @@ -988,12 +1002,12 @@ * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父 */ @Override - public R editSave(CodeClstemplateDTO codeClassifyTemplateDTO) throws VciBaseException{ + public R editSave(CodeClassifyTemplateDTO codeClassifyTemplateDTO) throws VciBaseException{ VciBaseUtil.alertNotNull(codeClassifyTemplateDTO,"鏁版嵁瀵硅薄",codeClassifyTemplateDTO.getOid(),"鍒嗙被妯℃澘瀵硅薄涓婚敭"); //妫�鏌s - CodeClstemplateEntity codeClassifyTemplateDOCopyFromDTO = new CodeClstemplateEntity(); + CodeClassifyTemplate codeClassifyTemplateDOCopyFromDTO = new CodeClassifyTemplate(); BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateDTO,codeClassifyTemplateDOCopyFromDTO); - CodeClstemplateEntity codeClassifyTemplateDO = null; + CodeClassifyTemplate codeClassifyTemplateDO = null; if(codeClassifyTemplateDOCopyFromDTO.getOid() == null){ baseMapper.insert(codeClassifyTemplateDOCopyFromDTO); return R.data(codeClassifyTemplateDOCopyFromDTO); @@ -1001,7 +1015,7 @@ // Map<String,Object> condition = new HashMap<>(2); // condition.put("oid",codeClassifyTemplateDOCopyFromDTO.getOid()); // condition.put("ts",codeClassifyTemplateDOCopyFromDTO.getTs()); - CodeClstemplateEntity detail = baseMapper + CodeClassifyTemplate detail = baseMapper .selectById(codeClassifyTemplateDOCopyFromDTO.getOid()); // boolean tsBoolean = boService.checkTs(codeClassifyTemplateAttrDOListemplateDOCopyFromDTO); if(detail.getTs().compareTo(codeClassifyTemplateDOCopyFromDTO.getTs()) != 0){//涓嶆槸鏈�鏂扮殑涓嶈鏀� @@ -1022,11 +1036,133 @@ 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); } return R.data(codeClassifyTemplateDO2VO(codeClassifyTemplateDO)); } + /** + *鏍规嵁鐖跺垎绫籭d鍘绘煡鎵惧彾瀛愯妭鐐圭殑妯℃澘锛屽鏋滄病鏌ュ埌鍒欒涓烘ā鏉垮湪涓婂眰寤虹珛锛屽垯鏍规嵁鍒嗙被鍘绘煡褰撳墠妯℃澘 + * @param codeClassifyOid 鐖跺垎绫荤殑涓婚敭 + * @return + */ + @Override + public List<CodeClassifyTemplateVO> childTemplates(String codeClassifyOid){ + List<CodeClassifyTemplateVO> 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->{ + // 鏈夋椂鍊欐煡璇㈠嚭鏉ョ殑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); + }); + } + + Set<String> templateOid = childHasTemplateMap.keySet(); + List<CodeClassifyTemplate> classifyTemplateDOS=new ArrayList<>(); + if(!CollectionUtils.isEmpty(templateOid)) { + classifyTemplateDOS= this.listCodeClassifyTemplateDOByOidCollections(templateOid); + }else{ + classifyTemplateDOS=selectOnlyTemplateByClassifyOid(codeClassifyOid); + } + List<CodeClassifyTemplateVO> templateVOList = codeClassifyTemplateDO2VOs(classifyTemplateDOS, true); + if(!CollectionUtils.isEmpty(templateVOList)){ + codeClassifyTemplateVOList.addAll(templateVOList); + } + return codeClassifyTemplateVOList; + } + + /** + * 浣跨敤鍒嗙被涓婚敭閫掑綊鏌ヨ + * @param codeClassifyOid 鍒嗙被鐨勪富閿� + * @return 妯℃澘鐨勬暟鎹璞� + */ + private List<CodeClassifyTemplate> selectOnlyTemplateByClassifyOid(String codeClassifyOid){ + //1.鐩存帴鏌ヨ锛岀湅鐪嬭繖涓垎绫讳笅闈㈡湁娌℃湁鍙戝竷鐘舵�佺殑妯℃澘 + //2.濡傛灉娌℃湁锛屽垯寰�涓婃壘鍒嗙被鐨勫唴瀹癸紝杩欎釜鍒嗙被灞傜骇涓嶄細澶锛屾墍浠ョ洿鎺ラ�掑綊鍗冲彲 + //3.濡傛灉鍒嗙被涓嬮潰娣诲姞浜嗘ā鏉匡紝浣嗘槸娌℃湁鍙戝竷锛屽垯璇存槑妯℃澘鍙兘杩樺湪缂栬緫鐨勭姸鎬侊紝渚濈劧浣跨敤涓婄骇鍒嗙被 + +// Map<String,String> conditionMap = new HashMap<>(); +// conditionMap.put("codeClassifyOid",codeClassifyOid); +// conditionMap.put("lcstatus",CodeClassifyTemplateLC.RELEASED.getValue()); + QueryWrapper<CodeClassifyTemplate> wrapper=new QueryWrapper<>(); + wrapper.eq("codeClassifyOid",codeClassifyOid) + .eq("lcstatus",CodeClassifyTemplateLC.RELEASED.getValue()); + + List<CodeClassifyTemplate> templateDOS = baseMapper.selectList(wrapper); + if(CollectionUtils.isEmpty(templateDOS)){ + //閫掑綊鎵句笂绾х殑妯℃澘 + CodeClassify classifyDO = codeClassifyMapper.selectById(codeClassifyOid); +// codeClassifyDaoI.selectByPrimaryKey(codeClassifyOid); + if(Func.isEmpty(classifyDO)){ + //璇存槑宸茬粡鏄《浜嗭紝涔熸病鎵惧埌鐨勮瘽锛岄偅灏辫繑鍥炰簡 + return new ArrayList<>(); + } + if(StringUtils.isNotBlank(classifyDO.getParentCodeClassifyOid())) { + return selectOnlyTemplateByClassifyOid(classifyDO.getParentCodeClassifyOid()); + }else{ + return new ArrayList<>(); + } + }else{ + return templateDOS; + } + } + + /** + * 浣跨敤涓婚搴撶殑鍒嗙被涓婚敭锛岃幏鍙栫敓鏁堢殑妯℃澘 + * + * @param codeClassifyOid 涓婚搴撳垎绫讳富閿� + * @param hasAttribute 鏄惁鍖呭惈灞炴�� + * @return 妯℃澘鐨勪俊鎭� + */ + @Override + public List<CodeClassifyTemplateVO> listReleaseTemplateByClassifyOid(String codeClassifyOid, boolean hasAttribute) { + VciBaseUtil.alertNotNull(codeClassifyOid,"涓婚搴撳垎绫讳富閿�"); + List<CodeClassifyTemplate> templateDOS = selectOnlyTemplateByClassifyOid(codeClassifyOid); + if(CollectionUtils.isEmpty(templateDOS)){ + throw new VciBaseException("褰撳墠鍒嗙被锛屼互鍙婂叾涓婄骇鍒嗙被閮芥病鏈夎缃ā鏉�"); + } + List<CodeClassifyTemplateVO> templateVOList = codeClassifyTemplateDO2VOs(templateDOS, true); + return sortTemplateByRevision(templateVOList); + } + + /** + * 鐢ㄦā鏉跨殑鐗堟湰鏉ユ帓搴� + * @param templateVOList 妯℃澘鐨勬樉绀哄璞� + * @return 鎺掑簭鍚庣殑鍒楄〃 + */ + @Override + public List<CodeClassifyTemplateVO> sortTemplateByRevision(List<CodeClassifyTemplateVO> 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 CodeClassifyTemplateVO getObjectHasAttrByOid(String oid) throws VciBaseException { + List<CodeClassifyTemplate> doList = new ArrayList<>(); + doList.add(selectByOid(oid)); + List<CodeClassifyTemplateVO> templateVOS = codeClassifyTemplateDO2VOs(doList, true); + return CollectionUtils.isEmpty(templateVOS)?null:templateVOS.get(0); + } } -- Gitblit v1.9.3