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