From 931eb15f748f181fbf347508830f21830f09c863 Mon Sep 17 00:00:00 2001
From: 1428594221 <1428594221@qq.com>
Date: 星期三, 14 六月 2023 18:10:43 +0800
Subject: [PATCH] 默认参照数接口,默认参照列表接口

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java |  182 +++++++++++++++++++++++++++++++--------------
 1 files changed, 126 insertions(+), 56 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
index f5be509..174ec33 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
@@ -9,22 +9,22 @@
 import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
 import com.vci.ubcs.code.entity.CodeClassify;
 import com.vci.ubcs.code.entity.CodeClassifyTemplate;
-import com.vci.ubcs.code.entity.CodeOsbtmtypeEntity;
-import com.vci.ubcs.code.entity.CodeOsbtmtypeattributeEntity;
 import com.vci.ubcs.code.enumpack.FrameworkDataLCStatus;
 import com.vci.ubcs.code.mapper.CodeClassifyMapper;
 import com.vci.ubcs.code.mapper.CodeClassifyTemplateMapper;
-import com.vci.ubcs.code.mapper.CodeOsbtmtypeMapper;
-import com.vci.ubcs.code.mapper.CodeOsbtmtypeattributeMapper;
 import com.vci.ubcs.code.po.CodeClassifyPO;
 import com.vci.ubcs.code.service.ICodeClassifyService;
 import com.vci.ubcs.code.service.ICodeKeyAttrRepeatService;
 import com.vci.ubcs.code.service.ICodeRuleService;
-import com.vci.ubcs.code.vo.CodeOsattributeVO;
-import com.vci.ubcs.code.vo.CodeOsbtmtypeVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeKeyAttrRepeatRuleVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
+import com.vci.ubcs.omd.cache.EnumCache;
+import com.vci.ubcs.omd.enums.EnumEnum;
+import com.vci.ubcs.omd.feign.IBtmTypeClient;
+import com.vci.ubcs.omd.vo.BtmTypeAttributeVO;
+import com.vci.ubcs.omd.feign.IBtmTypeClient;
+import com.vci.ubcs.omd.vo.BtmTypeVO;
 import com.vci.ubcs.starter.bo.WriteExcelData;
 import com.vci.ubcs.starter.exception.VciBaseException;
 import com.vci.ubcs.starter.poi.bo.ReadExcelOption;
@@ -46,6 +46,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.launch.constant.AppConstant;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.secure.utils.AuthUtil;
@@ -56,9 +57,11 @@
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
+import java.awt.event.ItemEvent;
 import java.io.File;
 import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.*;
 
@@ -75,15 +78,7 @@
 	private ICodeRuleService codeRuleService;
 
 	@Resource
-	private CodeOsbtmtypeMapper codeOsbtmtypeMapper;
-
-	@Resource
-	private CodeOsbtmtypeattributeMapper codeOsbtmtypeattributeMapper;
-
-	@Resource
 	private IBtmTypeClient btmTypeClient;
-
-
 
 	/**
 	 * 鏃ュ織
@@ -110,6 +105,20 @@
 	public List<CodeClassify> selectByWrapper(Wrapper wrapper) {
 		return codeClassifyMapper.selectList(wrapper);
 	}
+
+	/**
+	 * 鏌ヨ
+	 * @param wrapper 鏌ヨ灏佽鍣�
+	 * @return
+	 */
+	@Override
+	public List<String> select1(Wrapper wrapper) {
+
+		return codeClassifyMapper.selectObjs(wrapper);
+	}
+
+
+
 
 	@Override
 	public IPage<CodeClassifyVO> selectPlCodeClassifyPage(IPage<CodeClassifyVO> page, CodeClassifyVO plCodeClassify) {
@@ -264,7 +273,6 @@
 		return codeClassifyMapper.checkHasChild(oid.trim());
 	}
 
-
 	/**
 	 * 鍒犻櫎涓婚搴撳垎绫�
 	 * @param codeClassify 涓婚搴撳垎绫绘暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈�
@@ -369,7 +377,6 @@
 		return codeClassifyDO2VOs(codeClassifyDOList);
 	}
 
-
 	/**
 	 * 浣跨敤涓婚敭闆嗗悎鏌ヨ鏁版嵁瀵硅薄
 	 * @param oidCollections 涓婚敭鐨勯泦鍚�
@@ -388,7 +395,6 @@
 		}
 		return  codeClassifyList;
 	}
-
 
 	/**
 	 * 鎵归噺鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞�
@@ -448,13 +454,43 @@
 	}
 
 	/**
+	 * 涓婚敭鏌ヨ鏁版嵁瀵硅薄,鍏宠仈鏌ヨ
+	 * @param oid 涓婚敭
+	 * @return  鏁版嵁瀵硅薄
+	 */
+	private CodeClassify selectByOidRel(String oid){
+
+		List<CodeClassify> codeClassifyList = codeClassifyMapper.selectClassifyByKeyAndReseRel("'"+oid.trim()+"'");
+//		CodeClassify codeClassifyEntity = (CodeClassify) codeClassifyList;
+		if(codeClassifyList.size() == 0 ){
+			throw new ServiceException("dataNotExist");//鏍规嵁涓婚敭id鏈煡鍒扮浉鍏虫暟鎹�
+		}
+//		if(codeClassifyEntity == null || StringUtils.isBlank(codeClassifyEntity.getOid())){
+//			throw new ServiceException("dataOidNotExist");//鏍规嵁涓婚敭id鏈煡鍒扮浉鍏虫暟鎹�
+//		}
+		return codeClassifyList.get(0);
+	}
+
+	/**
 	 * 鏌ヨ涓婚搴撳垎绫� 鏍�
 	 * @param treeQueryObject 鏍戞煡璇㈠璞�
 	 * @return 涓婚搴撳垎绫� 鏄剧ず鏍�
 	 */
 	@Override
 	public List<Tree> treeCodeClassify(TreeQueryObject treeQueryObject) {
-		List<CodeClassify> doList =codeClassifyMapper.selectCodeClassifyVOByTree(treeQueryObject.getParentOid());
+		List<CodeClassify> doList = null;
+		String id = null;
+		String lcStatus = null;
+		if(!Objects.isNull(treeQueryObject.getConditionMap())){
+			id = treeQueryObject.getConditionMap().getOrDefault("id",null);
+			lcStatus = treeQueryObject.getConditionMap().getOrDefault("lcStatus",null);
+		}
+		if(StringUtils.isNotBlank(id) || StringUtils.isNotBlank(lcStatus) ){
+			doList = codeClassifyMapper
+				.selectCodeClassifyDOByTree(treeQueryObject.getConditionMap().get("id"),treeQueryObject.getConditionMap().get("lcStatus"),treeQueryObject.getParentOid());
+		}else{
+			doList =codeClassifyMapper.selectCodeClassifyVOByTree(treeQueryObject.getParentOid());
+		}
 		List<CodeClassifyVO> voList = codeClassifyDO2VOs(doList);
 		TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(PARENT_FIELD_NAME.toLowerCase(Locale.ROOT));
 		treeWrapperOptions.copyFromTreeQuery(treeQueryObject);
@@ -674,7 +710,6 @@
 		return excelName;
 	}
 
-
 	/**
 	 * 瀵煎叆鍒嗙被
 	 *
@@ -739,9 +774,10 @@
 
 		List<String> btmOids = poList.stream().filter(s -> StringUtils.isNotBlank(s.getKeyRepeatRuleId()))
 			.map(CodeClassifyPO::getBtmTypeId).collect(Collectors.toList());
-		Map<String, CodeOsbtmtypeEntity> btmVOMap = Optional.ofNullable(btmOids.size()==0 ? null: codeOsbtmtypeMapper.selectBatchIds(btmOids)
-		).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t,(o1,o2)->o2));
-//		Map<String, CodeOsbtmtypeVO> btmVOMap = null;
+		Map<String, BtmTypeVO> btmVOMap = Optional
+			.ofNullable(btmOids.size()==0 ? null: btmTypeClient.selectByIdCollection(btmOids).getData())
+			.orElse(new ArrayList<BtmTypeVO>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t,(o1,o2)->o2));
+		//		Map<String, CodeOsbtmtypeVO> btmVOMap = null;
 		Map<String/**璺緞**/,String/**涓婚敭**/> oidPathMap = new HashMap<>();
 
 		//鎴戜滑闇�瑕佹煡璇㈡墍鏈夊凡缁忓瓨鍦ㄧ殑鍒嗙被锛屼富瑕佹槸璺緞锛岀敤鏉ュ垽鏂垎绫荤殑鏁版嵁
@@ -771,7 +807,7 @@
 			classify.setDescription(po.getDescription());
 			oidPathMap.put(po.getPath(),classify.getOid());
 			if(StringUtils.isNotBlank(po.getBtmTypeId())){
-				CodeOsbtmtypeVO typeVO = (CodeOsbtmtypeVO)btmVOMap.get(po.getBtmTypeId().toLowerCase(Locale.ROOT));
+				BtmTypeVO typeVO = (BtmTypeVO)btmVOMap.get(po.getBtmTypeId().toLowerCase(Locale.ROOT));
 				classify.setBtmTypeId(typeVO.getId());
 				classify.setBtmTypeName(typeVO.getName());
 			}
@@ -882,7 +918,7 @@
 	 * @return 灞炴�х殑淇℃伅锛屽寘鍚粯璁ょ殑灞炴��
 	 */
 	@Override
-	public DataGrid<CodeOsattributeVO> listClassifyLinkAttr(BaseQueryObject baseQueryObject) {
+	public DataGrid<BtmTypeAttributeVO> listClassifyLinkAttr(BaseQueryObject baseQueryObject) throws ServiceException{
 		if(baseQueryObject == null){
 			baseQueryObject = new BaseQueryObject();
 		}
@@ -890,9 +926,13 @@
 			baseQueryObject.setConditionMap(new HashMap<>());
 		}
 		String classifyOid = baseQueryObject.getConditionMap().getOrDefault("codeClassifyOid","");
+		String btmTypeOid = baseQueryObject.getConditionMap().getOrDefault("btmTypeOid","");
 		String id = baseQueryObject.getConditionMap().getOrDefault("id","");
 		String name = baseQueryObject.getConditionMap().getOrDefault("name","");
 		if(StringUtils.isBlank(classifyOid)){
+			return new DataGrid<>();
+		}
+		if(StringUtils.isBlank(btmTypeOid)){
 			return new DataGrid<>();
 		}
 		CodeClassifyVO topClassifyVO = getTopClassifyVO(classifyOid);
@@ -902,23 +942,28 @@
 
 		Map<String,Object> condition = new HashMap<>(1);
 		condition.put("pkbtmtype",topClassifyVO.getBtmtypeid());
-
-		List<CodeOsbtmtypeattributeEntity> unDefaultAttributes = codeOsbtmtypeattributeMapper.selectByMap(condition);
-//		List<OsBtmTypeAttributeVO> unDefaultAttributes = btmService. (topClassifyVO.getBtmtypeid());
-		List<CodeOsattributeVO> attributeVOS = new ArrayList<>();
+		R<BtmTypeVO> btmTypeDetail = btmTypeClient.getDetail(btmTypeOid);
+		if(btmTypeDetail.getCode() != 200){
+			throw new ServiceException("涓氬姟绫诲瀷feign鎺ュ彛璋冪敤鍑洪敊");
+		}
+		List<BtmTypeAttributeVO> unDefaultAttributes = btmTypeDetail.getData().getAttributes();
+		// List<CodeOsbtmtypeattributeEntity> unDefaultAttributes = codeOsbtmtypeattributeMapper.selectByMap(condition);
+		// List<OsBtmTypeAttributeVO> unDefaultAttributes = btmService. (topClassifyVO.getBtmtypeid());
+		List<BtmTypeAttributeVO> attributeVOS = new ArrayList<>();
 		if(!CollectionUtils.isEmpty(unDefaultAttributes)){
 			unDefaultAttributes.stream().forEach(attr->{
-				CodeOsattributeVO attributeVO = new CodeOsattributeVO();
+				BtmTypeAttributeVO attributeVO = new BtmTypeAttributeVO();
 				BeanUtils.copyProperties(attr,attributeVO);
-				attributeVO.setAttributedatatype(attr.getAttrdatatype());
-				attributeVO.setAttrlength(Short.valueOf(attr.getAttributelength()));
-				attributeVO.setBtmtypeid(attr.getReferbtmtypeid());
-				attributeVO.setBtmtypename(attr.getReferbtmtypename());
+				attributeVO.setAttrDataType(attr.getAttrDataType());
+				attributeVO.setAttributeLength(attr.getAttributeLength());
+				attributeVO.setBtmTypeId(btmTypeDetail.getData().getId());
+				attributeVO.setBtmname(btmTypeDetail.getData().getName());
+				attributeVO.setAttrDataTypeText(EnumCache.getValue(EnumEnum.VCI_FIELD_TYPE,attr.getAttrDataType()));
 				boolean add = true;
 				if(StringUtils.isNotBlank(id) && !attributeVO.getId().contains(id.replace("*",""))){
 					add = false;
 				}
-				if(StringUtils.isNotBlank(name) && !attributeVO.getId().contains(name.replace("*",""))){
+				if(StringUtils.isNotBlank(name) && !attributeVO.getName().contains(name.replace("*",""))){
 					add = false;
 				}
 				if(add){
@@ -926,21 +971,37 @@
 				}
 			});
 		}
-//		if(!CollectionUtils.isEmpty(attributeService.getDefaultAttributeVOs())){
-//			attributeService.getDefaultAttributeVOs().stream().forEach(attr->{
-//				boolean add = true;
-//				if(StringUtils.isNotBlank(id) && !attr.getId().contains(id.replace("*",""))){
-//					add = false;
-//				}
-//				if(StringUtils.isNotBlank(name) && !attr.getId().contains(name.replace("*",""))){
-//					add = false;
-//				}
-//				if(add){
-//					attributeVOS.add(attr);
-//				}
-//			});
-//		}
-		DataGrid<CodeOsattributeVO> dataGrid = new DataGrid<>();
+		R<BtmTypeVO> btmTypeVOR = btmTypeClient.getDefaultAttrByBtmId(topClassifyVO.getBtmtypeid());
+		if(btmTypeVOR.getCode() != 200){
+			throw new ServiceException("涓氬姟绫诲瀷feign鎺ュ彛璋冪敤鍑洪敊");
+		}
+		List<BtmTypeAttributeVO> defaultAttrVOS = btmTypeVOR.getData().getAttributes();
+
+		// 鍙栦袱涓泦鍚堝樊闆�
+		List<String> ids = unDefaultAttributes.stream().map(BtmTypeAttributeVO::getId).collect(Collectors.toList());
+		defaultAttrVOS.forEach(item->{
+			if(!ids.contains(item.getId())){
+				BtmTypeAttributeVO attributeVO = new BtmTypeAttributeVO();
+				BeanUtils.copyProperties(item,attributeVO);
+				attributeVO.setAttrDataType(item.getAttrDataType());
+				attributeVO.setAttributeLength(item.getAttributeLength());
+				attributeVO.setBtmTypeId(btmTypeDetail.getData().getId());
+				attributeVO.setBtmname(btmTypeDetail.getData().getName());
+				attributeVO.setAttrDataTypeText(EnumCache.getValue(EnumEnum.VCI_FIELD_TYPE,item.getAttrDataType()));
+				boolean add = true;
+				if(StringUtils.isNotBlank(id) && !item.getId().contains(id.replace("*",""))){
+					add = false;
+				}
+				if(StringUtils.isNotBlank(name) && !item.getName().contains(name.replace("*",""))){
+					add = false;
+				}
+				if(add){
+					attributeVOS.add(attributeVO);
+				}
+			}
+		});
+
+		DataGrid<BtmTypeAttributeVO> dataGrid = new DataGrid<>();
 		dataGrid.setData(attributeVOS);
 		dataGrid.setTotal(attributeVOS.size());
 		return dataGrid;
@@ -989,10 +1050,15 @@
 		}
 
 		//浣跨敤涓婚敭鏌ヨ涓�涓�
-		List<CodeClassify> classifyDOS = codeClassifyMapper.selectBatchIds(oidLevelMap.keySet());
+		String oids = "";
+		for (String s : oidLevelMap.keySet()) {
+			oids += "'"+s+"',";
+		}
+		List<CodeClassify> classifyDOS = codeClassifyMapper.selectClassifyByKeyAndReseRel(oids.substring(0,oids.length()-1));
 		if(!CollectionUtils.isEmpty(classifyDOS)){
 			classifyDOS.stream().forEach(classifyDO->{
 				classifyDO.setDataLevel(VciBaseUtil.getInt(oidLevelMap.getOrDefault(classifyDO.getOid(),"0")));
+				classifyDO.setLcStatusText(EnumCache.getValue("codeLcstatus",classifyDO.getLcStatus()));
 			});
 		}
 		return classifyDOS;
@@ -1026,8 +1092,7 @@
 	}
 
 	/**
-	 * 涓婚搴撶殑鏍�,宸茬粡鑱旇皟涓氬姟绫诲瀷鏌ヨ
-	 *
+	 * 涓婚搴撶殑鏍�,宸茶仈璋冧笟鍔$被鍨嬫煡璇eign
 	 * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄
 	 * @return 涓婚搴撴樉绀烘爲
 	 */
@@ -1048,8 +1113,14 @@
 		if(Func.isEmpty(btmTypeVOS) || Func.isEmpty(trees)){
 			return null;
 		}
-		List<Tree> treeList = trees.stream().filter(tree -> btmTypeVOS.stream().
-			anyMatch(btmType -> Objects.equals(tree.getAttributes().get("id"), btmType.getId()))).collect(Collectors.toList());
+		List<Tree> treeList = trees.stream().filter(tree -> !CollectionUtils.isEmpty(btmTypeVOS.stream().filter(btmType -> {
+					if(Objects.equals(tree.getAttributes().get("id"), btmType.getId())){
+						tree.getAttributes().put("btmTypeOid",btmType.getOid());
+						return true;
+					}
+					return false;
+				}).collect(Collectors.toList())))
+			.collect(Collectors.toList());
 		return treeList;
 	}
 
@@ -1101,7 +1172,7 @@
 	public CodeClassifyFullInfoBO getClassifyFullInfo(String codeClassifyOid) {
 		VciBaseUtil.alertNotNull(codeClassifyOid,"鍒嗙被鐨勪富閿�");
 		CodeClassifyFullInfoBO fullInfo = new CodeClassifyFullInfoBO();
-		CodeClassify classifyDO = selectByOid(codeClassifyOid);
+		CodeClassify classifyDO = selectByOidRel(codeClassifyOid);
 		//鏌ヨ涓婄骇
 		fullInfo.setCurrentClassifyVO(codeClassifyDO2VO(classifyDO));
 //		List<Map<String, Object>> maps = codeClassifyMapper.selectAllLevelParentByOid(codeClassifyOid);
@@ -1120,7 +1191,6 @@
 		}
 		return fullInfo;
 	}
-
 
 	/**
 	 * 缁熻瀛愯妭鐐圭殑涓暟

--
Gitblit v1.9.3