From 274e31b26d5eba7977018048366dde0000588dc7 Mon Sep 17 00:00:00 2001
From: yuxc <653031404@qq.com>
Date: 星期一, 10 四月 2023 11:37:50 +0800
Subject: [PATCH] 近义词维护、编码定义、模板池等功能的代码实现功能

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/ICodeClassifyServiceImpl.java |  222 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 222 insertions(+), 0 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/ICodeClassifyServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/ICodeClassifyServiceImpl.java
index bd39008..31cea94 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/ICodeClassifyServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/ICodeClassifyServiceImpl.java
@@ -1,14 +1,28 @@
 package com.vci.ubcs.code.service.impl;
 
+import com.alibaba.nacos.common.utils.StringUtils;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
 import com.vci.ubcs.code.entity.CodeClassify;
 import com.vci.ubcs.code.mapper.CodeClassifyMapper;
 import com.vci.ubcs.code.service.ICodeClassifyService;
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
+import com.vci.ubcs.core.log.exception.ServiceException;
+import jodd.bean.BeanUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
+import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Service
 public class ICodeClassifyServiceImpl extends ServiceImpl<CodeClassifyMapper, CodeClassify> implements ICodeClassifyService {
@@ -26,5 +40,213 @@
 		return codeClassifyMapper.selectList(wrapper);
 	}
 
+	@Override
+	public IPage<CodeClassifyVO> selectPlCodeClassifyPage(IPage<CodeClassifyVO> page, CodeClassifyVO plCodeClassify) {
+		return page.setRecords(codeClassifyMapper.selectPlCodeClassifyPage(page, plCodeClassify));
+	}
+
+	@Override
+	public R addSave(CodeClassify codeClassifyEntity) {
+
+		if(StringUtils.isNotBlank(codeClassifyEntity.getParentCodeClassifyOid()) && StringUtils.isNotBlank(codeClassifyEntity.getBtmTypeId())){
+			return R.fail("鍙湁鍦ㄩ《灞傜殑涓婚搴撳垎绫绘墠鑳借缃笟鍔$被鍨�");
+		}
+		codeClassifyEntity.setCreator(AuthUtil.getUser().getUserName());
+		codeClassifyEntity.setCreateTime(new Date());
+		codeClassifyEntity.setTs(new Date());
+		codeClassifyEntity.setLastModifier(AuthUtil.getUser().getUserName());
+		codeClassifyEntity.setLastModifyTime(new Date());
+		int insertNumber = codeClassifyMapper.insert(codeClassifyEntity);
+		return R.status(SqlHelper.retBool(insertNumber));
+	}
+
+	/**
+	 * 淇敼涓婚搴撳垎绫�
+	 * @param codeClassifyEntity 涓婚搴撳垎绫绘暟鎹紶杈撳璞�
+	 * @return 鎵ц缁撴灉
+	 */
+	@Override
+	public R editSave(CodeClassify codeClassifyEntity) {
+		if(codeClassifyEntity == null || codeClassifyEntity.getOid() == null){
+			return R.fail("浼犲叆鏁版嵁涓嶈兘涓虹┖锛�");
+		}
+		//妫�鏌s
+		Map<String,Object> condition = new HashMap<>(2);
+		condition.put("oid",codeClassifyEntity.getOid());
+		condition.put("ts",codeClassifyEntity.getTs());
+		CodeClassify detail = codeClassifyMapper
+			.selectOne(Condition.getQueryWrapper(condition,CodeClassify.class));
+		if(detail == null){//涓嶆槸鏈�鏂扮殑涓嶈鏀�
+			return R.fail("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒");
+		}
+
+		if(StringUtils.isNotBlank(codeClassifyEntity.getParentCodeClassifyOid()) && StringUtils.isNotBlank(codeClassifyEntity.getBtmTypeId())){
+			return R.fail("鍙湁鍦ㄩ《灞傜殑涓婚搴撳垎绫绘墠鑳借缃笟鍔$被鍨�");
+		}
+		codeClassifyEntity.setLastModifier(AuthUtil.getUser().getUserName());
+		codeClassifyEntity.setLastModifyTime(new Date());
+		int insertNumber = codeClassifyMapper.updateById(codeClassifyEntity);
+
+//         //澶勭悊鏁版嵁闆嗘垚閫昏緫,鎴愬姛鍚庢墽琛岄泦鎴愮涓�姝�,鍒嗙被鏁版嵁鐗规畩澶勭悊銆傚彧鏈夊惎鐢ㄧ姸鎬佺殑鍒嗙被鎵嶆帹閫�
+//         if(FRAMEWORK_DATA_ENABLED.equals(codeClassifyDO.getLcStatus()));
+//         {
+//             codeDuckingServiceI.insertCache1(CACHE_TYPE_CLASSIFY_EDIT,FRAMEWORK_DATA_ENABLED,DOCKING_DEFAULT_CLASSIFY, DOCKING_DEFAULT_CLASSIFYOID, codeClassifyDO.getOid(), codeClassifyDTO.getTs());
+//         }
+		return R.status(SqlHelper.retBool(insertNumber));
+//		return BaseResult.success(codeClassifyDO2VO(codeClassifyDO));
+	}
+
+	/**
+	 * 妫�鏌� 涓婚搴撳垎绫绘槸鍚﹀垹闄�
+	 * @param codeClassifyEntity 涓婚搴撳垎绫绘暟鎹紶杈撳璞★紝蹇呴』瑕佹湁oid鍜宼s灞炴��
+	 * @return 鎵ц缁撴灉 success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾�
+	 */
+	@Override
+	public R checkIsCanDelete(CodeClassify codeClassifyEntity) {
+		if(codeClassifyEntity == null || codeClassifyEntity.getOid() == null){
+			return R.fail("浼犲叆鏁版嵁涓嶈兘涓虹┖锛�");
+		}
+		codeClassifyEntity = selectByOid(codeClassifyEntity.getOid());
+		return checkIsCanDeleteForDO(codeClassifyEntity);
+	}
+
+	/**
+	 * 涓婚敭鏌ヨ鏁版嵁瀵硅薄
+	 * @param oid 涓婚敭
+	 * @return  鏁版嵁瀵硅薄
+	 */
+	private CodeClassify selectByOid(String oid){
+
+		CodeClassify codeClassifyEntity = codeClassifyMapper.selectById(oid.trim());
+		if(codeClassifyEntity == null || StringUtils.isBlank(codeClassifyEntity.getOid())){
+			throw new ServiceException("dataOidNotExist");//鏍规嵁涓婚敭id鏈煡鍒扮浉鍏虫暟鎹�
+		}
+		return codeClassifyEntity;
+	}
+
+	/**
+	 * 鏍¢獙鏄惁鍙互鍒犻櫎锛屽鏋滃瓨鍦ㄤ笅绾э紝骞朵笖涓嬬骇鏈夋暟鎹紩鐢ㄥ垯涓嶈兘鍒犻櫎
+	 * @param codeClassifyEntity 鏁版嵁搴撲腑鐨勬暟鎹璞�
+	 * @return success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾�
+	 */
+	private R checkIsCanDeleteForDO(CodeClassify codeClassifyEntity) {
+
+		//妫�鏌s
+		Map<String,Object> condition = new HashMap<>(2);
+		condition.put("oid",codeClassifyEntity.getOid());
+		condition.put("ts",codeClassifyEntity.getTs());
+		CodeClassify detail = codeClassifyMapper
+			.selectOne(Condition.getQueryWrapper(condition,CodeClassify.class));
+		if(detail == null){//涓嶆槸鏈�鏂扮殑涓嶈鏀�
+			throw new ServiceException("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒");
+//			return R.fail("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒");
+		}
+		//鏍¢獙涓嬬骇鏄惁鏈夊紩鐢�
+		if(checkChildIsLinked(detail.getOid())){
+			return R.fail("dataCascadeLinkedNotDelete");
+		}
+		return R.data(checkHasChild(detail.getOid()));
+	}
+
+	/**
+	 * 妫�鏌ユ槸鍚︽湁涓嬬骇鏄惁鍏宠仈浜嗘暟鎹�
+	 *
+	 * @param oid 涓婚敭
+	 * @return true 琛ㄧず鏈夊紩鐢紝false琛ㄧず娌℃湁寮曠敤
+	 */
+	@Override
+	public boolean checkChildIsLinked(String oid) {
+
+		Map<String,String> childOids = codeClassifyMapper.selectAllLevelChildOid(oid.trim());
+		if(!CollectionUtils.isEmpty(childOids)){
+			for(String childOid: childOids.keySet()){
+				if(!checkIsLinked(childOid)){
+					return false;
+				}
+			}
+			return true;
+		}
+		return false;
+	}
+
+	/**
+	 * 鏍¢獙鏄惁琚紩鐢�
+	 * @param oid 涓婚敭
+	 */
+	private boolean checkIsLinked(String oid) {
+		//TODO 娣诲姞闇�瑕佹牎楠屽紩鐢ㄧ殑鍦版柟
+		return false;
+	}
+
+	@Override
+	public boolean checkHasChild(String oid) {
+		if(StringUtils.isBlank(oid)){
+			throw new ServiceException("oid涓嶈兘涓虹┖锛�");
+		}
+		return codeClassifyMapper.checkHasChild(oid.trim());
+	}
+
+
+	/**
+	 * 鍒犻櫎涓婚搴撳垎绫�
+	 * @param codeClassify 涓婚搴撳垎绫绘暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈�
+	 * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐�
+	 */
+	@Override
+	public R deleteCodeClassify(CodeClassify codeClassify) {
+
+		if(codeClassify == null || codeClassify.getOid() == null){
+			throw new ServiceException("浼犲叆鍙傛暟涓嶈兘涓虹┖锛�");
+		}
+		codeClassify = codeClassifyMapper.selectById(codeClassify.getOid());
+
+		R result = checkIsCanDeleteForDO(codeClassify);
+
+		//鍏堢畝绉版槸鍚︽湁鍏宠仈妯℃澘锛屾湁妯℃澘瑕佸厛鍒犻櫎
+//		VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(CodeClassifyTemplateDO.class);
+//		queryWrapper.addQueryMap("codeClassifyOid",codeClassifyDTO.getOid());
+//		List<CodeClassifyTemplateDO> codeClassifyTemplateDOListHaveTemplate =  codeClassifyTemplateMapper.selectByWrapper(queryWrapper);
+//		if(codeClassifyTemplateDOListHaveTemplate.size()>0){
+//			return BaseResult.fail("鍒嗙被鍏宠仈妯℃澘锛岃鍏堝垹闄�!");
+//		}
+//
+//		//澶勭悊鏁版嵁闆嗘垚閫昏緫,鎴愬姛鍚庢墽琛岄泦鎴愮涓�姝�,鍒嗙被鏁版嵁鐗规畩澶勭悊銆�
+//		//1銆佹煡璇㈣鍒犻櫎鐨勭埗绫绘暟鎹�
+//		List<CodeClassifyDO> deletes = new ArrayList<CodeClassifyDO>();
+//		deletes.add(codeClassifyDO);
+//
+//		if(result.isSuccess()) {
+//			//鎵句笅绾х殑锛岃繖涓槸鍙互鍒犻櫎鐨勬椂鍊�
+//			Map<String,String> childrenOids = codeClassifyMapper.selectAllLevelChildOid(codeClassifyDO.getOid().trim());
+//			if (!CollectionUtils.isEmpty(childrenOids)) {
+//				Collection<Collection<String>> childrenCollections = VciBaseUtil.switchCollectionForOracleIn(childrenOids.keySet());
+//				for(Collection<String> s : childrenCollections){
+//
+//					//澶勭悊鏁版嵁闆嗘垚閫昏緫,鎴愬姛鍚庢墽琛岄泦鎴愮涓�姝�,鍒嗙被鏁版嵁鐗规畩澶勭悊銆�
+//					//2銆佹煡璇㈣鍒犻櫎鐨勫瓙绫绘暟鎹�
+//					List<CodeClassifyDO>  codeClassifyDOList = codeClassifyMapper.selectByPrimaryKeyCollection(s);
+//					deletes.addAll(codeClassifyDOList);
+//
+//					codeClassifyMapper.batchDeleteByOids(s);
+//				}
+//
+//			}
+//		}else{
+//			return baseResult;
+//		}
+//
+//		//鎵ц鍒犻櫎鎿嶄綔
+//		BatchCBO batchCBO = codeClassifyMapper.deleteByPrimaryKey(codeClassifyDO.getOid());
+//
+//		//澶勭悊鏁版嵁闆嗘垚閫昏緫,鎴愬姛鍚庢墽琛岄泦鎴愮涓�姝�
+//		for (CodeClassifyDO codeClassifyDO1:deletes){
+//			//codeDuckingServiceI.insertCache1(CACHE_TYPE_CLASSIFY_DELETE,FRAMEWORK_DATA_DISABLED,DOCKING_DEFAULT_CLASSIFY, DOCKING_DEFAULT_CLASSIFYOID, codeClassifyDO1.getOid(), DateUtils.addHours(new Date(),1));//杩欓噷鏄綋鍓嶆椂闂�
+//
+//			//瀛樺偍瑕佸垹闄ょ殑鏁版嵁
+//			codeDuckingServiceI.cacheDeleteData(codeClassifyDO1.getOid(), codeClassifyDO1);
+//		}
+//		return (batchCBO!=null && batchCBO.getDeleteCbos() !=null &&batchCBO.getDeleteCbos().size() > 0)?BaseResult.successMsg(DELETE_SUCCESS):BaseResult.fail(DELETE_FAIL);
+		return null;
+	}
 
 }

--
Gitblit v1.9.3