From a471b20fe8075a663f32b3a2ee0cd70c1c63baf7 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期四, 21 十一月 2024 21:59:42 +0800 Subject: [PATCH] 业务类型查询:树查询修改,数据列表查询接口修改(处理模板套模板情况下freemarker表达式的替换处理)。 --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java | 185 +++++++++++++++++++++++++++++++++------------ 1 files changed, 134 insertions(+), 51 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java index 8f0443d..084c5b0 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java @@ -1,14 +1,15 @@ package com.vci.web.service.impl; -import com.vci.client.common.providers.ClientServiceProvider; import com.vci.corba.common.PLException; import com.vci.corba.framework.data.UserInfo; +import com.vci.corba.omd.btm.BizType; import com.vci.corba.omd.data.*; import com.vci.corba.omd.lcm.LifeCycle; -import com.vci.file.pagemodel.VciFileObjectVO; +import com.vci.dto.*; import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus; import com.vci.frameworkcore.lcstatuspck.ReleaseDataLCStatus; import com.vci.omd.utils.ObjectTool; +import com.vci.pagemodel.*; import com.vci.starter.revision.bo.TreeWrapperOptions; import com.vci.starter.web.annotation.bus.VciChangeDataAfter; import com.vci.starter.web.annotation.bus.VciChangeDataBefore; @@ -21,10 +22,9 @@ import com.vci.starter.web.pagemodel.*; import com.vci.starter.web.util.*; import com.vci.starter.web.wrapper.VciQueryWrapperForDO; -import com.vci.web.dto.*; +import com.vci.web.enumpck.DeleteTypeEnum; import com.vci.web.enumpck.UIFieldTypeEnum; import com.vci.web.enumpck.UITreeLoadTypeEnum; -import com.vci.web.pageModel.*; import com.vci.web.query.UIDataGridQuery; import com.vci.web.query.UIFormQuery; import com.vci.web.query.UILinkTypeDataQuery; @@ -42,7 +42,8 @@ import java.util.*; import java.util.stream.Collectors; -import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST; +import static com.vci.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST; + /** * UI涓婄殑鏁版嵁鏌ヨ @@ -69,6 +70,11 @@ */ @Autowired private OsBtmServiceI btmService; + /** + * 灞炴�ф湇鍔� + */ + @Autowired + private OsAttributeServiceI attrService; /** * 閾炬帴绫诲瀷 @@ -130,10 +136,10 @@ * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 */ @Override - public DataGrid getDataForGrid(UIDataGridQuery dataGridQuery) throws VciBaseException { + public DataGrid getDataForGrid(UIDataGridQuery dataGridQuery) throws VciBaseException, PLException { VciBaseUtil.alertNotNull(dataGridQuery,"鏌ヨ瀵硅薄",dataGridQuery.getBtmname(),"涓氬姟绫诲瀷",dataGridQuery.getTableDefineId()); //鍏堝垽鏂煡璇㈡ā鏉� - UITableDefineVO tableDefineVO = uiEngineService.getComponentByOid(dataGridQuery.getComponentOid()).getTableDefineVO(); + UITableDefineVO tableDefineVO = uiEngineService.getComponentByOid(dataGridQuery.getComponentOid(),null).getTableDefineVO(); String queryTemplate = !CollectionUtils.isEmpty(dataGridQuery.getSourceData())?dataGridQuery.getSourceData().getOrDefault("querytemplate",tableDefineVO.getQueryTemplateName()):tableDefineVO.getQueryTemplateName(); if(StringUtils.isBlank(queryTemplate)){ //璇存槑娌℃湁璁剧疆鏌ヨ妯℃澘锛岄渶瑕佺湅鐪嬪湪杩欎釜琛ㄦ牸鎵�鍦ㄧ殑缁勪欢鏈夋病鏈夎缃� @@ -171,14 +177,15 @@ queryFieldList.addAll(linkTypeVO.getAttributes().stream().map(OsLinkTypeAttributeVO::getId).collect(Collectors.toList())); queryFieldList.addAll(WebLoServiceImpl.LO_BASE_FIELD_MAP.values()); }else{ - btmTypeVO = btmService.getBtmById(dataGridQuery.getBtmname()); + //btmTypeVO = btmService.getBtmById(dataGridQuery.getBtmname()); + btmTypeVO = btmService.getBtmByName(dataGridQuery.getBtmname()); queryFieldList.addAll(btmTypeVO.getAttributes().stream().map(OsBtmTypeAttributeVO::getId).collect(Collectors.toList())); queryFieldList.addAll(WebBoServiceImpl.BO_BASE_FIELD_MAP.values()); } queryFieldList.add("creator_name"); queryFieldList.add("lastmodifier_name"); //鎴戜滑鍦ㄥ悗鍙版煡璇笟鍔℃暟鎹� - Map<String, String> replaceMap = wrapperReplaceMap( dataGridQuery.getSourceData()); + Map<String, String> replaceMap = wrapperReplaceMap(dataGridQuery.getSourceData()); if(dataGridQuery.isLinkTypeFlag()){ UILinkTypeDataQuery linkTypeDataQuery = new UILinkTypeDataQuery(); @@ -192,8 +199,9 @@ } return loService.queryGridByScheme(linkTypeDataQuery); }else { - return boService.queryGridByScheme(queryTemplate, + DataGrid dataGrid = boService.queryGridByScheme(queryTemplate, dataGridQuery.getConditionMap(), replaceMap, dataGridQuery.getPageHelper(), queryFieldList.stream().collect(Collectors.toList())); + return dataGrid; } //鐢熷懡鍛ㄦ湡鍦ㄥ叾涓煡璇㈠悗灏变細澶勭悊 //鏋氫妇涔熶細琚鐞嗕簡 @@ -207,7 +215,7 @@ * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 */ @Override - public UIFormDataVO getDataForForm(UIFormQuery formQuery) throws VciBaseException { + public UIFormDataVO getDataForForm(UIFormQuery formQuery) throws VciBaseException, PLException { VciBaseUtil.alertNotNull(formQuery,"琛ㄥ崟鐨勬煡璇㈠璞�",formQuery.getBtmname(),"涓氬姟绫诲瀷鐨勪俊鎭�",formQuery.getOid(),"涓氬姟鏁版嵁鐨勪富閿�",formQuery.getFormDefineId(),"琛ㄥ崟鐨勫畾涔夌紪鍙�"); UIFormDefineVO formDefineVO = uiEngineService.getFormById(formQuery.getBtmname(),formQuery.getFormDefineId()); String queryTemplate = !CollectionUtils.isEmpty(formQuery.getSourceData())?formQuery.getSourceData().getOrDefault("querytemplate",formDefineVO.getQueryTemplateName()):formDefineVO.getQueryTemplateName(); @@ -237,7 +245,7 @@ queryFieldList.addAll(linkTypeVO.getAttributes().stream().map(OsLinkTypeAttributeVO::getId).collect(Collectors.toList())); queryFieldList.addAll(WebLoServiceImpl.LO_BASE_FIELD_MAP.values()); }else{ - btmTypeVO = btmService.getBtmById(formQuery.getBtmname()); + btmTypeVO = btmService.getBtmByName(formQuery.getBtmname()); queryFieldList.addAll(btmTypeVO.getAttributes().stream().map(OsBtmTypeAttributeVO::getId).collect(Collectors.toList())); } queryFieldList.add("creator_name"); @@ -337,9 +345,10 @@ * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 */ @Override - public List<Tree> getDataForTree(UITreeQuery treeQuery) throws VciBaseException { + public List<Tree> getDataForTree(UITreeQuery treeQuery) throws VciBaseException, PLException { VciBaseUtil.alertNotNull(treeQuery,"琛ㄥ崟鐨勬煡璇㈠璞�",treeQuery.getBtmname(),"涓氬姟绫诲瀷鐨勪俊鎭�",treeQuery.getComponentOid(),"鏍戞墍鍦ㄧ殑缁勪欢鐨勪富閿�"); - UIComponentVO componentVO = uiEngineService.getComponentByOid(treeQuery.getComponentOid()); + Map<String, OsAttributeVO> attributeVOMap = attrService.selectAllAttributeMap(); + UIComponentVO componentVO = uiEngineService.getComponentByOid(treeQuery.getComponentOid(),attributeVOMap); if(componentVO == null || StringUtils.isBlank(componentVO.getOid())){ throw new VciBaseException("鏍戠殑閰嶇疆淇℃伅娌℃湁鑾峰彇鍒�"); } @@ -358,10 +367,11 @@ if(treeQuery.getExtandParamsMap() != null){ treeQuery.getConditionMap().putAll(treeQuery.getExtandParamsMap()); } - String parentFieldName = treeQuery.getParentFieldName(); + String parentFieldName = treeQuery.getParentFieldName(); if(parentFieldName.contains(",")){ parentFieldName = parentFieldName.split(",")[0]; } + //TODO: 杩欏効涓哄暐瑕佸皢鏍硅妭鐐规樉绀鸿〃杈惧紡鏀惧埌鏌ヨ鏉′欢涓幓锛岃繖鏍峰氨浼氬鑷磋繖涓妭鐐硅褰撴垚鏌ヨ鏉′欢鍘绘煡璇� if(StringUtils.isNotBlank(parentFieldName)){ if(StringUtils.isNotBlank(treeQuery.getParentOid())){ treeQuery.getConditionMap().put(parentFieldName,treeQuery.getParentOid()); @@ -382,7 +392,7 @@ if(StringUtils.isBlank(treeDefineVO.getLinkType())){ //杩欎釜鏄笟鍔$被鍨嬬殑鑷弬鐓� //浠ュ墠鐨勫钩鍙版病鏈夊鑷弬鐓ц繖绉嶆湁鍏ㄩ儴鏌ヨ鐨� - OsBtmTypeVO btmTypeVO = btmService.getBtmById(treeDefineVO.getBtmType()); + OsBtmTypeVO btmTypeVO = btmService.getBtmByName(treeDefineVO.getBtmType()); queryFieldList.addAll(btmTypeVO.getAttributes().stream().map(OsBtmTypeAttributeVO::getId).collect(Collectors.toList())); queryFieldList.addAll(WebBoServiceImpl.BO_BASE_FIELD_MAP.values()); @@ -401,7 +411,7 @@ if(StringUtils.isBlank(parentFieldNameAndValue) || !parentFieldNameAndValue.contains(",")){ throw new VciBaseException("閰嶇疆鐨勪俊鎭湁璇�傚湪娌℃湁鍦ㄨ彍鍗曟垨鑰呮潵婧愭暟鎹缃牴鑺傜偣鐨勬煡璇㈡ā鏉挎椂锛岃鍦ㄦ爲鐨勩�愬弬鐓ф爲銆戜笂璁剧疆涓婄骇瀛楁鐨勫悕绉板拰鏍硅妭鐐圭殑鏌ヨ鐨勫�笺�傛瘮濡倄xxx,yyy銆傚叾涓瓁xxx鏄笂绾у瓧娈佃嫳鏂囧悕绉�"); } - parentFieldName= parentFieldNameAndValue.split(",")[0]; + parentFieldName = parentFieldNameAndValue.split(",")[0]; String rootQueryValue = parentFieldNameAndValue.split(",")[1]; treeQuery.getConditionMap().put(parentFieldName,rootQueryValue); replaceMap.put(parentFieldName,rootQueryValue); @@ -534,6 +544,62 @@ } /** + * 鑾峰彇鏁版嵁(鏍规嵁鏌ヨ妯℃澘鏌ヨ瀵硅薄锛岃繑鍥炵殑缁撴瀯鎸夌収ui瀹氫箟锛屽畾涔夌殑妯℃澘绫诲瀷杩斿洖) + * @param treeQuery 鏍戝舰鏌ヨ鏉′欢 + * @return 鏍戝舰鏁版嵁 + * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 + */ + @Override + public BaseResult getDataByTemp(UITreeQuery treeQuery) throws VciBaseException, PLException { + VciBaseUtil.alertNotNull(treeQuery,"琛ㄥ崟鐨勬煡璇㈠璞�",treeQuery.getComponentOid(),"褰撳墠缁勪欢鐨勪富閿�"); + //1銆佸厛鏌ヨ椤甸潰瀹氫箟缁勪欢 + Map<String, OsAttributeVO> attributeVOMap = attrService.selectAllAttributeMap(); + UIComponentVO componentVO = uiEngineService.getComponentByOid(treeQuery.getComponentOid(),attributeVOMap); + if(componentVO == null || StringUtils.isBlank(componentVO.getOid())){ + throw new VciBaseException("鏈幏鍙栧埌鐣岄潰閰嶇疆淇℃伅锛�"); + } + // 2銆佹牴鎹厤缃殑鏌ヨ妯℃澘鏌ヨ鏁版嵁(闇�瑕佽�冭檻鍏ㄩ潰涓�鐐�), + // 杩欏効鏍规嵁褰撳墠绫诲瀷鏉ヨ幏鍙栨槸浠�涔堢被鍨嬬殑鏌ヨ妯℃澘锛岀劧鍚庡仛瀵瑰簲鐨勬煡璇㈠鐞� + + UITreeDefineVO treeDefineVO = componentVO.getTreeDefineVO(); + String queryTemplate = StringUtils.isNotBlank(treeQuery.getQueryTemplate())?treeQuery.getQueryTemplate():(!CollectionUtils.isEmpty(treeQuery.getSourceData())?treeQuery.getSourceData().getOrDefault("querytemplate",treeDefineVO.getQueryTemplateName()):treeDefineVO.getQueryTemplateName()); + Map<String, String> replaceMap = wrapperReplaceMap(treeQuery.getSourceData()); + List<String> queryFieldList = new ArrayList<>(); + String valueField = treeQuery.isLinkTypeFlag()?(!treeDefineVO.isOrientation()?"${oid}" + TREE_NODE_ID_SEP + "${t_oid}":"${oid}" + TREE_NODE_ID_SEP + "${f_oid}"):(StringUtils.isNotBlank(treeQuery.getValueField())?treeQuery.getValueField():"oid"); + String textField = StringUtils.isNotBlank(treeDefineVO.getTreeNodeExpression())?treeDefineVO.getTreeNodeExpression():(StringUtils.isNotBlank(treeQuery.getTextField())?treeQuery.getTextField():"name"); + String rootExpress = StringUtils.isNotBlank(treeQuery.getRootExpress())?treeQuery.getRootExpress():treeDefineVO.getRootContent(); + String parentFieldName = treeQuery.getParentFieldName(); + if(parentFieldName.contains(",")){ + parentFieldName = parentFieldName.split(",")[0]; + } + queryFieldList.add("creator_name"); + queryFieldList.add("lastmodifier_name"); + OsBtmTypeVO btmTypeVO = btmService.getBtmByName(treeDefineVO.getBtmType()); + queryFieldList.addAll(btmTypeVO.getAttributes().stream().map(OsBtmTypeAttributeVO::getId).collect(Collectors.toList())); + queryFieldList.addAll(WebBoServiceImpl.BO_BASE_FIELD_MAP.values()); + + addQueryField(queryFieldList,valueField); + addQueryField(queryFieldList,textField); + List<BusinessObject> rootCbos = boService.queryCBOByScheme(queryTemplate, null, replaceMap); + + //3銆佹牴鎹笉鍚岀殑缁勪欢杩斿洖涓嶅悓鐨勬暟鎹被鍨嬶紙鏍戙�佸垪琛ㄣ�佹爲琛ㄣ�佽嚜瀹氫箟妯℃澘銆佽〃鍗曠瓑锛� + List<Tree> rootTreeList = null; + if(!CollectionUtils.isEmpty(rootCbos)){ + rootTreeList = cbo2Trees(rootCbos,valueField,StringUtils.isBlank(rootExpress)?textField:rootExpress,parentFieldName,treeQuery.isShowCheckBox(),null); + TreeQueryObject treeQueryObject = new TreeQueryObject(); + treeQueryObject.setValueField(valueField); + treeQueryObject.setTextField(textField); + treeQueryObject.setParentFieldName(parentFieldName); + treeQueryObject.setShowCheckBox(treeQuery.isShowCheckBox()); + if(UITreeLoadTypeEnum.ALL.getValue().equalsIgnoreCase(treeDefineVO.getLoadType())){ + treeQueryObject.setQueryAllLevel(false); + } + //queryTreeForBO(rootTreeList,treeDefineVO.getQueryTemplateName(),queryFieldList,treeQueryObject); + } + return BaseResult.tree(rootTreeList); + } + + /** * 涓氬姟绫诲瀷鐨勫睘鎬ф煡璇� * @param rootTreeList 鏍硅妭鐐圭殑鍐呭 * @param queryTemplate 鏌ヨ妯℃澘 @@ -641,7 +707,8 @@ Map<String,String> cbo2Map = boService.cbo2Map(cbo); if(!CollectionUtils.isEmpty(cbo2Map)){ cbo2Map.forEach((key,value)->{ - cloMap.put(parentFieldName + "." + key,value); + //TODO: 杩欏効涓哄暐瑕佹嫾鎺ヤ笂parentFieldName锛屽鑷村悗闈reemarker琛ㄨ揪寮忔棤娉曟纭浛鎹� + cloMap.put(/*parentFieldName + "." +*/ key,value); }); } tree.setOid(getValueByExpressForBOAndLO(cloMap,cbo2Map,valueField)); @@ -762,7 +829,7 @@ * @throws VciBaseException 閰嶇疆鎴栬�呮槸璋冪敤涓嶆垚鍔熺殑鏃跺�欙紝浼氭姏鍑哄紓甯� */ @Override - public BaseResult callPreEvent(BaseModelDTOList baseModelDTOList,BaseLinkModelDTOList baseLinkModelDTOList, String preEvent, VciChangeDocumentTypeEnum businessType) throws VciBaseException{ + public BaseResult callPreEvent(BaseModelDTOList baseModelDTOList, BaseLinkModelDTOList baseLinkModelDTOList, String preEvent, VciChangeDocumentTypeEnum businessType) throws VciBaseException{ if((baseModelDTOList == null || CollectionUtils.isEmpty(baseModelDTOList.getDataList())) && (baseLinkModelDTOList == null || CollectionUtils.isEmpty(baseLinkModelDTOList.getDataList()))){ return BaseResult.success(); } @@ -1048,7 +1115,7 @@ * @throws VciBaseException 淇濆瓨鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 */ @Override - public BaseResult<Map<String, Object>> addSave(FormDataDTO formDataDTO) throws VciBaseException { + public BaseResult<Map<String, Object>> addSave(FormDataDTO formDataDTO) throws VciBaseException, PLException { //棣栧厛鍒ゆ柇瀵硅薄鏄惁涓虹┖ VciBaseUtil.alertNotNull(formDataDTO,"娣诲姞鐨勬暟鎹璞�",formDataDTO.getBtmname(),"涓氬姟绫诲瀷鐨勫悕绉�",formDataDTO.getFormDefineId(),"琛ㄥ崟瀹氫箟鐨勭紪鍙�"); UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmname(), formDataDTO.getFormDefineId()); @@ -1104,7 +1171,7 @@ * @param newVersion 鏂扮増娆� * @return 鎵ц鐨勭粨鏋� */ - private BaseResult<BusinessObject> wrapperCbo(FormDataDTO formDataDTO,UIFormDefineVO formDefineVO,boolean editFlag,boolean newRevision,boolean newVersion){ + private BaseResult<BusinessObject> wrapperCbo(FormDataDTO formDataDTO,UIFormDefineVO formDefineVO,boolean editFlag,boolean newRevision,boolean newVersion) throws PLException { //鎵╁睍灞炴�х殑鍊� Map<String, String> data = formDataDTO.getData(); Map<String,String> dataLow = new HashMap<>(); @@ -1313,7 +1380,7 @@ * @throws VciBaseException 淇濆瓨鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 */ @Override - public BaseResult<String> batchAddSave(FormDataDTOList formDataDTOList) throws VciBaseException { + public BaseResult<String> batchAddSave(FormDataDTOList formDataDTOList) throws VciBaseException, PLException { VciBaseUtil.alertNotNull(formDataDTOList,"瑕佹坊鍔犵殑鏁版嵁",formDataDTOList.getFormDataDTOS(),"瑕佹坊鍔犵殑鏁版嵁"); //棣栧厛鍒ゆ柇瀵硅薄鏄惁涓虹┖ FormDataDTO firstFormDataDTO = formDataDTOList.getFormDataDTOS().stream().findFirst().get(); @@ -1364,7 +1431,7 @@ }catch (Throwable e){ //璇存槑鍚庣疆浜嬩欢鍑虹幇浜嗛敊璇紝閭d箞灏遍渶瑕佸垹闄や互鍓嶇殑杩欐潯鏁版嵁 try { - platformClientUtil.getBOFactoryService().batchDeleteBusinessObject(afterBOs.toArray(new BusinessObject[0]),1); + platformClientUtil.getBOFactoryService().batchDeleteBusinessObject(afterBOs.toArray(new BusinessObject[0]),DeleteTypeEnum.OID_AND_TS.getValue()); } catch (PLException vciError) { throw WebUtil.getVciBaseException(vciError); } @@ -1383,7 +1450,7 @@ * @throws VciBaseException 淇濆瓨鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 */ @Override - public BaseResult<Map<String, Object>> editSave(FormDataDTO formDataDTO) throws VciBaseException { + public BaseResult<Map<String, Object>> editSave(FormDataDTO formDataDTO) throws VciBaseException, PLException { //棣栧厛鍒ゆ柇瀵硅薄鏄惁涓虹┖ VciBaseUtil.alertNotNull(formDataDTO,"淇敼鐨勬暟鎹璞�",formDataDTO.getBtmname(),"涓氬姟绫诲瀷鐨勫悕绉�",formDataDTO.getFormDefineId(),"琛ㄥ崟瀹氫箟鐨勭紪鍙�"); UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmname(), formDataDTO.getFormDefineId()); @@ -1487,7 +1554,7 @@ * @throws VciBaseException 淇濆瓨鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 */ @Override - public BaseResult<String> batchEditSave(FormDataDTOList formDataDTOList) throws VciBaseException { + public BaseResult<String> batchEditSave(FormDataDTOList formDataDTOList) throws VciBaseException, PLException { VciBaseUtil.alertNotNull(formDataDTOList,"瑕佷慨鏀圭殑鏁版嵁",formDataDTOList.getFormDataDTOS(),"瑕佷慨鏀圭殑鏁版嵁"); //棣栧厛鍒ゆ柇瀵硅薄鏄惁涓虹┖ FormDataDTO firstFormDataDTO = formDataDTOList.getFormDataDTOS().stream().findFirst().get(); @@ -1544,7 +1611,7 @@ * @throws VciBaseException 鏁版嵁琚紩鐢ㄧ殑鏃跺�欎細鎶涘嚭寮傚父 */ @Override - public BaseResult batchDelete(DeleteDataDTO deleteDataDTO) throws VciBaseException { + public BaseResult batchDelete(DeleteDataDTO deleteDataDTO) throws VciBaseException, PLException { VciBaseUtil.alertNotNull(deleteDataDTO,"鏁版嵁浼犺緭瀵硅薄",deleteDataDTO.getDataList(),"鏁版嵁浼犺緭瀵硅薄"); String btmName = deleteDataDTO.getDataList().get(0).getBtmname(); List<String> oidList = deleteDataDTO.getDataList().stream().map(BaseModelDTO::getOid).collect(Collectors.toList()); @@ -1552,7 +1619,7 @@ List<BusinessObject> cbo = null; if(deleteDataDTO.isCascade()){ //绾ц仈鍒犻櫎 - OsBtmTypeVO btmTypeVO = btmService.getBtmById(btmName); + OsBtmTypeVO btmTypeVO = btmService.getBtmByName(btmName); OsBtmTypeAttributeVO parentAttributeVO = btmTypeVO.getAttributes().stream().filter(s -> s.getReferBtmTypeId().equalsIgnoreCase(btmName)).findFirst().orElseGet(null); if(parentAttributeVO != null){ //椤甸潰鍒嗛〉涓嶈兘鏄剧ず瓒呰繃1000 @@ -1585,7 +1652,12 @@ conditionMap.put(usedAttributeVO.getId(),QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oids.toArray(new String[0])) + ")"); if(StringUtils.isNotBlank(usedAttributeVO.getPkBtmType())) { if (boService.queryCount(usedAttributeVO.getPkBtmType(), conditionMap) > 0) { - OsBtmTypeVO btmTypeVO = btmService.getBtmById(usedAttributeVO.getPkBtmType()); + OsBtmTypeVO btmTypeVO = null; + try { + btmTypeVO = btmService.getBtmById(usedAttributeVO.getPkBtmType()); + } catch (PLException e) { + e.printStackTrace(); + } throw new VciBaseException("鏁版嵁鍦ㄣ��" + btmTypeVO.getName() + "銆戜腑鐨勫瓧娈礫" + usedAttributeVO.getName() + "]閲岃寮曠敤.涓嶈兘鍒犻櫎"); } }else{ @@ -1633,7 +1705,7 @@ * @throws VciBaseException 鍙傛暟涓虹┖锛屽繀杈撻」缂哄け */ @Override - public BaseResult<String> linkAddSave(FormLinkDataDTO formLinkDataDTO) throws VciBaseException { + public BaseResult<String> linkAddSave(FormLinkDataDTO formLinkDataDTO) throws VciBaseException, PLException { //棣栧厛鍒ゆ柇瀵硅薄鏄惁涓虹┖ VciBaseUtil.alertNotNull(formLinkDataDTO,"娣诲姞鐨勬暟鎹璞�",formLinkDataDTO.getLinkType(),"閾炬帴绫诲瀷鐨勫悕绉�",formLinkDataDTO.getFormDefineId(),"琛ㄥ崟瀹氫箟鐨勭紪鍙�"); if(formLinkDataDTO.getData() ==null){ @@ -1684,13 +1756,6 @@ throw new VciBaseException(formLinkDataDTO.isDirection()?"from绔�":"to绔�" + "鐨勪笟鍔$被鍨嬩负绌�"); } - //鏌ヨfrom绔殑 - BusinessObject fromCbo = new BusinessObject(); - try { - fromCbo = platformClientUtil.getBOFService().readBusinessObject(fromOid,fromBtmName); - } catch (PLException vciError) { - throw WebUtil.getVciBaseException(vciError); - } String finalPrefix = prefix; formLinkDataDTO.getData().forEach((key, value)->{ if(key.toLowerCase().startsWith(finalPrefix)){ @@ -1711,10 +1776,12 @@ return BaseResult.fail(resultClo.getMsg(),resultClo.getMsgObjs()); } clo = resultClo.getObj(); + if(StringUtils.isBlank(clo.toOid)){ + clo.toOid = toCbo.oid; + } //鎵ц淇濆瓨 BusinessObject[] bos = new BusinessObject[1]; ObjectTool.dealBusinessObjectNullValue(toCbo); - ObjectTool.dealLinkObjectNullValue(clo); bos[0] = toCbo; try { platformClientUtil.getBOFService().createBusinessObjectWithLink(bos,clo); @@ -1769,7 +1836,6 @@ if(editFlag){ try { LinkObject linkObject = platformClientUtil.getBOFService().readLinkObjectById(formLinkDataDTO.getOid(), formLinkDataDTO.getLinkType()); - clo = new LinkObject(); clo = linkObject; } catch (PLException vciError) { throw WebUtil.getVciBaseException(vciError); @@ -1782,6 +1848,14 @@ clo.createTime = System.currentTimeMillis(); clo.ts = System.currentTimeMillis(); clo.ltName = formLinkDataDTO.getLinkType(); + clo.toOid = formLinkDataDTO.getToid(); + clo.toNameOid = formLinkDataDTO.getTnameoid(); + clo.toRevOid = formLinkDataDTO.getTrevisionoid(); + clo.toBTName = formLinkDataDTO.getTbtmname(); + clo.fromOid = formLinkDataDTO.getFoid(); + clo.fromBTName = formLinkDataDTO.getFbtmname(); + clo.fromNameOid = formLinkDataDTO.getFnameoid(); + clo.fromRevOid = formLinkDataDTO.getFrevisionoid(); } // LinkObject finalClo = clo; @@ -1807,7 +1881,7 @@ * @param boData to鐨勬暟鎹� * @return 鍖呭惈鐨勫璞� */ - private BaseResult<BusinessObject> wrapperToCbo(FormLinkDataDTO formLinkDataDTO,UIFormDefineVO formDefineVO,String toOid,String toBtmName,Map<String,String> boData){ + private BaseResult<BusinessObject> wrapperToCbo(FormLinkDataDTO formLinkDataDTO,UIFormDefineVO formDefineVO,String toOid,String toBtmName,Map<String,String> boData) throws PLException { Map<String,String> dataLow = new HashMap<>(); boData.forEach((key,value)->{ dataLow.put(key.toLowerCase(),value); @@ -1927,14 +2001,15 @@ * @param newVersion 鏄惁鍗囩増娆� * @return cbo瀵硅薄 */ - public BusinessObject createOrGetCbo(Map<String,String> dataLowMap,Map<String,String> baseDataMap,boolean editFlag,boolean newRevision,boolean newVersion){ + public BusinessObject createOrGetCbo(Map<String,String> dataLowMap,Map<String,String> baseDataMap,boolean editFlag,boolean newRevision,boolean newVersion) throws PLException { String btmName = baseDataMap.get("btmname"); String oid = baseDataMap.get("oid"); // BusinessObject cbo = new BusinessObject(); BusinessObject cbo = new BusinessObject(); String copyfromversion = baseDataMap.get("copyfromversion"); - OsBtmTypeVO btmTypeVO = btmService.getBtmById(btmName); - List<String> attributeList = btmTypeVO.getAttributes().stream().map(attribute -> attribute.getId()).collect(Collectors.toList()); + //OsBtmTypeVO btmTypeVO = btmService.getBtmById(btmName); + OsBtmTypeVO btmTypeVO = btmService.getBtmByName(btmName); + //List<String> attributeList = btmTypeVO.getAttributes().stream().map(attribute -> attribute.getId()).collect(Collectors.toList()); if(editFlag || newRevision || newVersion){ try { cbo = platformClientUtil.getBOFService().readBusinessObject(editFlag?oid:copyfromversion,btmName); @@ -2030,6 +2105,7 @@ if(StringUtils.isBlank(cbo.btName)){ cbo.btName = btmTypeVO.getId(); } + if(btmTypeVO.isRevisionFlag()){ //瑕佺鐞嗙増鏈� if(btmTypeVO.isInputRevisionFlag() && StringUtils.isNotBlank(baseDataMap.getOrDefault("revisionvalue",""))){ @@ -2040,7 +2116,7 @@ if (ruleVO == null || StringUtils.isBlank(ruleVO.getOid())) { throw new VciBaseException("{0}閲岀殑鐗堟湰瑙勫垯璁剧疆寰椾笉姝g‘锛屽湪绯荤粺涓病鏈夋壘鍒皗1}杩欎釜鐗堟湰瑙勫垯", new String[]{btmTypeVO.getName(), btmTypeVO.getRevisionRuleId()}); } - cbo.revisionValue = ruleVO.getStartCode(); + cbo.revisionValue = ruleVO.getInitialValue(); } if (StringUtils.isBlank(cbo.nameoid)) { cbo.nameoid = VciBaseUtil.getPk(); @@ -2069,7 +2145,16 @@ // } // } setValueToCbo(dataLowMap,baseDataMap,cbo,editFlag); -// cbo.setName(dataLowMap.get("name")); + //TODO:榛樿灞炴�ч渶瑕佹斁鍦╟bo澶栧眰 + if(StringUtils.isNotBlank(baseDataMap.getOrDefault("id",""))){ + cbo.id = baseDataMap.getOrDefault("id",""); + } + if(StringUtils.isNotBlank(baseDataMap.getOrDefault("name",""))){ + cbo.name = baseDataMap.getOrDefault("name",""); + } + if(StringUtils.isNotBlank(baseDataMap.getOrDefault("description",""))){ + cbo.description = baseDataMap.getOrDefault("description",""); + } return cbo; } @@ -2133,7 +2218,7 @@ * @throws VciBaseException 鍙傛暟涓虹┖锛屽繀杈撻」缂哄け */ @Override - public BaseResult linkEditSave(FormLinkDataDTO formLinkDataDTO) throws VciBaseException { + public BaseResult linkEditSave(FormLinkDataDTO formLinkDataDTO) throws VciBaseException, PLException { VciBaseUtil.alertNotNull(formLinkDataDTO,"淇敼鐨勬暟鎹璞�",formLinkDataDTO.getLinkType(),"閾炬帴绫诲瀷鐨勫悕绉�", formLinkDataDTO.getFormDefineId(),"琛ㄥ崟瀹氫箟鐨勭紪鍙�",formLinkDataDTO.getOid(),"涓婚敭", formLinkDataDTO.getFoid(),"from绔富閿�",formLinkDataDTO.getToid(),"to绔富閿�"); @@ -2158,8 +2243,6 @@ String prefix = formLinkDataDTO.isDirection()?LO_FROM_PREFIX:LO_TO_PREFIX; String toOid = formLinkDataDTO.isDirection()?formLinkDataDTO.getFoid():formLinkDataDTO.getToid(); String toBtmName = formLinkDataDTO.isDirection()?formLinkDataDTO.getFbtmname():formLinkDataDTO.getTbtmname(); - String fromOid = formLinkDataDTO.isDirection()?formLinkDataDTO.getToid():formLinkDataDTO.getFoid(); - String fromBtmName = formLinkDataDTO.isDirection()?formLinkDataDTO.getTbtmname():formLinkDataDTO.getFbtmname(); Map<String,String> boData = new HashMap<>(); Map<String,String> loData = new HashMap<>(); @@ -2296,7 +2379,7 @@ if(deleteLinkDataDTO.isDeleteFromData()){ fromBtmDataGroups.forEach((btm,cbos)->{ try{ - platformClientUtil.getBOFactoryService().batchDeleteBusinessObject(cbos.toArray(new BusinessObject[0]),1); + platformClientUtil.getBOFactoryService().batchDeleteBusinessObject(cbos.toArray(new BusinessObject[0]), DeleteTypeEnum.OID_AND_TS.getValue()); }catch (PLException vciError) { throw WebUtil.getVciBaseException(vciError); } @@ -2305,7 +2388,7 @@ if(deleteLinkDataDTO.isDeleteToData()){ toBtmDataGroups.forEach((btm,cbos)->{ try{ - platformClientUtil.getBOFactoryService().batchDeleteBusinessObject(cbos.toArray(new BusinessObject[0]),1); + platformClientUtil.getBOFactoryService().batchDeleteBusinessObject(cbos.toArray(new BusinessObject[0]),DeleteTypeEnum.OID_AND_TS.getValue()); }catch (PLException vciError) { throw WebUtil.getVciBaseException(vciError); } @@ -2322,10 +2405,10 @@ * @return 鍒楄〃鏁版嵁 */ @Override - public DataGrid referDataGrid(ReferConfigVO referConfigVO, PageHelper pageHelper) { + public DataGrid referDataGrid(ReferConfigVO referConfigVO, PageHelper pageHelper) throws PLException { checkReferConfig(referConfigVO); //浣跨敤涓氬姟绫诲瀷鏌ヨ - OsBtmTypeVO btmById = btmService.getBtmById(referConfigVO.getReferBo()); + OsBtmTypeVO btmById = btmService.getBtmByName(referConfigVO.getReferBo()); if(referConfigVO.getConditionMap() == null){ referConfigVO.setConditionMap(new HashMap<>()); } -- Gitblit v1.9.3