From e9ae27404803d0616e06ed21027408a71b4bc19c Mon Sep 17 00:00:00 2001
From: ludc <ludc@vci-tech.com>
Date: 星期三, 05 三月 2025 17:34:02 +0800
Subject: [PATCH] 集成申码接口调整:当码值按照约定传表名为空的业务场景下传null校验问题和码值组装问题。

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeResembleRuleServiceImpl.java |  533 +++++++++++++++++++++++++++++++---------------------------
 1 files changed, 287 insertions(+), 246 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeResembleRuleServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeResembleRuleServiceImpl.java
index 51b54bc..034a62b 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeResembleRuleServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeResembleRuleServiceImpl.java
@@ -1,32 +1,43 @@
 package com.vci.ubcs.code.service.impl;
 
-import com.vci.ubcs.code.dao.CodeResembleRuleDaoI;
-import com.vci.ubcs.code.model.CodeResembleRuleDO;
-import com.vci.ubcs.code.service.CodeResembleRuleServiceI;
-import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus;
-import com.vci.starter.revision.service.RevisionModelUtil;
-import com.vci.starter.web.exception.VciBaseException;
-import com.vci.starter.web.pagemodel.BaseResult;
-import com.vci.starter.web.pagemodel.DataGrid;
-import com.vci.starter.web.pagemodel.PageHelper;
-import com.vci.starter.web.util.BeanUtilForVCI;
-import com.vci.starter.web.util.VciBaseUtil;
-import com.vci.web.pageModel.BatchCBO;
-import com.vci.web.service.WebBoServiceI;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.vci.ubcs.code.dto.CodeResembleRuleDTO;
+import com.vci.ubcs.code.entity.CodeBasicSec;
+import com.vci.ubcs.code.entity.CodeReferConfig;
+import com.vci.ubcs.code.entity.CodeResembleRule;
+import com.vci.ubcs.code.enumpack.FrameworkDataLCStatus;
+import com.vci.ubcs.code.mapper.CodeReferConfigMapper;
+import com.vci.ubcs.code.mapper.CodeResembleRuleMapper;
+import com.vci.ubcs.code.service.ICodeResembleRuleService;
 import com.vci.ubcs.code.vo.pagemodel.CodeResembleRuleVO;
+import com.vci.ubcs.omd.entity.BtmType;
+import com.vci.ubcs.starter.enumpack.CodeTableNameEnum;
+import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
+import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
+import com.vci.ubcs.starter.util.MdmBtmTypeConstant;
+import com.vci.ubcs.starter.util.UBCSCondition;
+import com.vci.ubcs.starter.util.UBCSSqlKeyword;
+import com.vci.ubcs.starter.web.pagemodel.DataGrid;
+import com.vci.ubcs.starter.web.pagemodel.PageHelper;
+import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
+import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
-import javax.annotation.Resource;
 import java.util.*;
 
-import static com.vci.frameworkcore.constant.FrameWorkLangCodeConstant.*;
+import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.*;
 
 /**
  * 鐩镐技鏌ヨ瑙勫垯鏈嶅姟
@@ -34,246 +45,276 @@
  * @date 2022-04-10
  */
 @Service
-public class CodeResembleRuleServiceImpl implements CodeResembleRuleServiceI {
+public class CodeResembleRuleServiceImpl extends MPJBaseServiceImpl<CodeResembleRuleMapper, CodeResembleRule> implements ICodeResembleRuleService {
 
-    /**
-    * 鏃ュ織
-    */
-    private Logger logger = LoggerFactory.getLogger(getClass());
-
-    /**
-    * 鏁版嵁鎿嶄綔灞�
-    */
-    @Resource
-    private CodeResembleRuleDaoI codeResembleRuleMapper;
-
-    /**
-    * 涓氬姟绫诲瀷鎿嶄綔鐨勬湇鍔�
-    */
-    @Autowired
-    @Lazy
-	private WebBoServiceI boService;
-
-    /**
-    * 瀵硅薄鐨勬搷浣�
-    */
-    @Autowired
-    private RevisionModelUtil revisionModelUtil;
+	/**
+	 * 瀵硅薄鐨勬搷浣�
+	 */
+	@Autowired
+	private RevisionModelUtil revisionModelUtil;
 
 
-    /**
-     * 鏌ヨ鎵�鏈夌殑鐩镐技鏌ヨ瑙勫垯
-     * @param conditionMap 鏌ヨ鏉′欢
-     * @param pageHelper 鍒嗛〉鍜屾帓搴�
-     * @return 鎵ц缁撴灉
-     * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
-     */
-    @Override
-    public DataGrid<CodeResembleRuleVO> gridCodeResembleRule(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
-        if (pageHelper == null) {
-            pageHelper = new PageHelper(-1);
-        }
-        pageHelper.addDefaultDesc("createTime");
-        List<CodeResembleRuleDO> doList = codeResembleRuleMapper.selectByCondition(conditionMap,pageHelper);
-        DataGrid<CodeResembleRuleVO> dataGrid=new DataGrid<CodeResembleRuleVO>();
-        if (!CollectionUtils.isEmpty(doList)) {
-            dataGrid.setData(codeResembleRuleDO2VOs(doList));
-            dataGrid.setTotal(VciBaseUtil.getInt(String.valueOf(codeResembleRuleMapper.countByCondition(conditionMap))));
-        }
-        return dataGrid;
-    }
+	@Override
+	public CodeResembleRuleVO getObjectByOid(String oid) {
+		return codeResembleRuleDO2VO(selectByOid(oid));
+	}
 
-    /**
-     * 鎵归噺鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞�
-     * @param codeResembleRuleDOs 鏁版嵁瀵硅薄鍒楄〃
-     * @return 鏄剧ず瀵硅薄
-     * @throws VciBaseException 鍙傛暟涓虹┖鎴栬�呬笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父
-     */
-    @Override
-    public List<CodeResembleRuleVO> codeResembleRuleDO2VOs(Collection<CodeResembleRuleDO>  codeResembleRuleDOs) throws VciBaseException{
-        List<CodeResembleRuleVO> voList = new ArrayList<CodeResembleRuleVO>();
-        if(!CollectionUtils.isEmpty(codeResembleRuleDOs)){
-           for(CodeResembleRuleDO s: codeResembleRuleDOs){
-                CodeResembleRuleVO vo =  codeResembleRuleDO2VO(s);
-                if(vo != null){
-                    voList.add(vo);
-                }
-            }
-        }
-        return voList;
-    }
-
-    /**
-     * 鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞�
-     * @param  codeResembleRuleDO 鏁版嵁瀵硅薄
-     * @return 鏄剧ず瀵硅薄
-     * @throws VciBaseException 鎷疯礉灞炴�у嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
-     */
-    @Override
-    public  CodeResembleRuleVO codeResembleRuleDO2VO(CodeResembleRuleDO codeResembleRuleDO) throws VciBaseException{
-              CodeResembleRuleVO vo = new CodeResembleRuleVO();
-        if(codeResembleRuleDO != null){
-            BeanUtilForVCI.copyPropertiesIgnoreCase(codeResembleRuleDO,vo);
-            //濡傛灉鏈塴cstatus鐨勭被鐨勮瘽
-                         vo.setLcStatusText(FrameworkDataLCStatus.getTextByValue(vo.getLcStatus()));
-
-        }
-        return vo;
-    }
-
-    /**
-     * 澧炲姞鐩镐技鏌ヨ瑙勫垯
-     * @param codeResembleRuleDTO 鐩镐技鏌ヨ瑙勫垯鏁版嵁浼犺緭瀵硅薄
-     * @return 鎵ц缁撴灉
-     * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父
-     */
-    @Override
-    public CodeResembleRuleVO addSave(CodeResembleRuleDTO codeResembleRuleDTO) throws VciBaseException{
-        VciBaseUtil.alertNotNull(codeResembleRuleDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄");
-        //灏咲TO杞崲涓篋O
-        CodeResembleRuleDO codeResembleRuleDO = new CodeResembleRuleDO();
-        BeanUtilForVCI.copyPropertiesIgnoreCase(codeResembleRuleDTO,codeResembleRuleDO);
-        codeResembleRuleMapper.insert(codeResembleRuleDO);
-        return codeResembleRuleDO2VO(codeResembleRuleDO);
-    }
-
-    /**
-     * 淇敼鐩镐技鏌ヨ瑙勫垯
-     * @param codeResembleRuleDTO 鐩镐技鏌ヨ瑙勫垯鏁版嵁浼犺緭瀵硅薄
-     * @return 鎵ц缁撴灉
-     * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父
-     */
-     @Override
-     public CodeResembleRuleVO editSave(CodeResembleRuleDTO codeResembleRuleDTO) throws VciBaseException{
-         VciBaseUtil.alertNotNull(codeResembleRuleDTO,"鏁版嵁瀵硅薄",codeResembleRuleDTO.getOid(),"鐩镐技鏌ヨ瑙勫垯涓婚敭");
-         //灏咲TO杞崲涓篋O
-         CodeResembleRuleDO codeResembleRuleDO = selectByOid(codeResembleRuleDTO.getOid());
-         revisionModelUtil.copyFromDTOIgnore(codeResembleRuleDTO,codeResembleRuleDO);
-         codeResembleRuleMapper.updateByPrimaryKey(codeResembleRuleDO);
-         return codeResembleRuleDO2VO(codeResembleRuleDO);
-     }
+	/**
+	 * 涓婚敭鏌ヨ鏁版嵁瀵硅薄
+	 * @param oid 涓婚敭
+	 * @return  鏁版嵁瀵硅薄
+	 * @throws VciBaseException 鍙傛暟涓虹┖锛屽苟涓旀暟鎹笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父
+	 */
+	private CodeResembleRule selectByOid(String oid) throws VciBaseException {
+		VciBaseUtil.alertNotNull(oid,"涓婚敭");
+		CodeResembleRule codeResembleRuleDO = baseMapper.selectById(oid.trim());
+//		CodeResembleRule codeResembleRuleDO = codeResembleRuleMapper.selectByPrimaryKey(oid.trim());
+		if(codeResembleRuleDO == null || StringUtils.isBlank(codeResembleRuleDO.getOid())){
+			throw new VciBaseException(DATA_OID_NOT_EXIST);
+		}
+		return codeResembleRuleDO;
+	}
 
 
-    /**
-     * 鏍¢獙鏄惁鍙互鍒犻櫎锛屽鏋滃瓨鍦ㄤ笅绾э紝骞朵笖涓嬬骇鏈夋暟鎹紩鐢ㄥ垯涓嶈兘鍒犻櫎
-     * @param codeResembleRuleDTO 鏁版嵁浼犺緭瀵硅薄
-     * @param codeResembleRuleDO 鏁版嵁搴撲腑鐨勬暟鎹璞�
-     * @return success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾�
-     */
-    private BaseResult checkIsCanDeleteForDO(CodeResembleRuleDTO codeResembleRuleDTO, CodeResembleRuleDO codeResembleRuleDO) {
-            CodeResembleRuleDO tsDO = new CodeResembleRuleDO();
-            BeanUtilForVCI.copyPropertiesIgnoreCase(codeResembleRuleDTO,tsDO);
-        boService.checkTs(tsDO);
-        if(!checkIsLinked(codeResembleRuleDO.getOid())) {
-            return BaseResult.success();
-        }else{
-            return BaseResult.fail(DATA_LINKED_NOT_DELETE,new String[]{""});
-        }
-    }
+	/**
+	 * 鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞�
+	 * @param  codeResembleRuleDO 鏁版嵁瀵硅薄
+	 * @return 鏄剧ず瀵硅薄
+	 * @throws VciBaseException 鎷疯礉灞炴�у嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
+	 */
+	@Override
+	public  CodeResembleRuleVO codeResembleRuleDO2VO(CodeResembleRule codeResembleRuleDO) throws VciBaseException{
+		CodeResembleRuleVO vo = new CodeResembleRuleVO();
+		if(codeResembleRuleDO != null){
+			BeanUtilForVCI.copyPropertiesIgnoreCase(codeResembleRuleDO,vo);
+			//濡傛灉鏈塴cstatus鐨勭被鐨勮瘽
+			vo.setLcStatusText(FrameworkDataLCStatus.getTextByValue(vo.getLcStatus()));
 
-    /**
-    * 鏍¢獙鏄惁琚紩鐢�
-    * @param oid 涓婚敭
-    * @throws VciBaseException 琚紩鐢ㄧ殑鏃跺�欎細鎶涘嚭寮傚父
-    */
-    private boolean checkIsLinked(String oid) throws VciBaseException{
-        //TODO 娣诲姞闇�瑕佹牎楠屽紩鐢ㄧ殑鍦版柟
-        return false;
-    }
+		}
+		return vo;
+	}
 
-    /**
-     * 鍒犻櫎鐩镐技鏌ヨ瑙勫垯
-     * @param codeResembleRuleDTO 鐩镐技鏌ヨ瑙勫垯鏁版嵁浼犺緭瀵硅薄锛宱id鍜宼s闇�瑕佷紶杈�
-     * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐�
-     * @throws VciBaseException 鍙傛暟涓虹┖锛岃寮曠敤鏃舵姏鍑哄紓甯�
-     */
-    @Override
-    public BaseResult deleteCodeResembleRule(CodeResembleRuleDTO codeResembleRuleDTO) throws VciBaseException{
-        VciBaseUtil.alertNotNull(codeResembleRuleDTO,"鐩镐技鏌ヨ瑙勫垯鏁版嵁瀵硅薄",codeResembleRuleDTO.getOid(),"鐩镐技鏌ヨ瑙勫垯鐨勪富閿�");
-        CodeResembleRuleDO codeResembleRuleDO = selectByOid(codeResembleRuleDTO.getOid());
-        BaseResult baseResult = checkIsCanDeleteForDO(codeResembleRuleDTO,codeResembleRuleDO);
-        if(baseResult.isSuccess()) {
-                    }else{
-            return baseResult;
-        }
-        //鎵ц鍒犻櫎鎿嶄綔
-        BatchCBO batchCBO = codeResembleRuleMapper.deleteByPrimaryKey(codeResembleRuleDO.getOid());
-        return (batchCBO!=null && batchCBO.getDeleteCbos() !=null &&batchCBO.getDeleteCbos().size() > 0)?BaseResult.successMsg(DELETE_SUCCESS):BaseResult.fail(DELETE_FAIL);
-    }
+	/**
+	 * 鏌ヨ鎵�鏈夌殑鐩镐技鏌ヨ瑙勫垯
+	 * @param conditionMap 鏌ヨ鏉′欢
+	 * @param pageHelper 鍒嗛〉鍜屾帓搴�
+	 * @return 鎵ц缁撴灉
+	 * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
+	 */
+	@Override
+	public DataGrid<CodeResembleRuleVO> gridCodeResembleRule(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
+		if (pageHelper == null) {
+			pageHelper = new PageHelper(-1);
+		}
+		Query query = new Query();
+		query.setSize(pageHelper.getLimit());
+		query.setCurrent(pageHelper.getPage());
+		query.setDescs("createTime");
+		MPJLambdaWrapper<CodeResembleRule> mpjLambdaWrapper = new MPJLambdaWrapper<>(CodeResembleRule.class,CodeTableNameEnum.PL_CODE_RULE.getText());
+		Map<String, Object> condition = new HashMap<>(conditionMap);
+		// 娣诲姞where鏉′欢
+		UBCSSqlKeyword.buildConditionByAs(condition,mpjLambdaWrapper,CodeTableNameEnum.PL_CODE_RULE.getText());
+		IPage<CodeResembleRule> codeResembleRuleIPage = baseMapper.selectPage(UBCSCondition.getPage(query), mpjLambdaWrapper);
+		DataGrid<CodeResembleRuleVO> dataGrid=new DataGrid<CodeResembleRuleVO>();
+		if (!CollectionUtils.isEmpty(codeResembleRuleIPage.getRecords())) {
+			dataGrid.setData(codeResembleRuleDO2VOs(codeResembleRuleIPage.getRecords()));
+			dataGrid.setTotal(codeResembleRuleIPage.getTotal());
+		}
+		return dataGrid;
+	}
 
-    /**
-    * 涓婚敭鑾峰彇鐩镐技鏌ヨ瑙勫垯
-    * @param oid 涓婚敭
-    * @return 鐩镐技鏌ヨ瑙勫垯鏄剧ず瀵硅薄
-    * @throws VciBaseException 鍙傛暟涓虹┖锛屾暟鎹笉瀛樺湪鏃朵細鎶涘嚭寮傚父
-    */
-    @Override
-    public  CodeResembleRuleVO getObjectByOid(String oid) throws VciBaseException{
-        return codeResembleRuleDO2VO(selectByOid(oid));
-    }
+	/**
+	 * 鎵归噺鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞�
+	 * @param codeResembleRuleDOs 鏁版嵁瀵硅薄鍒楄〃
+	 * @return 鏄剧ず瀵硅薄
+	 * @throws VciBaseException 鍙傛暟涓虹┖鎴栬�呬笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父
+	 */
+	@Override
+	public List<CodeResembleRuleVO> codeResembleRuleDO2VOs(Collection<CodeResembleRule> codeResembleRuleDOs) throws VciBaseException{
+		List<CodeResembleRuleVO> voList = new ArrayList<CodeResembleRuleVO>();
+		if(!CollectionUtils.isEmpty(codeResembleRuleDOs)){
+			for(CodeResembleRule s: codeResembleRuleDOs){
+				CodeResembleRuleVO vo =  codeResembleRuleDO2VO(s);
+				if(vo != null){
+					voList.add(vo);
+				}
+			}
+		}
+		return voList;
+	}
 
-    /**
-    * 涓婚敭鏌ヨ鏁版嵁瀵硅薄
-    * @param oid 涓婚敭
-    * @return  鏁版嵁瀵硅薄
-    * @throws VciBaseException 鍙傛暟涓虹┖锛屽苟涓旀暟鎹笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父
-    */
-    private CodeResembleRuleDO selectByOid(String oid) throws VciBaseException{
-        VciBaseUtil.alertNotNull(oid,"涓婚敭");
-        CodeResembleRuleDO codeResembleRuleDO = codeResembleRuleMapper.selectByPrimaryKey(oid.trim());
-        if(codeResembleRuleDO == null || StringUtils.isBlank(codeResembleRuleDO.getOid())){
-            throw new VciBaseException(DATA_OID_NOT_EXIST);
-        }
-        return codeResembleRuleDO;
-    }
+//	/**
+//	 * 鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞�
+//	 * @param  codeResembleRuleDO 鏁版嵁瀵硅薄
+//	 * @return 鏄剧ず瀵硅薄
+//	 * @throws VciBaseException 鎷疯礉灞炴�у嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
+//	 */
+//	@Override
+//	public  CodeResembleRuleVO codeResembleRuleDO2VO(CodeResembleRule codeResembleRuleDO) throws VciBaseException{
+//		CodeResembleRuleVO vo = new CodeResembleRuleVO();
+//		if(codeResembleRuleDO != null){
+//			BeanUtilForVCI.copyPropertiesIgnoreCase(codeResembleRuleDO,vo);
+//			//濡傛灉鏈塴cstatus鐨勭被鐨勮瘽
+//			vo.setLcStatusText(FrameworkDataLCStatus.getTextByValue(vo.getLcStatus()));
+//
+//		}
+//		return vo;
+//	}
 
-    /**
-     * 涓婚敭鎵归噺鑾峰彇鐩镐技鏌ヨ瑙勫垯
-     * @param oidCollections 涓婚敭闆嗗悎锛屼絾鏄彈鎬ц兘褰卞搷锛屽缓璁竴娆℃煡璇笉瓒呰繃10000涓�
-     * @return 鐩镐技鏌ヨ瑙勫垯鏄剧ず瀵硅薄
-     * @throws VciBaseException 鏌ヨ鍑虹幇寮傚父鏃朵細鎶涘嚭
-     */
-    @Override
-    public Collection<CodeResembleRuleVO> listCodeResembleRuleByOids(Collection<String> oidCollections) throws VciBaseException{
-        VciBaseUtil.alertNotNull(oidCollections,"鏁版嵁瀵硅薄涓婚敭闆嗗悎");
-        List<CodeResembleRuleDO> codeResembleRuleDOList = listCodeResembleRuleDOByOidCollections(oidCollections);
-        return codeResembleRuleDO2VOs(codeResembleRuleDOList);
-    }
+	/**
+	 * 澧炲姞鐩镐技鏌ヨ瑙勫垯
+	 * @param codeResembleRuleDTO 鐩镐技鏌ヨ瑙勫垯鏁版嵁浼犺緭瀵硅薄
+	 * @return 鎵ц缁撴灉
+	 * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父
+	 */
+	@Override
+	public CodeResembleRuleVO addSave(CodeResembleRuleDTO codeResembleRuleDTO) throws VciBaseException{
+		VciBaseUtil.alertNotNull(codeResembleRuleDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄");
+		//灏咲TO杞崲涓篋O
+		CodeResembleRule codeResembleRuleDO = new CodeResembleRule();
+		BeanUtilForVCI.copyPropertiesIgnoreCase(codeResembleRuleDTO,codeResembleRuleDO);
+		DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeResembleRuleDO, MdmBtmTypeConstant.CODE_RESEMBLE_RULE);
+		codeResembleRuleDO.setTenantId(AuthUtil.getTenantId());
+		codeResembleRuleDO.setLctid("frameworkDataLc");
+		codeResembleRuleDO.setLcStatus("Enabled");
+		codeResembleRuleDO.setOwner(AuthUtil.getUser().getUserName());
+		codeResembleRuleDO.setLastModifier(AuthUtil.getUser().getUserName());
+		baseMapper.insert(codeResembleRuleDO);
+		return codeResembleRuleDO2VO(codeResembleRuleDO);
+	}
 
-    /**
-    * 浣跨敤涓婚敭闆嗗悎鏌ヨ鏁版嵁瀵硅薄
-    * @param oidCollections 涓婚敭鐨勯泦鍚�
-    * @return 鏁版嵁瀵硅薄鍒楄〃
-    */
-    private List<CodeResembleRuleDO> listCodeResembleRuleDOByOidCollections(Collection<String> oidCollections){
-        List<CodeResembleRuleDO> codeResembleRuleDOList = new ArrayList<CodeResembleRuleDO>();
-        if(!CollectionUtils.isEmpty(oidCollections)){
-            Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections);
-            for(Collection<String> oids: oidCollectionsList){
-                List<CodeResembleRuleDO> tempDOList =  codeResembleRuleMapper.selectByPrimaryKeyCollection(oids);
-                if(!CollectionUtils.isEmpty(tempDOList)){
-                        codeResembleRuleDOList.addAll(tempDOList);
-                }
-            }
-        }
-        return  codeResembleRuleDOList;
-    }
+	/**
+	 * 淇敼鐩镐技鏌ヨ瑙勫垯
+	 * @param codeResembleRuleDTO 鐩镐技鏌ヨ瑙勫垯鏁版嵁浼犺緭瀵硅薄
+	 * @return 鎵ц缁撴灉
+	 * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父
+	 */
+	@Override
+	public CodeResembleRuleVO editSave(CodeResembleRuleDTO codeResembleRuleDTO) throws VciBaseException{
+		VciBaseUtil.alertNotNull(codeResembleRuleDTO,"鏁版嵁瀵硅薄",codeResembleRuleDTO.getOid(),"鐩镐技鏌ヨ瑙勫垯涓婚敭");
+		//灏咲TO杞崲涓篋O
+		CodeResembleRule codeResembleRuleDO = selectByOid(codeResembleRuleDTO.getOid());
+		revisionModelUtil.copyFromDTOIgnore(codeResembleRuleDTO,codeResembleRuleDO);
+		codeResembleRuleDO.setLastModifier(AuthUtil.getUser().getUserName());
+		codeResembleRuleDO.setLastModifyTime(new Date());
+		codeResembleRuleDO.setTs(new Date());
+		baseMapper.updateById(codeResembleRuleDO);
+		return codeResembleRuleDO2VO(codeResembleRuleDO);
+	}
+
+
+	/**
+	 * 鏍¢獙鏄惁鍙互鍒犻櫎锛屽鏋滃瓨鍦ㄤ笅绾э紝骞朵笖涓嬬骇鏈夋暟鎹紩鐢ㄥ垯涓嶈兘鍒犻櫎
+	 * @param codeResembleRuleDTO 鏁版嵁浼犺緭瀵硅薄
+	 * @param codeResembleRuleDO 鏁版嵁搴撲腑鐨勬暟鎹璞�
+	 * @return success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾�
+	 */
+	private R checkIsCanDeleteForDO(CodeResembleRuleDTO codeResembleRuleDTO, CodeResembleRule codeResembleRuleDO) {
+		CodeResembleRule tsDO = new CodeResembleRule();
+		BeanUtilForVCI.copyPropertiesIgnoreCase(codeResembleRuleDTO,tsDO);
+//		boService.checkTs(tsDO);
+//		QueryWrapper<CodeResembleRule> wrapper = new QueryWrapper<>();
+//		wrapper.eq("oid",tsDO.getOid());
+//		wrapper.eq("ts",tsDO.getTs());
+		if(!checkIsLinked(codeResembleRuleDO.getOid())) {
+			return R.success("鍙互鍒犻櫎锛�");
+		}else{
+			return R.fail(DATA_LINKED_NOT_DELETE);
+		}
+	}
+
+	/**
+	 * 鏍¢獙鏄惁琚紩鐢�
+	 * @param oid 涓婚敭
+	 * @throws VciBaseException 琚紩鐢ㄧ殑鏃跺�欎細鎶涘嚭寮傚父
+	 */
+	private boolean checkIsLinked(String oid) throws VciBaseException{
+		//TODO 娣诲姞闇�瑕佹牎楠屽紩鐢ㄧ殑鍦版柟
+		return false;
+	}
+
+	/**
+	 * 鍒犻櫎鐩镐技鏌ヨ瑙勫垯
+	 * @param codeResembleRuleDTO 鐩镐技鏌ヨ瑙勫垯鏁版嵁浼犺緭瀵硅薄锛宱id鍜宼s闇�瑕佷紶杈�
+	 * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐�
+	 * @throws VciBaseException 鍙傛暟涓虹┖锛岃寮曠敤鏃舵姏鍑哄紓甯�
+	 */
+	@Override
+	public R deleteCodeResembleRule(CodeResembleRuleDTO codeResembleRuleDTO) throws VciBaseException{
+		VciBaseUtil.alertNotNull(codeResembleRuleDTO,"鐩镐技鏌ヨ瑙勫垯鏁版嵁瀵硅薄",codeResembleRuleDTO.getOid(),"鐩镐技鏌ヨ瑙勫垯鐨勪富閿�");
+		CodeResembleRule codeResembleRuleDO = selectByOid(codeResembleRuleDTO.getOid());
+		R baseResult = checkIsCanDeleteForDO(codeResembleRuleDTO,codeResembleRuleDO);
+		if(baseResult.isSuccess()) {
+		}else{
+			return baseResult;
+		}
+		//鎵ц鍒犻櫎鎿嶄綔
+//		BatchCBO batchCBO = codeResembleRuleMapper.deleteByPrimaryKey(codeResembleRuleDO.getOid());
+		int i = baseMapper.deleteById(codeResembleRuleDO.getOid());
+		return (i > 0)?R.success(DELETE_SUCCESS):R.fail(DELETE_FAIL);
+	}
+
+//	/**
+//	 * 涓婚敭鏌ヨ鏁版嵁瀵硅薄
+//	 * @param oid 涓婚敭
+//	 * @return  鏁版嵁瀵硅薄
+//	 * @throws VciBaseException 鍙傛暟涓虹┖锛屽苟涓旀暟鎹笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父
+//	 */
+//	private CodeResembleRule selectByOid(String oid) throws VciBaseException{
+//		VciBaseUtil.alertNotNull(oid,"涓婚敭");
+//		CodeResembleRule codeResembleRuleDO = codeResembleRuleMapper.selectByPrimaryKey(oid.trim());
+//		if(codeResembleRuleDO == null || StringUtils.isBlank(codeResembleRuleDO.getOid())){
+//			throw new VciBaseException(DATA_OID_NOT_EXIST);
+//		}
+//		return codeResembleRuleDO;
+//	}
+
+	/**
+	 * 涓婚敭鎵归噺鑾峰彇鐩镐技鏌ヨ瑙勫垯
+	 * @param oidCollections 涓婚敭闆嗗悎锛屼絾鏄彈鎬ц兘褰卞搷锛屽缓璁竴娆℃煡璇笉瓒呰繃10000涓�
+	 * @return 鐩镐技鏌ヨ瑙勫垯鏄剧ず瀵硅薄
+	 * @throws VciBaseException 鏌ヨ鍑虹幇寮傚父鏃朵細鎶涘嚭
+	 */
+	@Override
+	public Collection<CodeResembleRuleVO> listCodeResembleRuleByOids(Collection<String> oidCollections) throws VciBaseException{
+		VciBaseUtil.alertNotNull(oidCollections,"鏁版嵁瀵硅薄涓婚敭闆嗗悎");
+		List<CodeResembleRule> codeResembleRuleDOList = listCodeResembleRuleDOByOidCollections(oidCollections);
+		return codeResembleRuleDO2VOs(codeResembleRuleDOList);
+	}
+
+	/**
+	 * 浣跨敤涓婚敭闆嗗悎鏌ヨ鏁版嵁瀵硅薄
+	 * @param oidCollections 涓婚敭鐨勯泦鍚�
+	 * @return 鏁版嵁瀵硅薄鍒楄〃
+	 */
+	private List<CodeResembleRule> listCodeResembleRuleDOByOidCollections(Collection<String> oidCollections){
+		List<CodeResembleRule> codeResembleRuleDOList = new ArrayList<CodeResembleRule>();
+		if(!CollectionUtils.isEmpty(oidCollections)){
+			Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections);
+			for(Collection<String> oids: oidCollectionsList){
+				List<CodeResembleRule> tempDOList =  baseMapper.selectBatchIds(oids);
+				if(!CollectionUtils.isEmpty(tempDOList)){
+					codeResembleRuleDOList.addAll(tempDOList);
+				}
+			}
+		}
+		return  codeResembleRuleDOList;
+	}
 
 
 
-    /**
-     * 鍙傜収鐩镐技鏌ヨ瑙勫垯鍒楄〃
-     * @param conditionMap 鏌ヨ鏉′欢
-     * @param pageHelper 鍒嗛〉鍜屾帓搴�
-     * @return 鐩镐技鏌ヨ瑙勫垯鏄剧ず瀵硅薄鍒楄〃锛岀敓鏁堢殑鍐呭
-     * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
-     */
-    @Override
-    public DataGrid<CodeResembleRuleVO> refDataGridCodeResembleRule(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
-        if(conditionMap == null){
-            conditionMap = new HashMap<String, String>();
-        }
-        return gridCodeResembleRule(conditionMap,pageHelper);
-    }
+	/**
+	 * 鍙傜収鐩镐技鏌ヨ瑙勫垯鍒楄〃
+	 * @param conditionMap 鏌ヨ鏉′欢
+	 * @param pageHelper 鍒嗛〉鍜屾帓搴�
+	 * @return 鐩镐技鏌ヨ瑙勫垯鏄剧ず瀵硅薄鍒楄〃锛岀敓鏁堢殑鍐呭
+	 * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
+	 */
+	@Override
+	public DataGrid<CodeResembleRuleVO> refDataGridCodeResembleRule(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
+		if(conditionMap == null){
+			conditionMap = new HashMap<String, String>();
+		}
+		return gridCodeResembleRule(conditionMap,pageHelper);
+	}
 }
-

--
Gitblit v1.9.3