From a6e6575bc3d668e14009ed0e931a376f1a4d86ff Mon Sep 17 00:00:00 2001
From: yuxc <653031404@qq.com>
Date: 星期六, 06 五月 2023 18:59:29 +0800
Subject: [PATCH] 编码管理代码上传

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java |  104 ++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 88 insertions(+), 16 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
index cab8c88..fef2e76 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
@@ -2,13 +2,13 @@
 
 import com.alibaba.cloud.commons.lang.StringUtils;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
 import com.vci.ubcs.code.dto.CodeBasicSecDTO;
 import com.vci.ubcs.code.entity.CodeBasicSec;
-import com.vci.ubcs.code.entity.CodeClassify;
 import com.vci.ubcs.code.entity.CodeClassifyValue;
 import com.vci.ubcs.code.entity.CodeFixedValue;
 import com.vci.ubcs.code.enumpack.*;
@@ -18,8 +18,10 @@
 import com.vci.ubcs.code.mapper.CodeFixedValueMapper;
 import com.vci.ubcs.code.service.ICodeBasicSecService;
 import com.vci.ubcs.code.service.ICodeClassifyValueService;
+import com.vci.ubcs.code.service.ICodeFixedValueService;
 import com.vci.ubcs.code.service.ICodeRuleService;
 import com.vci.ubcs.code.vo.pagemodel.CodeBasicSecVO;
+import com.vci.ubcs.code.vo.pagemodel.CodeFixedValueVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
 import com.vci.ubcs.code.wrapper.CodeBasicSecWrapper;
 import com.vci.ubcs.starter.exception.VciBaseException;
@@ -35,6 +37,7 @@
 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.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -84,6 +87,12 @@
 	private IDictBizClient iDictBizClient;
 
 	/**
+	 * 鍥哄畾鐮佹鐨勭爜鍊肩殑鏈嶅姟
+	 */
+	@Resource
+	private ICodeFixedValueService fixedValueService;
+
+	/**
 	 * 涓婂眰鍒嗙被鐮佹鐨勫睘鎬у悕绉�
 	 */
 	private static  final String PARENT_FIELD_NAME = "parentclassifysecoid";
@@ -124,12 +133,8 @@
 		if (CollectionUtils.isEmpty(deleteList)){
 			return true;
 		}
-		boolean deletFlag = false;
 		// 2銆佸啀鍒犻櫎鍩虹鐮佹
-		Set<String> basicOids = deleteList.stream().map(CodeBasicSec::getOid).collect(Collectors.toSet());
-		if(basicOids.size()>0 || !Func.isEmpty(basicOids)){
-			deletFlag = codeBasicSecMapper.deleteBatchIds(basicOids) > 0;
-		}
+		boolean deletFlag = codeBasicSecMapper.deleteBatchIds(deleteList.stream().map(CodeBasicSec::getOid).collect(Collectors.toSet())) > 0;
 		// 3銆佸啀鏍规嵁鍒犻櫎鍥哄畾鐮佹锛屼笡鏌ヨ鍑烘潵鐨勫熀纭�鐮佹涓繃婊ゅ嚭鍖呭惈鍥哄畾鐮佹鐨勮褰�
 		List<CodeBasicSec> fixedSecList = deleteList.stream().filter(sec -> {
 			return CodeSecTypeEnum.CODE_FIXED_SEC.getValue().equals(sec.getSecType());
@@ -139,11 +144,8 @@
 			Set<String> fixedSecOidSet = fixedSecList.stream().map(CodeBasicSec::getOid).collect(Collectors.toSet());
 			// 閫氳繃澶栭敭杩涜鏌ヨ
 			List<CodeFixedValue> fixedValueS = fixedValueMapper.selectList(Wrappers.<CodeFixedValue>query().lambda().in(CodeFixedValue::getCodeFixedSecOid,fixedSecOidSet));
-			Set<String> collectOid = fixedValueS.stream().map(CodeFixedValue::getOid).collect(Collectors.toSet());
-			if(collectOid.size()>0 || !Func.isEmpty(collectOid)){
-				// 鏍规嵁鏌ヨ鍑烘潵鐨刬d鎵ц鍥哄畾鐮佹鎵ц鍒犻櫎
-				fixedValueMapper.deleteBatchIds(collectOid);
-			}
+			// 鏍规嵁鏌ヨ鍑烘潵鐨刬d鎵ц鍥哄畾鐮佹鎵ц鍒犻櫎
+			deletFlag = fixedValueMapper.deleteBatchIds(fixedValueS.stream().map(CodeFixedValue::getOid).collect(Collectors.toSet()))>0;
 		}
 		// 4銆佸啀鍒犻櫎鍒嗙被鐮佹
 		List<CodeBasicSec> classifySecList = deleteList.stream().filter(sec -> {
@@ -153,12 +155,9 @@
 			// 灏嗚浣滀负鍒犻櫎鏉′欢鐨勫�兼斁鍦ㄤ竴涓泦鍚堥噷闈�
 			Set<String> classifySecOidSet = classifySecList.stream().map(CodeBasicSec::getOid).collect(Collectors.toSet());
 			// 閫氳繃澶栭敭杩涜鏌ヨ
-			List<CodeClassifyValue> classifyValues = codeClassifyValueMapper.selectList(Wrappers.<CodeClassifyValue>query().lambda().in(CodeClassifyValue::getCodeClassifySecOid,classifySecOidSet));
+			List<CodeClassifyValue> fixedValueS = codeClassifyValueMapper.selectList(Wrappers.<CodeClassifyValue>query().lambda().in(CodeClassifyValue::getCodeClassifySecOid,classifySecOidSet));
 			// 鏍规嵁鏌ヨ鍑烘潵鐨勪富閿甶d鎵ц鍥哄畾鐮佹鎵ц鍒犻櫎
-			Set<String> codeclassifyOids = classifyValues.stream().map(CodeClassifyValue::getOid).collect(Collectors.toSet());
-			if(codeclassifyOids.size()>0 || !Func.isEmpty(codeclassifyOids)){
-				fixedValueMapper.deleteBatchIds(codeclassifyOids);
-			}
+			deletFlag = fixedValueMapper.deleteBatchIds(fixedValueS.stream().map(CodeClassifyValue::getOid).collect(Collectors.toSet()))>0;
 		}
 		return deletFlag;
 	}
@@ -683,4 +682,77 @@
 		return codeBasicSecDO;
 	}
 
+
+	/**
+	 * 浣跨敤瑙勫垯鐨勪富閿幏鍙栧搴旂殑鐮佹鍐呭
+	 *
+	 * @param ruleOid 瑙勫垯鐨勫唴瀹�
+	 * @return 鐮佹鐨勫唴瀹�
+	 */
+	@Override
+	public List<CodeBasicSecVO> listCodeBasicSecByRuleOid(String ruleOid) {
+		if(StringUtils.isBlank(ruleOid)){
+			return new ArrayList<>();
+		}
+		Map<String,String> conditionMap = new HashMap<>();
+		conditionMap.put("pkCodeRule",ruleOid);
+//		PageHelper pageHelper = new PageHelper(-1);
+//		pageHelper.addDefaultAsc("ordernum");
+		QueryWrapper<CodeBasicSec> wrapper = new QueryWrapper<>();
+		wrapper.orderByAsc("ordernum");
+		List<CodeBasicSec> secDOList = codeBasicSecMapper.selectList(wrapper);//.selectByCondition(conditionMap, pageHelper);
+		return codeBasicSecDO2VOs(secDOList,true);
+	}
+
+	/**
+	 * 鎵归噺鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞�
+	 *
+	 * @param codeBasicSecDOs 鏁版嵁瀵硅薄鍒楄〃
+	 * @param hasFixedValue 鏄惁鏈夊浐瀹氬��
+	 * @return 鏄剧ず瀵硅薄
+	 * @throws VciBaseException 鍙傛暟涓虹┖鎴栬�呬笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父
+	 */
+	@Override
+	public List<CodeBasicSecVO> codeBasicSecDO2VOs(Collection<CodeBasicSec> codeBasicSecDOs, boolean hasFixedValue) throws VciBaseException {
+		List<CodeBasicSecVO> voList = new ArrayList<CodeBasicSecVO>();
+		if (!CollectionUtils.isEmpty(codeBasicSecDOs)) {
+			for (CodeBasicSec s : codeBasicSecDOs) {
+				CodeBasicSecVO vo = codeBasicSecDO2VO(s);
+				if (vo != null) {
+					voList.add(vo);
+				}
+			}
+		}
+		if(hasFixedValue && !CollectionUtils.isEmpty(voList)){
+			List<CodeBasicSecVO> fixedSecVOList = voList.stream().filter(s -> CodeSecTypeEnum.CODE_FIXED_SEC.getValue().equalsIgnoreCase(s.getSecType())).collect(Collectors.toList());
+			if(!CollectionUtils.isEmpty(fixedSecVOList)){
+				//鏌ヨ鍥哄畾鐮佺殑鐮佸��
+				Map<String, List<CodeFixedValueVO>> secValueMap = fixedValueService.listCodeFixedValueBySecOids(fixedSecVOList.stream().map(CodeBasicSecVO::getOid).collect(Collectors.toList()));
+				voList.stream().forEach(vo->{
+					vo.setFixedValueVOList(secValueMap.getOrDefault(vo.getOid(),null));
+				});
+			}
+		}
+		return voList;
+	}
+
+	/**
+	 * 鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞�
+	 *
+	 * @param codeBasicSecDO 鏁版嵁瀵硅薄
+	 * @return 鏄剧ず瀵硅薄
+	 * @throws VciBaseException 鎷疯礉灞炴�у嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
+	 */
+	@Override
+	public CodeBasicSecVO codeBasicSecDO2VO(CodeBasicSec codeBasicSecDO) throws VciBaseException {
+		CodeBasicSecVO vo = new CodeBasicSecVO();
+		if (codeBasicSecDO != null) {
+			BeanUtilForVCI.copyPropertiesIgnoreCase(codeBasicSecDO, vo);
+			//濡傛灉鏈塴cstatus鐨勭被鐨勮瘽
+			if (true) {
+				//vo.setLcStatusText({lcStatusFullClassName}.getTextByValue(vo.getLcStatus()));
+			}
+		}
+		return vo;
+	}
 }

--
Gitblit v1.9.3