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 |  131 ++++++++++++++++++++++++++++++++++---------
 1 files changed, 104 insertions(+), 27 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 30f044b..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
@@ -2,6 +2,7 @@
 
 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.dto.*;
@@ -176,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();
@@ -197,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;
         }
         //鐢熷懡鍛ㄦ湡鍦ㄥ叾涓煡璇㈠悗灏变細澶勭悊
         //鏋氫妇涔熶細琚鐞嗕簡
@@ -212,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();
@@ -242,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");
@@ -342,7 +345,7 @@
      * @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(),"鏍戞墍鍦ㄧ殑缁勪欢鐨勪富閿�");
         Map<String, OsAttributeVO> attributeVOMap = attrService.selectAllAttributeMap();
         UIComponentVO componentVO = uiEngineService.getComponentByOid(treeQuery.getComponentOid(),attributeVOMap);
@@ -364,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());
@@ -388,7 +392,7 @@
         if(StringUtils.isBlank(treeDefineVO.getLinkType())){
             //杩欎釜鏄笟鍔$被鍨嬬殑鑷弬鐓�
             //浠ュ墠鐨勫钩鍙版病鏈夊鑷弬鐓ц繖绉嶆湁鍏ㄩ儴鏌ヨ鐨�
-            OsBtmTypeVO btmTypeVO = btmService.getBtmById(treeDefineVO.getBtmType(),attributeVOMap);
+            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());
 
@@ -407,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);
@@ -540,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 鏌ヨ妯℃澘
@@ -647,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));
@@ -1054,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());
@@ -1110,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<>();
@@ -1319,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();
@@ -1389,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());
@@ -1493,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();
@@ -1550,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());
@@ -1558,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
@@ -1591,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{
@@ -1639,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){
@@ -1815,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);
@@ -1935,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);
@@ -2038,6 +2105,7 @@
             if(StringUtils.isBlank(cbo.btName)){
                 cbo.btName = btmTypeVO.getId();
             }
+
             if(btmTypeVO.isRevisionFlag()){
                 //瑕佺鐞嗙増鏈�
                 if(btmTypeVO.isInputRevisionFlag() && StringUtils.isNotBlank(baseDataMap.getOrDefault("revisionvalue",""))){
@@ -2077,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;
     }
 
@@ -2141,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绔富閿�");
@@ -2328,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