From ddab14a4547255236c60b1cd039013c2eaecf18f Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 01 八月 2023 21:07:05 +0800
Subject: [PATCH] 修改参照组件值回填bug等

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java |  195 +++++++++++++++++++++---------------------------
 1 files changed, 85 insertions(+), 110 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 bfb5344..6ff578d 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;
@@ -41,10 +40,12 @@
 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;
@@ -89,7 +90,7 @@
 	private CodeClassifyTemplateButtonServiceImpl codeTempbuttonServiceImpl;
 	@Autowired(required = false)
 	private ICodeClassifyProcessTempService codeClsflowtempServiceImpl;
-//	@Autowired(required = false)
+	//	@Autowired(required = false)
 //	private CodeClsflowtempMapper codeClsflowtempMapper;
 	@Autowired(required = false)
 	private CodeTemplatePhaseMapper codeTempphaseMapper;
@@ -457,16 +458,24 @@
 		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("淇敼鎴愬姛");
 	}
 
@@ -487,67 +496,50 @@
 		}
 
 		//闇�瑕佹柊澧炵殑鍗囩骇妯℃澘
-//		ClientBusinessObject clientBusinessObject_template = boService.selectCBOByOid(codeClassifyDTO.getOid(), "codeclstemplate");
 		CodeClassifyTemplate codeCls_template = baseMapper.selectById(templateOldOid);
 		CodeClassifyTemplate codeCls_template_insert = new CodeClassifyTemplate();
-//			ClientBusinessObject clientBusinessObject_template_insert = null;
-//		try {
-//			clientBusinessObject_template_insert = clientBusinessObjectOperation.reviseBusinessObject(clientBusinessObject_template, "");
-			codeCls_template_insert.setOid(VciBaseUtil.getPk());
-			codeCls_template_insert.setRevisionOid(VciBaseUtil.getPk());
-			codeCls_template_insert.setNameOid(codeCls_template.getNameOid());
-			codeCls_template_insert.setBtmname(codeCls_template.getBtmname());
-			codeCls_template_insert.setLastR(String.valueOf(1));
-			codeCls_template_insert.setFirstR(String.valueOf(0));
-			codeCls_template_insert.setFirstV(String.valueOf(1));
-			codeCls_template_insert.setLastV(String.valueOf(1));
-			codeCls_template_insert.setCreator(AuthUtil.getUser().getUserName());
-			codeCls_template_insert.setCreateTime(new Date());
-			codeCls_template_insert.setLastModifier(AuthUtil.getUser().getUserName());
-			codeCls_template_insert.setLastModifyTime(new Date());
-			codeCls_template_insert.setRevisionRule(codeCls_template.getRevisionRule());
-			codeCls_template_insert.setVersionRule(codeCls_template.getVersionRule());
-			Map rvObj = baseMapper.getNextRevision(codeCls_template.getNameOid());
-			codeCls_template_insert.setRevisionSeq(Integer.parseInt(rvObj.get("REVISIONSEQ").toString()));
-			codeCls_template_insert.setRevisionValue(rvObj.get("REVISIONVAL").toString());
-//			VersionValueObject versionObj = this.getVersionValue(item.verRuleName);
-			codeCls_template_insert.setVersionSeq(Integer.parseInt(rvObj.get("VERSIONSEQ").toString()));
-			codeCls_template_insert.setVersionValue(rvObj.get("VERSIONVAL").toString());
-			codeCls_template_insert.setLctid(codeCls_template.getLctid());
-			codeCls_template_insert.setLcStatus("Editing");
-			codeCls_template_insert.setId(codeCls_template.getId());
-			codeCls_template_insert.setName(codeCls_template.getName());
-			codeCls_template_insert.setDescription(codeCls_template.getDescription());
-			codeCls_template_insert.setOwner(AuthUtil.getUser().getUserName());
-//			codeCls_template_insert.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("鍗囩増鍑洪敊");
-//		}
+		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(1));
+		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.setTs(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());
+		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());
+		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.setCopyFromVersion(codeCls_template.getOid());
 		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);
 		//鍗囩増杩囧悗鐨勬ā鏉縪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<CodeClassifyTemplateAttr> codeClstempattrEntities = codeClstempattrMapper.selectByMap(condition);
-//		List<CodeClassifyTemplateAttrDO> codeClassifyTemplateAttrDOList = codeClassifyTemplateAttrDaoI.selectByWrapper(codeClassifyTemplateAttrQuery);
 		for (CodeClassifyTemplateAttr codeClassifyTemplateAttrDO :codeClstempattrEntities){
-//			String attrOid = VciBaseUtil.getPk();
-			codeClassifyTemplateAttrDO.setOid(null);
+			codeClassifyTemplateAttrDO.setOid(VciBaseUtil.getPk());
 			codeClassifyTemplateAttrDO.setClassifyTemplateOid(templateNewOid);
 			codeClstempattrMapper.insert(codeClassifyTemplateAttrDO);
 		}
@@ -563,54 +555,23 @@
 		//澶嶅埗妯℃澘鎸夐挳
 		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)) {
+			codeClsflowtempServiceImpl.saveBatch(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("鍗囩増鎴愬姛锛�");
 	}
 
@@ -858,6 +819,7 @@
 	 * @return 鏄剧ず瀵硅薄
 	 * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
 	 */
+	@Override
 	public DataGrid<CodeClassifyTemplateVO> gridCodeClassifyTemplate(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException {
 		DataGrid<CodeClassifyTemplateVO> dataGrid=new DataGrid<CodeClassifyTemplateVO>();
 		//娌℃湁浼犲垎绫籭d锛屼笉鎵ц鏌ヨ閫昏緫锛岀洿鎺ヨ繑鍥�
@@ -891,6 +853,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);
@@ -919,6 +882,13 @@
 	@Override
 	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
 		CodeClassifyTemplate codeClassifyTemplateDO = new CodeClassifyTemplate();
 		BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateDTO,codeClassifyTemplateDO);
@@ -928,16 +898,17 @@
 
 		//鎵�鏈夊垎绫婚兘娌℃湁涓氬姟绫诲瀷锛岃繑鍥炴彁绀�
 		if(codeClassifyDOList.size()==0){
-			return R.fail("娣诲姞妯℃澘娣诲姞澶辫触,鍒嗙被鍜屼笂绾у垎绫婚兘娌℃湁鍏宠仈涓氬姟绫诲瀷锛�");
+			return R.fail(DATA_OID_NOT_EXIST);
 		}
 
 		//璁剧疆btmtypeid鍜宯ame
-		CodeClassify codeClassifyDO = codeClassifyDOList.get(0);
+		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(AuthUtil.getUser().getUserName());
+		codeClassifyTemplateDO.setOwner(String.valueOf(AuthUtil.getUser().getUserId()));
 		codeClassifyTemplateDO.setLctid("codeClsTempLc");
 		codeClassifyTemplateDO.setVersionValue("1");
 		codeClassifyTemplateDO.setVersionSeq(1);
@@ -946,8 +917,8 @@
 		codeClassifyTemplateDO.setVersionRule("0");
 		codeClassifyTemplateDO.setRevisionRule("numberversionrule");
 		codeClassifyTemplateDO.setLastModifyTime(new Date());
-		codeClassifyTemplateDO.setLastModifier(AuthUtil.getUser().getUserName());
-		codeClassifyTemplateDO.setCreator(AuthUtil.getUser().getUserName());
+		codeClassifyTemplateDO.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
+		codeClassifyTemplateDO.setCreator(String.valueOf(AuthUtil.getUser().getUserId()));
 		codeClassifyTemplateDO.setCreateTime(new Date());
 		codeClassifyTemplateDO.setLastV("1");
 		codeClassifyTemplateDO.setLastR("1");
@@ -1043,7 +1014,7 @@
 //			condition.put("ts",codeClassifyTemplateDOCopyFromDTO.getTs());
 			CodeClassifyTemplate detail = baseMapper
 				.selectById(codeClassifyTemplateDOCopyFromDTO.getOid());
-	//		boolean tsBoolean = boService.checkTs(codeClassifyTemplateAttrDOListemplateDOCopyFromDTO);
+			//		boolean tsBoolean = boService.checkTs(codeClassifyTemplateAttrDOListemplateDOCopyFromDTO);
 			if(detail.getTs().compareTo(codeClassifyTemplateDOCopyFromDTO.getTs()) != 0){//涓嶆槸鏈�鏂扮殑涓嶈鏀�
 				return R.fail("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒");
 			}
@@ -1127,11 +1098,15 @@
 			//閫掑綊鎵句笂绾х殑妯℃澘
 			CodeClassify classifyDO = codeClassifyMapper.selectById(codeClassifyOid);
 //				codeClassifyDaoI.selectByPrimaryKey(codeClassifyOid);
-			if(StringUtils.isBlank(classifyDO.getParentCodeClassifyOid())){
+			if(Func.isEmpty(classifyDO)&&StringUtils.isBlank(classifyDO.getParentCodeClassifyOid())){
 				//璇存槑宸茬粡鏄《浜嗭紝涔熸病鎵惧埌鐨勮瘽锛岄偅灏辫繑鍥炰簡
-				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