From a17f731ee4bcad459c184be5a7c3de6c3619443b Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 07 六月 2023 19:47:03 +0800
Subject: [PATCH] 代码整合

---
 Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/GroupMdmInterServiceImpl.java |  558 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 518 insertions(+), 40 deletions(-)

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..0fa9c0d 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
@@ -5,14 +5,14 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.vci.ubcs.code.feign.IMdmEngineClient;
 import com.vci.ubcs.code.webservice.entity.*;
+import com.vci.ubcs.code.webservice.service.IGroupMdmInterService;
 import com.vci.ubcs.code.webservice.vo.*;
 import com.vci.ubcs.starter.util.MdmBtmTypeConstant;
 import com.vci.ubcs.code.webservice.feign.MdmApplyGroupCodeProvider;
 import com.vci.ubcs.code.webservice.mapper.DockingPreAttrMappingMapper;
-import com.vci.ubcs.code.webservice.service.*;
 import com.vci.ubcs.starter.exception.VciBaseException;
-import com.vci.ubcs.starter.revision.model.BaseModel;
 import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
 import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
@@ -23,7 +23,7 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-
+import com.vci.ubcs.starter.revision.model.BaseModel;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -42,28 +42,33 @@
 
 	private String msg="";
 
-	@Value("${docking.apply.unitCode:410-MDM}")
+
+	@Value("${docking.apply.unitCode:41000}")
 	public String dockingApplyUnitCode;
+
+	@Value("${docking.apply.sysName:410-MDM}")
+	public String dockingApplySysName;
+
 	@Autowired(required = false)
 	private MdmApplyGroupCodeProvider mdmApplyGroupCodeProvider;
 	/***
 	 * 闆嗗洟鍒嗙被鏈嶅姟
 	 */
 	@Autowired(required = false)
-	private IDockingPreClassifyService dockingPreClassifyService;
+	private com.vci.ubcs.code.webservice.service.IDockingPreClassifyService dockingPreClassifyService;
 
 	/***
 	 * 鐢宠鍗曟湇鍔�
 	 */
 	@Autowired(required = false)
-	private IDockingPreApplyFormService dockingPreApplyFormService;
+	private com.vci.ubcs.code.webservice.service.IDockingPreApplyFormService dockingPreApplyFormService;
 
 
 	/***
 	 * 妯″瀷瑙嗗浘鍗曟湇鍔�
 	 */
 	@Autowired(required = false)
-	private IDockingPreViewModelService dockingPreViewModelService;
+	private com.vci.ubcs.code.webservice.service.IDockingPreViewModelService dockingPreViewModelService;
 
 
 	/***
@@ -75,14 +80,17 @@
 	 * 灞炴�у彇鍊艰寖鍥存湇鍔�
 	 */
 	@Autowired(required = false)
-	private IDockingPreAttrRangeService dockingPreAttrRangeService;
+	private com.vci.ubcs.code.webservice.service.IDockingPreAttrRangeService dockingPreAttrRangeService;
 
 
 	/***
 	 * 闆嗗洟灞炴�ф湇鍔�
 	 */
 	@Autowired(required = false)
-	private IDockingPreMetaAttrService dockingPreMetaAttrService;
+	private com.vci.ubcs.code.webservice.service.IDockingPreMetaAttrService dockingPreMetaAttrService;
+
+	@Autowired(required = false)
+	private IMdmEngineClient mdmEngineClient;
 	/***
 	 * 涓绘暟鎹儚闆嗗洟鐢宠缂栫爜
 	 * @param oids 闇�瑕佺敵璇风殑鏁版嵁涓婚敭鏁扮粍
@@ -90,25 +98,24 @@
 	 * @return 杩斿洖缁撴灉淇℃伅
 	 * @throws Exception
 	 */
+	@Transactional(rollbackFor = VciBaseException.class)
 	@Override
-	@Transactional
 	public R applyGroupCode(String oids, String btmName) throws VciBaseException {
 		try {
 			List<BaseModel> updateCbos = new ArrayList<BaseModel>();
-
 			List<DockingPreApplyForm> dockingPreAttrMappings = new ArrayList<>();
 			VciBaseUtil.alertNotNull(oids, "閫夋嫨鐨勬暟鎹�");
 			VciBaseUtil.alertNotNull(btmName, "涓氬姟绫诲瀷");
-			//List<BaseModelVO> codeWupins=mdmEngineService.listByIds(VciBaseUtil.str2List(oids));
-			List<BaseModelVO> dataModelList = new ArrayList<>();
+			R<List<BaseModel>> baseModelR =mdmEngineClient.selectByTypeAndOid(btmName,oids);
+			List<BaseModel> dataModelList= baseModelR.getData();
 			if (!CollectionUtils.isEmpty(dataModelList)) {
 				DockingGroupDataVO dockingGroupDataVO = new DockingGroupDataVO();
 				//鐢宠鍗曞拰鐢宠鍗曞璞″叧绯�
 				Map<String, DockingPreApplyForm> addDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>();
 				Map<String, DockingPreApplyForm> editDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>();
-				Map<String, BaseModelVO> baseModelVOMap = new HashMap<String, BaseModelVO>();
+				Map<String, BaseModel> baseModelMap = new HashMap<String, BaseModel>();
 				//缁勭粐鏁版嵁
-				dockingGroupDataVO = queryApplycodeDataObjects(1, dataModelList, addDockingPreApplyFormMap, editDockingPreApplyFormMap, baseModelVOMap);
+				dockingGroupDataVO = queryApplycodeDataObjects(1, dataModelList, addDockingPreApplyFormMap, editDockingPreApplyFormMap, baseModelMap);
 				DockingResultVO resultDataObject = mdmApplyGroupCodeProvider.receiveAddApply(dockingGroupDataVO);
 				code = resultDataObject.getCode();
 				msg = resultDataObject.getMsg();
@@ -156,13 +163,13 @@
 						}
 						//濡傛灉鏈夐泦鍥㈢爜鍒欐洿鏂版暟鎹�
 						if (isEditDatas) {
-							if (baseModelVOMap.containsKey(applyId)) {
-								BaseModelVO baseModelVO = baseModelVOMap.get(applyId);
-								BaseModel baseModel = new BaseModel();
-								BeanUtilForVCI.copyDeclaredIgnoreCase(baseModelVO, baseModel);
+							if (baseModelMap.containsKey(applyId)) {
+								BaseModel baseModel = baseModelMap.get(applyId);
+								BeanUtilForVCI.copyDeclaredIgnoreCase(baseModel, baseModel);
 								DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
 								DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
-								baseModelVO.setId(customCoding);
+								//baseModel.setId(customCoding);
+								baseModel.getData().getOrDefault("groupCode",customCoding);
 								updateCbos.add(baseModel);//鏇存柊鏁版嵁闆嗗洟code
 							}
 						}
@@ -191,7 +198,7 @@
 				}
 				//淇濆瓨琛ㄥ崟鏁版嵁
 				dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings);
-				//mdmEngineService.saveBatch(updateCbos);//淇濆瓨鏁版嵁
+				mdmEngineClient.insertBatchByType(btmName,updateCbos);//淇濆瓨鏁版嵁
 			}
 			return R.success("鐢宠鎺ュ彛璋冪敤鎴愬姛");
 		}catch (VciBaseException e){
@@ -206,6 +213,7 @@
 	 * @return 杩斿洖缁撴灉淇℃伅
 	 * @throws Throwable
 	 */
+	@Transactional(rollbackFor = VciBaseException.class)
 	@Override
 	public R receiveEditApply(String oids, String btmName) throws VciBaseException {
 		List<BaseModel> updateCbos=new ArrayList<BaseModel>();
@@ -213,16 +221,16 @@
 		VciBaseUtil.alertNotNull(oids,"閫夋嫨鐨勬暟鎹�");
 		VciBaseUtil.alertNotNull(btmName,"涓氬姟绫诲瀷");
 		//List<BaseModelVO> codeWupins=mdmEngineService.listByIds(VciBaseUtil.str2List(oids));
-		List<BaseModelVO> dataModelList = new ArrayList<>();
+		List<BaseModel> dataModelList = new ArrayList<>();
 		try {
 			if (!CollectionUtils.isEmpty(dataModelList)) {
 				DockingGroupDataVO dockingGroupDataVO = new DockingGroupDataVO();
 				//鐢宠鍗曞拰鐢宠鍗曞璞″叧绯�
 				Map<String, DockingPreApplyForm> addDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>();
 				Map<String, DockingPreApplyForm> editDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>();
-				Map<String, BaseModelVO> baseModelVOMap = new HashMap<String, BaseModelVO>();
+				Map<String, BaseModel> baseModelMap = new HashMap<String, BaseModel>();
 				//缁勭粐鏁版嵁
-				dockingGroupDataVO = queryApplycodeDataObjects(2, dataModelList, addDockingPreApplyFormMap, editDockingPreApplyFormMap, baseModelVOMap);
+				dockingGroupDataVO = queryApplycodeDataObjects(2, dataModelList, addDockingPreApplyFormMap, editDockingPreApplyFormMap, baseModelMap);
 				DockingResultVO resultDataObject = mdmApplyGroupCodeProvider.receiveEditApply(dockingGroupDataVO);
 				code = resultDataObject.getCode();
 				msg = resultDataObject.getMsg();
@@ -270,13 +278,12 @@
 						}
 						//濡傛灉鏈夐泦鍥㈢爜鍒欐洿鏂版暟鎹�
 						if (isEditDatas) {
-							if (baseModelVOMap.containsKey(applyId)) {
-								BaseModelVO baseModelVO = baseModelVOMap.get(applyId);
-								BaseModel baseModel = new BaseModel();
-								BeanUtilForVCI.copyDeclaredIgnoreCase(baseModelVO, baseModel);
+							if (baseModelMap.containsKey(applyId)) {
+								BaseModel baseModel = baseModelMap.get(applyId);
+								//BeanUtilForVCI.copyDeclaredIgnoreCase(baseModelVO, baseModel);
 								DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
-								DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
-								baseModelVO.setId(customCoding);
+							//	baseModel.setId(customCoding);
+								baseModel.getData().getOrDefault("groupCode",customCoding);
 								updateCbos.add(baseModel);//鏇存柊鏁版嵁闆嗗洟code
 							}
 						}
@@ -305,7 +312,7 @@
 				}
 				//淇濆瓨琛ㄥ崟鏁版嵁
 				dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings);
-				//mdmEngineService.saveBatch(updateCbos);//淇濆瓨鏁版嵁
+				mdmEngineClient.insertBatchByType(btmName,updateCbos);//淇濆瓨鏁版嵁
 			}
 			return R.success("鐢宠鎺ュ彛璋冪敤鎴愬姛");
 		}catch (VciBaseException e){
@@ -313,16 +320,466 @@
 		}
 	}
 
+	/***
+	 * 鑾峰彇闆嗗洟妯″瀷璇︾粏淇℃伅鎵ц淇濆瓨
+	 * @param groupClassifyId
+	 * @return
+	 * @throws VciBaseException
+	 */
+	@Override
+	public R queryClassModel(String groupClassifyId) throws Throwable {
+		log.info("鑾峰彇闆嗗洟妯″瀷璇︾粏淇℃伅鎵ц淇濆瓨start");
+		String message="鎵ц鎴愬姛锛�";
+		try {
+			if (StringUtils.isBlank(groupClassifyId)) {
+				message = "鍙傛暟锛氶泦鍥㈠垎绫讳富閿紝涓虹┖!";
+				log.info(message);
+				throw new Throwable(message);
+			}
+			if (StringUtils.isBlank(dockingApplySysName)) {
+				message = "鑾峰彇绯荤粺鏍囪瘑" + dockingApplySysName + "涓虹┖锛岃鏌ョ湅閰嶇疆锛�";
+				log.info(message);
+				throw new Throwable(message);
+			}
+			DockingModelQueryVO dockingModelQueryVO = new DockingModelQueryVO();
+			dockingModelQueryVO.setClassId(groupClassifyId);
+			dockingModelQueryVO.setSysName(dockingApplySysName);
+			DockingQueryClassModelVO dockingQueryClassifyModelVO = mdmApplyGroupCodeProvider.queryClassModel(dockingModelQueryVO);
+			if (dockingQueryClassifyModelVO != null) {
+				int code = dockingQueryClassifyModelVO.getCode();
+				message = dockingQueryClassifyModelVO.getMsg();
+				if (code == 1) {
+					this.saveDatas(dockingQueryClassifyModelVO);
+				} else {
+					log.info(message);
+					throw new Throwable(message);
+				}
+			}else{
+				message="鏈粠闆嗗洟鑾峰彇鍒颁换浣曟ā鍨嬩俊鎭�";
+				log.info(message);
+				throw new Throwable(message);
+			}
+			return R.success(message);
+		}catch (Throwable e){
+			e.printStackTrace();;
+			log.error("鑾峰彇鏁版嵁妯″瀷璇︾粏淇℃伅澶辫触"+e);
+			R.fail(message);
+		}
+		log.info("鑾峰彇闆嗗洟妯″瀷璇︾粏淇℃伅鎵ц淇濆瓨end");
+		return R.success(message);
+	}
+
+	/***
+	 * 浠庨泦鍥㈣幏鍙栦富妯″瀷淇℃伅鎵ц淇濆瓨
+	 * @return
+	 * @throws Throwable
+	 */
+	@Override
+	public R queryMdmModel() throws Throwable {
+		String message="鎵ц鎴愬姛锛�";
+		log.info("浠庨泦鍥㈣幏鍙栦富妯″瀷淇℃伅鎵ц淇濆瓨鎺ュ彛statr");
+		try {
+			if (StringUtils.isBlank(dockingApplySysName)) {
+				message = "鑾峰彇绯荤粺鏍囪瘑" + dockingApplySysName + "涓虹┖锛岃鏌ョ湅閰嶇疆锛�";
+				log.info(message);
+				throw new Throwable(message);
+			}
+
+			DockingModelQueryVO dockingModelQueryVO = new DockingModelQueryVO();
+			dockingModelQueryVO.setSysName(dockingApplySysName);
+			DockingQueryModelVO dockingQueryModelVO=  mdmApplyGroupCodeProvider.queryMdmModel(dockingModelQueryVO);
+			if (dockingQueryModelVO != null) {
+				int code = dockingQueryModelVO.getCode();
+				message = dockingQueryModelVO.getMsg();
+				if (code == 1) {
+					List<DockingClassifyVO> dockingClassifyVOList=dockingQueryModelVO.getData();
+					List<DockingPreClassify>dockingPreClassifyList=new ArrayList<>();
+					dockingClassifyVOList.stream().forEach(dockingClassifyVO -> {
+						String id = StringUtils.isBlank(dockingClassifyVO.getId())?"":dockingClassifyVO.getId();
+						String className = StringUtils.isBlank(dockingClassifyVO.getClassName())?"":dockingClassifyVO.getClassName();
+						String classNumber = StringUtils.isBlank(dockingClassifyVO.getClassNumber())?"":dockingClassifyVO.getClassNumber();
+						String nodeLink = StringUtils.isBlank(dockingClassifyVO.getNodeLink())?"":dockingClassifyVO.getNodeLink();
+						String nodeLinkName = StringUtils.isBlank(dockingClassifyVO.getNodeLinkName())?"":dockingClassifyVO.getNodeLinkName();
+						String pid = StringUtils.isBlank(dockingClassifyVO.getPid())?"":dockingClassifyVO.getPid();
+						String version = StringUtils.isBlank(dockingClassifyVO.getVersion())?"":dockingClassifyVO.getVersion();
+						DockingPreClassify dockingPreClassify=	this.dockingPreClassifyService.getById(id);
+
+						log.info("classify:-------------->闆嗗洟鍒嗙被涓绘満:"+id);
+						log.info("classify:-------------->闆嗗洟鍒嗙被鍚嶇О:"+className);
+						log.info("classify:--------------> 闆嗗洟鍒嗙被鐖惰妭鐐�:"+pid);
+						log.info("classify:-------------->閾炬帴:"+nodeLink);
+						log.info("classify:-------------->闆嗗洟鍒嗙被浠e彿:"+classNumber);
+						log.info("classify:-------------->閾炬帴鍚嶇О:"+nodeLinkName);
+						log.info("classify:-------------->閾炬帴鐗堟湰:"+version);
+						if (dockingPreClassify == null || StringUtils.isBlank(dockingPreClassify.getOid())) {
+							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.setNodeLinkName(nodeLinkName);
+						dockingPreClassify.setClassName(className);
+						dockingPreClassify.setVersionValue(version);
+						dockingPreClassifyList.add(dockingPreClassify);
+					});
+					boolean res=	dockingPreClassifyService.saveOrUpdateBatch(dockingPreClassifyList);
+					if(res){
+						R.success(message);
+					}else{
+						message="淇濆瓨鍒嗙被涓绘ā鍨嬪け璐�";
+						throw new Throwable(message);
+					}
+				} else {
+					log.info(message);
+					throw new Throwable(message);
+				}
+			}else{
+				message="鏈粠闆嗗洟鑾峰彇鍒颁换浣曟ā鍨嬩俊鎭�";
+				log.info(message);
+				throw new Throwable(message);
+			}
+			return R.success(message);
+		}catch (Throwable e){
+			e.printStackTrace();;
+			log.error("鑾峰彇鏁版嵁妯″瀷澶辫触"+e);
+			R.fail(message);
+		}
+		log.info("浠庨泦鍥㈣幏鍙栦富妯″瀷淇℃伅鎵ц淇濆瓨鎺ュ彛end");
+		return R.success(message);
+	}
+
+
+
+	/***
+	 * 鏌ヨ鐢宠鍗曠姸鎬�
+	 * @param dataOids
+	 * @return 鎵ц缁撴灉
+	 */
+	@Override
+	public R queryApplyState(String dataOids) throws VciBaseException {
+
+		String message="鎵ц鎴愬姛锛�";
+		log.info("鏌ヨ鐢宠鍗曠姸鎬佹帴鍙tatr");
+		try {
+			VciBaseUtil.alertNotNull(dataOids,"鎵�鏌ョ敵璇峰崟鏁版嵁涓婚敭");
+			VciBaseUtil.alertNotNull(dockingApplySysName,"绯荤粺鏍囪瘑閰嶇疆锛歞ocking.apply.unitCode");
+			List<String> applyIdList=new ArrayList<>();
+			List<DockingPreApplyForm> dockingPreApplyFormList=	this.dockingPreApplyFormService.list(Wrappers.<DockingPreApplyForm>query().lambda().in(DockingPreApplyForm::getDataOid, VciBaseUtil.str2List(dataOids)));
+			Map<String,DockingPreApplyForm> dockingPreApplyFormMap=new HashMap<>();
+			dockingPreApplyFormList.stream().forEach(dockingPreApplyForm -> {
+				applyIdList.add(dockingPreApplyForm.getId());
+				dockingPreApplyFormMap.put(dockingPreApplyForm.getId(),dockingPreApplyForm);
+			});
+
+			DockingModelQueryVO dockingModelQueryVO=new DockingModelQueryVO();
+			dockingModelQueryVO.setApplyNums(VciBaseUtil.array2String(applyIdList.toArray(new String[]{})));
+			dockingModelQueryVO.setSysName(dockingApplySysName);
+			DockingApplyFormQueryStatusVO dockingApplyFormQueryStatusVO=mdmApplyGroupCodeProvider.queryApplyState(dockingModelQueryVO);
+
+			int code=dockingApplyFormQueryStatusVO.getCode();
+			String mesg=dockingApplyFormQueryStatusVO.getMsg();
+			if(code==1){
+				List<DockingApplyFormStatusVO> dockingApplyFormStatusVOList=dockingApplyFormQueryStatusVO.getData();
+				if(CollectionUtils.isEmpty(dockingApplyFormStatusVOList)){
+					for (DockingApplyFormStatusVO applyFormDataState : dockingApplyFormStatusVOList) {
+						String applyId=applyFormDataState.getApplyNum();
+						String state= applyFormDataState.getFormState();
+						String examineOpinion=applyFormDataState.getExamineOpinion();
+						String jmsg=getCodeState(state)+"锛屾剰瑙侊細"+examineOpinion;
+						if(dockingPreApplyFormMap.containsKey(applyId)){
+							DockingPreApplyForm applyFormObject=dockingPreApplyFormMap.get(applyId);
+							applyFormObject.setMsg(jmsg);
+						}
+					}
+					boolean res=this.dockingPreApplyFormService.saveOrUpdateBatch(dockingPreApplyFormList);
+					if(res){
+						R.success("鐢宠闆嗗洟鐮佺姸鎬佹煡璇㈡垚鍔�:"+mesg);
+					}
+				}else{
+					throw new Throwable("娌℃湁鑾峰彇鍒扮浉鍏虫暟鎹俊鎭�");
+				}
+			}else{
+				throw new	Throwable(mesg);
+			}
+
+		}catch (Throwable e){
+			e.printStackTrace();;
+			log.error("鑾峰彇鐢宠鍗曠姸鎬佸け璐�"+e);
+			throw  new VciBaseException(message);
+		}
+		log.info("鏌ヨ鐢宠鍗曠姸鎬佹帴鍙nd");
+		return R.success(message);
+	}
+
+	/***
+	 * 鍚屾闆嗗洟妯″瀷淇℃伅
+	 * @param classifyId
+	 * @param operationType
+	 * @return 杩斿洖鎵ц缁撴灉
+	 * @throws VciBaseException
+	 */
+	@Override
+	public R syncClassifyModel(String classifyId, String operationType) throws VciBaseException {
+		VciBaseUtil.alertNotNull(operationType,"闆嗘垚鎿嶄綔绫诲瀷");
+		try {
+			if(operationType.equals("all")){
+				return	queryMdmModel();
+			}else{
+				VciBaseUtil.alertNotNull(classifyId,"闆嗗洟鍒嗙被涓婚敭");
+				return queryClassModel(classifyId);
+			}
+		} catch (Throwable e) {
+			throw  new VciBaseException(e.getMessage());
+		}
+	}
+
+	/***
+	 * 缁勭粐 淇濆瓨鏁版嵁鏂规硶
+	 *
+	 * @param dockingQueryClassifyModelVO
+	 * @return
+	 * @throws Throwable
+	 * @throws
+	 * @throws Throwable
+	 */
+	private boolean saveDatas(DockingQueryClassModelVO dockingQueryClassifyModelVO) throws Throwable {
+		try {
+			DockingClassifyMainVO mainData = dockingQueryClassifyModelVO.getMainData();
+			List<DockingClassifyVO> classList = mainData.getClassList();
+			Map<String,List<DockingClassifyViewVO>>classInfoMap = mainData.getClassInfos();
+			////initVCIInvocationInfo("1");
+			List<DockingPreClassify> dockingPreClassifyArrayList=new ArrayList<>();
+			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();
+				//鏍规嵁鍒嗙被鏌ヨ妯″瀷瑙嗗浘瀵硅薄
+				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())) {
+					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.setNodeLinkName(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 = com.alibaba.cloud.commons.lang.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 = com.alibaba.cloud.commons.lang.StringUtils.isBlank(viewInfo.getViewName())?"":viewInfo.getViewName();
+				String impactList = com.alibaba.cloud.commons.lang.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 -> com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(s.getEnglishName())).collect(Collectors.toMap(s -> s.getEnglishName().toLowerCase(Locale.ROOT), t -> t));
+
+			for (DockingClassifyMetaAttrVO dockingClassifyMetaAttrVO : metaList) {
+				String chineseName = com.alibaba.cloud.commons.lang.StringUtils.isBlank(dockingClassifyMetaAttrVO.getChineseName())?"":dockingClassifyMetaAttrVO.getChineseName();// 灞炴�у悕绉�
+				String englishName = com.alibaba.cloud.commons.lang.StringUtils.isBlank(dockingClassifyMetaAttrVO.getEnglishName())?"":dockingClassifyMetaAttrVO.getEnglishName();// 鑻辨枃鍚嶇О
+				String defaultValue = com.alibaba.cloud.commons.lang.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 = com.alibaba.cloud.commons.lang.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 = com.alibaba.cloud.commons.lang.StringUtils.isBlank(metaAttrObject.getOid())?"":metaAttrObject.getOid();// 灞炴�х殑oid
+		String jchinesename = com.alibaba.cloud.commons.lang.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 -> com.alibaba.cloud.commons.lang.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 = com.alibaba.cloud.commons.lang.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);
+		}
+	}
+
+
+
 
 	/**
 	 * 缁勭粐鏁版嵁
 	 * */
-	private DockingGroupDataVO queryApplycodeDataObjects(int optationtype,List<BaseModelVO> codeWupins,Map<String,DockingPreApplyForm>   addDockingPreApplyFormMap,Map<String,DockingPreApplyForm>  editDockingPreApplyFormMap,Map<String,BaseModelVO>  codeWupinMap) throws VciBaseException{
+	private DockingGroupDataVO queryApplycodeDataObjects(int optationtype,List<BaseModel>  codeWupins,Map<String,DockingPreApplyForm>   addDockingPreApplyFormMap,Map<String,DockingPreApplyForm>  editDockingPreApplyFormMap,Map<String,BaseModel>  codeWupinMap) throws VciBaseException{
 		try {
 			String curUserName = AuthUtil.getUser().getUserName();
 			//鐢宠鐨勬暟鎹�
 			List<DockingMainData> mainDataList=new ArrayList<DockingMainData>();
-			for (BaseModelVO dataBusinessObject : codeWupins) {
+			for (BaseModel dataBusinessObject : codeWupins) {
 				String format = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
 				String codeclsfid = dataBusinessObject.getData().getOrDefault("codeclsfid","");
 				String btmName = dataBusinessObject.getBtmname();
@@ -363,7 +820,7 @@
 				DockingMainData mainData = new DockingMainData();
 				mainData.setApplyEntId(dockingApplyUnitCode);//鐢宠鍗曚綅浠g爜
 				mainData.setApplyId(apllyCode);//鐢宠鍗曞彿
-				mainData.setClassName(dockingPreClassify.getGetNodeLinkName());//鍒嗙被鍚嶇О
+				mainData.setClassName(dockingPreClassify.getNodeLinkName());//鍒嗙被鍚嶇О
 				mainData.setCreateBy(curUserName);//
 				mainData.setSecretLevel("鍐呴儴");//瀵嗙骇锛岄粯璁や负鍐呴儴
 				mainData.setViewInfos(getviewInfos(optationtype,dockingPreClassify, dataBusinessObject));//鑾峰彇瑙嗗浘妯″瀷
@@ -371,7 +828,7 @@
 			}
 			//鏍规嵁鏁版嵁妯″瀷锛岀粍缁囨墍闇�瑕佹暟鎹�
 			DockingGroupDataVO postParameters=new DockingGroupDataVO();
-			postParameters.setSysName("420-CODE");//绯荤粺鏍囪瘑
+			postParameters.setSysName(dockingApplySysName);//绯荤粺鏍囪瘑
 			postParameters.setMainData(mainDataList);//
 			return postParameters;
 		} catch (Throwable e) {
@@ -386,7 +843,7 @@
 	 * @param dataBusinessObject
 	 * @throws VciBaseException
 	 */
-	private List<DockingViewVO>getviewInfos(int type, DockingPreClassify dockingPreClassify, BaseModelVO dataBusinessObject) throws Throwable{
+	private List<DockingViewVO>getviewInfos(int type, DockingPreClassify dockingPreClassify, BaseModel dataBusinessObject) throws Throwable{
 		List<DockingViewVO> viewInfoList=new ArrayList<>();
 		String jclassOid=	dockingPreClassify.getOid();
 		List<DockingPreViewModel> dockingPreViewModels=new ArrayList<>();
@@ -415,16 +872,13 @@
 	 * @return
 	 * @throws VciBaseException
 	 */
-	private List<Map<String, Object>> getViewValueList(DockingPreViewModel dockingPreViewModel,String jclassOid,BaseModelVO dataBusinessObject) throws Throwable{
+	private List<Map<String, Object>> getViewValueList(DockingPreViewModel dockingPreViewModel,String jclassOid,BaseModel dataBusinessObject) throws Throwable{
 		//鏋勯�犳ā鍨嬭鍥炬暟鎹�
 		List<Map<String, Object>> viewValueList=new ArrayList<Map<String,Object>>();
 		String oid = dockingPreViewModel.getOid();
 		Map<String,String> dataValueMap=dataBusinessObject.getData();
 		String codeClassifyId=dataValueMap.get("codeclsfid");
 		Map<String,String>conditionsMap=new HashMap<String, String>();
-
-
-
 		List<DockingPreAttrMapping> dockingPreAttrMappingList = dockingPreAttrMappingMapper.selectList(Wrappers.<DockingPreAttrMapping>query().lambda()
 			.eq(DockingPreAttrMapping::getSourceClassifyId, jclassOid).eq(DockingPreAttrMapping::getTargetClassifyId, codeClassifyId));
 		if(CollectionUtils.isEmpty(dockingPreAttrMappingList)) {
@@ -547,4 +1001,28 @@
 		}
 		return value;
 	}
+
+	private String getCodeState(String formState){
+		String msg="";
+		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)){
+			msg="瀹℃牳缁撴潫锛岃祴鐮佹垚鍔�";
+		}else if("6".equals(formState)){
+			msg="寰�301璧嬬爜";
+		}else if("7".equals(formState)){
+			msg="宸茶祴鐮�";
+		}else if("8".equals(formState)){
+			msg="宸茶祴鐮侊紙娌跨敤锛�";
+		}else if("9".equals(formState)){
+			msg="瀹℃牳涓�";
+		}
+		return msg;
+	}
 }

--
Gitblit v1.9.3