From e61a898fe563214cb13e97c08804534a61aad46b Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 07 十一月 2023 17:32:40 +0800
Subject: [PATCH] 主数据管理按钮返回缓存问题修改

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java |   91 ++++++++++++++++++++++++++++-----------------
 1 files changed, 56 insertions(+), 35 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 0de9edd..a33819e 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java
@@ -16,7 +16,6 @@
  */
 package com.vci.ubcs.code.service.impl;
 
-import com.alibaba.nacos.api.utils.StringUtils;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -32,6 +31,9 @@
 import com.vci.ubcs.code.service.ICodeClstemplateService;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
+import com.vci.ubcs.common.constant.CommonConstant;
+import com.vci.ubcs.flow.core.entity.ProcessTemplate;
+import com.vci.ubcs.flow.core.feign.IFlowClient;
 import com.vci.ubcs.starter.exception.VciBaseException;
 import com.vci.ubcs.starter.revision.model.TreeQueryObject;
 import com.vci.ubcs.starter.revision.model.TreeWrapperOptions;
@@ -41,6 +43,7 @@
 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;
@@ -106,6 +109,8 @@
 	private CodeClassifyTemplateMapper codeClassifyTemplateMapper;
 	@Autowired(required = false)
 	private CodePhaseAttrServiceImpl codePhaseattrServiceImpl;
+	@Autowired(required = false)
+	private IFlowClient iFlowClient;
 
 	@Override
 	public IPage<CodeClassifyTemplateVO> selectPlCodeClstemplatePage(IPage<CodeClassifyTemplateVO> page, CodeClassifyTemplateVO plCodeClstemplate) {
@@ -503,13 +508,15 @@
 		codeCls_template_insert.setNameOid(codeCls_template.getNameOid());
 		codeCls_template_insert.setBtmname(codeCls_template.getBtmname());
 		codeCls_template_insert.setLastR(String.valueOf(1));
-		codeCls_template_insert.setFirstR(String.valueOf(1));
+		codeCls_template_insert.setFirstR(String.valueOf(0));
 		codeCls_template_insert.setFirstV(String.valueOf(1));
 		codeCls_template_insert.setLastV(String.valueOf(1));
-		codeCls_template_insert.setCreator(AuthUtil.getUser().getUserName());
+//		codeCls_template_insert.setCreator(String.valueOf(AuthUtil.getUser().getUserId()));
+		codeCls_template_insert.setCreator(String.valueOf(AuthUtil.getUser().getAccount()));
 		codeCls_template_insert.setCreateTime(new Date());
 		codeCls_template_insert.setTs(new Date());
-		codeCls_template_insert.setLastModifier(AuthUtil.getUser().getUserName());
+		// codeCls_template_insert.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
+		codeCls_template_insert.setLastModifier(String.valueOf(AuthUtil.getUser().getAccount()));
 		codeCls_template_insert.setLastModifyTime(new Date());
 		codeCls_template_insert.setRevisionRule(codeCls_template.getRevisionRule());
 		codeCls_template_insert.setVersionRule(codeCls_template.getVersionRule());
@@ -527,9 +534,14 @@
 		codeCls_template_insert.setId(codeCls_template.getId());
 		codeCls_template_insert.setName(codeCls_template.getName());
 		codeCls_template_insert.setDescription(codeCls_template.getDescription());
-		codeCls_template_insert.setOwner(AuthUtil.getUser().getUserName());
+		codeCls_template_insert.setOwner(String.valueOf(AuthUtil.getUser().getUserId()));
 		codeCls_template_insert.setCopyFromVersion(codeCls_template.getOid());
 		int insertCount = baseMapper.insert(codeCls_template_insert);
+		codeCls_template.setLastR("0");
+		codeCls_template.setLastModifyTime(new Date());
+		// codeCls_template.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
+		codeCls_template.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
+		baseMapper.updateById(codeCls_template);
 		//鍗囩増杩囧悗鐨勬ā鏉縪id
 		String templateNewOid = codeCls_template_insert.getOid();
 
@@ -545,7 +557,7 @@
 		}
 
 		//澶嶅埗妯℃澘娴佺▼
-		List<CodeClassifyProcessTemp>  codeClassifyProcessTempDOList = copyTemplateProcess(templateOldOid,templateNewOid);
+		List<ProcessTemplate>  codeClassifyProcessTempDOList = copyTemplateProcess(templateOldOid,templateNewOid);
 		//澶嶅埗妯℃澘闃舵锛岄樁娈靛睘鎬�
 		Map phase_attrMap = copyTemplatePhase_attr(templateOldOid,templateNewOid);
 
@@ -557,7 +569,7 @@
 
 		//淇濆瓨妯℃澘娴佺▼
 		if(!CollectionUtils.isEmpty(codeClassifyProcessTempDOList)) {
-			codeClsflowtempServiceImpl.saveBatch(codeClassifyProcessTempDOList);
+			iFlowClient.processBatchSave(codeClassifyProcessTempDOList);
 		}
 		//妯℃澘闃舵
 		if(!CollectionUtils.isEmpty(codeClassifyPhaseDOList)) {
@@ -584,6 +596,13 @@
 		String newOid = VciBaseUtil.getPk();
 		//鍒嗙被oid,澶嶅埗杩囨潵鐨勬柊鐨勫垎绫籵id
 		String codeClassifyOid = codeClassifyDTO.getCodeclassifyoid();
+
+		QueryWrapper<CodeClassifyTemplate> wrapper = new QueryWrapper<>();
+		wrapper.eq("CODECLASSIFYOID",codeClassifyOid);
+		Long aLong = baseMapper.selectCount(wrapper);
+		if(aLong > 0){
+			return R.fail("璇ュ垎绫讳笅宸叉湁瀛愭ā鐗堬紝鏃犳硶杩涜澶嶅埗鎿嶄綔锛屼粎鑳借繘琛屽崌鐗堟搷浣滐紒");
+		}
 
 		//澶嶅埗妯℃澘
 		CodeClassifyTemplate codeClassifyTemplateDO_old = baseMapper.selectById(oldOid);//鏃фā鏉�
@@ -612,6 +631,8 @@
 		codeClassifyTemplateDO_old.setTs(new Date());
 		codeClassifyTemplateDO_old.setCreateTime(new Date());
 		codeClassifyTemplateDO_old.setLastModifyTime(new Date());
+		// 澶嶅埗鐨勬ā鏉跨敓鍛藉懆鏈熸敼涓虹紪杈戜腑
+		codeClassifyTemplateDO_old.setLcStatus(FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_EDITING);
 		List<CodeClassifyTemplate> codeClassifyTemplateDOList = new ArrayList<>();
 		codeClassifyTemplateDOList.add(codeClassifyTemplateDO_old);
 
@@ -619,10 +640,10 @@
 		List<CodeClassifyTemplateAttr> codeClassifyTemplateAttrDOList = copyTemplateAttr(oldOid,newOid);
 
 		//澶嶅埗妯℃澘娴佺▼
-		List<CodeClassifyProcessTemp> codeClassifyProcessTempDOList = copyTemplateProcess(oldOid,newOid);
+		List<ProcessTemplate> codeClassifyProcessTempDOList = copyTemplateProcess(oldOid,newOid);
 
 		//澶嶅埗妯℃澘闃舵锛岄樁娈靛睘鎬�
-		Map  phase_attrMap = copyTemplatePhase_attr(oldOid,newOid);
+		Map phase_attrMap = copyTemplatePhase_attr(oldOid,newOid);
 
 		List<CodeTemplatePhase> codeClassifyPhaseDOList = (ArrayList<CodeTemplatePhase>)phase_attrMap.get("phase");//妯℃澘闃舵
 		List<CodePhaseAttr> codePhaseAttrDOList = (ArrayList<CodePhaseAttr>)phase_attrMap.get("phaseAttr");//闃舵灞炴��
@@ -633,7 +654,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);
@@ -696,22 +717,17 @@
 	/**
 	 * 澶嶅埗妯℃澘娴佺▼
 	 */
-	public List<CodeClassifyProcessTemp> copyTemplateProcess(String templateOldOid,String templateNewOid){
-//		VciQueryWrapperForDO processWrapper = new VciQueryWrapperForDO(CodeClassifyProcessTempDO.class);
-//		processWrapper.addQueryMap("classifyTemplateOid",templateOldOid);
-
-//		Map<String,Object> condition = new HashMap<>(1);
-//		condition.put("classifyTemplateOid",templateOldOid);
-		QueryWrapper<CodeClassifyProcessTemp> wrapper = new QueryWrapper<>();
-		wrapper.eq("classifyTemplateOid",templateOldOid);
-		List<CodeClassifyProcessTemp> codeClsflowtempEntities = codeClsflowtempServiceImpl.list(wrapper);
-//		List<CodeClassifyProcessTempDO>  codeClassifyProcessTempDOList = codeClassifyProcessTempDaoI.selectByWrapper(processWrapper);//瑕佷繚瀛樼殑鏂扮殑妯℃澘娴佺▼
-		for (CodeClassifyProcessTemp codeClassifyProcessTempDO:codeClsflowtempEntities){
-//			String newOid = VciBaseUtil.getPk();
-			codeClassifyProcessTempDO.setOid(null);
-			//codeClassifyProcessTempDO.setCodeClassifyOid(templateNewOid);
-			codeClassifyProcessTempDO.setClassifyTemplateOid(templateNewOid);
-//			codeClsflowtempMapper.insert(codeClassifyProcessTempDO);
+	public List<ProcessTemplate> copyTemplateProcess(String templateOldOid,String templateNewOid){
+		Map<String,Object> wrapperMap = new HashMap();
+		wrapperMap.put("template_id",templateOldOid);
+		R<List<ProcessTemplate>> listR = iFlowClient.selectByWrapper(wrapperMap);
+		if(!listR.isSuccess()){
+			throw new VciBaseException("鏌ヨ妯℃澘娴佺▼鏃跺嚭閿欙紝璇烽噸璇曪紒");
+		}
+		List<ProcessTemplate> codeClsflowtempEntities = listR.getData();
+		for (ProcessTemplate codeClassifyProcessTempDO:codeClsflowtempEntities){
+			codeClassifyProcessTempDO.setId(null);
+			codeClassifyProcessTempDO.setTemplateId(templateNewOid);
 			//modify by lihang - @20220406 璁剧疆妯℃澘涓婚敭浣嶇疆鍑洪敊锛屽鑷村崌鐗堢殑妯℃澘涓殑娴佺▼鏄┖鐨勩��
 		}
 		return codeClsflowtempEntities;
@@ -898,11 +914,11 @@
 
 		//鎵�鏈夊垎绫婚兘娌℃湁涓氬姟绫诲瀷锛岃繑鍥炴彁绀�
 		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());
@@ -917,8 +933,10 @@
 		codeClassifyTemplateDO.setVersionRule("0");
 		codeClassifyTemplateDO.setRevisionRule("numberversionrule");
 		codeClassifyTemplateDO.setLastModifyTime(new Date());
-		codeClassifyTemplateDO.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
-		codeClassifyTemplateDO.setCreator(String.valueOf(AuthUtil.getUser().getUserId()));
+//		codeClassifyTemplateDO.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
+		codeClassifyTemplateDO.setLastModifier(String.valueOf(AuthUtil.getUser().getAccount()));
+//		codeClassifyTemplateDO.setCreator(String.valueOf(AuthUtil.getUser().getUserId()));
+		codeClassifyTemplateDO.setCreator(String.valueOf(AuthUtil.getUser().getAccount()));
 		codeClassifyTemplateDO.setCreateTime(new Date());
 		codeClassifyTemplateDO.setLastV("1");
 		codeClassifyTemplateDO.setLastR("1");
@@ -1033,7 +1051,7 @@
 			codeClassifyTemplateDO.setLcStatus(lcstatus);
 			codeClassifyTemplateDO.setVersionValue(versionvalue);
 			codeClassifyTemplateDO.setTs(new Date());
-			codeClassifyTemplateDO.setLastModifier(AuthUtil.getUser().getUserName());
+			codeClassifyTemplateDO.setLastModifier(AuthUtil.getUser().getAccount());
 			codeClassifyTemplateDO.setLastModifyTime(new Date());
 			baseMapper.updateById(codeClassifyTemplateDO);
 		}
@@ -1075,7 +1093,6 @@
 		return codeClassifyTemplateVOList;
 	}
 
-
 	/**
 	 * 浣跨敤鍒嗙被涓婚敭閫掑綊鏌ヨ
 	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
@@ -1098,11 +1115,15 @@
 			//閫掑綊鎵句笂绾х殑妯℃澘
 			CodeClassify classifyDO = codeClassifyMapper.selectById(codeClassifyOid);
 //				codeClassifyDaoI.selectByPrimaryKey(codeClassifyOid);
-			if(Func.isEmpty(classifyDO)&&StringUtils.isBlank(classifyDO.getParentCodeClassifyOid())){
+			if(Func.isEmpty(classifyDO)){
 				//璇存槑宸茬粡鏄《浜嗭紝涔熸病鎵惧埌鐨勮瘽锛岄偅灏辫繑鍥炰簡
-				return null;
+				return new ArrayList<>();
 			}
-			return selectOnlyTemplateByClassifyOid(classifyDO.getParentCodeClassifyOid());
+			if(StringUtils.isNotBlank(classifyDO.getParentCodeClassifyOid())) {
+				return selectOnlyTemplateByClassifyOid(classifyDO.getParentCodeClassifyOid());
+			}else{
+				return new ArrayList<>();
+			}
 		}else{
 			return templateDOS;
 		}

--
Gitblit v1.9.3