From f02c15e434ffbc248b55d9d14e104c7d8556062b Mon Sep 17 00:00:00 2001 From: yuxc <653031404@qq.com> Date: 星期五, 28 四月 2023 11:42:42 +0800 Subject: [PATCH] 1、主要完成主题库定义的模板分类的接口移植。 2、主要对界面字数多了换行问题进行了修改。 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java | 618 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 535 insertions(+), 83 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 c2f8b5e..1271459 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 @@ -20,36 +20,37 @@ 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.entity.CodeClstempattrEntity; -import com.vci.ubcs.code.entity.CodeClstemplateEntity; +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.CodeClstempattrMapper; -import com.vci.ubcs.code.mapper.CodeClstemplateMapper; +import com.vci.ubcs.code.mapper.*; +import com.vci.ubcs.code.service.ICodeClassifyService; 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.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.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.VciBaseUtil; 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.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.*; import java.util.stream.Collectors; -import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_RELEASED; -import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.LC_STATUS; +import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.*; import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.*; import static com.vci.ubcs.code.service.impl.CodeClassifyServiceImpl.PARENT_FIELD_NAME; @@ -83,6 +84,23 @@ private CodeTempbuttonServiceImpl codeTempbuttonServiceImpl; @Autowired(required = false) private CodeClsflowtempServiceImpl codeClsflowtempServiceImpl; + @Autowired(required = false) + private CodeClsflowtempMapper codeClsflowtempMapper; + @Autowired(required = false) + private CodeTempphaseMapper codeTempphaseMapper; + @Autowired(required = false) + private CodeTempbuttonMapper codeTempbuttonMapper; + @Autowired(required = false) + private CodePhaseattrMapper codePhaseattrMapper; + @Autowired(required = false) + private ICodeClassifyService codeClassifyService; + @Autowired(required = false) + private CodeClstemplateMapper codeClstemplateMapper; + @Autowired(required = false) + private CodePhaseattrServiceImpl codePhaseattrServiceImpl; + + + @Override public IPage<CodeClstemplateVO> selectPlCodeClstemplatePage(IPage<CodeClstemplateVO> page, CodeClstemplateVO plCodeClstemplate) { return page.setRecords(baseMapper.selectPlCodeClstemplatePage(page, plCodeClstemplate)); @@ -119,8 +137,12 @@ // VciParentQueryOption parentQueryOption = new VciParentQueryOption(); // parentQueryOption.setParentFieldName(PARENT_FIELD_NAME); // queryWrapperForDO.parentQueryChild(treeQueryObject,parentQueryOption); - CodeClstemplateEntity codeClstemplateEntity = new CodeClstemplateEntity(); - return baseMapper.selectList(Condition.getQueryWrapper(codeClstemplateEntity)); +// CodeClstemplateEntity codeClstemplateEntity = new CodeClstemplateEntity(); +// codeClstemplateEntity.set + return baseMapper.selectCodeClassifyTemplateDOByTree( + treeQueryObject.getConditionMap().get("codeclassifyoid"), + treeQueryObject.getConditionMap().get("lcStatus")); +// return baseMapper.selectList(Condition.getQueryWrapper(codeClstemplateEntity)); // return codeClassifyTemplateMapper.selectByWrapper(queryWrapperForDO); } @@ -210,19 +232,20 @@ BeanUtilForVCI.copyPropertiesIgnoreCase(codeClstemplateDTO,codeClassifyTemplateDOCopyFromDTO); //妫�鏌s - Map<String,Object> condition = new HashMap<>(2); - condition.put("oid",codeClstemplateDTO.getOid()); - condition.put("ts",codeClstemplateDTO.getTs()); +// Map<String,Object> condition = new HashMap<>(2); +// condition.put("oid",codeClstemplateDTO.getOid()); +// condition.put("ts",codeClstemplateDTO.getTs()); CodeClstemplateEntity detail = baseMapper - .selectOne(Condition.getQueryWrapper(condition,CodeClstemplateEntity.class)); - if(detail == null){//涓嶆槸鏈�鏂扮殑涓嶈鏀� + .selectById(codeClstemplateDTO.getOid()); + + if(!detail.getTs().toString().equals(codeClstemplateDTO.getTs().toString())){//涓嶆槸鏈�鏂扮殑涓嶈鏀� return R.fail("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒"); } //鏍¢獙涓嬬骇鏄惁鏈夊紩鐢� if(checkChildIsLinked(codeClstemplateEntity.getOid())){ return R.fail(DATA_CASCADE_LINKED_NOT_DELETE); } - return R.status(checkHasChild(codeClstemplateEntity.getOid())); + return R.success(String.valueOf(checkHasChild(codeClstemplateEntity.getOid()))); } /** @@ -273,6 +296,7 @@ * @param codeClstemplateDTO 鍒嗙被妯℃澘瀵硅薄鏁版嵁浼犺緭瀵硅薄锛宱id鍜宼s闇�瑕佷紶杈� * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐� */ + @Transactional @Override public R deleteCodeClassifyTemplate(CodeClstemplateDTO codeClstemplateDTO) { checkIsCanDelete(codeClstemplateDTO); @@ -362,8 +386,8 @@ * 鍙傜収鏍� 鍒嗙被妯℃澘瀵硅薄 * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄 * @return 鍒嗙被妯℃澘瀵硅薄鏄剧ず鏍� - * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父 */ + @Transactional @Override public List<Tree> referTree(TreeQueryObject treeQueryObject) { if(treeQueryObject == null){ @@ -418,6 +442,7 @@ * @param lcStatus * @return */ + @Transactional @Override public R updateLcStatus( String oid, String lcStatus){ CodeClstemplateEntity codeClassifyTemplateDO = baseMapper.selectById(oid); @@ -440,6 +465,7 @@ * 鍗囩増 * @param codeClassifyDTO */ + @Transactional @Override public R Upgrade(CodeClstemplateDTO codeClassifyDTO) { @@ -454,93 +480,95 @@ //闇�瑕佹柊澧炵殑鍗囩骇妯℃澘 // ClientBusinessObject clientBusinessObject_template = boService.selectCBOByOid(codeClassifyDTO.getOid(), "codeclstemplate"); CodeClstemplateEntity codeCls_template = baseMapper.selectById(templateOldOid); - CodeClstemplateEntity codeCls_template_insert = null; + CodeClstemplateEntity codeCls_template_insert = new CodeClstemplateEntity(); // ClientBusinessObject clientBusinessObject_template_insert = null; // try { -//// clientBusinessObject_template_insert = clientBusinessObjectOperation.reviseBusinessObject(clientBusinessObject_template, ""); -//// codeCls_template_insert.setOid((new ObjectUtility()).getNewObjectID36()); -//// toBo.setRevisionid((new ObjectUtility()).getNewObjectID36()); -// codeCls_template_insert.setNameOid(codeCls_template.getNameOid()); -// codeCls_template_insert.setBtmname(codeCls_template.getBtmname()); -//// codeCls_template_insert.setIsLast(1); -//// codeCls_template_insert.setIsFirstr(0); -//// codeCls_template_insert.setIsFirstv(1); -//// codeCls_template_insert.setIsLastV(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()); -// RevisionValueObject rvObj = this.getNextRevision(fromBo.getBtmName(), fromBo.getNameoid(), item.revRuleName, item.revInput, revisionVal); -// codeCls_template_insert.setRevisionSeq(rvObj.getRevisionSeq()); -// codeCls_template_insert.setRevisionValue(rvObj.getRevisionVal()); +// 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()); // VersionValueObject versionObj = this.getVersionValue(item.verRuleName); -// codeCls_template_insert.setVersionSeq(versionObj.getVersionSeq()); -// codeCls_template_insert.setVersionValue(versionObj.getVersionVal()); -// codeCls_template_insert.setLctId(codeCls_template.getLctId()); -// codeCls_template_insert.setLcStatus(this.getLcFirstStatus(item.lifeCycle)); -// 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.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()); // }catch (VCIError e){ // e.printStackTrace(); // logger.error("===============>鍒嗙被妯℃澘-鍗囩増澶嶅埗鍑洪敊oid锛� "+templateOldOid+",mes"+e.error_message); // return BaseResult.error("鍗囩増鍑洪敊"); // } -// -// -// CodeClassifyTemplateDO codeClassifyTemplateDO = new CodeClassifyTemplateDO(); + 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涓� + //modify by weidy@2022-2-27 + //鍗囩増鍚庝笉鑳戒娇鐢╥nsert鏂规硶锛屽洜涓洪偅涓案杩滄槸鏂板涓�鏉℃暟鎹紝 + //涓婃柟鍏堜粠dto杞粰do锛岀劧鍚庢妸鍗囩増鐨勫垵濮嬪寲鐨勫睘鎬ф嫹璐濈粰do锛屾渶鍚庡啀浠巇o鎷疯礉鍒癱bo涓� // WebUtil.copyValueToCboFromObj(clientBusinessObject_template_insert,codeClassifyTemplateDO); -// //鍗囩増杩囧悗鐨勬ā鏉縪id -// String templateNewOid = codeClassifyTemplateDO.getOid(); -// -// //闇�瑕佸鍒剁殑妯℃澘灞炴�� -// //鏌ヨ鑰佹ā鏉夸笅杈圭殑鎵�鏈夊睘鎬э紝璧嬪�兼柊妯℃澘oid + //鍗囩増杩囧悗鐨勬ā鏉縪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 (CodeClassifyTemplateAttrDO codeClassifyTemplateAttrDO :codeClassifyTemplateAttrDOList){ + for (CodeClstempattrEntity codeClassifyTemplateAttrDO :codeClstempattrEntities){ // String attrOid = VciBaseUtil.getPk(); -// codeClassifyTemplateAttrDO.setOid(attrOid); -// codeClassifyTemplateAttrDO.setClassifyTemplateOid(templateNewOid); -// } -// -// //澶嶅埗妯℃澘娴佺▼ -// List<CodeClassifyProcessTempDO> codeClassifyProcessTempDOList = copyTemplateProcess(templateOldOid,templateNewOid); -// -// //澶嶅埗妯℃澘闃舵锛岄樁娈靛睘鎬� -// Map phase_attrMap = copyTemplatePhase_attr(templateOldOid,templateNewOid); -// -// List<CodeTemplatePhaseDO> codeClassifyPhaseDOList = (ArrayList<CodeTemplatePhaseDO>)phase_attrMap.get("phase");//妯℃澘闃舵 -// List<CodePhaseAttrDO> codePhaseAttrDOList = (ArrayList<CodePhaseAttrDO>)phase_attrMap.get("phaseAttr");//闃舵灞炴�� -// -// //澶嶅埗妯℃澘鎸夐挳 -// List<CodeClassifyTemplateButtonDO> codeClassifyTemplateButtonDOList = copyTemplateButton(templateOldOid,templateNewOid); -// -// //涓�璧蜂繚瀛樻暟鎹� + codeClassifyTemplateAttrDO.setOid(null); + codeClassifyTemplateAttrDO.setClassifytemplateoid(templateNewOid); + codeClstempattrMapper.insert(codeClassifyTemplateAttrDO); + } + + //澶嶅埗妯℃澘娴佺▼ + List<CodeClsflowtempEntity> codeClassifyProcessTempDOList = copyTemplateProcess(templateOldOid,templateNewOid); + //澶嶅埗妯℃澘闃舵锛岄樁娈靛睘鎬� + Map phase_attrMap = copyTemplatePhase_attr(templateOldOid,templateNewOid); + + List<CodeTempphaseEntity> codeClassifyPhaseDOList = (ArrayList<CodeTempphaseEntity>)phase_attrMap.get("phase");//妯℃澘闃舵 + List<CodePhaseattrEntity> codePhaseAttrDOList = (ArrayList<CodePhaseattrEntity>)phase_attrMap.get("phaseAttr");//闃舵灞炴�� + + //澶嶅埗妯℃澘鎸夐挳 + List<CodeTempbuttonEntity> codeClassifyTemplateButtonDOList = copyTemplateButton(templateOldOid,templateNewOid); + + //涓�璧蜂繚瀛樻暟鎹� // WebUtil.setPersistence(false);//涓嶆墽琛屼繚瀛� -// //淇濆瓨妯℃澘 + //淇濆瓨妯℃澘 // BatchCBO batchCBOTemplate = new BatchCBO(); -// //batchCBO淇濆瓨鐨勬椂鍊欐病鏈夎兘澶熻嚜鍔╱pdate婧愭暟鎹殑isLastR -// //batchCBOTemplate.getCreateCbos().add(clientBusinessObject_template_insert); -// //浣跨敤saveRevisionBuisnessObject鍙互瑙e喅杩欎釜闂锛岃繖閲屽厛鏆傛椂鎵ц涓ゆ淇濆瓨 + //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); -// //淇濆瓨妯℃澘灞炴�� + // end --modify by lihang @20220408 + //codeClassifyTemplateMapper.insert(codeClassifyTemplateDO); + //淇濆瓨妯℃澘灞炴�� // if(!CollectionUtils.isEmpty(codeClassifyTemplateAttrDOList)){ // BatchCBO batchCBOTemplateAttr = codeClassifyTemplateAttrDaoI.batchInsert(codeClassifyTemplateAttrDOList); // batchCBOTemplate.copyFromOther(batchCBOTemplateAttr); @@ -572,8 +600,432 @@ // WebUtil.setPersistence(true);//鎵ц淇濆瓨 // // boService.persistenceBatch(batchCBOTemplate);//涓�璧锋墽琛屼繚瀛� -// + // return BaseResult.success("鍗囩増鎴愬姛锛�"); return R.success("鍗囩増鎴愬姛锛�"); } + + @Override + @Transactional + public R copyTemplate(CodeClstemplateDTO codeClassifyDTO) { + //鏃х殑妯℃澘oid + String oldOid = codeClassifyDTO.getOid(); + //鏂扮殑妯℃澘oid + String newOid = VciBaseUtil.getPk(); + //鍒嗙被oid,澶嶅埗杩囨潵鐨勬柊鐨勫垎绫籵id + String codeClassifyOid = codeClassifyDTO.getCodeClassifyOid(); + + //澶嶅埗妯℃澘 + CodeClstemplateEntity codeClassifyTemplateDO_old = baseMapper.selectById(oldOid);//鏃фā鏉� + + //楠岃瘉锛屼笟鍔$被鍨嬫槸涓嶆槸涓�鑷� + CodeClassify codeClassifyDO_old = codeClassifyService.selectBtmOrParentBtm(codeClassifyTemplateDO_old.getCodeClassifyOid()); + if(codeClassifyDO_old==null){ + return R.fail("澶嶅埗鐨勬ā鏉挎墍灞炲垎绫讳互鍙婁笂绾ф病鏈変笟鍔$被鍨嬶紝璇烽噸鏂伴�夋嫨!"); + } + + //鎵惧綋鍓嶅垎绫讳笅鐨勪笟鍔$被鍨� + CodeClassify codeClassifyDO_new = codeClassifyService.selectBtmOrParentBtm(codeClassifyOid); + if(codeClassifyDO_new==null){ + return R.fail("褰撳墠鍒嗙被娌℃湁涓氬姟绫诲瀷锛岃閲嶆柊閫夋嫨!"); + } + + if(!codeClassifyDO_old.getBtmTypeId().equals(codeClassifyDO_new.getBtmTypeId())){ + return R.fail("閫夋嫨鐨勫垎绫诲拰褰撳墠鍒嗙被涓氬姟绫诲瀷涓嶄竴鑷达紝璇烽噸鏂伴�夋嫨!"); + } + + codeClassifyTemplateDO_old.setId(codeClassifyDTO.getId());//鑻辨枃鍚嶇О + codeClassifyTemplateDO_old.setName(codeClassifyDTO.getName());//涓枃鍚嶇О + codeClassifyTemplateDO_old.setDescription(codeClassifyDTO.getDescription());//鎻忚堪 + codeClassifyTemplateDO_old.setCodeClassifyOid(codeClassifyOid);//鍒嗙被oid + codeClassifyTemplateDO_old.setOid(newOid); + List<CodeClstemplateEntity> codeClassifyTemplateDOList = new ArrayList<CodeClstemplateEntity>(); + codeClassifyTemplateDOList.add(codeClassifyTemplateDO_old); + + //澶嶅埗妯℃澘灞炴�� + List<CodeClstempattrEntity> codeClassifyTemplateAttrDOList = copyTemplateAttr(oldOid,newOid); + + //澶嶅埗妯℃澘娴佺▼ + List<CodeClsflowtempEntity> codeClassifyProcessTempDOList = copyTemplateProcess(oldOid,newOid); + + //澶嶅埗妯℃澘闃舵锛岄樁娈靛睘鎬� + Map phase_attrMap = copyTemplatePhase_attr(oldOid,newOid); + + List<CodeTempphaseEntity> codeClassifyPhaseDOList = (ArrayList<CodeTempphaseEntity>)phase_attrMap.get("phase");//妯℃澘闃舵 + List<CodePhaseattrEntity> codePhaseAttrDOList = (ArrayList<CodePhaseattrEntity>)phase_attrMap.get("phaseAttr");//闃舵灞炴�� + + //澶嶅埗妯℃澘鎸夐挳 + List<CodeTempbuttonEntity> codeClassifyTemplateButtonDOList = copyTemplateButton(oldOid,newOid); + +// baseMapper.insert(codeClassifyTemplateDOList); + this.saveBatch(codeClassifyTemplateDOList); + codeTempbuttonServiceImpl.saveBatch(codeClassifyTemplateButtonDOList); + codeClsflowtempServiceImpl.saveBatch(codeClassifyProcessTempDOList); + codeClstempattrService.saveBatch(codeClassifyTemplateAttrDOList); + codeTempphaseServiceImpl.saveBatch(codeClassifyPhaseDOList); + codePhaseattrServiceImpl.saveBatch(codePhaseAttrDOList); + //涓�璧蜂繚瀛樻暟鎹� +// WebUtil.setPersistence(false);//涓嶆墽琛屼繚瀛� +// //淇濆瓨妯℃澘 +// BatchCBO batchCBOTemplate = codeClassifyTemplateMapper.batchInsert(codeClassifyTemplateDOList); +// //淇濆瓨妯℃澘灞炴�� +// 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);//涓�璧锋墽琛屼繚瀛� + return R.success("澶嶅埗鎴愬姛锛�"); + } + + + private HashMap<String,Object> getVersionValue(int verRuleName) { + HashMap<String,Object> obj = new HashMap<>(2); + obj.put("VersionSeq",1); + if (verRuleName == 0) { + obj.put("VersionVal","1"); + } else if (verRuleName == 1) { + obj.put("VersionVal","a"); + } else if (verRuleName == 2) { + obj.put("VersionVal","0"); + } + + return obj; + } + + /** + * 澶嶅埗妯℃澘娴佺▼ + */ + 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); + //modify by lihang - @20220406 璁剧疆妯℃澘涓婚敭浣嶇疆鍑洪敊锛屽鑷村崌鐗堢殑妯℃澘涓殑娴佺▼鏄┖鐨勩�� + } + return codeClsflowtempEntities; + } + + + /** + * 澶嶅埗妯℃澘闃舵锛屾ā鏉垮睘鎬� + * @param templateOldOid + * @param templateNewOid + * @return map phase:(List<CodeTemplatePhaseDO>) phaseAttr:(List<CodePhaseAttrDO>) + */ + public Map copyTemplatePhase_attr(String templateOldOid,String templateNewOid){ + //妯℃澘闃舵 +// VciQueryWrapperForDO phaseWrapper = new VciQueryWrapperForDO(CodeTemplatePhaseDO.class); +// phaseWrapper.addQueryMap("codeClassifyTemplateOid",templateOldOid); + Map<String,Object> condition = new HashMap<>(1); + condition.put("codeclassifyTemplateOid",templateOldOid); + 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 (CodeTempphaseEntity codeTemplatePhaseDO:codeTempphaseEntities){ + String oldoid = codeTemplatePhaseDO.getOid(); + String newOid = VciBaseUtil.getPk(); + codeTemplatePhaseDO.setOid(newOid); + codeTemplatePhaseDO.setCodeclassifytemplateoid(templateNewOid); + phaseKeyMap.put(oldoid,newOid); + phaseOidList.add(oldoid); + } + + //妯℃澘闃舵鐨勫睘鎬� + List<CodePhaseattrEntity> codePhaseAttrDOList = new ArrayList<CodePhaseattrEntity>(); + + if(!CollectionUtils.isEmpty(phaseOidList)){//size()==0涓嬭竟鏂规硶浼氭姤閿� +// Map<String,String> conditionMap = new HashMap<>(); +// conditionMap.put("codephaseoid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(phaseOidList.toArray(new String[0])) + ")"); +// codePhaseAttrDOList = codePhaseAttrDaoI.selectByCondition(conditionMap,new PageHelper(-1)); + codePhaseAttrDOList = codePhaseattrMapper.selectByPhaseaIds(VciBaseUtil.toInSql(phaseOidList.toArray(new String[0]))); + } + for (CodePhaseattrEntity codePhaseAttrDO:codePhaseAttrDOList){ + String oldPhaseoid = codePhaseAttrDO.getCodephaseoid(); +// String newOid = VciBaseUtil.getPk(); + codePhaseAttrDO.setOid(null); + codePhaseAttrDO.setCodephaseoid(phaseKeyMap.get(oldPhaseoid)); +// codePhaseattrMapper.insert(codePhaseAttrDO); + } + Map phaseMap = new HashMap(); + phaseMap.put("phase",codeTempphaseEntities); + phaseMap.put("phaseAttr",codePhaseAttrDOList); + return phaseMap; + } + + /** + * 澶嶅埗妯℃澘鎸夐挳 + */ + 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<CodeTempbuttonEntity> codeTempbuttonEntities = codeTempbuttonMapper.selectByMap(condition); +// List<CodeClassifyTemplateButtonDO> codeClassifyTemplateButtonDOList = codeClassifyTemplateButtonDaoI.selectByWrapper(buttonWrapper); + for (CodeTempbuttonEntity codeClassifyTemplateButtonDO:codeTempbuttonEntities){ +// String newOid = VciBaseUtil.getPk(); + codeClassifyTemplateButtonDO.setOid(null); + codeClassifyTemplateButtonDO.setClassifytemplateoid(templateNewOid); + } + return codeTempbuttonEntities; + } + + + /** + * 澶嶅埗妯℃澘灞炴�� + */ + public List<CodeClstempattrEntity> 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); + +// List<CodeClstempattrEntity> codeClassifyTemplateAttrDOList = codeClassifyTemplateAttrDaoI.selectByWrapper(codeClassifyTemplateAttrQuery); + List<CodeClstempattrEntity> codeClstempattrEntities = codeClstempattrMapper.selectByMap(condition); + + for (CodeClstempattrEntity codeClassifyTemplateAttrDO :codeClstempattrEntities){ +// String attrOid = VciBaseUtil.getPk(); + codeClassifyTemplateAttrDO.setOid(null); + codeClassifyTemplateAttrDO.setClassifytemplateoid(templateNewOid); +// codeClstempattrMapper.insert(codeClassifyTemplateAttrDO); + } + return codeClstempattrEntities; + } + + + /** + * 鍒嗙被妯℃澘鍒楄〃 + * + * @param plCodeClstemplate 鏌ヨ鏉′欢 + * @param query 鍒嗛〉瀵硅薄 + * @return 鏄剧ず瀵硅薄 + * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 + */ + @Override + public DataGrid<CodeClstemplateVO> gridCodeClassifyTemplate(CodeClstemplateVO plCodeClstemplate, Query query) throws VciBaseException { + DataGrid<CodeClstemplateVO> dataGrid=new DataGrid<CodeClstemplateVO>(); + //娌℃湁浼犲垎绫籭d锛屼笉鎵ц鏌ヨ閫昏緫锛岀洿鎺ヨ繑鍥� +// if(conditionMap.size()==0){ +// dataGrid.setData(new ArrayList<>()); +// dataGrid.setTotal(0); +// return dataGrid; +// } +// if (pageHelper == null) { +// pageHelper = new PageHelper(-1); +// } +// pageHelper.addDefaultDesc("revisionSeq"); + + + + List<CodeClstemplateVO> doList = codeClstemplateMapper.selectPlCodeClstemplatePage(Condition.getPage(query), plCodeClstemplate); + if (!CollectionUtils.isEmpty(doList)) { +// 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))))); + } + return dataGrid; + } + + + /** + * 澧炲姞鍒嗙被妯℃澘瀵硅薄 + * @param codeClassifyTemplateDTO 鍒嗙被妯℃澘瀵硅薄鏁版嵁浼犺緭瀵硅薄 + * @return 鎵ц缁撴灉 + * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父 + */ + @Override + public R<CodeClstemplateVO> addSave(CodeClstemplateDTO codeClassifyTemplateDTO) throws VciBaseException{ + VciBaseUtil.alertNotNull(codeClassifyTemplateDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄"); + //灏咲TO杞崲涓篋O + CodeClstemplateEntity codeClassifyTemplateDO = new CodeClstemplateEntity(); + BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateDTO,codeClassifyTemplateDO); + + //鏌ヨ鍒嗙被浠ュ強涓婄骇鍒嗙被鐨勪笟鍔$被鍨媌tmtypeid銆乥tmtypename + List<CodeClassify> codeClassifyDOList = codeClassifyService.selectAllLevelParents(codeClassifyTemplateDTO.getCodeClassifyOid()); + + //鎵�鏈夊垎绫婚兘娌℃湁涓氬姟绫诲瀷锛岃繑鍥炴彁绀� + if(codeClassifyDOList.size()==0){ + return R.fail("娣诲姞妯℃澘娣诲姞澶辫触,鍒嗙被鍜屼笂绾у垎绫婚兘娌℃湁鍏宠仈涓氬姟绫诲瀷锛�"); + } + + //璁剧疆btmtypeid鍜宯ame + CodeClassify codeClassifyDO = codeClassifyDOList.get(0); + codeClassifyTemplateDO.setBtmTypeId(codeClassifyDO.getBtmTypeId()); + codeClassifyTemplateDO.setBtmTypeName(codeClassifyDO.getBtmTypeName()); + codeClassifyTemplateDO.setLcStatus(FRAMEWORK_RELEASE_EDITING); + codeClassifyTemplateDO.setTs(new Date()); + codeClassifyTemplateDO.setOwner(AuthUtil.getUser().getUserName()); + 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); + //榛樿娣诲姞妯℃澘灞炴�� +// List<CodeClassifyTemplateAttrDO> attrDOList = new ArrayList<>(); + +// CodeClassifyTemplateAttrDO codeAttr = new CodeClassifyTemplateAttrDO(); +// codeAttr.setId("id"); +// codeAttr.setName("浼佷笟缂栫爜"); +// codeAttr.setAttributeDataType("VTString"); +// codeAttr.setAttrTableWidth(150); +// codeAttr.setOrderNum(1); +// codeAttr.setFormDisplayFlag(BooleanEnum.TRUE.getValue()); +// codeAttr.setTableDisplayFlag(BooleanEnum.TRUE.getValue()); +// codeAttr.setClassifyTemplateOid(codeClassifyTemplateDO.getOid()); +// attrDOList.add(codeAttr); +// +// +// CodeClassifyTemplateAttrDO groupAttr = new CodeClassifyTemplateAttrDO(); +// groupAttr.setId("name"); +// groupAttr.setName("闆嗗洟鐮�"); +// groupAttr.setAttributeDataType("VTString"); +// groupAttr.setAttrTableWidth(150); +// groupAttr.setOrderNum(2); +// groupAttr.setFormDisplayFlag(BooleanEnum.TRUE.getValue()); +// groupAttr.setTableDisplayFlag(BooleanEnum.TRUE.getValue()); +// groupAttr.setClassifyTemplateOid(codeClassifyTemplateDO.getOid()); +// attrDOList.add(groupAttr); +// +// CodeClassifyTemplateAttrDO descAttr = new CodeClassifyTemplateAttrDO(); +// descAttr.setId("description"); +// descAttr.setName("鎻忚堪"); +// descAttr.setAttrTableWidth(150); +// descAttr.setAttributeDataType("VTString"); +// descAttr.setOrderNum(3); +// descAttr.setFormDisplayFlag(BooleanEnum.TRUE.getValue()); +// descAttr.setTableDisplayFlag(BooleanEnum.TRUE.getValue()); +// descAttr.setClassifyTemplateOid(codeClassifyTemplateDO.getOid()); +// attrDOList.add(descAttr); +// +// CodeClassifyTemplateAttrDO statusAttr = new CodeClassifyTemplateAttrDO(); +// statusAttr.setId("lcstatus"); +// statusAttr.setName("鐘舵��"); +// statusAttr.setAttrTableWidth(70); +// statusAttr.setOrderNum(4); +// statusAttr.setFormDisplayFlag(BooleanEnum.TRUE.getValue()); +// statusAttr.setTableDisplayFlag(BooleanEnum.TRUE.getValue()); +// statusAttr.setAttributeDataType("VTString"); +// statusAttr.setClassifyTemplateOid(codeClassifyTemplateDO.getOid()); +// attrDOList.add(statusAttr); +// +// +// CodeClassifyTemplateAttrDO secAttr = new CodeClassifyTemplateAttrDO(); +// secAttr.setId("secretgrade"); +// secAttr.setName("瀵嗙骇"); +// secAttr.setAttrTableWidth(70); +// secAttr.setAttributeDataType(VciFieldTypeEnum.VTInteger.name()); +// secAttr.setEnumId("Enumsecretgrade"); +// secAttr.setEnumName("瀵嗙骇"); +// secAttr.setOrderNum(4); +// secAttr.setFormDisplayFlag(BooleanEnum.TRUE.getValue()); +// secAttr.setTableDisplayFlag(BooleanEnum.TRUE.getValue()); +// secAttr.setClassifyTemplateOid(codeClassifyTemplateDO.getOid()); +// attrDOList.add(secAttr); + + return R.data(codeClassifyTemplateDO2VO(codeClassifyTemplateDO)); + } + + /** + * 淇敼鍒嗙被妯℃澘瀵硅薄 + * @param codeClassifyTemplateDTO 鍒嗙被妯℃澘瀵硅薄鏁版嵁浼犺緭瀵硅薄 + * @return 鎵ц缁撴灉 + * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父 + */ + @Override + public R editSave(CodeClstemplateDTO codeClassifyTemplateDTO) throws VciBaseException{ + VciBaseUtil.alertNotNull(codeClassifyTemplateDTO,"鏁版嵁瀵硅薄",codeClassifyTemplateDTO.getOid(),"鍒嗙被妯℃澘瀵硅薄涓婚敭"); + //妫�鏌s + CodeClstemplateEntity codeClassifyTemplateDOCopyFromDTO = new CodeClstemplateEntity(); + BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateDTO,codeClassifyTemplateDOCopyFromDTO); + CodeClstemplateEntity codeClassifyTemplateDO = null; + if(codeClassifyTemplateDOCopyFromDTO.getOid() == null){ + baseMapper.insert(codeClassifyTemplateDOCopyFromDTO); + return R.data(codeClassifyTemplateDOCopyFromDTO); + }else{ +// Map<String,Object> condition = new HashMap<>(2); +// condition.put("oid",codeClassifyTemplateDOCopyFromDTO.getOid()); +// condition.put("ts",codeClassifyTemplateDOCopyFromDTO.getTs()); + CodeClstemplateEntity detail = baseMapper + .selectById(codeClassifyTemplateDOCopyFromDTO.getOid()); + // boolean tsBoolean = boService.checkTs(codeClassifyTemplateAttrDOListemplateDOCopyFromDTO); + if(detail.getTs().compareTo(codeClassifyTemplateDOCopyFromDTO.getTs()) != 0){//涓嶆槸鏈�鏂扮殑涓嶈鏀� + return R.fail("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒"); + } + + //灏咲TO杞崲涓篋O + codeClassifyTemplateDO = selectByOid(codeClassifyTemplateDTO.getOid()); + String lcstatus = codeClassifyTemplateDO.getLcStatus(); + String versionvalue = codeClassifyTemplateDO.getVersionValue(); + + //鍙湁缂栬緫涓墠鑳戒慨鏀� + if(!CodeClassifyTemplateLC.EDITING.getValue().equals(codeClassifyTemplateDO.getLcStatus())){ + return R.fail("鍙湁缂栬緫涓殑锛屾ā鏉挎墠鑳戒慨鏀癸紒"); + } + revisionModelUtil.copyFromDTOIgnore(codeClassifyTemplateDTO,codeClassifyTemplateDO); + //涓嶄慨鏀圭増鏈彿鍜岀姸鎬� + codeClassifyTemplateDO.setLcStatus(lcstatus); + codeClassifyTemplateDO.setVersionValue(versionvalue); + codeClassifyTemplateDO.setTs(new Date()); + codeClassifyTemplateDO.setLastModifier(AuthUtil.getUser().getUserName()); + codeClassifyTemplateDO.setLastModifyTime(new Date()); + baseMapper.updateById(codeClassifyTemplateDO); + } + return R.data(codeClassifyTemplateDO2VO(codeClassifyTemplateDO)); + } } -- Gitblit v1.9.3