From 029b101d319812460441d3d706c0654d8b0dcda6 Mon Sep 17 00:00:00 2001
From: yuxc <653031404@qq.com>
Date: 星期五, 19 五月 2023 18:43:05 +0800
Subject: [PATCH] 主数据定义接口移植

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java |  394 +++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 274 insertions(+), 120 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 1271459..d8af1a4 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
@@ -17,22 +17,27 @@
 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.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.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;
@@ -40,8 +45,8 @@
 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.cglib.beans.BeanMap;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -61,14 +66,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,32 +82,32 @@
 	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;
+	private ICodeClassifyProcessTempService codeClsflowtempServiceImpl;
+//	@Autowired(required = false)
+//	private CodeClsflowtempMapper codeClsflowtempMapper;
 	@Autowired(required = false)
-	private CodeClsflowtempMapper codeClsflowtempMapper;
+	private CodeTemplatePhaseMapper codeTempphaseMapper;
 	@Autowired(required = false)
-	private CodeTempphaseMapper codeTempphaseMapper;
+	private CodeClassifyTemplateButtonMapper codeTempbuttonMapper;
 	@Autowired(required = false)
-	private CodeTempbuttonMapper codeTempbuttonMapper;
+	private CodePhaseAttrMapper codePhaseattrMapper;
 	@Autowired(required = false)
-	private CodePhaseattrMapper codePhaseattrMapper;
+	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;
 
 	@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 +118,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 +137,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 +157,7 @@
 	 * @return 鏄剧ず瀵硅薄
 	 */
 	@Override
-	public List<CodeClstemplateVO> codeClassifyTemplateDO2VOs(Collection<CodeClstemplateEntity> codeClassifyTemplateDOs) {
+	public List<CodeClassifyTemplateVO> codeClassifyTemplateDO2VOs(Collection<CodeClassifyTemplate> codeClassifyTemplateDOs) {
 		return codeClassifyTemplateDO2VOs(codeClassifyTemplateDOs,false);
 	}
 
@@ -163,11 +168,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 +180,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 +207,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 +224,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 +307,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 +349,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 +380,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 +417,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 +436,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,7 +454,7 @@
 	@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);
@@ -467,20 +476,20 @@
 	 */
 	@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();
+		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, "");
@@ -534,29 +543,29 @@
 //		codeClassifyTemplateAttrQuery.addQueryMap("classifyTemplateOid",templateOldOid);
 		Map<String,Object> condition = new HashMap<>(1);
 		condition.put("classifyTemplateOid",templateOldOid);
-		List<CodeClstempattrEntity> codeClstempattrEntities = codeClstempattrMapper.selectByMap(condition);
+		List<CodeClassifyTemplateAttr> codeClstempattrEntities = codeClstempattrMapper.selectByMap(condition);
 //		List<CodeClassifyTemplateAttrDO> codeClassifyTemplateAttrDOList = codeClassifyTemplateAttrDaoI.selectByWrapper(codeClassifyTemplateAttrQuery);
-		for (CodeClstempattrEntity codeClassifyTemplateAttrDO :codeClstempattrEntities){
+		for (CodeClassifyTemplateAttr codeClassifyTemplateAttrDO :codeClstempattrEntities){
 //			String attrOid = VciBaseUtil.getPk();
 			codeClassifyTemplateAttrDO.setOid(null);
-			codeClassifyTemplateAttrDO.setClassifytemplateoid(templateNewOid);
+			codeClassifyTemplateAttrDO.setClassifyTemplateOid(templateNewOid);
 			codeClstempattrMapper.insert(codeClassifyTemplateAttrDO);
 		}
 
 		//澶嶅埗妯℃澘娴佺▼
-		List<CodeClsflowtempEntity>  codeClassifyProcessTempDOList = copyTemplateProcess(templateOldOid,templateNewOid);
+		List<CodeClassifyProcessTemp>  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<CodeTemplatePhase> codeClassifyPhaseDOList = (ArrayList<CodeTemplatePhase>)phase_attrMap.get("phase");//妯℃澘闃舵
+		List<CodePhaseAttr> codePhaseAttrDOList = (ArrayList<CodePhaseAttr>)phase_attrMap.get("phaseAttr");//闃舵灞炴��
 
 		//澶嶅埗妯℃澘鎸夐挳
-		List<CodeTempbuttonEntity> codeClassifyTemplateButtonDOList = copyTemplateButton(templateOldOid,templateNewOid);
+		List<CodeClassifyTemplateButton> codeClassifyTemplateButtonDOList = copyTemplateButton(templateOldOid,templateNewOid);
 
 		//涓�璧蜂繚瀛樻暟鎹�
 //		WebUtil.setPersistence(false);//涓嶆墽琛屼繚瀛�
-		//淇濆瓨妯℃澘
+		//淇濆瓨妯℃澘鈥斺��
 //		BatchCBO batchCBOTemplate = new BatchCBO();
 		//batchCBO淇濆瓨鐨勬椂鍊欐病鏈夎兘澶熻嚜鍔╱pdate婧愭暟鎹殑isLastR
 		//batchCBOTemplate.getCreateCbos().add(clientBusinessObject_template_insert);
@@ -607,16 +616,16 @@
 
 	@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();
 
 		//澶嶅埗妯℃澘
-		CodeClstemplateEntity codeClassifyTemplateDO_old = baseMapper.selectById(oldOid);//鏃фā鏉�
+		CodeClassifyTemplate codeClassifyTemplateDO_old = baseMapper.selectById(oldOid);//鏃фā鏉�
 
 		//楠岃瘉锛屼笟鍔$被鍨嬫槸涓嶆槸涓�鑷�
 		CodeClassify codeClassifyDO_old = codeClassifyService.selectBtmOrParentBtm(codeClassifyTemplateDO_old.getCodeClassifyOid());
@@ -639,23 +648,23 @@
 		codeClassifyTemplateDO_old.setDescription(codeClassifyDTO.getDescription());//鎻忚堪
 		codeClassifyTemplateDO_old.setCodeClassifyOid(codeClassifyOid);//鍒嗙被oid
 		codeClassifyTemplateDO_old.setOid(newOid);
-		List<CodeClstemplateEntity> codeClassifyTemplateDOList = new ArrayList<CodeClstemplateEntity>();
+		List<CodeClassifyTemplate> codeClassifyTemplateDOList = new ArrayList<CodeClassifyTemplate>();
 		codeClassifyTemplateDOList.add(codeClassifyTemplateDO_old);
 
 		//澶嶅埗妯℃澘灞炴��
-		List<CodeClstempattrEntity> codeClassifyTemplateAttrDOList = copyTemplateAttr(oldOid,newOid);
+		List<CodeClassifyTemplateAttr> codeClassifyTemplateAttrDOList = copyTemplateAttr(oldOid,newOid);
 
 		//澶嶅埗妯℃澘娴佺▼
-		List<CodeClsflowtempEntity> codeClassifyProcessTempDOList = copyTemplateProcess(oldOid,newOid);
+		List<CodeClassifyProcessTemp> 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<CodeTemplatePhase> codeClassifyPhaseDOList = (ArrayList<CodeTemplatePhase>)phase_attrMap.get("phase");//妯℃澘闃舵
+		List<CodePhaseAttr> codePhaseAttrDOList = (ArrayList<CodePhaseAttr>)phase_attrMap.get("phaseAttr");//闃舵灞炴��
 
 		//澶嶅埗妯℃澘鎸夐挳
-		List<CodeTempbuttonEntity> codeClassifyTemplateButtonDOList = copyTemplateButton(oldOid,newOid);
+		List<CodeClassifyTemplateButton> codeClassifyTemplateButtonDOList = copyTemplateButton(oldOid,newOid);
 
 //		baseMapper.insert(codeClassifyTemplateDOList);
 		this.saveBatch(codeClassifyTemplateDOList);
@@ -723,18 +732,21 @@
 	/**
 	 * 澶嶅埗妯℃澘娴佺▼
 	 */
-	public List<CodeClsflowtempEntity> copyTemplateProcess(String templateOldOid,String templateNewOid){
+	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);
-		List<CodeClsflowtempEntity> codeClsflowtempEntities = codeClsflowtempMapper.selectByMap(condition);
+
+//		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 (CodeClsflowtempEntity codeClassifyProcessTempDO:codeClsflowtempEntities){
+		for (CodeClassifyProcessTemp codeClassifyProcessTempDO:codeClsflowtempEntities){
 //			String newOid = VciBaseUtil.getPk();
 			codeClassifyProcessTempDO.setOid(null);
 			//codeClassifyProcessTempDO.setCodeClassifyOid(templateNewOid);
-			codeClassifyProcessTempDO.setClassifytemplateoid(templateNewOid);
+			codeClassifyProcessTempDO.setClassifyTemplateOid(templateNewOid);
 //			codeClsflowtempMapper.insert(codeClassifyProcessTempDO);
 			//modify by lihang - @20220406 璁剧疆妯℃澘涓婚敭浣嶇疆鍑洪敊锛屽鑷村崌鐗堢殑妯℃澘涓殑娴佺▼鏄┖鐨勩��
 		}
@@ -754,21 +766,21 @@
 //		phaseWrapper.addQueryMap("codeClassifyTemplateOid",templateOldOid);
 		Map<String,Object> condition = new HashMap<>(1);
 		condition.put("codeclassifyTemplateOid",templateOldOid);
-		List<CodeTempphaseEntity> codeTempphaseEntities = codeTempphaseMapper.selectByMap(condition);
+		List<CodeTemplatePhase> 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){
+		for (CodeTemplatePhase codeTemplatePhaseDO:codeTempphaseEntities){
 			String oldoid = codeTemplatePhaseDO.getOid();
 			String newOid = VciBaseUtil.getPk();
 			codeTemplatePhaseDO.setOid(newOid);
-			codeTemplatePhaseDO.setCodeclassifytemplateoid(templateNewOid);
+			codeTemplatePhaseDO.setCodeClassifyTemplateOid(templateNewOid);
 			phaseKeyMap.put(oldoid,newOid);
 			phaseOidList.add(oldoid);
 		}
 
 		//妯℃澘闃舵鐨勫睘鎬�
-		List<CodePhaseattrEntity> codePhaseAttrDOList = new ArrayList<CodePhaseattrEntity>();
+		List<CodePhaseAttr> codePhaseAttrDOList = new ArrayList<CodePhaseAttr>();
 
 		if(!CollectionUtils.isEmpty(phaseOidList)){//size()==0涓嬭竟鏂规硶浼氭姤閿�
 //			Map<String,String> conditionMap =  new HashMap<>();
@@ -776,11 +788,11 @@
 //			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();
+		for (CodePhaseAttr codePhaseAttrDO:codePhaseAttrDOList){
+			String oldPhaseoid = codePhaseAttrDO.getCodePhaseOid();
 //			String newOid = VciBaseUtil.getPk();
 			codePhaseAttrDO.setOid(null);
-			codePhaseAttrDO.setCodephaseoid(phaseKeyMap.get(oldPhaseoid));
+			codePhaseAttrDO.setCodePhaseOid(phaseKeyMap.get(oldPhaseoid));
 //			codePhaseattrMapper.insert(codePhaseAttrDO);
 		}
 		Map phaseMap = new HashMap();
@@ -792,18 +804,18 @@
 	/**
 	 * 澶嶅埗妯℃澘鎸夐挳
 	 */
-	public List<CodeTempbuttonEntity> copyTemplateButton(String templateOldOid,String templateNewOid){
+	public List<CodeClassifyTemplateButton> 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<CodeClassifyTemplateButton> codeTempbuttonEntities = codeTempbuttonMapper.selectByMap(condition);
 //		List<CodeClassifyTemplateButtonDO> codeClassifyTemplateButtonDOList = codeClassifyTemplateButtonDaoI.selectByWrapper(buttonWrapper);
-		for (CodeTempbuttonEntity codeClassifyTemplateButtonDO:codeTempbuttonEntities){
+		for (CodeClassifyTemplateButton codeClassifyTemplateButtonDO:codeTempbuttonEntities){
 //			String newOid = VciBaseUtil.getPk();
 			codeClassifyTemplateButtonDO.setOid(null);
-			codeClassifyTemplateButtonDO.setClassifytemplateoid(templateNewOid);
+			codeClassifyTemplateButtonDO.setClassifyTemplateOid(templateNewOid);
 		}
 		return codeTempbuttonEntities;
 	}
@@ -812,21 +824,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 +850,13 @@
 	/**
 	 * 鍒嗙被妯℃澘鍒楄〃
 	 *
-	 * @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 +868,40 @@
 //		}
 //		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());
+		}
+
+//		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,14 +914,14 @@
 	 * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父
 	 */
 	@Override
-	public R<CodeClstemplateVO> addSave(CodeClstemplateDTO codeClassifyTemplateDTO) throws VciBaseException{
+	public R<CodeClassifyTemplateVO> addSave(CodeClassifyTemplateDTO codeClassifyTemplateDTO) throws VciBaseException{
 		VciBaseUtil.alertNotNull(codeClassifyTemplateDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄");
 		//灏咲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){
@@ -988,12 +1025,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 +1038,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){//涓嶆槸鏈�鏂扮殑涓嶈鏀�
@@ -1028,4 +1065,121 @@
 		}
 		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->{
+				childHasTemplateMap.put(cbo.get("OID"),cbo.get("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(StringUtils.isBlank(classifyDO.getParentCodeClassifyOid())){
+				//璇存槑宸茬粡鏄《浜嗭紝涔熸病鎵惧埌鐨勮瘽锛岄偅灏辫繑鍥炰簡
+				return null;
+			}
+			return selectOnlyTemplateByClassifyOid(classifyDO.getParentCodeClassifyOid());
+		}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