From c93ff74fb5a47d38554d40b5ab00cfe07eac1f2a Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期四, 24 十月 2024 17:21:22 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPvolumesServiceImpl.java |  104 ++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 89 insertions(+), 15 deletions(-)

diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPvolumesServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPvolumesServiceImpl.java
index e171a7d..8baf55b 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPvolumesServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPvolumesServiceImpl.java
@@ -1,39 +1,26 @@
 package com.vci.web.service.impl;
 
-import cn.hutool.core.io.FileUtil;
-import com.vci.constant.FrameWorkLangCodeConstant;
 import com.vci.corba.common.PLException;
 import com.vci.corba.common.data.UserEntityInfo;
 import com.vci.corba.framework.data.PvolumeInfo;
-import com.vci.corba.portal.data.Constraint;
-import com.vci.corba.portal.data.PLAction;
-import com.vci.corba.portal.data.PLActionCls;
-import com.vci.corba.portal.data.PLActionParam;
 import com.vci.dto.*;
 import com.vci.starter.poi.bo.WriteExcelData;
 import com.vci.starter.poi.bo.WriteExcelOption;
 import com.vci.starter.poi.util.ExcelUtil;
 import com.vci.starter.web.exception.VciBaseException;
 import com.vci.starter.web.pagemodel.BaseResult;
-import com.vci.starter.web.util.ControllerUtil;
 import com.vci.starter.web.util.LangBaseUtil;
 import com.vci.starter.web.util.LocalFileUtil;
-import com.vci.web.enumpck.ActionEnum;
-import com.vci.web.enumpck.PlTypetypeEnum;
-import com.vci.web.other.ExportActionLogBean;
-import com.vci.web.other.ExportBeans;
-import com.vci.web.service.OsActionServiceI;
+import com.vci.starter.web.util.VciBaseUtil;
+import com.vci.starter.web.util.WebThreadLocalUtil;
 import com.vci.web.service.OsPvolumesServiceI;
 import com.vci.web.util.Func;
-import com.vci.web.util.PinyinCommon;
 import com.vci.web.util.PlatformClientUtil;
 import com.vci.web.util.WebUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
 
-import javax.servlet.http.HttpServletResponse;
 import java.io.*;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -133,6 +120,7 @@
         }
         return BaseResult.success("淇敼鎴愬姛锛�");
     }
+
     /**
      * 鍒犻櫎鍗�
      * @param ids 涓婚敭闆嗗悎
@@ -160,6 +148,92 @@
     }
 
     /**
+     * 鏂囦欢鏌滃鍑�
+     * @param exportFileName 瀵煎嚭鐨勬枃浠跺悕
+     * @param pvolumeIds 瀵煎嚭閫変腑鐨勫嵎id
+     * @return
+     * @throws PLException
+     */
+    @Override
+    public String exportPvolumes(String exportFileName, String pvolumeIds) throws PLException {
+        if(Func.isBlank(pvolumeIds)){
+            throw new PLException("500",new String[]{"璇峰嬀閫夎瀵煎嚭鐨勬暟鎹�!"});
+        }
+        //鐣岄潰娌′紶鍚嶇О锛屼娇鐢ㄩ粯璁ゅ鍑哄悕绉�
+        exportFileName = Func.isBlank(exportFileName) ?  "鏂囦欢鏌滃鍑篲" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss"):exportFileName;
+        //璁剧疆鍒楀悕
+        List<String> columns = new ArrayList<>(Arrays.asList("鍗峰悕","鏈哄櫒绫诲瀷","璺緞鍚嶇О","棣栭�夎矾寰�","鏈嶅姟鍣�","鍗锋湇鍔�"));
+
+        //鍐檈xcel
+        String excelPath = LocalFileUtil.getDefaultTempFolder() + File.separator + exportFileName +  ".xls";
+        try {
+            new File(excelPath).createNewFile();
+        } catch (Throwable e) {
+            throw new VciBaseException(LangBaseUtil.getErrorMsg(e), new String[]{excelPath}, e);
+        }
+        //璁剧疆鍒�
+        List<WriteExcelData> excelDataList = new ArrayList<>();
+        //璁剧疆鍒楀ご
+        for (int index = 0; index < columns.size(); index++) {
+            excelDataList.add(new WriteExcelData(0,index, columns.get(index)));
+        }
+        //鎸夌収鏂囦欢鏌淚D鏌ヨ鏂囦欢鏌�
+        List<String> pvolumeIdList = Func.toStrList(pvolumeIds);
+        List<PvolumeInfo> pvolumeInfoList = this.getPvolumeInfoByIds(pvolumeIdList);
+
+        if(Func.isEmpty(pvolumeInfoList)){
+            excelDataList.add(new WriteExcelData(1,1, "鏈幏鍙栧埌瑕佸鍑虹殑鏂囦欢鏌滀俊鎭紝璇峰埛鏂板悗灏濊瘯閲嶆柊瀵煎嚭锛�"));
+        }else{
+            for (int i = 0; i < pvolumeInfoList.size(); i++) {
+                PvolumeInfo pvolumeInfo = pvolumeInfoList.get(i);
+                excelDataList.add(new WriteExcelData(i+1,0, pvolumeInfo.name));
+                excelDataList.add(new WriteExcelData(i+1,1, pvolumeInfo.type));
+                excelDataList.add(new WriteExcelData(i+1,2, pvolumeInfo.path));
+                excelDataList.add(new WriteExcelData(i+1,3, pvolumeInfo.isvalid));
+                excelDataList.add(new WriteExcelData(i+1,4, pvolumeInfo.host));
+                excelDataList.add(new WriteExcelData(i+1,5, pvolumeInfo.service));
+            }
+        }
+        WriteExcelOption excelOption = new WriteExcelOption(excelDataList);
+        ExcelUtil.writeDataToFile(excelPath, excelOption);
+        return excelPath;
+    }
+
+    /**
+     * 鏍规嵁鍗穒d鏌ヨ鍗�
+     * @param ids
+     * @return
+     */
+    @Override
+    public List<PvolumeInfo> getPvolumeInfoByIds(List<String> ids) throws PLException {
+        List<PvolumeInfo> pvolumeInfos = new ArrayList<>();
+        if(Func.isEmpty(ids)){
+            return pvolumeInfos;
+        }
+        PvolumeInfo[] allPvolumes = platformClientUtil.getFrameworkService().getAllPvolumes();
+        if (Func.isEmpty(allPvolumes)){
+            return pvolumeInfos;
+        }
+        pvolumeInfos = Arrays.stream(allPvolumes).filter(pvolumeInfo -> ids.contains(pvolumeInfo.id)).collect(Collectors.toList());
+        return pvolumeInfos;
+    }
+
+    /**
+     * 涓烘枃浠舵煖鍒嗛厤鎴愬憳----杩欎釜鍔熻兘鐜板湪娌$敤涓婏紝骞冲彴鐨勪繚瀛樻柟娉曟槸娉ㄩ噴鎺夌殑
+     * @param pvolumId
+     * @param userIds
+     * @return
+     */
+    @Override
+    public boolean savePvolumeUser(String pvolumId ,List<String> userIds) throws PLException {
+        VciBaseUtil.alertNotNull(pvolumId,"鏂囦欢鏌滀富閿�",userIds,"鐢ㄦ埛涓婚敭闆嗗悎");
+        UserEntityInfo userEntityInfo = new UserEntityInfo();
+        userEntityInfo.setUserName(WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId());
+        boolean resBoolean = platformClientUtil.getFrameworkService().savePvolumeUser(pvolumId, userIds.toArray(new String[userIds.size()]), userEntityInfo);
+        return resBoolean;
+    }
+
+    /**
      * 鍗� 浠嶤orba绔浆鍒癏ibernate瀵硅薄绔�
      * @param pvoInfo
      * @return

--
Gitblit v1.9.3