From 84237d1fb40c38f9501c2f4e501f23e6c167df60 Mon Sep 17 00:00:00 2001
From: xiejun <xiejun@vci-tech.com>
Date: 星期五, 23 八月 2024 23:47:33 +0800
Subject: [PATCH] 表单表格功能添加

---
 Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ClonePortalVIDTOList.java           |   23 ++
 Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/DeletePortalVIDTOList.java          |   24 ++
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java   |   94 ++++++++
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsPortalVIServiceI.java         |   54 ++++
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java |  332 ++++++++++++++++++++++++++----
 Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/PRMItemDTO.java                     |   14 
 Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ClonePortalVIDTO.java               |   64 +++++
 7 files changed, 545 insertions(+), 60 deletions(-)

diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ClonePortalVIDTO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ClonePortalVIDTO.java
new file mode 100644
index 0000000..c284dc5
--- /dev/null
+++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ClonePortalVIDTO.java
@@ -0,0 +1,64 @@
+package com.vci.dto;
+
+public class ClonePortalVIDTO implements java.io.Serializable{
+    private static final long serialVersionUID = -721829341919731723L;
+    /**
+     * 鍏嬮殕鐨勮〃鍗曞璞�
+     */
+    private PortalVIDTO oldPortalVIDTO;
+    /**
+     *鏂拌〃鍗�/琛ㄦ牸鍚嶇О
+     */
+    private String viName;
+    /***
+     *涓氬姟绫诲瀷
+     */
+    private  String typeName;
+
+    /**
+     * 0: 涓氬姟绫诲瀷; 1: 閾炬帴绫诲瀷. 榛樿0
+     */
+    private short typeFlag;
+
+
+    public PortalVIDTO getOldPortalVIDTO() {
+        return oldPortalVIDTO;
+    }
+
+    public void setOldPortalVIDTO(PortalVIDTO oldPortalVIDTO) {
+        this.oldPortalVIDTO = oldPortalVIDTO;
+    }
+
+    public String getViName() {
+        return viName;
+    }
+
+    public void setViName(String viName) {
+        this.viName = viName;
+    }
+
+    public String getTypeName() {
+        return typeName;
+    }
+
+    public void setTypeName(String typeName) {
+        this.typeName = typeName;
+    }
+
+    public short getTypeFlag() {
+        return typeFlag;
+    }
+
+    public void setTypeFlag(short typeFlag) {
+        this.typeFlag = typeFlag;
+    }
+
+    @Override
+    public String toString() {
+        return "ClonePortalVIDTO{" +
+                "oldPortalVIDTO=" + oldPortalVIDTO +
+                ", viName='" + viName + '\'' +
+                ", typeName='" + typeName + '\'' +
+                '}';
+    }
+}
diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ClonePortalVIDTOList.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ClonePortalVIDTOList.java
new file mode 100644
index 0000000..75c25b0
--- /dev/null
+++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ClonePortalVIDTOList.java
@@ -0,0 +1,23 @@
+package com.vci.dto;
+
+import java.util.List;
+
+public class ClonePortalVIDTOList implements  java.io.Serializable{
+
+  private List<ClonePortalVIDTO> clonePortalVIDTOList;
+
+    public List<ClonePortalVIDTO> getClonePortalVIDTOList() {
+        return clonePortalVIDTOList;
+    }
+
+    public void setClonePortalVIDTOList(List<ClonePortalVIDTO> clonePortalVIDTOList) {
+        this.clonePortalVIDTOList = clonePortalVIDTOList;
+    }
+
+    @Override
+    public String toString() {
+        return "ClonePortalVIDTOList{" +
+                "clonePortalVIDTOList=" + clonePortalVIDTOList +
+                '}';
+    }
+}
diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/DeletePortalVIDTOList.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/DeletePortalVIDTOList.java
new file mode 100644
index 0000000..6fa4161
--- /dev/null
+++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/DeletePortalVIDTOList.java
@@ -0,0 +1,24 @@
+package com.vci.dto;
+
+import java.util.List;
+
+public class DeletePortalVIDTOList implements java.io.Serializable{
+    private static final long serialVersionUID = 3618617014834926325L;
+
+    private List<PortalVIDTO> portalVIDTOList;
+
+    public List<PortalVIDTO> getPortalVIDTOList() {
+        return portalVIDTOList;
+    }
+
+    public void setPortalVIDTOList(List<PortalVIDTO> portalVIDTOList) {
+        this.portalVIDTOList = portalVIDTOList;
+    }
+
+    @Override
+    public String toString() {
+        return "DeletePortalVIDTOList{" +
+                "portalVIDTOList=" + portalVIDTOList +
+                '}';
+    }
+}
diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/PRMItemDTO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/PRMItemDTO.java
index 4747ade..73670f7 100644
--- a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/PRMItemDTO.java
+++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/PRMItemDTO.java
@@ -51,9 +51,7 @@
     /**
      * 寰呴�夋嫨鐨勫睘鎬у瓧娈�
      */
-    private List<String[]> itemSelectoutFields=new ArrayList<>();
-
-
+    private List<String> itemSelectoutFieldList=new ArrayList<>();
     /**
      * 闇�瑕佷娇鐢ㄧ殑闆嗗悎
      */
@@ -614,12 +612,12 @@
         this.itemSeniorQueryBOS = itemSeniorQueryBOS;
     }
 
-    public List<String[]> getItemSelectoutFields() {
-        return itemSelectoutFields;
+    public List<String> getItemSelectoutFieldList() {
+        return itemSelectoutFieldList;
     }
 
-    public void setItemSelectoutFields(List<String[]> itemSelectoutFields) {
-        this.itemSelectoutFields = itemSelectoutFields;
+    public void setItemSelectoutFieldList(List<String> itemSelectoutFieldList) {
+        this.itemSelectoutFieldList = itemSelectoutFieldList;
     }
 
     public List<String> getItemSearchFieldList() {
@@ -712,7 +710,7 @@
                 ", itemPageSize='" + itemPageSize + '\'' +
                 ", itemImgWH='" + itemImgWH + '\'' +
                 ", itemOutFields='" + itemOutFields + '\'' +
-                ", itemSelectoutFields=" + itemSelectoutFields +
+                ", itemSelectoutFieldList=" + itemSelectoutFieldList +
                 ", itemOutFieldList=" + itemOutFieldList +
                 ", itemKeyFields='" + itemKeyFields + '\'' +
                 ", itemSearchFieldList=" + itemSearchFieldList +
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java
index 8e9cf64..b86ab56 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java
@@ -1,16 +1,25 @@
 package com.vci.web.controller;
 
+import com.vci.corba.common.PLException;
+import com.vci.dto.ClonePortalVIDTOList;
+import com.vci.dto.DeletePortalVIDTOList;
+import com.vci.dto.OsBtmTypeDTO;
 import com.vci.dto.PortalVIDTO;
 import com.vci.pagemodel.KeyValue;
 import com.vci.pagemodel.PortalVIVO;
+import com.vci.starter.web.annotation.controller.VciUnCheckRight;
 import com.vci.starter.web.annotation.log.VciBusinessLog;
 import com.vci.starter.web.pagemodel.BaseQueryObject;
 import com.vci.starter.web.pagemodel.BaseResult;
 import com.vci.starter.web.pagemodel.DataGrid;
+import com.vci.starter.web.util.VciBaseUtil;
 import com.vci.web.enumpck.ItemDblEnum;
 import com.vci.web.enumpck.ItemTypeEnum;
 import com.vci.web.service.OsPortalVIServiceI;
 import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -23,6 +32,12 @@
 @RestController
 @RequestMapping("/portalVIController")
 public class WebPortalVIController {
+    /**
+     * 鏃ュ織
+     */
+    private Logger logger = LoggerFactory.getLogger(getClass());
+
+    @Autowired
    private OsPortalVIServiceI portalVIServiceI;
     /**
      * 琛ㄥ崟鍒楄〃
@@ -31,24 +46,93 @@
      * @param baseQueryObject 鏌ヨ鏉′欢
      * @return 鍒楄〃鐨勫唴瀹�
      */
-    @GetMapping( "/referDataGrid")
+    @GetMapping( "/gridPortalVIDatas")
     @VciBusinessLog(operateName = "琛ㄥ崟/琛ㄦ牸鍒楄〃")
-    public DataGrid<PortalVIVO> referDataGrid(BaseQueryObject baseQueryObject){
+    public DataGrid<PortalVIVO> gridPortalVIDatas(BaseQueryObject baseQueryObject){
         return portalVIServiceI.gridPortalVIVOs(baseQueryObject);
     }
 
+
+    /**
+     *鏍规嵁琛ㄥ崟id鑾峰彇鍏蜂綋鏁版嵁
+     * @param id
+     * @return
+     */
+    @GetMapping( "/getPortalVIById")
+    @VciBusinessLog(operateName = "鑾峰彇琛ㄥ崟/琛ㄦ牸鏁版嵁")
+    public BaseResult getPortalVIById(@RequestBody String id,@RequestBody String viType){
+        try{
+            PortalVIVO portalVIVO=  portalVIServiceI.getPortalVIById(id,viType);
+           return  BaseResult.success(portalVIVO);
+        }catch (Throwable e){
+            e.printStackTrace();
+            String exceptionMessage = "鍒涘缓涓氬姟绫诲瀷鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e);
+            logger.error(exceptionMessage);
+            return BaseResult.fail(exceptionMessage);
+        }
+    }
     /**
      * 琛ㄥ崟/table淇濆瓨
      * @param portalVIDTO
      * @return
      */
     @PostMapping("/savePortalVI")
-    @VciBusinessLog(operateName = "娣诲姞琛ㄥ崟/琛ㄦ牸")
+    @VciBusinessLog(operateName = "淇濆瓨琛ㄥ崟/琛ㄦ牸")
     public BaseResult savePortalVI(@RequestBody PortalVIDTO portalVIDTO){
         if(StringUtils.isNotBlank(portalVIDTO.getId())){
-            return portalVIServiceI.edit(portalVIDTO);
+            return portalVIServiceI.editSave(portalVIDTO);
         }else{
-            return portalVIServiceI.add(portalVIDTO);
+            return portalVIServiceI.addSave(portalVIDTO);
+        }
+
+    }
+    /**
+     * 涓氬姟绫诲瀷鍒犻櫎
+     * btmTypeDTO 涓氬姟绫诲瀷瀵硅薄
+     * @return 鍒犻櫎缁撴灉
+     */
+    @DeleteMapping("/delete")
+    @VciBusinessLog(operateName = "鍒犻櫎琛ㄥ崟/琛ㄦ牸")
+    public BaseResult delete(@RequestBody DeletePortalVIDTOList deletePortalVIDTOList){
+        try {
+            return portalVIServiceI.delete(deletePortalVIDTOList) ? BaseResult.success("鍒犻櫎鎴愬姛锛�"):BaseResult.fail("鍒犻櫎澶辫触锛�");
+        } catch (PLException e) {
+            e.printStackTrace();
+            String exceptionMessage = "鍒犻櫎琛ㄥ崟鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e);
+            logger.error(exceptionMessage);
+            return BaseResult.fail(exceptionMessage);
+        }
+    }
+    /**
+     * 涓氬姟绫诲瀷鍒犻櫎
+     * btmTypeDTO 涓氬姟绫诲瀷瀵硅薄
+     * @return 鍒犻櫎缁撴灉
+     */
+    @DeleteMapping("/deleteByIds")
+    @VciBusinessLog(operateName = "鍒犻櫎琛ㄥ崟/琛ㄦ牸")
+    public BaseResult deleteByIds(@RequestBody String ids){
+        try {
+            return portalVIServiceI.delete(ids) ? BaseResult.success("鍒犻櫎鎴愬姛锛�"):BaseResult.fail("鍒犻櫎澶辫触锛�");
+        } catch (PLException e) {
+            e.printStackTrace();
+            String exceptionMessage = "鍒犻櫎琛ㄥ崟鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e);
+            logger.error(exceptionMessage);
+            return BaseResult.fail(exceptionMessage);
+        }
+    }
+    /**
+     *
+     */
+    @PostMapping("/clone")
+    @VciBusinessLog(operateName = "鍒犻櫎琛ㄥ崟/琛ㄦ牸")
+    public BaseResult clone(@RequestBody ClonePortalVIDTOList portalVIDTOList){
+        try {
+            return portalVIServiceI.clone(portalVIDTOList) ? BaseResult.success("鍒犻櫎鎴愬姛锛�"):BaseResult.fail("鍒犻櫎澶辫触锛�");
+        } catch (Throwable e) {
+            e.printStackTrace();
+            String exceptionMessage = "鍒犻櫎琛ㄥ崟鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e);
+            logger.error(exceptionMessage);
+            return BaseResult.fail(exceptionMessage);
         }
 
     }
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsPortalVIServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsPortalVIServiceI.java
index 45125b2..62df51c 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsPortalVIServiceI.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsPortalVIServiceI.java
@@ -1,5 +1,8 @@
 package com.vci.web.service;
+import com.vci.corba.common.PLException;
 import com.vci.corba.portal.data.PortalVI;
+import com.vci.dto.ClonePortalVIDTOList;
+import com.vci.dto.DeletePortalVIDTOList;
 import com.vci.dto.PortalVIDTO;
 import com.vci.pagemodel.PortalVIVO;
 import com.vci.starter.web.exception.VciBaseException;
@@ -23,7 +26,7 @@
      * @param baseQueryObject 鏌ヨ瀵硅薄
      * @return 閾炬帴绫诲瀷鐨勬樉绀哄璞�
      */
-    DataGrid<PortalVIVO> gridPortalVIVOs(BaseQueryObject baseQueryObject);
+    DataGrid<PortalVIVO> gridPortalVIVOs(BaseQueryObject baseQueryObject)throws VciBaseException;
 
     /***
      * 娣诲姞琛ㄥ崟/琛ㄦ牸
@@ -31,15 +34,47 @@
      * @return
      * @throws VciBaseException
      */
-    BaseResult add(PortalVIDTO portalVIDTO) throws VciBaseException;
+    BaseResult addSave(PortalVIDTO portalVIDTO) throws VciBaseException;
 
+    /***
+     * 鑾峰彇鍗曟潯鏁版嵁
+     * @param id
+     * @return viType
+     * @throws VciBaseException
+     */
+    PortalVIVO getPortalVIById(String  id,String viType) throws  PLException;
     /***
      * 鏇存敼琛ㄥ崟/琛ㄦ牸
      * @param portalVIDTO
      * @return
      * @throws VciBaseException
      */
-    BaseResult edit(PortalVIDTO portalVIDTO) throws VciBaseException;
+    BaseResult editSave(PortalVIDTO portalVIDTO) throws VciBaseException;
+
+    /**
+     * 鍒犻櫎鏁版嵁
+     * @param portalVIDTOList
+     * @return
+     * @throws PLException
+     */
+    boolean  delete(DeletePortalVIDTOList portalVIDTOList)throws  PLException;
+    /**
+     * 鍒犻櫎鏁版嵁
+     * @param ids
+     * @return
+     * @throws PLException
+     */
+    boolean  delete(String ids)throws  PLException;
+
+    /**
+     * 鍏嬮殕鏁版嵁
+     * @param portalVIDTOList
+     * @return
+     * @throws PLException
+     */
+    boolean  clone(ClonePortalVIDTOList portalVIDTOList)throws  Throwable;
+
+
 
     /**
      *鏌ヨ鎵�鏈夎〃鍗曟垨鑰呰〃鏍�
@@ -76,4 +111,17 @@
      * @return
      */
     public   PortalVI portalVIDTOO2VI(PortalVIDTO portalVIDTO);
+
+    /**
+     *  PortalVI杞垚DTO
+     * @param PortalVIS
+     * @return
+     */
+    public List<PortalVIDTO> portalVIO2DTOS(Collection<PortalVI> PortalVIS);
+    /***
+     * PortalVI杞垚DTO
+     * @param portalVI
+     * @return
+     */
+    public PortalVIDTO  portalVIO2DTO(PortalVI portalVI);
 }
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java
index 4b51876..76e4cc3 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java
@@ -5,9 +5,7 @@
 import com.vci.corba.common.PLException;
 import com.vci.corba.portal.PortalService.GetPagePortalVIArrayByPageInfoResult;
 import com.vci.corba.portal.data.PortalVI;
-import com.vci.dto.PRMDTO;
-import com.vci.dto.PRMItemDTO;
-import com.vci.dto.PortalVIDTO;
+import com.vci.dto.*;
 import com.vci.model.*;
 import com.vci.pagemodel.*;
 import com.vci.starter.web.exception.VciBaseException;
@@ -22,9 +20,12 @@
 import com.vci.web.util.PlatformClientUtil;
 import com.vci.web.util.UITools;
 import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import java.util.*;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -37,6 +38,10 @@
 */
 @Service
 public class OsPortalVIServiceImpl implements OsPortalVIServiceI  {
+    /**
+     * 鏃ュ織
+     */
+    private Logger logger = LoggerFactory.getLogger(getClass());
     /**
      * 鍔犺浇鑷韩
      */
@@ -72,19 +77,22 @@
         }
         String viName=StringUtils.isBlank(conditionMap.get("viName"))?"":conditionMap.get("viName");
         String viTypeLabel=StringUtils.isBlank(conditionMap.get("viType"))?"":conditionMap.get("viType");
-        PortalVIType  portalVIType= PortalVIType.getByLabel(viTypeLabel);
+        PortalVIType  portalVIType= PortalVIType.getByName(viTypeLabel);
         Short viType=-1;
         if(portalVIType!=null){
             viType=portalVIType.getIntVal();
         }
         String viTypeFlagLabel=StringUtils.isBlank(conditionMap.get("viTypeFlag"))?"":conditionMap.get("viTypeFlag");
-        PortalVITypeFlag portalVITypeFlag= PortalVITypeFlag.getByLabel(viTypeFlagLabel);
+        PortalVITypeFlag portalVITypeFlag= PortalVITypeFlag.getByName(viTypeFlagLabel);
         Short viTypeFlag=-1;
         if(portalVITypeFlag!=null){
             viTypeFlag=portalVITypeFlag.getIntVal();
         }
         long pageIndex=baseQueryObject.getPage();
         long pageSize=baseQueryObject.getLimit();
+        if(pageSize==-1){
+            pageSize=25;
+        }
         DataGrid<PortalVIVO> dataGrid = new DataGrid<>();
         try {
             GetPagePortalVIArrayByPageInfoResult pagePortalVIArrayByPageInfoResult= platformClientUtil.getPortalService().getPagePortalVIArrayByPageInfo(typeName,viName,viType,viTypeFlag,pageIndex,pageSize);
@@ -110,9 +118,30 @@
      * @throws PLException
      */
     @Override
-    public BaseResult add(PortalVIDTO portalVIDTO) throws VciBaseException {
+    public BaseResult addSave(PortalVIDTO portalVIDTO) throws VciBaseException {
         return  savePortalVIDTO(portalVIDTO,false);
     }
+
+    /**
+     * 鏍规嵁琛ㄥ崟id鑾峰彇鍏蜂綋鏁版嵁
+     * @param id
+     * @param viType
+     * @return
+     * @throws VciBaseException
+     */
+    @Override
+    public PortalVIVO getPortalVIById(String id,String viType) throws PLException {
+        VciBaseUtil.alertNotNull(id,"涓婚敭涓虹┖锛�");
+        String lableName=PortalVIType.Form.getLabel();
+        if(PortalVIType.Table.getName()==viType){
+            lableName=PortalVIType.Table.getLabel();
+        }
+        PortalVIVO portalVIVO=new PortalVIVO();
+        PortalVI portalVI=  platformClientUtil.getPortalService().getPortalVIById(id);
+        portalVIVO=portalVIDOO2VO(portalVI);
+        return portalVIVO;
+    }
+
     /***
      * 琛ㄥ崟/琛ㄦ牸鏇存敼
      * @param portalVIDTO
@@ -120,9 +149,102 @@
      * @throws PLException
      */
     @Override
-    public BaseResult edit(PortalVIDTO portalVIDTO) throws VciBaseException {
+    public BaseResult editSave(PortalVIDTO portalVIDTO) throws VciBaseException {
         return  savePortalVIDTO(portalVIDTO,true);
     }
+
+    @Override
+    public boolean delete(DeletePortalVIDTOList portalVIDTOList) throws PLException {
+        if(portalVIDTOList==null||CollectionUtils.isEmpty(portalVIDTOList.getPortalVIDTOList())){
+            VciBaseUtil.alertNotNull("璇烽�夋嫨瑕佸垹闄ょ殑瀵硅薄!");
+        }
+        try {
+            for(PortalVIDTO portalVIDTO:portalVIDTOList.getPortalVIDTOList()) {
+                boolean formFlag = false;
+                short viType = portalVIDTO.getViType();
+                String typeName = portalVIDTO.getTypeName();
+                String viewName = portalVIDTO.getViName();
+                String id = portalVIDTO.getId();
+                if (viType == PortalVIType.Form.getIntVal()) {
+                    // 鍒ゆ柇璇ヨ〃鍗曟槸鍚﹀湪琛ㄦ牸涓寮曠敤
+                    formFlag = platformClientUtil.getPortalService().judgeDeleteButton(id, typeName);
+                    if (formFlag) {
+                        throw new Throwable(viewName + "琛ㄥ崟宸茬粡鍦ㄨ〃鏍间腑琚紩鐢紝璇烽噸鏂伴�夋嫨瑕佸垹闄ょ殑瀵硅薄!");
+                    }
+                }
+                // 鍒ゆ柇璇ヨ〃鍗曟垨琛ㄦ牸鏄惁鍦║I瀹氫箟鏃惰寮曠敤
+                formFlag = platformClientUtil.getPortalService().judgeUpdateButton(viType, viewName, typeName);
+                if (formFlag) {
+                    throw new Throwable(viewName + "鏁版嵁宸茬粡琚玌I缁勪欢寮曠敤锛岃閲嶆柊閫夋嫨瑕佸垹闄ょ殑瀵硅薄!");
+                }
+                UITools.getService().deletePortalVIByID(id);
+            }
+        }catch (Throwable e){
+            String exceptionMessage = "鍒犻櫎琛ㄥ崟鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e);
+            logger.error(exceptionMessage);
+            throw  new PLException("100",new String[]{exceptionMessage});
+        }
+        return true;
+    }
+
+    @Override
+    public boolean delete(String ids) throws PLException {
+        VciBaseUtil.alertNotNull(ids,"涓婚敭");
+         List<String> idsList=  VciBaseUtil.str2List(ids);
+        List<PortalVI> PortalVIList= new ArrayList<>();
+        DeletePortalVIDTOList portalVIDTOList=new DeletePortalVIDTOList();
+        idsList.stream().forEach(id->{
+            PortalVI portalVI= null;
+            try {
+                portalVI = platformClientUtil.getPortalService().getPortalVIById(id);
+                PortalVIList.add(portalVI);
+            } catch (PLException e) {
+                e.printStackTrace();
+            }
+        });
+        portalVIDTOList.setPortalVIDTOList(portalVIO2DTOS(PortalVIList));
+        return delete(portalVIDTOList);
+    }
+
+    /**
+     * 琛ㄥ崟/琛ㄦ牸鍏嬮殕
+     * @param clonePortalVIDTOList
+     * @return
+     * @throws VciBaseException
+     */
+    @Override
+    public boolean clone(ClonePortalVIDTOList clonePortalVIDTOList) throws VciBaseException {
+        if(clonePortalVIDTOList==null||CollectionUtils.isEmpty(clonePortalVIDTOList.getClonePortalVIDTOList())){
+            throw  new VciBaseException("璇烽�夋嫨瑕佸厠闅嗙殑瀵硅薄!");
+        }
+        try {
+            for (ClonePortalVIDTO clonedestObject : clonePortalVIDTOList.getClonePortalVIDTOList()) {
+                String viName = clonedestObject.getViName();
+                PortalVIDTO portalVIDTO = clonedestObject.getOldPortalVIDTO();
+                String typeName = clonedestObject.getTypeName();
+                short typeFlag = clonedestObject.getTypeFlag();
+                if (viName != null) {
+                    VciBaseUtil.alertNotNull(viName, "鍏嬮殕鍚嶇О涓嶅厑璁镐负绌�");
+                    PortalVI portalVI = UITools.getService().getPortalVIById(portalVIDTO.getId());
+                    portalVI.id = ObjectUtility.getNewObjectID36();
+                    portalVI.viName = viName;
+                    //濡傛灉鍏嬮殕閫夋嫨浜嗕笟鍔$被鍨嬪垯鎷疯礉鍒版柊鐨勪笟鍔$被鍨嬩笅
+                    if (StringUtils.isNotBlank(typeName)) {
+                        portalVI.typeName = typeName;
+                    }
+                    if (typeFlag == PortalVITypeFlag.BtmType.getIntVal() || typeFlag == PortalVITypeFlag.LinkType.getIntVal()) {
+                        portalVI.typeFlag = typeFlag;
+                    }
+                    UITools.getService().savePortalVI(portalVI);
+                }
+            }
+        }catch (PLException e){
+            throw new VciBaseException("鍏嬮殕鍑虹幇寮傚父:"+e.getMessage());
+        }
+        return true;
+    }
+
+
     private BaseResult savePortalVIDTO(PortalVIDTO portalVIDTO,boolean isEdit)  {
 
         boolean _isBtm=false;
@@ -158,7 +280,7 @@
                                throw  new Throwable("璇�"+labelName+"宸茬粡琚紩鐢紝涓嶈兘淇敼鍚嶇О!");
                            }
                        } catch (PLException e) {
-                           throw  new Throwable("鏌ヨ");
+                           throw  new Throwable("鏌ヨ鍘熸湁琛ㄥ崟鍑虹幇寮傚父:"+e.getMessage());
                        }
                        if (!portalVI.id.equals(portalVIDTO.getId())) {
                            if (portalVI.viName.equals(portalVIDTO.getViName())) {
@@ -175,48 +297,29 @@
             }else{
                 flag=platformClientUtil.getPortalService().judgeUpdateButton(portalVIDTO.getTypeFlag(), portalVIDTO.getViName(), portalVIDTO.getTypeName());
             }
-            flag=  saveForm(portalVIDTO,isEdit);
+            PortalVI pvi=portalVIDTOO2VI(portalVIDTO);
+            if (!isEdit) {
+                flag= platformClientUtil.getPortalService().savePortalVI(pvi);
+            } else {
+                flag= platformClientUtil.getPortalService().updatePortalVI(pvi);
+            }
             if(flag){
                 return  BaseResult.success("淇濆瓨"+labelName+"鎴愬姛!");
             }else{
                 new Throwable("淇濆瓨"+labelName+"澶辫触!");
             }
         } catch (Throwable e) {
-           // throw new VciBaseException("淇濆瓨琛ㄥ崟鍑虹幇寮傚父锛�"+e.getMessage());
-          return    BaseResult.fail("淇濆瓨"+labelName+"鍑虹幇寮傚父锛�"+e.getMessage());
+            String exceptionMessage = "淇濆瓨"+labelName+"鍑虹幇寮傚父锛�"+ VciBaseUtil.getExceptionMessage(e);
+            logger.error(exceptionMessage);
+          return    BaseResult.fail(exceptionMessage);
+
         }
         return  BaseResult.success("淇濆瓨"+labelName+"鎴愬姛!");
     }
-
-    /**
-     * 琛ㄥ崟/琛ㄦ牸
-     * @param portalVIDTO
-     * @param isEdit
-     * @return
-     */
-    private boolean saveForm(PortalVIDTO portalVIDTO,boolean isEdit) {
-        List<PRMItemDO> prmItemList = new ArrayList<PRMItemDO>();
-        try {
-            PortalVI pvi=portalVIDTOO2VI(portalVIDTO);
-            boolean res=false;
-            if (!isEdit) {
-                res= platformClientUtil.getPortalService().savePortalVI(pvi);
-            } else {
-                res= platformClientUtil.getPortalService().updatePortalVI(pvi);
-            }
-            return res;
-        } catch (Throwable e) {
-             e.printStackTrace();
-                return false;
-        }
-    }
-
     @Override
     public Map<String, PortalVIVO> selectAllPortalVIMap() throws VciBaseException {
         return null;
     }
-
-
 
     /**
      * 鍒ゆ柇姣忛〉琛屾暟瀹氫箟鏄惁姝g‘
@@ -294,6 +397,22 @@
         });
         return portalVIS;
     }
+    /**
+     * 琛ㄥ崟鐨勬暟鎹璞¤浆鎹负鏄剧ず瀵硅薄
+     * @param PortalVIS 琛ㄥ崟鐨勫璞�
+     * @return 鏄剧ず瀵硅薄
+     */
+    @Override
+    public List<PortalVIDTO> portalVIO2DTOS(Collection<PortalVI> PortalVIS) {
+        List<PortalVIDTO>PortalVIDTOS  = new ArrayList<>();
+        Optional.ofNullable(PortalVIS).orElseGet(()->new ArrayList<>()).stream().forEach(PortalVI -> {
+            PortalVIDTO PPortalVIDTO = portalVIO2DTO(PortalVI);
+            PortalVIDTOS.add(PPortalVIDTO);
+        });
+        return PortalVIDTOS;
+    }
+
+
 
     /**
      * 琛ㄥ崟鐨勬暟鎹璞¤浆鎹负鏄剧ず瀵硅薄
@@ -317,7 +436,24 @@
         }
         return portalVI;
     }
-
+    /**
+     * 琛ㄥ崟鐨勬暟鎹璞¤浆鎹负鏄剧ず瀵硅薄
+     * @param portalVI
+     * @return
+     */
+    @Override
+    public PortalVIDTO  portalVIO2DTO(PortalVI portalVI) {
+        PortalVIDTO portalVIDTO=new PortalVIDTO();
+        portalVIDTO.setId(portalVI.id);
+        portalVIDTO.setTypeFlag(portalVI.typeFlag);
+        portalVIDTO.setTypeName(portalVI.typeName);
+        portalVIDTO.setViName(portalVI.viName);
+        portalVIDTO.setViType(portalVI.viType);
+        short viType =portalVIDTO.getViType();
+        PRMDO prmdo=  UITools.getPRM(portalVI.prm);
+        portalVIDTO.setPrm(prmDOO2DTOS(prmdo,viType));
+        return portalVIDTO;
+    }
     /**
      * 琛ㄥ崟鏁版嵁瀵硅薄杞崲
      * @param prmdto
@@ -332,6 +468,20 @@
         return  prmdo;
     }
 
+    /**
+     * 琛ㄥ崟鏁版嵁瀵硅薄杞崲
+     * @param prmdo
+     * @param viType
+     * @return
+     */
+    private PRMDTO prmDOO2DTOS( PRMDO prmdo, short viType) {
+        PRMDTO prmdto=new PRMDTO();
+        prmdto.setShowCols(prmdo.getShowCols());
+        prmdto.setFormQtName(prmdo.getFormQtName());
+        prmdto.setPrmItemList(pRMItemDOO2DTOS(prmdo.getPrmItemList(),viType));
+        return  prmdto;
+    }
+
     @Override
     public  PortalVIVO portalVIDOO2VO(PortalVI portalVI) {
         PortalVIVO portalVIVO=new PortalVIVO();
@@ -341,8 +491,10 @@
         portalVIVO.setViName(portalVI.viName);
         portalVIVO.setViType(portalVI.viType);
         String  prm= portalVI.prm;
-        PRMDO prmdo= UITools.getPRM(prm);
-        portalVIVO.setPrm(prmDOO2VOS(prmdo,portalVI.viType));
+        if(StringUtils.isNotBlank(prm)) {
+            PRMDO prmdo = UITools.getPRM(prm);
+            portalVIVO.setPrm(prmDOO2VOS(prmdo, portalVI.viType));
+        }
         return portalVIVO;
     }
     private PRMVO prmDOO2VOS(PRMDO prmdo,short viType){
@@ -366,6 +518,15 @@
         Optional.ofNullable(prmItemDTOS).orElseGet(()->new ArrayList<>()).stream().forEach(PRMItemDTO -> {
             PRMItemDO PRMItemDO = pRMItemDTOO2DO(PRMItemDTO,viType);
             portalVIVOS.add(PRMItemDO);
+        });
+        return portalVIVOS;
+    }
+
+    public List<PRMItemDTO> pRMItemDOO2DTOS(Collection<PRMItemDO> prmItemDOS,short viType) {
+        List<PRMItemDTO> portalVIVOS = new ArrayList<>();
+        Optional.ofNullable(prmItemDOS).orElseGet(()->new ArrayList<>()).stream().forEach(prmItemDO -> {
+            PRMItemDTO prmItemDTO = pRMItemDOO2DTO(prmItemDO,viType);
+            portalVIVOS.add(prmItemDTO);
         });
         return portalVIVOS;
     }
@@ -501,7 +662,72 @@
         }
         return prmItemVO;
     }
-
+    /**
+     * 鏁版嵁瀵硅薄杞崲
+     * @param prmItemDO 鏁版嵁瀵硅薄
+     * @param viType 琛ㄥ崟绫诲瀷
+     * @return
+     */
+    private PRMItemDTO pRMItemDOO2DTO(PRMItemDO prmItemDO,short viType) {
+        PRMItemDTO prmItemDTO=new PRMItemDTO();
+        prmItemDTO.setItemBat(prmItemDO.getItemBat());
+        prmItemDTO.setItemCols(prmItemDO.getItemCols());
+        prmItemDTO.setItemEQ(prmItemDO.getItemEQ());
+        prmItemDTO.setItemDbl(prmItemDO.getItemDbl());
+        prmItemDTO.setItemCut(prmItemDO.getItemCut());
+        prmItemDTO.setItemOR(prmItemDO.getItemOR());
+        prmItemDTO.setItemAddFilter(prmItemDO.getItemAddFilter());
+        prmItemDTO.setItemField(prmItemDO.getItemField());
+        prmItemDTO.setItemImgWH(prmItemDO.getItemImgWH());
+        prmItemDTO.setItemCtrlDisplyCol(prmItemDO.getItemCtrlDisplyCol());//鎺у埗鏄剧ず鍒�
+        prmItemDTO.setItemDateFormat(prmItemDO.getItemDateFormat());// 鏁版嵁涓烘棩鏈熺被鍨嬫椂鐨勬牸寮忓寲瀛楃涓� 濡� yyyy-MM-dd HH:mm:ss
+        prmItemDTO.setItemInObj(prmItemDO.getItemInObj());
+        prmItemDTO.setItemName(prmItemDO.getItemName());
+        prmItemDTO.setItemCustomClass(prmItemDO.getItemCustomClass());//鑷畾涔夌被璺緞
+        prmItemDTO.setItemIsHidden(prmItemDO.getItemIsHidden());
+        prmItemDTO.setItemIsEditable(prmItemDO.getItemIsEditable());
+        prmItemDTO.setItemIsRequired(prmItemDO.getItemIsRequired());
+        prmItemDTO.setItemFieldWidth(prmItemDO.getItemFieldWidth());
+        prmItemDTO.setItemTxf(prmItemDO.getItemTxf());
+        prmItemDTO.setItemRows(prmItemDO.getItemRows());
+        prmItemDTO.setItemHrefConf(prmItemDO.getItemHrefConf());//瓒呴摼鎺ラ厤缃�
+        prmItemDTO.setItemTips(prmItemDO.getItemTips());
+        prmItemDTO.setItemTrim(prmItemDO.getItemTrim());
+        prmItemDTO.setItemDateFormat(prmItemDO.getItemDateFormat());
+        prmItemDTO.setItemCtrlDisplyCondition(prmItemDO.getItemCtrlDisplyCondition());////鎺у埗鏄剧ず鏉′欢
+        prmItemDTO.setItemEditableProgram(prmItemDO.getItemEditableProgram());
+        prmItemDTO.setItemEditCondition(prmItemDO.getItemEditCondition());
+        prmItemDTO.setItemHrefFields(prmItemDO.getItemHrefFields());//瓒呴摼鎺ュ瓧娈�
+        prmItemDTO.setItemValueList(prmItemDO.getItemValueList());
+        prmItemDTO.setItemValue(prmItemDO.getItemValue());
+        prmItemDTO.setItemStyle(prmItemDO.getItemStyle());
+        prmItemDTO.setItemShowExpression(prmItemDO.getItemShowExpression());// 鏄剧ず琛ㄨ揪寮� ${aa}-${bb}
+        prmItemDTO.setItemSeniorQueryColsCounts(prmItemDO.getItemSeniorQueryColsCounts());//楂樼骇鏌ヨ鍚勫垪浣跨敤娆℃暟
+        prmItemDTO.setItemQuerySql(prmItemDO.getItemQuerySql());//楂樼骇鏌ヨsql
+        prmItemDTO.setItemType(prmItemDO.getItemType());//灞炴�у熀鏈被鍨�
+        prmItemDTO.setItemTypeText(ItemTypeEnum.getTextByValue(prmItemDO.getItemType()));//灞炴�у熀鏈被鍨嬫樉绀哄��
+        prmItemDTO.setItemScript(prmItemDO.getItemScript());
+        prmItemDTO.setItemRight(prmItemDO.getItemRight());
+        prmItemDTO.setItemQueryRefFields(prmItemDO.getItemQueryRefFields());//鏌ヨ鍏宠仈鍒�
+        prmItemDTO.setItemQtName(prmItemDO.getItemQtName());
+        prmItemDTO.setItemParentFolderName(prmItemDO.getItemParentFolderName());//鐖舵枃浠跺す鍚嶇О
+        prmItemDTO.setItemPageSize(prmItemDO.getItemPageSize());
+        prmItemDTO.setItemOutType(prmItemDO.getItemOutType());
+        prmItemDTO.setItemOutFields(prmItemDO.getItemOutFields());
+        prmItemDTO.setItemListVal(prmItemDO.getItemListVal());//鍙傜収鍊�
+        prmItemDTO.setItemListTxt(prmItemDO.getItemListTxt());
+        prmItemDTO.setItemListTable(prmItemDO.getItemListTable());
+        prmItemDTO.setItemKeyFields(prmItemDO.getItemKeyFields());
+        prmItemDTO.setItemIsShowFolder(prmItemDO.getItemIsShowFolder());//鏄惁鏄剧ず鏂囦欢澶�
+        prmItemDTO.setItemIsNavigatorExpand(prmItemDO.getItemIsNavigatorExpand());////鏌ヨ鍖哄煙鏄剧ず鎺у埗
+        prmItemDTO.setItemIsHttpSave(prmItemDO.getItemIsHttpSave());
+        prmItemDTO.setItemHttpVolumnPath(prmItemDO.getItemHttpVolumnPath());
+        prmItemDTO.setItemHttpPathField(prmItemDO.getItemHttpPathField());
+        if(viType==PortalVIType.Table.getIntVal()) {//濡傛灉鏄〃鏍�
+            initTableConfigDOO2VOData(prmItemDTO,prmItemDO);
+        }
+        return prmItemDTO;
+    }
     /**
      * 鍒濆鍖栬〃鏍兼墍鐢ㄧ壒娈婂瓧娈甸厤缃�
      * @param prmItemVO
@@ -510,9 +736,9 @@
     private void initTableConfigDOO2VOData(PRMItemVO prmItemVO,PRMItemDO prmItemDO){
         prmItemVO.setItemFieldWidthList(initItemFieldWidthList(prmItemDO.getItemOutFields(),prmItemDO.getItemFieldWidth()));//鍒楁樉绀哄娈� itemOutFieldList 鐩稿尮閰�
         prmItemVO.setItemSeniorQueryBOS(initItemSeniorQueryBOData(prmItemDO.getItemSeniorQueryCols(),prmItemDO.getItemSeniorQueryColsCounts(),prmItemDO.getItemQuerySql()));//楂樼骇鏌ヨ瀵硅薄
-        List<String> allKeyList= getRefFormVIName(prmItemVO.getItemInObj());
-        List<String> itemOutFieldList =VciBaseUtil.str2List(prmItemVO.getItemOutFields());
-        List<String> itemKeyFieldList =VciBaseUtil.str2List(prmItemVO.getItemKeyFields());
+        List<String> allKeyList= getRefFormVIName(prmItemDO.getItemInObj());
+        List<String> itemOutFieldList =VciBaseUtil.str2List(prmItemDO.getItemOutFields());
+        List<String> itemKeyFieldList =VciBaseUtil.str2List(prmItemDO.getItemKeyFields());
         List<String> itemSelectoutFieldList= allKeyList.stream().filter(s ->!itemOutFieldList.stream().map(s1 -> s1).collect(Collectors.toList()).contains(s) ).collect(Collectors.toList());
         prmItemVO.setItemSelectoutFieldList(itemSelectoutFieldList);//寰呴�夋嫨鐨勫睘鎬у瓧娈�
         prmItemVO.setItemOutFieldList(itemOutFieldList);//闇�瑕佷娇鐢ㄧ殑闆嗗悎
@@ -525,6 +751,24 @@
      * @param prmItemDTO
      * @param prmItemDO
      */
+    private void initTableConfigDOO2VOData(PRMItemDTO prmItemDTO,PRMItemDO prmItemDO){
+        prmItemDTO.setItemFieldWidthList(initItemFieldWidthList(prmItemDO.getItemOutFields(),prmItemDO.getItemFieldWidth()));//鍒楁樉绀哄娈� itemOutFieldList 鐩稿尮閰�
+        prmItemDTO.setItemSeniorQueryBOS(initItemSeniorQueryBOData(prmItemDO.getItemSeniorQueryCols(),prmItemDO.getItemSeniorQueryColsCounts(),prmItemDO.getItemQuerySql()));//楂樼骇鏌ヨ瀵硅薄
+        List<String> allKeyList= getRefFormVIName(prmItemDO.getItemInObj());
+        List<String> itemOutFieldList =VciBaseUtil.str2List(prmItemDO.getItemOutFields());
+        List<String> itemKeyFieldList =VciBaseUtil.str2List(prmItemDO.getItemKeyFields());
+        List<String> itemSelectoutFieldList= allKeyList.stream().filter(s ->!itemOutFieldList.stream().map(s1 -> s1).collect(Collectors.toList()).contains(s) ).collect(Collectors.toList());
+        prmItemDTO.setItemSelectoutFieldList(itemSelectoutFieldList);//寰呴�夋嫨鐨勫睘鎬у瓧娈�
+        prmItemDTO.setItemOutFieldList(itemOutFieldList);//闇�瑕佷娇鐢ㄧ殑闆嗗悎
+        List<String> itemSearchFieldList= itemOutFieldList.stream().filter(s ->!itemKeyFieldList.stream().map(s1 -> s1).collect(Collectors.toList()).contains(s) ).collect(Collectors.toList());
+        prmItemDTO.setItemSearchFieldList(itemSearchFieldList);//寰呮悳绱㈠瓧娈�
+        prmItemDTO.setItemKeyFieldList(itemKeyFieldList);//鎼滅储瀛楁
+    }
+    /**
+     * 鍒濆鍖栬〃鏍兼墍鐢ㄧ壒娈婂瓧娈甸厤缃�
+     * @param prmItemDTO
+     * @param prmItemDO
+     */
     private void initTableConfigDTOO2DOData(PRMItemDO prmItemDO,PRMItemDTO prmItemDTO){
 
         prmItemDO.setItemOutFields(VciBaseUtil.array2String(prmItemDTO.getItemOutFieldList().toArray(new String[]{})));//闇�瑕佷娇鐢ㄧ殑瀛楁

--
Gitblit v1.9.3