From e5748ecbc12ea91d702e61af9a19667d19d19510 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期一, 29 五月 2023 17:55:16 +0800 Subject: [PATCH] 动态表格组件更新 --- Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/GroupMdmInterServiceImpl.java | 922 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 922 insertions(+), 0 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 new file mode 100644 index 0000000..4bb2eee --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/GroupMdmInterServiceImpl.java @@ -0,0 +1,922 @@ +package com.vci.ubcs.code.webservice.service.impl; + +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.vci.ubcs.code.webservice.entity.*; +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; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +/*** + * 涓庨泦鍥㈤泦鎴愭湇鍔� + * @author xiejun + * @date 2023-05-26 + */ +@Service +@Slf4j +public class GroupMdmInterServiceImpl implements IGroupMdmInterService { + + private String code=""; + + private String msg=""; + + + @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; + + /*** + * 鐢宠鍗曟湇鍔� + */ + @Autowired(required = false) + private IDockingPreApplyFormService dockingPreApplyFormService; + + + /*** + * 妯″瀷瑙嗗浘鍗曟湇鍔� + */ + @Autowired(required = false) + private IDockingPreViewModelService dockingPreViewModelService; + + + /*** + * 闆嗗洟鍒嗙被灞炴�у睘鎬ф槧灏勯厤缃湇鍔� + */ + @Autowired(required = false) + private DockingPreAttrMappingMapper dockingPreAttrMappingMapper; + /*** + * 灞炴�у彇鍊艰寖鍥存湇鍔� + */ + @Autowired(required = false) + private IDockingPreAttrRangeService dockingPreAttrRangeService; + + + /*** + * 闆嗗洟灞炴�ф湇鍔� + */ + @Autowired(required = false) + private IDockingPreMetaAttrService dockingPreMetaAttrService; + /*** + * 涓绘暟鎹儚闆嗗洟鐢宠缂栫爜 + * @param oids 闇�瑕佺敵璇风殑鏁版嵁涓婚敭鏁扮粍 + * @param btmName 涓氬姟绫诲瀷 + * @return 杩斿洖缁撴灉淇℃伅 + * @throws Exception + */ + @Transactional(rollbackFor = VciBaseException.class) + @Override + 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<>(); + 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>(); + //缁勭粐鏁版嵁 + dockingGroupDataVO = queryApplycodeDataObjects(1, dataModelList, addDockingPreApplyFormMap, editDockingPreApplyFormMap, baseModelVOMap); + DockingResultVO resultDataObject = mdmApplyGroupCodeProvider.receiveAddApply(dockingGroupDataVO); + code = resultDataObject.getCode(); + msg = resultDataObject.getMsg(); + if ("1".equals(resultDataObject.getCode())) {//缁撴灉姝g‘鐨勬儏鍐� + List<DockingDataVO> dataObjectVOList = resultDataObject.getData(); + dataObjectVOList.stream().forEach(dataObject -> { + boolean isEditDatas = false; + String code2 = dataObject.getCode(); + DockingMainDataVO data2 = dataObject.getData(); + String applyId = data2.getApplyId();//鐢宠鍗昳d + String customCoding = StringUtils.isBlank(data2.getCustomCoding()) ? "" : data2.getCustomCoding();//闆嗗洟鐮佹 + msg = dataObject.getMsg(); + if (code2.equals("1")) {//缁撴灉姝g‘鐨勬儏鍐� + if (!"".equals(customCoding)) { + isEditDatas = true; + } + } + //闇�瑕佷慨鏀圭殑鐢宠鍗曟暟鎹� + if (editDockingPreApplyFormMap.containsKey(applyId)) { + DockingPreApplyForm dockingPreApplyForm = editDockingPreApplyFormMap.get(applyId); + dockingPreApplyForm.setCode(code2); + dockingPreApplyForm.setMsg("鐢宠锛�" + msg); + dockingPreApplyForm.setGroupCode(customCoding); + ObjectMapper mp = new ObjectMapper(); + String writeValueAsString = null; + try { + writeValueAsString = mp.writeValueAsString(dataObject); + dockingPreApplyForm.setContent(writeValueAsString); + } catch (JsonProcessingException e) { + } + } + //鏂板鐨勭敵璇峰崟鏁版嵁 + if (addDockingPreApplyFormMap.containsKey(applyId)) { + DockingPreApplyForm dockingPreApplyForm = addDockingPreApplyFormMap.get(applyId); + dockingPreApplyForm.setCode(code2); + dockingPreApplyForm.setMsg("鐢宠锛�" + msg); + dockingPreApplyForm.setGroupCode(customCoding); + ObjectMapper mp = new ObjectMapper(); + String writeValueAsString = null; + try { + writeValueAsString = mp.writeValueAsString(dataObject); + dockingPreApplyForm.setContent(writeValueAsString); + } catch (JsonProcessingException e) { + } + } + //濡傛灉鏈夐泦鍥㈢爜鍒欐洿鏂版暟鎹� + if (isEditDatas) { + if (baseModelVOMap.containsKey(applyId)) { + BaseModelVO baseModelVO = baseModelVOMap.get(applyId); + BaseModel baseModel = new BaseModel(); + BeanUtilForVCI.copyDeclaredIgnoreCase(baseModelVO, baseModel); + DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel); + DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel); + baseModelVO.setId(customCoding); + updateCbos.add(baseModel);//鏇存柊鏁版嵁闆嗗洟code + } + } + }); + } else { + editDockingPreApplyFormMap.forEach((key, dockingPreApplyForm) -> { + dockingPreApplyForm.setCode("2"); + dockingPreApplyForm.setMsg("鐢宠锛�" + msg); + dockingPreApplyForm.setContent(""); + dockingPreApplyForm.setGroupCode(""); + DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm); + }); + addDockingPreApplyFormMap.forEach((key, dockingPreApplyForm) -> { + dockingPreApplyForm.setCode("2"); + dockingPreApplyForm.setMsg("鐢宠锛�" + msg); + dockingPreApplyForm.setContent(""); + dockingPreApplyForm.setGroupCode(""); + DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM); + }); + } + if (editDockingPreApplyFormMap.size() > 0) { + dockingPreAttrMappings.addAll(editDockingPreApplyFormMap.values());//娣诲姞鐢宠鍗曟暟鎹� + } + if (addDockingPreApplyFormMap.size() > 0) { + dockingPreAttrMappings.addAll(addDockingPreApplyFormMap.values());//闇�瑕佷慨鏀圭殑鐢宠鍗曟暟鎹� + } + //淇濆瓨琛ㄥ崟鏁版嵁 + dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings); + //mdmEngineService.saveBatch(updateCbos);//淇濆瓨鏁版嵁 + } + return R.success("鐢宠鎺ュ彛璋冪敤鎴愬姛"); + }catch (VciBaseException e){ + return R.success("鐢宠鎺ュ彛璋冪敤鎴愬姛"+e); + } + } + + /*** + * 涓绘暟鎹儚闆嗗洟鏇存敼缂栫爜 + * @param oids 闇�瑕佷慨鏀圭殑鏁版嵁涓婚敭鏁扮粍 + * @param btmName 涓氬姟绫诲瀷 + * @return 杩斿洖缁撴灉淇℃伅 + * @throws Throwable + */ + @Transactional(rollbackFor = VciBaseException.class) + @Override + public R receiveEditApply(String oids, String btmName) throws VciBaseException { + 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<>(); + 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>(); + //缁勭粐鏁版嵁 + dockingGroupDataVO = queryApplycodeDataObjects(2, dataModelList, addDockingPreApplyFormMap, editDockingPreApplyFormMap, baseModelVOMap); + DockingResultVO resultDataObject = mdmApplyGroupCodeProvider.receiveEditApply(dockingGroupDataVO); + code = resultDataObject.getCode(); + msg = resultDataObject.getMsg(); + if ("1".equals(resultDataObject.getCode())) {//缁撴灉姝g‘鐨勬儏鍐� + List<DockingDataVO> dataObjectVOList = resultDataObject.getData(); + dataObjectVOList.stream().forEach(dataObject -> { + boolean isEditDatas = false; + String code2 = dataObject.getCode(); + DockingMainDataVO data2 = dataObject.getData(); + String applyId = data2.getApplyId();//鐢宠鍗昳d + String customCoding = StringUtils.isBlank(data2.getCustomCoding()) ? "" : data2.getCustomCoding();//闆嗗洟鐮佹 + msg = dataObject.getMsg(); + if (code2.equals("1")) {//缁撴灉姝g‘鐨勬儏鍐� + if (!"".equals(customCoding)) { + isEditDatas = true; + } + } + //闇�瑕佷慨鏀圭殑鐢宠鍗曟暟鎹� + if (editDockingPreApplyFormMap.containsKey(applyId)) { + DockingPreApplyForm dockingPreApplyForm = editDockingPreApplyFormMap.get(applyId); + dockingPreApplyForm.setCode(code2); + dockingPreApplyForm.setMsg("淇敼锛�" + msg); + dockingPreApplyForm.setGroupCode(customCoding); + ObjectMapper mp = new ObjectMapper(); + String writeValueAsString = null; + try { + writeValueAsString = mp.writeValueAsString(dataObject); + dockingPreApplyForm.setContent(writeValueAsString); + } catch (JsonProcessingException e) { + } + } + //鏂板鐨勭敵璇峰崟鏁版嵁 + if (addDockingPreApplyFormMap.containsKey(applyId)) { + DockingPreApplyForm dockingPreApplyForm = addDockingPreApplyFormMap.get(applyId); + dockingPreApplyForm.setCode(code2); + dockingPreApplyForm.setMsg("淇敼锛�" + msg); + dockingPreApplyForm.setGroupCode(customCoding); + ObjectMapper mp = new ObjectMapper(); + String writeValueAsString = null; + try { + writeValueAsString = mp.writeValueAsString(dataObject); + dockingPreApplyForm.setContent(writeValueAsString); + } catch (JsonProcessingException e) { + } + } + //濡傛灉鏈夐泦鍥㈢爜鍒欐洿鏂版暟鎹� + if (isEditDatas) { + if (baseModelVOMap.containsKey(applyId)) { + BaseModelVO baseModelVO = baseModelVOMap.get(applyId); + BaseModel baseModel = new BaseModel(); + BeanUtilForVCI.copyDeclaredIgnoreCase(baseModelVO, baseModel); + DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel); + DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel); + baseModelVO.setId(customCoding); + updateCbos.add(baseModel);//鏇存柊鏁版嵁闆嗗洟code + } + } + }); + } else { + editDockingPreApplyFormMap.forEach((key, dockingPreApplyForm) -> { + dockingPreApplyForm.setCode("2"); + dockingPreApplyForm.setMsg("淇敼锛�" + msg); + dockingPreApplyForm.setContent(""); + dockingPreApplyForm.setGroupCode(""); + DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm); + }); + addDockingPreApplyFormMap.forEach((key, dockingPreApplyForm) -> { + dockingPreApplyForm.setCode("2"); + dockingPreApplyForm.setMsg("淇敼锛�" + msg); + dockingPreApplyForm.setContent(""); + dockingPreApplyForm.setGroupCode(""); + DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM); + }); + } + if (editDockingPreApplyFormMap.size() > 0) { + dockingPreAttrMappings.addAll(editDockingPreApplyFormMap.values());//娣诲姞鐢宠鍗曟暟鎹� + } + if (addDockingPreApplyFormMap.size() > 0) { + dockingPreAttrMappings.addAll(addDockingPreApplyFormMap.values());//闇�瑕佷慨鏀圭殑鐢宠鍗曟暟鎹� + } + //淇濆瓨琛ㄥ崟鏁版嵁 + dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings); + //mdmEngineService.saveBatch(updateCbos);//淇濆瓨鏁版嵁 + } + return R.success("鐢宠鎺ュ彛璋冪敤鎴愬姛"); + }catch (VciBaseException e){ + return R.fail("鐢宠鎺ュ彛璋冪敤澶辫触"+e.getMessage()); + } + } + + /*** + * 鑾峰彇闆嗗洟妯″瀷璇︾粏淇℃伅鎵ц淇濆瓨 + * @param groupClassifyId + * @return + * @throws VciBaseException + */ + @Override + public R queryClassModel(String groupClassifyId) throws VciBaseException { + 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.setGetNodeLinkName(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 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.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 = 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{ + try { + String curUserName = AuthUtil.getUser().getUserName(); + //鐢宠鐨勬暟鎹� + List<DockingMainData> mainDataList=new ArrayList<DockingMainData>(); + for (BaseModelVO dataBusinessObject : codeWupins) { + String format = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()); + String codeclsfid = dataBusinessObject.getData().getOrDefault("codeclsfid",""); + String btmName = dataBusinessObject.getBtmname(); + String oid = dataBusinessObject.getOid(); + + DockingPreApplyForm dockingPreApplyForm = new DockingPreApplyForm(); + + String dataOid = dataBusinessObject.getOid(); + Map<String, String> conditionsMap = new HashMap<String, String>(); + List<DockingPreApplyForm> applyFormObjects = dockingPreApplyFormService.list(Wrappers.<DockingPreApplyForm>query().lambda().eq(DockingPreApplyForm::getDataOid, dataOid).eq(DockingPreApplyForm::getOperationType, optationtype)); + String apllyCode = ""; + if (!CollectionUtils.isEmpty(applyFormObjects)) { + dockingPreApplyForm = applyFormObjects.get(0); + apllyCode = dockingPreApplyForm.getId(); + editDockingPreApplyFormMap.put(apllyCode, dockingPreApplyForm);//鐢宠鍗曞拰鐢宠鍗曞璞″叧绯� + } else { + apllyCode = dockingApplyUnitCode + "-" + format; + dockingPreApplyForm.setId(apllyCode); + dockingPreApplyForm.setName(""); + dockingPreApplyForm.setOperationType(optationtype+""); + dockingPreApplyForm.setDescription(dataBusinessObject.getDescription());//鑾峰彇鏁版嵁鎻忚堪淇℃伅 + dockingPreApplyForm.setDataOid(oid); + dockingPreApplyForm.setDataBtmName(btmName); + addDockingPreApplyFormMap.put(apllyCode, dockingPreApplyForm);//鐢宠鍗曞拰鐢宠鍗曞璞″叧绯� + } + + codeWupinMap.put(apllyCode, dataBusinessObject);//鐢宠鍗曞拰瀵瑰簲鏁版嵁鍏崇郴 + conditionsMap = new HashMap<String, String>(); + conditionsMap.put("jtargetclsfid", codeclsfid);//瑙嗗浘oid + + List<DockingPreAttrMapping> dockingPreAttrMappingList = dockingPreAttrMappingMapper.selectList(Wrappers.<DockingPreAttrMapping>query().lambda().eq(DockingPreAttrMapping::getTargetClassifyId, codeclsfid)); + if (CollectionUtils.isEmpty(dockingPreAttrMappingList)) { + throw new Exception("鏍规嵁鎵�閫夌殑鏁版嵁锛屾病鏈夋壘鍒板搴旂殑闆嗗洟鍒嗙被璁剧疆锛岃鏍稿!"); + } + String jsourceclsfid = dockingPreAttrMappingList.get(0).getSourceClassifyId(); + //鑾峰彇鏁版嵁妯″瀷鍒嗙被淇℃伅 + DockingPreClassify dockingPreClassify = dockingPreClassifyService.getById(jsourceclsfid); + DockingMainData mainData = new DockingMainData(); + mainData.setApplyEntId(dockingApplyUnitCode);//鐢宠鍗曚綅浠g爜 + mainData.setApplyId(apllyCode);//鐢宠鍗曞彿 + mainData.setClassName(dockingPreClassify.getGetNodeLinkName());//鍒嗙被鍚嶇О + mainData.setCreateBy(curUserName);// + mainData.setSecretLevel("鍐呴儴");//瀵嗙骇锛岄粯璁や负鍐呴儴 + mainData.setViewInfos(getviewInfos(optationtype,dockingPreClassify, dataBusinessObject));//鑾峰彇瑙嗗浘妯″瀷 + mainDataList.add(mainData); + } + //鏍规嵁鏁版嵁妯″瀷锛岀粍缁囨墍闇�瑕佹暟鎹� + DockingGroupDataVO postParameters=new DockingGroupDataVO(); + postParameters.setSysName(dockingApplySysName);//绯荤粺鏍囪瘑 + postParameters.setMainData(mainDataList);// + return postParameters; + } catch (Throwable e) { + // TODO Auto-generated catch block + throw new VciBaseException("鏌ヨ鏁版嵁鍑洪敊"+e); + } + } + + /** + * 鑾峰彇妯″瀷瑙嗗浘 + * @param dockingPreClassify + * @param dataBusinessObject + * @throws VciBaseException + */ + private List<DockingViewVO>getviewInfos(int type, DockingPreClassify dockingPreClassify, BaseModelVO dataBusinessObject) throws Throwable{ + List<DockingViewVO> viewInfoList=new ArrayList<>(); + String jclassOid= dockingPreClassify.getOid(); + List<DockingPreViewModel> dockingPreViewModels=new ArrayList<>(); + if(type==1) { + //鏍规嵁鍒嗙被鏌ヨ妯″瀷瑙嗗浘瀵硅薄 + dockingPreViewModels= dockingPreViewModelService.list(Wrappers.<DockingPreViewModel>query().lambda().eq(DockingPreViewModel::getSourceClassifyId,jclassOid).eq(DockingPreViewModel::getViewName,"缂栫爜瑙嗗浘")); + }else{ + //鏍规嵁鍒嗙被鏌ヨ妯″瀷瑙嗗浘瀵硅薄 + dockingPreViewModels= dockingPreViewModelService.list(Wrappers.<DockingPreViewModel>query().lambda().eq(DockingPreViewModel::getSourceClassifyId,jclassOid)); + } + for (DockingPreViewModel dockingPreViewModel : dockingPreViewModels) { + //缁勭粐鏁版嵁灞炴�т俊鎭� + DockingViewVO viewInfo=new DockingViewVO(); + viewInfo.setViewName(dockingPreViewModel.getViewName());//瑙嗗浘鍚嶇О + viewInfo.setViewValue(getViewValueList(dockingPreViewModel,jclassOid,dataBusinessObject));//瑙嗗浘 + viewInfoList.add(viewInfo); + } + return viewInfoList; + } + + /*** + * 鑾峰彇閰嶇疆淇℃伅 + * @param dockingPreViewModel + * @param jclassOid + * @param dataBusinessObject + * @return + * @throws VciBaseException + */ + private List<Map<String, Object>> getViewValueList(DockingPreViewModel dockingPreViewModel,String jclassOid,BaseModelVO 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)) { + return viewValueList; + } + + Map<String,DockingPreAttrMapping> jintegmappconfigMap=new HashMap<String, DockingPreAttrMapping>(); + for (DockingPreAttrMapping businessObject : dockingPreAttrMappingList) { + jintegmappconfigMap.put(businessObject.getSourceAttrKey(), businessObject); + } + List<DockingPreMetaAttr> dockingPreMetaAttrList= dockingPreMetaAttrService.selectByWrapper( + Wrappers.<DockingPreMetaAttr>query().lambda().eq(DockingPreMetaAttr::getViewModelId,dockingPreViewModel.getOid()) + .eq(DockingPreMetaAttr::getSourceClassifyId,dockingPreViewModel.getSourceClassifyId())); + + Map<String,Object> viewValueMap=new HashMap<String,Object>(); + for (DockingPreMetaAttr dockingPreMetaAttr : dockingPreMetaAttrList) { + String jenglishname=dockingPreMetaAttr.getEnglishName();////闆嗗洟閰嶇疆灞炴�� + if(jintegmappconfigMap.containsKey(jenglishname)){ + DockingPreAttrMapping dockingPreAttrMapping=jintegmappconfigMap.get(jenglishname); + String attrId = dockingPreAttrMapping.getTargetAttrId();//缂栫爜灞炴�d + String jtargetattrkey = dockingPreAttrMapping.getTargetAttrKey();//缂栫爜灞炴�d + Object newVaue=null; + if(StringUtils.isNotBlank(jtargetattrkey)){ + getAttrRange(dockingPreMetaAttr);//鑾峰彇瀛楁鍙栧�艰寖鍥� + String value=dataValueMap.get(jtargetattrkey)==null?"":dataValueMap.getOrDefault(jtargetattrkey,""); + newVaue = getVaue(dockingPreMetaAttr, value); + }else{ + newVaue = getVaue(dockingPreMetaAttr, ""); + } + if(newVaue==null||"".equals(newVaue)){ + newVaue= dockingPreMetaAttr.getDefaultValue(); + } + viewValueMap.put(jenglishname, newVaue); + } + } + + viewValueList.add(viewValueMap); + return viewValueList; + } + + /*** + * 鑾峰彇灞炴�ф灇涓炬槧灏勯厤缃� + */ + Map<String,Map<String, DockingPreAttrRange>> attrRangeMap=new HashMap<String, Map<String,DockingPreAttrRange>>(); + private void getAttrRange(DockingPreMetaAttr jmetaatter) throws Throwable{ + + String jmetalistoid = jmetaatter.getOid(); + if(attrRangeMap.containsKey(jmetalistoid)) { + return; + } + Map<String,String>conditionsMap=new HashMap<String, String>(); + conditionsMap.put("jmetalistid", jmetalistoid);//瑙嗗浘oid + List<DockingPreAttrRange> dockingPreAttrRangeList = dockingPreAttrRangeService.selectByWrapper(Wrappers.<DockingPreAttrRange>query().lambda().eq(DockingPreAttrRange::getMetaListId, jmetalistoid)); + if (CollectionUtils.isEmpty(dockingPreAttrRangeList)) { + return; + } + Map<String, DockingPreAttrRange> rangeMap = new HashMap<String, DockingPreAttrRange>(); + rangeMap = dockingPreAttrRangeList.stream().collect(Collectors.toMap(s -> s.getNumTextValue(), t -> t, (o1, o2) -> o2)); + attrRangeMap.put(jmetalistoid, rangeMap); + + } + /**** + * 鍊肩被鍨嬭浆鎹� + * @param jmetaatter + * @param value + * @return + * @throws Throwable + */ + private Object getVaue(DockingPreMetaAttr jmetaatter,String value) throws Throwable{ + //jmetadatatype 鍏冩暟鎹被鍨嬶紙1 瀛楃鍨�, 2 鏁村瀷, 3 闀挎暣鍨�, 4 鍗曠簿搴�, 5 鍙岀簿搴�,6 鏃ユ湡鍨�, 7 鏃堕棿鍨�, 8 甯冨皵鍨�, 9 鏂囦欢, 10澶嶅悎鍨嬶級 + int jmetadatatype = jmetaatter.getMetaDataType(); + String jmetalistoid = jmetaatter.getOid(); + Map<String, DockingPreAttrRange> rangeMap=new HashMap<String, DockingPreAttrRange>(); + if(attrRangeMap.containsKey(jmetalistoid)){ + rangeMap = attrRangeMap.get(jmetalistoid); + if(rangeMap.containsKey(value)){ + DockingPreAttrRange dockingPreAttrRange = rangeMap.get(value); + value=dockingPreAttrRange.getNumText();//灏嗙紪鐮佸睘鎬у煙鍊艰浆鎹㈡垚闆嗗洟瀵瑰簲鐨勫煙鍊� + } + } + + if(jmetadatatype==1){//1 瀛楃鍨� + return StringUtils.isBlank(value)?"":value; + }else if(jmetadatatype==2){//2 鏁村瀷 + return StringUtils.isBlank(value)?null:Integer.parseInt(value); + }else if(jmetadatatype==3){//3 闀挎暣鍨� + return StringUtils.isBlank(value)?null:Long.parseLong(value); + }else if(jmetadatatype==4){//4 鍗曠簿搴�, + return StringUtils.isBlank(value)?null:Float.parseFloat(value); + }else if(jmetadatatype==5){// 5 鍙岀簿搴� + return StringUtils.isBlank(value)?null:Double.parseDouble(value); + }else if(jmetadatatype==6){//6 鏃ユ湡鍨� + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd"); + if(StringUtils.isBlank(value)) { + return null; + }else { + try { + return simpleDateFormat.parse(value); + } catch (ParseException e) { + throw new VciBaseException("date", new String[]{"鏃ユ湡鏍煎紡杞崲閿欒"}); + } + } + }else if(jmetadatatype==7){//7 鏃堕棿鍨� + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss"); + if(StringUtils.isBlank(value)) { + return null; + }else{ + try { + return simpleDateFormat.parse(value); + } catch (ParseException e) { + throw new VciBaseException("date", new String[]{"鏃ユ湡鏍煎紡杞崲閿欒"}); + } + } + }else if(jmetadatatype==8){//8 甯冨皵鍨� + return value; + }else if(jmetadatatype==9){//9 鏂囦欢, + return value; + }else if(jmetadatatype==10){//10澶嶅悎鍨� + return value;//绗﹀悎鍨嬫槸浠�涔堜笢涓滃浣曞鐞� + } + return value; + } +} -- Gitblit v1.9.3