From 3defe8e0363bc3511169cc2432bcfe1a02b820db Mon Sep 17 00:00:00 2001
From: 田源 <tianyuan@vci-tech.com>
Date: 星期四, 02 一月 2025 17:33:26 +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 | 141 ++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 120 insertions(+), 21 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 c32a05a..522fcf3 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,40 +1,27 @@
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.dto.OsPvolumeDTO;
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.starter.web.util.Lcm.Func;
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.io.File;
import java.util.*;
import java.util.stream.Collectors;
@@ -51,8 +38,8 @@
/**
* 鍒嗛〉鏌ヨ鍗�
- * @param pageSize 椤垫暟
- * @param pageIndex 绗嚑椤�
+ * @param pageSize 绗嚑椤�
+ * @param pageIndex 椤垫暟
* @return 鍒嗛〉鏁版嵁
*/
@Override
@@ -72,7 +59,7 @@
public BaseResult savePvolume(OsPvolumeDTO dto) throws PLException {
PvolumeInfo pvoInfo = new PvolumeInfo();
pvoInfo.service = dto.getService();
- pvoInfo.id = dto.getId();
+// pvoInfo.id = dto.getId();
pvoInfo.name = dto.getName();
pvoInfo.host = dto.getHost();
pvoInfo.isvalid = dto.isIsvalid();
@@ -135,6 +122,118 @@
}
/**
+ * 鍒犻櫎鍗�
+ * @param ids 涓婚敭闆嗗悎
+ * @return 鍒犻櫎缁撴灉
+ */
+ @Override
+ public BaseResult deletePvolume(String ids) throws PLException {
+ if ( StringUtils.isBlank(ids)){
+ throw new PLException("500", new String[]{"璇烽�夋嫨鐩稿叧鏁版嵁锛侊紒"});
+ }
+ for (String id : ids.split(",")) {
+ boolean isvalid = platformClientUtil.getFrameworkService().checkIsvalid(id);
+ if(isvalid) {
+ throw new PLException("500", new String[]{"閫夋嫨鏁版嵁涓洪閫夎矾寰勶紝涓嶈兘鍒犻櫎锛�"});
+ }
+ }
+ UserEntityInfo userInfo = new UserEntityInfo();
+ userInfo.setUserName(WebUtil.getCurrentUserId());
+ userInfo.setModules("com.vci.client.framework.systemConfig.volumn.PvolumePanel");
+ boolean rs = platformClientUtil.getFrameworkService().deletePvolume(ids.split(","), userInfo);
+ if(!rs){
+ return BaseResult.fail("鍒犻櫎澶辫触锛�");
+ }
+ return BaseResult.success("鍒犻櫎鎴愬姛锛�");
+ }
+
+ /**
+ * 鏂囦欢鏌滃鍑�
+ * @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