Browse Source

登记簿批量导出代码提交

jingyuanchao 1 năm trước cách đây
mục cha
commit
ff736834f6

+ 4 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/registerbook/dto/CoreRegisterBookPdfExportDto.java

@@ -1,5 +1,6 @@
 package com.xunmei.common.core.domain.registerbook.dto;
 
+import com.xunmei.common.core.domain.SysOrgCacheVo;
 import com.xunmei.common.core.domain.registerbook.vo.CoreRegisterBookPdfPageVo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -24,4 +25,7 @@ public class CoreRegisterBookPdfExportDto extends CoreRegisterBookPdfPageDto {
     private List<Long> pdfIdList;
 
     private List<CoreRegisterBookPdfPageVo> dataList;
+    private SysOrgCacheVo org;
+
+    private List<SysOrgCacheVo> orgList;
 }

+ 11 - 5
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/registerbook/service/impl/CoreRegisterBookPdfServiceImpl.java

@@ -9,6 +9,7 @@ import com.xunmei.common.core.constant.CacheConstants;
 import com.xunmei.common.core.constant.ErrorMsgConstants;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.IdName;
+import com.xunmei.common.core.domain.SysOrgCacheVo;
 import com.xunmei.common.core.domain.registerbook.domain.CoreRegisterBookPdf;
 import com.xunmei.common.core.domain.registerbook.dto.CoreRegisterBookPdfExportDto;
 import com.xunmei.common.core.domain.registerbook.dto.CoreRegisterBookPdfPageDto;
@@ -35,6 +36,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 /**
  * registerBookService业务层处理
@@ -110,9 +112,13 @@ public class CoreRegisterBookPdfServiceImpl extends ServiceImpl<CoreRegisterBook
     public void cutExport(CoreRegisterBookPdfExportDto exportDto) {
         List<CoreRegisterBookPdfPageVo> dataList = queryExportData(exportDto);
         exportDto.setDataList(dataList);
-        /*List<SysOrgVO> cacheList = RedisUtils.getCacheList(CacheConstants.ORG_CACHE_LIST_KEY);
+
+        List<SysOrgVO> cacheList = RedisUtils.getCacheList(CacheConstants.ORG_CACHE_LIST_KEY);
         List<SysOrgCacheVo> sysOrgCacheVos = BeanHelper.copyProperties(cacheList, SysOrgCacheVo.class);
-        exportDto.setOrgList(sysOrgCacheVos);*/
+        List<SysOrgCacheVo> collect = sysOrgCacheVos.stream().filter(org -> ObjectUtil.equal(org.getParentId(), exportDto.getOrgId())).collect(Collectors.toList());
+        SysOrgCacheVo sysOrgCacheVo = sysOrgCacheVos.stream().filter(org -> ObjectUtil.equal(org.getId(), exportDto.getOrgId())).findFirst().get();
+        exportDto.setOrg(sysOrgCacheVo);
+        exportDto.setOrgList(collect);
         fileService.cutFileCompress(exportDto);
     }
 
@@ -184,9 +190,9 @@ public class CoreRegisterBookPdfServiceImpl extends ServiceImpl<CoreRegisterBook
 
     @Override
     public String getFileOrgName(Long orgId) {
-        return  RemoteCallHandlerExecutor.executeRemoteCall(()->{
-           return orgService.selectOrgNameByPath(orgId, SecurityConstants.INNER);
-        },ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+        return RemoteCallHandlerExecutor.executeRemoteCall(() -> {
+            return orgService.selectOrgNameByPath(orgId, SecurityConstants.INNER);
+        }, ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
 
     }
 }

+ 8 - 7
soc-modules/soc-modules-file/src/main/java/com/xunmei/file/service/LocalSysFileServiceImpl.java

@@ -12,6 +12,7 @@ import com.lowagie.text.pdf.PdfPTable;
 import com.lowagie.text.pdf.PdfWriter;
 import com.xunmei.common.core.constant.CacheConstants;
 import com.xunmei.common.core.domain.IdName;
+import com.xunmei.common.core.domain.SysOrgCacheVo;
 import com.xunmei.common.core.domain.registerbook.dto.CoreRegisterBookPdfExportDto;
 import com.xunmei.common.core.domain.registerbook.dto.ExportPdfDto;
 import com.xunmei.common.core.domain.registerbook.vo.CoreRegisterBookPdfPageVo;
@@ -612,7 +613,7 @@ public class LocalSysFileServiceImpl implements ISysFileService {
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment; filename=" + zipName);
             List<PdfToZipTempVo> pdfToZipTempVoList = registerBookPdfList.parallelStream().map(pdf -> {
-                return resolve(pdf, pdfDto, count);
+                return resolve(pdf, count);
             }).filter(Objects::nonNull)
                     .collect(Collectors.toList());
             count.await();
@@ -639,7 +640,7 @@ public class LocalSysFileServiceImpl implements ISysFileService {
     }
 
 
-    public PdfToZipTempVo resolve(CoreRegisterBookPdfPageVo pdf, ExportPdfDto pdfDto, CountDownLatch count) {
+    public PdfToZipTempVo resolve(CoreRegisterBookPdfPageVo pdf,CountDownLatch count) {
 
         final File temp = new File(TEMP_DIR_NAME);
         if (!temp.exists()) {
@@ -710,13 +711,13 @@ public class LocalSysFileServiceImpl implements ISysFileService {
 
     @Override
     public void cutFileCompress(CoreRegisterBookPdfExportDto pdfDto) {
-        //List<SysOrgCacheVo> cacheList = RedisUtils.getCacheList(CacheConstants.ORG_CACHE_LIST_KEY);
+        List<SysOrgCacheVo> cacheList = pdfDto.getOrgList();
 
         // String orgName = objectMapper.selectOrgNameById(pdfDto.getOrgId());
         Date date = new Date();
 
 
-        SysOrg org = getOrg(pdfDto.getOrgId());
+        SysOrgCacheVo org = pdfDto.getOrg();
         String fileName = pdfDto.getIsRegisterBookPage() ? org.getName() + "_登记簿_" : org.getName() + "_数据报表_";
 
         //判断需要分几片导出
@@ -731,7 +732,7 @@ public class LocalSysFileServiceImpl implements ISysFileService {
                 zipName = URLEncoder.encode(fileNameStr + ".zip", "UTF-8");
 
                 List<PdfToZipTempVo> pdfToZipTempVoList = list.parallelStream().map(pdf -> {
-                            return resolve(pdf, null, count);
+                            return resolve(pdf,  count);
                         }).filter(Objects::nonNull)
                         .collect(Collectors.toList());
                 pdfToZipTempVoList.removeIf(pdfToZipTempVo -> !FileUtil.exist(pdfToZipTempVo.getFile()));
@@ -789,12 +790,12 @@ public class LocalSysFileServiceImpl implements ISysFileService {
             return list;
         }
 //        List<SysOrg> orgList = orgService.selectSysOrgByParentId(pdfDto.getOrgId(), SecurityConstants.INNER);
-        List<SysOrg> orgList = new ArrayList<>();
+        List<SysOrgCacheVo> orgList = pdfDto.getOrgList();
         //大于3000条需要分片
         return splitList(registerBookPdfList, orgList, 3000);
     }
 
-    public static List<List<CoreRegisterBookPdfPageVo>> splitList(List<CoreRegisterBookPdfPageVo> list, List<SysOrg> orgList, int size) {
+    public static List<List<CoreRegisterBookPdfPageVo>> splitList(List<CoreRegisterBookPdfPageVo> list, List<SysOrgCacheVo> orgList, int size) {
         // 根据机构分组
         List<List<CoreRegisterBookPdfPageVo>> collect = orgList.stream().map(org -> {
             List<CoreRegisterBookPdfPageVo> arrayList = new ArrayList<>();