From db1c3c5b3670639fd1dfc5de0fe75ce6f02f732e Mon Sep 17 00:00:00 2001
From: wang1 <844966816@qq.com>
Date: 星期三, 31 五月 2023 14:40:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

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

diff --git a/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/DockingPreClassifyServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/DockingPreClassifyServiceImpl.java
new file mode 100644
index 0000000..3ff08a5
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/DockingPreClassifyServiceImpl.java
@@ -0,0 +1,135 @@
+package com.vci.ubcs.code.webservice.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vci.ubcs.code.webservice.mapper.DockingPreClassifyMapper;
+import com.vci.ubcs.code.webservice.service.IDockingPreApplyFormService;
+import com.vci.ubcs.code.webservice.service.IDockingPreAttrMappingService;
+import com.vci.ubcs.code.webservice.service.IDockingPreClassifyService;
+import com.vci.ubcs.code.webservice.service.IDockingPreViewModelService;
+import com.vci.ubcs.code.webservice.wrapper.DockingPreClassifyWrapper;
+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.util.MdmBtmTypeConstant;
+import com.vci.ubcs.starter.web.pagemodel.Tree;
+import com.vci.ubcs.code.webservice.entity.DockingPreClassify;
+import com.vci.ubcs.code.webservice.vo.DockingPreClassifyVO;
+import com.vci.ubcs.code.webservice.vo.DockingPreViewModelVO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+
+/**
+ * 闆嗗洟鍒嗙被涓氬姟鏈嶅姟
+ * @author xiejun
+ * @date 2023-05-23
+ */
+@Service
+@Slf4j
+public class DockingPreClassifyServiceImpl extends ServiceImpl<DockingPreClassifyMapper, DockingPreClassify> implements IDockingPreClassifyService {
+	/**
+	 * 涓婄骇鑺傜偣鐨勫睘鎬у悕绉�
+	 */
+	public static  final String PARENT_FIELD_NAME = "pid";
+	/***
+	 * 闆嗗洟鍒嗙被灞炴��
+	 */
+	@Resource
+	private DockingPreClassifyMapper dockingPreClassifyMapper;
+
+	/***
+	 * 闆嗗洟鍒嗙被灞炴��
+	 */
+	@Resource
+	private IDockingPreViewModelService dockingPreViewModelService;
+
+
+	/***
+	 *闆嗗洟闆嗘垚閰嶇疆鏈嶅姟
+	 */
+	@Resource
+	private IDockingPreAttrMappingService dockingPreAttrMappingService;
+
+
+	/**
+	 * 瀵硅薄鐨勬搷浣�
+	 */
+	@Resource
+	private RevisionModelUtil revisionModelUtil;
+	/***
+	 * 闆嗗洟鍒嗙被鏍戝璞℃煡
+	 *@param treeQueryObject 闆嗗洟鍒嗙被鏌ヨ瀵硅薄
+	 *@return 杩斿洖鍒嗙被鏍戝璞�
+	 */
+	@Override
+	public List<Tree> treeCompanyGroupClassify(TreeQueryObject treeQueryObject) {
+		log.info("鑾峰彇闆嗗洟鍒嗙被鏍憇tart...");
+
+		Map<String,String> conditionMap= treeQueryObject.getConditionMap();
+		if(conditionMap==null){
+			conditionMap=new HashMap<>();
+		}
+		TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(PARENT_FIELD_NAME.toLowerCase(Locale.ROOT));
+		treeWrapperOptions.copyFromTreeQuery(treeQueryObject);
+		List<DockingPreClassifyVO> dockingPreClassifyVOS= getCompanyGourpClassByParentId(treeQueryObject.getParentOid(),true);
+		List<Tree> tree= revisionModelUtil.doList2Trees(dockingPreClassifyVOS,treeWrapperOptions,(DockingPreClassifyVO s) ->{
+			//鍙互鍦ㄨ繖閲屽鐞嗘爲鑺傜偣鐨勬樉绀�
+			return s.getId() + " " + s.getName();//(FrameworkDataLCStatus.DISABLED.getValue().equalsIgnoreCase(s.getLcStatus()) ? (" 銆愬仠鐢ㄣ�� ") : "");
+		});
+
+		setTreeConig(tree,conditionMap);
+		log.info("鑾峰彇闆嗗洟鍒嗙被鏍慹nd...");
+		return tree;
+	}
+	private void setTreeConig(List<Tree> tree,Map<String,String >conditionMap){
+		boolean checkHasChild=false;
+		Iterator var6 =  tree.listIterator();
+		while(var6.hasNext()){
+			Tree trees = (Tree) var6.next();
+			List<Tree> childrenList=trees.getChildren();
+			if(childrenList.size()>0){
+				checkHasChild=true;
+			}
+			boolean checkHas=false;
+			//濡傛灉涓庢潯浠朵紶杩囨潵鐨勫�煎尮閰嶇殑涓婂垯璁剧疆涓洪�変腑
+			if(conditionMap.containsKey(MdmBtmTypeConstant.CODE_CLASSIFY_OID_FIELD)){
+				String codeClassifyId=conditionMap.get(MdmBtmTypeConstant.CODE_CLASSIFY_OID_FIELD);
+				checkHas = dockingPreAttrMappingService.checkHasConfigByTragetCodeclassifyId(codeClassifyId, trees.getOid());
+			}
+			if (checkHas) {
+				trees.setChecked(true);
+			}
+			if(checkHasChild){
+				trees.setLeaf(false);
+			}else{
+				trees.setLeaf(true);
+			}
+			if(checkHasChild) {
+				setTreeConig(childrenList,conditionMap);
+			}
+		}
+
+	}
+
+	/***
+	 * 鏍规嵁鐖跺垎绫籭d鏌ヨ灞傜骇鏍戞暟鎹璞¢泦鍚�
+	 * @param pid 闆嗗洟鍒嗙被鐨刼id
+	 * @return 杩斿洖灞傜骇鏍戞暟鎹璞¢泦鍚�
+	 */
+	private List<DockingPreClassifyVO> getCompanyGourpClassByParentId(String pid,boolean isContainView){
+		log.info("鏍规嵁鐖跺垎绫籶id->"+pid+"鏌ヨ灞傜骇鏍戞暟鎹璞¢泦鍚坰tart...");
+		List<DockingPreClassify> doList =dockingPreClassifyMapper.selectCompanyGroupClassifyVOByTree(pid);
+		List<DockingPreClassifyVO>dockingPreClassifyVOS= DockingPreClassifyWrapper.build().entityVOs(doList);
+		if(isContainView){
+			dockingPreClassifyVOS.stream().forEach(dockingPreClassifyVO -> {
+			List<DockingPreViewModelVO> dockingViewVOS=	dockingPreViewModelService.selectDockingPreViewModelByClassId(dockingPreClassifyVO.getOid(),isContainView);
+				dockingPreClassifyVO.setDockingPreViewModelVOList(dockingViewVOS);
+			});
+		}
+		log.info("鏍规嵁鐖跺垎绫籶id->"+pid+"鏌ヨ灞傜骇鏍戞暟鎹璞¢泦鍚坋nd...");
+		return dockingPreClassifyVOS;
+	}
+}

--
Gitblit v1.9.3