From 101e8e9738e4bfe0ef7a5170d117b47bf901b8f6 Mon Sep 17 00:00:00 2001
From: ludc <pUXmgxCf6A>
Date: 星期一, 29 五月 2023 11:29:48 +0800
Subject: [PATCH] 集团主模型发布接口方法移植开发

---
 Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/GroupMdmInterServiceImpl.java   |    5 
 Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/feign/MdmApplyGroupCodeProvider.java |    5 
 Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/feigh/MdmInterJtClient.java                  |  398 +++++++++++++++++++++++++++++++++++++++++++++++++
 Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/vo/DockingClassifyModelAttrVO.java   |    2 
 Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/feign/IMdmInterJtClient.java         |   17 ++
 Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/IGroupMdmInterService.java           |    7 
 6 files changed, 432 insertions(+), 2 deletions(-)

diff --git a/Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/feign/IMdmInterJtClient.java b/Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/feign/IMdmInterJtClient.java
index f873239..fabc948 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/feign/IMdmInterJtClient.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/feign/IMdmInterJtClient.java
@@ -1,11 +1,18 @@
 package com.vci.ubcs.code.webservice.feign;
 
 
+import com.vci.ubcs.code.webservice.vo.DockingClassifyModelAttrVO;
 import com.vci.ubcs.code.webservice.vo.DockingResultVO;
+import com.vci.ubcs.code.webservice.vo.DockingReturnStoreVO;
+import com.vci.ubcs.starter.exception.VciBaseException;
 import org.springblade.core.tool.api.R;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
+
+import javax.validation.constraints.NotNull;
 
 
 /****
@@ -21,12 +28,20 @@
 	String API_PREFIX = "/mdmInterService";
 	String RETURNGROUPCODE = API_PREFIX + "/getApplyGroupCode";
 
+	String PUBMDMMODEL = API_PREFIX + "/pubMdmModel";
+
+
+
 	/***
 	 * 灏嗛泦鍥㈢敵璇锋垚鍔熺殑缂栫爜瀛樺叆鐩稿叧鏁版嵁涔嬩腑
 	 * @param dockingResultVO
 	 * @return 杩斿洖瀛樺偍鏄惁鎴愬姛淇℃伅
 	 */
 	@GetMapping(RETURNGROUPCODE)
-	public R getApplyGroupCode( @RequestParam("dockingResultVO") DockingResultVO dockingResultVO);
+	public R getApplyGroupCode( @RequestParam("dockingResultVO") DockingReturnStoreVO dockingResultVO);
+
+
+	@PostMapping(PUBMDMMODEL)
+	R pubMdmModel(@RequestParam("dockingClassifyModelAttrVO") DockingClassifyModelAttrVO dockingClassifyModelAttrVO);
 
 }
diff --git a/Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/feign/MdmApplyGroupCodeProvider.java b/Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/feign/MdmApplyGroupCodeProvider.java
index e861b2b..2069dd0 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/feign/MdmApplyGroupCodeProvider.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/feign/MdmApplyGroupCodeProvider.java
@@ -5,6 +5,7 @@
  * @date 2023-05-26
  */
 
+import com.vci.ubcs.code.webservice.vo.DockingClassifyModelAttrVO;
 import com.vci.ubcs.code.webservice.vo.DockingGroupDataVO;
 import com.vci.ubcs.code.webservice.vo.DockingResultVO;
 import com.vci.ubcs.starter.exception.VciBaseException;
@@ -39,4 +40,8 @@
 
 	@PostMapping("/externalMainData/receiveAddApply")
 	DockingResultVO receiveEditApply(@NotNull @RequestBody DockingGroupDataVO dockingGroupDataVO)throws VciBaseException;
+
+
+
+
 }
diff --git a/Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/vo/DockingClassifyModeAttrVO.java b/Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/vo/DockingClassifyModelAttrVO.java
similarity index 95%
rename from Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/vo/DockingClassifyModeAttrVO.java
rename to Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/vo/DockingClassifyModelAttrVO.java
index 8bba504..a58ce49 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/vo/DockingClassifyModeAttrVO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/vo/DockingClassifyModelAttrVO.java
@@ -5,7 +5,7 @@
  * @author xiejun
  * @date 2023-05-26
  */
-public class DockingClassifyModeAttrVO {
+public class DockingClassifyModelAttrVO {
 	/***
 	 * 绯荤粺鏍囪瘑
 	 */
diff --git a/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/feigh/MdmInterJtClient.java b/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/feigh/MdmInterJtClient.java
new file mode 100644
index 0000000..88d06a4
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/feigh/MdmInterJtClient.java
@@ -0,0 +1,398 @@
+package com.vci.ubcs.code.webservice.feigh;
+
+import com.alibaba.cloud.commons.lang.StringUtils;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.vci.ubcs.code.webservice.entity.*;
+import com.vci.ubcs.code.webservice.feign.IMdmInterJtClient;
+import com.vci.ubcs.code.webservice.service.*;
+import com.vci.ubcs.code.webservice.vo.*;
+import com.vci.ubcs.starter.revision.model.BaseModel;
+import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
+import com.vci.ubcs.starter.util.MdmBtmTypeConstant;
+import com.vci.ubcs.starter.web.constant.MdmEnumIdConstant;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/***
+ * 鎻愪緵涓庨泦鍥㈢敵璇穎eigh
+ */
+@NonDS
+@ApiIgnore
+@RestController
+@AllArgsConstructor
+@Slf4j
+public class MdmInterJtClient implements IMdmInterJtClient {
+	/**
+	 * 闆嗗洟鐢宠鍗曟湇鍔�
+	 */
+	private final IDockingPreApplyFormService dockingPreApplyFormService;
+
+	/**
+	 * 闆嗗洟鍒嗙被妯″瀷瑙嗗浘鏈嶅姟
+	 */
+	private final IDockingPreViewModelService dockingPreViewModelService;
+
+	/**
+	 * 闆嗗洟鍒嗙被灞炴�ф湇鍔�
+	 */
+	private final IDockingPreMetaAttrService dockingPreMetaAttrService;
+
+	/**
+	 * 闆嗗洟鐢宠鍗曟湇鍔�
+	 */
+	private final IDockingPreClassifyService dockingPreClassifyService;
+
+
+	/**
+	 * 闆嗗洟鐢宠鍗曟湇鍔�
+	 */
+	private final IDockingPreAttrRangeService dockingPreAttrRangeService;
+
+
+	/*
+	 * 涓绘暟鎹笟鍔℃湇鍔�
+	 */
+
+
+	/**
+	 * 鑾峰彇闆嗗洟闆嗗洟鐮侊紝璧嬪�煎埌涓绘暟鎹�
+	 * @param dockingReturnStoreVO
+	 * @return 杩斿洖闆嗘垚缁撴灉淇℃伅
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public R getApplyGroupCode(DockingReturnStoreVO dockingReturnStoreVO) {
+		log.info("鑾峰彇闆嗗洟闆嗗洟鐮侊紝璧嬪�煎埌涓绘暟鎹� start");
+		try {
+			List<BaseModel> editObjectList = new ArrayList();
+
+			List<DockingPreApplyForm> dockingPreApplyFormList = new ArrayList();
+			//String classId = javaObject.getClassId();
+			//String sysName = javaObject.getSysName();
+			List<MainData> mainDataList = dockingReturnStoreVO.getMainData();
+			for (MainData mainData : mainDataList) {
+				JSONObject jcontent = new JSONObject();
+				//缂栫爜鐘舵��
+				String formState = mainData.getFormState();
+				//鐢宠鍗�
+				String applyId = mainData.getApplyId();
+				String customCoding = StringUtils.isBlank(mainData.getCustomCoding()) ? "" : mainData.getCustomCoding();//闆嗗洟鐮�
+				String msg = "";
+				log.info("鐢宠鍗�:"+applyId+",闆嗗洟鐮侊細"+customCoding);
+				boolean res = false;
+				if ("1".equals(formState)) {
+					msg = "闆嗗洟瀹℃牳涓�";
+				} else if ("2".equals(formState)) {
+					msg = "椹冲洖";
+				} else if ("3".equals(formState)) {
+					msg = "闆嗗洟瀹℃牳涓�";
+				} else if ("4".equals(formState)) {
+					msg = "瀹℃牳缁撴潫锛岃祴鐮佸け璐�";
+				} else if ("5".equals(formState)) {
+					res = true;
+					msg = "瀹℃牳缁撴潫锛岃祴鐮佹垚鍔�";
+				} else if ("6".equals(formState)) {
+					msg = "寰�301璧嬬爜";
+				} else if ("7".equals(formState)) {
+					res = true;
+					msg = "宸茶祴鐮�";
+				} else if ("8".equals(formState)) {
+					res = true;
+					msg = "宸茶祴鐮侊紙娌跨敤锛�";
+				} else if ("9".equals(formState)) {
+					msg = "瀹℃牳涓�";
+				}
+				jcontent.put("applyId", applyId);
+				jcontent.put("formState", formState);
+				jcontent.put("customCoding", customCoding);
+				jcontent.put("msg", msg);
+				List<DockingPreApplyForm> oldDockingPreApplyFormList = dockingPreApplyFormService.list(Wrappers.<DockingPreApplyForm>query().lambda()
+					.eq(DockingPreApplyForm::getId, applyId));
+				if (CollectionUtils.isEmpty(oldDockingPreApplyFormList)) {
+					continue; //// return false;
+				}
+				DockingPreApplyForm dockingPreApplyForm = oldDockingPreApplyFormList.get(0);
+				dockingPreApplyForm.setMsg(msg);
+				dockingPreApplyForm.setCode("1");
+				if (res) {
+					dockingPreApplyForm.setGroupCode(customCoding);
+				}
+				//杩斿洖缁撴灉淇℃伅
+				dockingPreApplyForm.setContent(jcontent.toJSONString());
+				dockingPreApplyFormList.add(dockingPreApplyForm);
+				if (res) {
+					String jdataid = dockingPreApplyForm.getDataOid();
+					String jdatabtmname = dockingPreApplyForm.getDataBtmName();
+					//姝ゅ闇�瑕佹煡璇笟鍔℃暟鎹紝鍘绘洿鏀�
+					BaseModel baseModel = new BaseModel();
+					baseModel.setId(customCoding);
+					log.info("鐢宠鍗�:"+applyId+",闆嗗洟鐮侊細"+customCoding+"缂栫爜锛�"+baseModel.getId());
+					editObjectList.add(baseModel);
+				}
+			}
+			dockingPreApplyFormService.saveOrUpdateBatch(dockingPreApplyFormList);
+			//璋冪敤涓绘暟鎹湇鍔℃壒閲忎繚瀛樻帴鍙�
+		}catch (Throwable e){
+			e.printStackTrace();
+			return R.fail("闆嗗洟鐮侀泦鎴愯祴鍊煎け璐�"+e);
+		}
+		log.info("鑾峰彇闆嗗洟闆嗗洟鐮侊紝璧嬪�煎埌涓绘暟鎹� end");
+		return R.success("闆嗗洟鐮佽祴鍊兼垚鍔�");
+	}
+
+	/***
+	 * 鎺ュ彈闆嗗洟鍒嗙被涓绘ā鍨嬫暟鎹�
+	 * @param dockingClassifyModelAttrVO
+	 * @return
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public R pubMdmModel(DockingClassifyModelAttrVO dockingClassifyModelAttrVO) {
+		log.info("");
+		try {
+			this.saveDatas(dockingClassifyModelAttrVO);
+		}catch (Throwable e){
+			e.printStackTrace();
+			return R.fail("鎺ュ彈闆嗗洟鍒嗙被涓绘ā鍨嬫暟鎹け璐�"+e);
+		}
+		log.info("鎺ュ彈闆嗗洟鍒嗙被涓绘ā鍨嬫暟鎹� end");
+		return R.success("鎺ュ彈闆嗗洟鍒嗙被涓绘ā鍨嬫暟鎹垚鍔�");
+	}
+
+	/***
+	 * 缁勭粐 淇濆瓨鏁版嵁鏂规硶
+	 * @param dockingClassifyModelAttrVO
+	 * @throws Throwable
+	 */
+	private boolean saveDatas(DockingClassifyModelAttrVO dockingClassifyModelAttrVO) throws Throwable {
+		List<DockingPreClassify> dockingPreClassifyArrayList=new ArrayList<>();
+		try {
+			DockingClassifyMainVO mainData = dockingClassifyModelAttrVO.getDataStructure();
+			List<DockingClassifyVO> classList = mainData.getClassList();
+			Map<String, List<DockingClassifyViewVO>> classInfoMap = mainData.getClassInfos();
+			for (DockingClassifyVO jclassObject : classList) {
+				String id =StringUtils.isBlank(jclassObject.getId())?"":jclassObject.getId();
+				String className = StringUtils.isBlank(jclassObject.getClassName())?"":jclassObject.getClassName();
+				String pid = StringUtils.isBlank(jclassObject.getPid())?"":jclassObject.getPid();
+				String nodeLink = StringUtils.isBlank(jclassObject.getNodeLink())?"":jclassObject.getNodeLink();
+				String nodeLinkName = StringUtils.isBlank(jclassObject.getNodeLinkName())?"":jclassObject.getNodeLinkName();
+				String classNumber = StringUtils.isBlank(jclassObject.getClassNumber())?"":jclassObject.getClassNumber();
+				//ClientBusinessObject classObject = objectOperation.readBusinessObjectById(id, "jclass");// 鑾峰彇鍒嗙被淇℃伅
+			 	DockingPreClassify dockingPreClassify=dockingPreClassifyService.getById(id);
+				log.info("classify:-------------->闆嗗洟鍒嗙被涓绘満:"+id);
+				log.info("classify:-------------->闆嗗洟鍒嗙被鍚嶇О:"+className);
+				log.info("classify:--------------> 闆嗗洟鍒嗙被鐖惰妭鐐�:"+pid);
+				log.info("classify:-------------->閾炬帴:"+nodeLink);
+				log.info("classify:-------------->閾炬帴鍚嶇О:"+nodeLinkName);
+
+				if (dockingPreClassify == null|| StringUtils.isBlank(dockingPreClassify.getOid())) {
+					dockingPreClassify = new DockingPreClassify();
+					DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreClassify, MdmBtmTypeConstant.DOCKING_PRE_JCLASSIFY);
+				} else {
+					DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreClassify);
+				}
+				dockingPreClassify.setOid(id);
+				dockingPreClassify.setName(className);
+				dockingPreClassify.setPid(pid);
+				dockingPreClassify.setId(classNumber);
+				dockingPreClassify.setNodeLink(nodeLink);
+				dockingPreClassify.setGetNodeLinkName(nodeLinkName);
+				dockingPreClassify.setClassName(className);
+				dockingPreClassifyArrayList.add(dockingPreClassify);
+				// 鑾峰彇瀵瑰簲鐨勫垎绫昏鍥炬ā鍨�
+				if (classInfoMap.containsKey(id)) {
+					List<DockingClassifyViewVO> list = classInfoMap.get(id);
+					getVilewMode(jclassObject, list);
+				}
+			}
+			boolean res= dockingPreClassifyService.saveOrUpdateBatch(dockingPreClassifyArrayList);
+			return res;
+		} catch (Throwable e) {
+			e.printStackTrace();
+			throw new Throwable("瀛樺偍瑙嗗浘妯″瀷鍑虹幇闂");
+		}
+	}
+	/***
+	 * 鑾峰彇鍒嗙被瑙嗗浘
+	 *
+	 * @param jclassObject
+	 * @throws Throwable
+	 */
+	private void getVilewMode(DockingClassifyVO jclassObject, List<DockingClassifyViewVO> list)
+		throws Throwable {
+		String nodeLinkName = jclassObject.getNodeLinkName();
+		try {
+			String jclassId =StringUtils.isBlank(jclassObject.getId())?"":jclassObject.getId();
+			Map<String, DockingPreViewModel> jviewmodelMap = new HashMap<String, DockingPreViewModel>();
+			//Map<String, String> condtionMa = new HashMap<String, String>();
+		//	condtionMa.put("jsourceclsfid", jclassId);
+			List<DockingPreViewModel> dockingPreViewModelList= dockingPreViewModelService.list(Wrappers.<DockingPreViewModel>query().lambda().eq(DockingPreViewModel::getSourceClassifyId,false));// 鏍规嵁鍒嗙被鏌ヨ妯″瀷瑙嗗浘瀵硅薄
+			for (DockingPreViewModel dockingPreViewModel : dockingPreViewModelList) {
+				jviewmodelMap.put(dockingPreViewModel.getViewName(),dockingPreViewModel);
+			}
+
+			for (DockingClassifyViewVO viewInfo : list) {
+				String viewName =StringUtils.isBlank(viewInfo.getViewName())?"":viewInfo.getViewName();
+				String impactList = StringUtils.isBlank(viewInfo.getImpactList())?"":viewInfo.getImpactList();
+				log.info("VilewMode:-------------->瑙嗗浘鍚嶇О:"+viewName);
+				log.info("VilewMode:-------------->褰卞搷缂栫爜椤�:"+impactList);
+				log.info("VilewMode:--------------> 闆嗗洟鍒嗙被涓婚敭:"+jclassId);
+				List<DockingClassifyMetaAttrVO> metaList = viewInfo.getMetaList();
+				DockingPreViewModel jviewModelObject = null;
+				if (jviewmodelMap.containsKey(viewName)) {
+					jviewModelObject = jviewmodelMap.get(viewName);
+					//褰卞搷缂栫爜椤圭殑鏁版嵁
+					jviewModelObject.setImpactList(impactList);
+					DefaultAttrAssimtUtil.updateDefaultAttrAssimt(jviewModelObject);
+				} else {
+					jviewModelObject =new DockingPreViewModel();
+					DefaultAttrAssimtUtil.addDefaultAttrAssimt(jviewModelObject,MdmBtmTypeConstant.DOCKING_PRE_JVIEWMODEL);
+					jviewModelObject.setSourceClassifyId(jclassId);// 闆嗗洟鍒嗙被id
+					jviewModelObject.setViewName(viewName);// 闆嗗洟瑙嗗浘鍚嶇О
+					//褰卞搷缂栫爜椤圭殑鏁版嵁
+					jviewModelObject.setImpactList(impactList);
+					dockingPreViewModelList.add(jviewModelObject);
+				}
+				// 鑾峰彇妯″瀷瑙嗗浘涓嬬殑灞炴�ч泦
+				// String oid = jviewModelObject.getOid();
+				List<DockingPreMetaAttr>allDockingPreMetaAttrList=new ArrayList<>();
+				getMetaAttrObject(metaList, jclassId, jviewModelObject, "root",allDockingPreMetaAttrList);
+				//淇濆瓨妯″瀷瑙嗗浘灞炴��
+				dockingPreMetaAttrService.saveOrUpdateBatch(allDockingPreMetaAttrList);
+				//淇濆瓨妯″瀷瑙嗗浘
+				dockingPreViewModelService.saveOrUpdateBatch(dockingPreViewModelList);
+			}
+		} catch (Throwable e) {
+			e.printStackTrace();
+			throw new Throwable("缁勭粐鍒嗙被" + nodeLinkName + "妯″瀷瑙嗗浘瀛樺偍鍑虹幇闂");
+		}
+	}
+
+
+	/***
+	 * 鑾峰彇妯″瀷瑙嗗浘灞炴��
+	 * @throws Throwable
+	 */
+	private void getMetaAttrObject(List<DockingClassifyMetaAttrVO> metaList,
+								   String jclassId, DockingPreViewModel jviewModelObject, String pid,List<DockingPreMetaAttr>allDockingPreMetaAttrList)throws Throwable {
+		try {
+			//// 鏍规嵁鍒嗙被鏌ヨ妯″瀷瑙嗗浘瀵硅薄
+			List<DockingPreMetaAttr> dockingPreMetaAttrList = dockingPreMetaAttrService.selectByWrapper(Wrappers.<DockingPreMetaAttr>query().lambda()
+				.eq(DockingPreMetaAttr::getSourceClassifyId,jclassId).eq(DockingPreMetaAttr::getViewModelId,jviewModelObject.getOid())
+				.eq(DockingPreMetaAttr:: getPid,pid));
+				Map<String,DockingPreMetaAttr> jmetaattrMap = dockingPreMetaAttrList.stream().filter(
+				s -> StringUtils.isNotBlank(s.getEnglishName())).collect(Collectors.toMap(s -> s.getEnglishName().toLowerCase(Locale.ROOT), t -> t));
+
+			for (DockingClassifyMetaAttrVO dockingClassifyMetaAttrVO : metaList) {
+				String chineseName =StringUtils.isBlank(dockingClassifyMetaAttrVO.getChineseName())?"":dockingClassifyMetaAttrVO.getChineseName();// 灞炴�у悕绉�
+				String englishName = StringUtils.isBlank(dockingClassifyMetaAttrVO.getEnglishName())?"":dockingClassifyMetaAttrVO.getEnglishName();// 鑻辨枃鍚嶇О
+				String defaultValue = StringUtils.isBlank(dockingClassifyMetaAttrVO.getDefaultValue())?"":dockingClassifyMetaAttrVO.getDefaultValue();
+				Integer metadataType =dockingClassifyMetaAttrVO.getMetadataType();// 绫诲瀷
+				Integer necessaryConf = dockingClassifyMetaAttrVO.getNecessaryConf();// 鏄惁蹇呭~
+				Map<String, String> range = dockingClassifyMetaAttrVO.getRange()==null?new HashMap<String, String>():dockingClassifyMetaAttrVO.getRange();// 鍙栧�艰寖鍥�
+
+				log.info("metaAttr:-------------->灞炴�у悕绉�:"+chineseName);
+				log.info("metaAttr:-------------->鑻辨枃鍚嶇О:"+englishName);
+				log.info("metaAttr:-------------->榛樿鍊�:"+defaultValue);
+				log.info("metaAttr:--------------> 绫诲瀷:"+metadataType);
+				log.info("metaAttr:-------------->  鏄惁蹇呭~:"+necessaryConf);
+				DockingPreMetaAttr dockingPreMetaAttr = new DockingPreMetaAttr();
+				if (jmetaattrMap.containsKey(englishName)) {
+					dockingPreMetaAttr = jmetaattrMap.get(englishName);
+					dockingPreMetaAttr.setChineseName(chineseName);
+					dockingPreMetaAttr.setDefaultValue(defaultValue);
+					DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreMetaAttr);
+				} else {
+					DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreMetaAttr,MdmBtmTypeConstant.DOCKING_PRE_JMETAATRR);
+					dockingPreMetaAttr.setSourceClassifyId(jclassId);// 闆嗗洟鍒嗙被id
+					dockingPreMetaAttr.setViewModelId(jviewModelObject.getOid());// 闆嗗洟瑙嗗浘妯″瀷id
+					dockingPreMetaAttr.setChineseName(chineseName);// 灞炴�у悕绉�
+					dockingPreMetaAttr.setEnglishName(englishName);// 灞炴�у瓧娈�
+					dockingPreMetaAttr.setDefaultValue(defaultValue);// 灞炴�у悕绉�
+					dockingPreMetaAttr.setMetaDataType(metadataType);// 灞炴�х被鍨�
+					dockingPreMetaAttr.setNecesSaryConf(necessaryConf);// 灞炴�у繀濉」
+					dockingPreMetaAttr.setPid(pid);// 鐖惰妭鐐筰d
+				}
+				if(range!=null&&range.size()>0){
+					// 鑾峰彇灞炴�у�煎煙
+					getRange(dockingPreMetaAttr, range);
+				}
+				/***
+				 * 鑾峰彇瀛愯妭鐐�
+				 */
+				DockingClassifyMetaAttrVO compositeMeta = dockingClassifyMetaAttrVO.getCompositeMeta();
+				if (compositeMeta != null) {
+					pid = StringUtils.isBlank(dockingPreMetaAttr.getOid())?"":dockingPreMetaAttr.getOid();// 褰撳墠oid
+					List<DockingClassifyMetaAttrVO> childMetaList = new ArrayList<>();
+					childMetaList.add(compositeMeta);
+					getMetaAttrObject(childMetaList, jclassId,jviewModelObject, pid,allDockingPreMetaAttrList);
+				}
+
+			}
+
+		} catch (Throwable e) {
+			e.printStackTrace();
+			log.error("缁勭粐妯″瀷瑙嗗浘"+ jviewModelObject.getViewName()
+				+ "灞炴�у瓨鍌ㄥ嚭鐜伴棶棰�" + e);
+			throw new Throwable("缁勭粐妯″瀷瑙嗗浘"+ jviewModelObject.getViewName()
+				+ "灞炴�у瓨鍌ㄥ嚭鐜伴棶棰�" + e);
+		}
+	}
+
+	/**
+	 * @throws Throwable
+	 *             * 鑾峰彇鍊煎煙
+	 * @param metaAttrObject
+	 * @param range
+	 * @throws
+	 */
+	private void getRange(DockingPreMetaAttr metaAttrObject,Map<String, String> range) throws Throwable {
+		String metaAttrOid =StringUtils.isBlank(metaAttrObject.getOid())?"":metaAttrObject.getOid();// 灞炴�х殑oid
+		String jchinesename = StringUtils.isBlank(metaAttrObject.getChineseName())?"":metaAttrObject.getChineseName();
+		Map<String, DockingPreAttrRange> rangeMap = new HashMap<>();
+		try {
+			Map<String, String> condtionMa = new HashMap<String, String>();
+			condtionMa.put("jmetalistid", metaAttrOid);
+			List<DockingPreAttrRange> jmetaattrList = dockingPreAttrRangeService.selectByWrapper(Wrappers.<DockingPreAttrRange>query().lambda()
+				.eq(DockingPreAttrRange::getMetaListId,metaAttrOid));// 鏍规嵁鍒嗙被鏌ヨ妯″瀷瑙嗗浘瀵硅薄
+			rangeMap= jmetaattrList.stream().collect(Collectors.toMap(s -> StringUtils.isNotBlank(s.getNumText().toLowerCase(Locale.ROOT))?"":s.getNumText().toLowerCase(Locale.ROOT), t -> t));
+
+			for (String rangeKey : range.keySet()) {
+				DockingPreAttrRange rangeObject = new DockingPreAttrRange();
+				String keyValue = StringUtils.isBlank(range.get(rangeKey))?"":range.get(rangeKey);
+				log.info("range:-------------->鏄剧ず鍊�"+rangeKey+",鍐呴儴鍊�"+keyValue);
+				if (rangeMap.containsKey(rangeKey)) {
+					rangeObject = rangeMap.get(rangeKey);
+					rangeObject.setNumTextValue(keyValue);
+					rangeObject.setNumText(rangeKey);
+					DefaultAttrAssimtUtil.updateDefaultAttrAssimt(rangeObject);
+				} else {
+					DefaultAttrAssimtUtil.addDefaultAttrAssimt(rangeObject,MdmBtmTypeConstant.DOCKING_PRE_JRANGE);
+					rangeObject.setNumTextValue(keyValue);
+					rangeObject.setNumText(rangeKey);
+					rangeObject.setTs(rangeObject.getLastModifyTime());
+					rangeObject.setMetaListId(metaAttrOid);
+					log.info("range:-------------->灞炴�у唴閮ㄥ��:"+metaAttrOid);
+					log.info("range:-------------->鏃堕棿:"+rangeObject.getLastModifyTime());
+					jmetaattrList.add(rangeObject);
+				}
+			}
+			dockingPreAttrRangeService.saveOrUpdateBatch(jmetaattrList);
+		} catch (Throwable e) {
+			e.printStackTrace();
+			log.info("缁勭粐灞炴�э細銆�" + jchinesename + "銆戝�煎煙鍑虹幇闂"+ e);
+			throw new Throwable("缁勭粐灞炴�э細銆�" + jchinesename + "銆戝�煎煙鍑虹幇闂"+ e);
+		}
+	}
+
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/IGroupMdmInterService.java b/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/IGroupMdmInterService.java
index c416cbf..67972cf 100644
--- a/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/IGroupMdmInterService.java
+++ b/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/IGroupMdmInterService.java
@@ -27,4 +27,11 @@
 
 	public R receiveEditApply(String oids, String btmName)throws Throwable;
 
+	/***
+	 *
+	 * @return
+	 * @throws Throwable
+	 */
+	public R pubJTclsfModel()throws Throwable;
+
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/GroupMdmInterServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/GroupMdmInterServiceImpl.java
index 2cdc8d6..cf3146d 100644
--- a/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/GroupMdmInterServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/GroupMdmInterServiceImpl.java
@@ -313,6 +313,11 @@
 		}
 	}
 
+	@Override
+	public R pubJTclsfModel() throws Throwable {
+		return null;
+	}
+
 
 	/**
 	 * 缁勭粐鏁版嵁

--
Gitblit v1.9.3