|
@@ -2,10 +2,12 @@ package cn.cslg.permission.controller;
|
|
|
|
|
|
import cn.cslg.permission.common.core.base.Constants;
|
|
import cn.cslg.permission.common.core.base.Constants;
|
|
import cn.cslg.permission.common.model.dto.QueryLoginRecordDTO;
|
|
import cn.cslg.permission.common.model.dto.QueryLoginRecordDTO;
|
|
|
|
+import cn.cslg.permission.common.model.dto.QueryRetrieveRecordDTO;
|
|
import cn.cslg.permission.common.model.vo.PersonnelNameVO;
|
|
import cn.cslg.permission.common.model.vo.PersonnelNameVO;
|
|
import cn.cslg.permission.common.model.vo.ReportTenantVO;
|
|
import cn.cslg.permission.common.model.vo.ReportTenantVO;
|
|
import cn.cslg.permission.common.utils.Response;
|
|
import cn.cslg.permission.common.utils.Response;
|
|
import cn.cslg.permission.service.Export2ExcelService;
|
|
import cn.cslg.permission.service.Export2ExcelService;
|
|
|
|
+import cn.cslg.permission.service.ParseOutDataForExcelService;
|
|
import cn.hutool.core.util.IdUtil;
|
|
import cn.hutool.core.util.IdUtil;
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
@@ -20,6 +22,9 @@ import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import java.io.ByteArrayInputStream;
|
|
import java.io.ByteArrayInputStream;
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
|
|
+import java.io.UnsupportedEncodingException;
|
|
|
|
+import java.net.URLEncoder;
|
|
|
|
+import java.nio.charset.StandardCharsets;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
@@ -35,16 +40,32 @@ import java.util.List;
|
|
@RequiredArgsConstructor(onConstructor_ = {@Lazy})
|
|
@RequiredArgsConstructor(onConstructor_ = {@Lazy})
|
|
public class Export2ExcelController {
|
|
public class Export2ExcelController {
|
|
private final Export2ExcelService export2ExcelService;
|
|
private final Export2ExcelService export2ExcelService;
|
|
|
|
+ private final ParseOutDataForExcelService parseOutDataForExcelService;
|
|
|
|
|
|
|
|
+ @PostMapping("/exportRetrieveRecord")
|
|
|
|
+ @Operation(summary = "导出检索记录")
|
|
|
|
+ public ResponseEntity<InputStreamResource> exportRetrieveRecord(@RequestBody QueryRetrieveRecordDTO queryRetrieveRecordDTO) throws IOException {
|
|
|
|
+ byte[] fileData = export2ExcelService.exportRetrieveRecord(queryRetrieveRecordDTO);
|
|
|
|
+ //保存生成excel的地址
|
|
|
|
+ String fileName = "检索记录报表.xlsx";
|
|
|
|
+ //文件原始名中的中文字符可能会乱码,对文件名进行URL编码
|
|
|
|
+ String encodedFileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString());
|
|
|
|
+ return ResponseEntity.ok().contentLength(fileData.length)
|
|
|
|
+ .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + encodedFileName + "\"")
|
|
|
|
+ .contentType(MediaType.parseMediaType("application/octet-stream"))
|
|
|
|
+ .body(new InputStreamResource(new ByteArrayInputStream(fileData)));
|
|
|
|
+ }
|
|
|
|
|
|
@PostMapping("/exportLoginRecord")
|
|
@PostMapping("/exportLoginRecord")
|
|
@Operation(summary = "导出登录日志")
|
|
@Operation(summary = "导出登录日志")
|
|
public ResponseEntity<InputStreamResource> exportLoginRecord(@RequestBody QueryLoginRecordDTO queryLoginRecordDTO) throws IOException {
|
|
public ResponseEntity<InputStreamResource> exportLoginRecord(@RequestBody QueryLoginRecordDTO queryLoginRecordDTO) throws IOException {
|
|
byte[] fileData = export2ExcelService.exportLoginRecord(queryLoginRecordDTO);
|
|
byte[] fileData = export2ExcelService.exportLoginRecord(queryLoginRecordDTO);
|
|
//保存生成excel的地址
|
|
//保存生成excel的地址
|
|
- String fileName = IdUtil.simpleUUID() + ".xls";
|
|
|
|
|
|
+ String fileName = "登录日志报表.xlsx";
|
|
|
|
+ //文件原始名中的中文字符可能会乱码,对文件名进行URL编码
|
|
|
|
+ String encodedFileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString());
|
|
return ResponseEntity.ok().contentLength(fileData.length)
|
|
return ResponseEntity.ok().contentLength(fileData.length)
|
|
- .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + fileName + "\"")
|
|
|
|
|
|
+ .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + encodedFileName + "\"")
|
|
.contentType(MediaType.parseMediaType("application/octet-stream"))
|
|
.contentType(MediaType.parseMediaType("application/octet-stream"))
|
|
.body(new InputStreamResource(new ByteArrayInputStream(fileData)));
|
|
.body(new InputStreamResource(new ByteArrayInputStream(fileData)));
|
|
}
|
|
}
|
|
@@ -54,9 +75,11 @@ public class Export2ExcelController {
|
|
public ResponseEntity<InputStreamResource> exportTotal(@RequestBody List<Integer> tenantIds) throws IOException {
|
|
public ResponseEntity<InputStreamResource> exportTotal(@RequestBody List<Integer> tenantIds) throws IOException {
|
|
byte[] fileData = export2ExcelService.exportTotal(tenantIds);
|
|
byte[] fileData = export2ExcelService.exportTotal(tenantIds);
|
|
//保存生成excel的地址
|
|
//保存生成excel的地址
|
|
- String fileName = IdUtil.simpleUUID() + ".xls";
|
|
|
|
|
|
+ String fileName = "汇总报表.xlsx";
|
|
|
|
+ //文件原始名中的中文字符可能会乱码,对文件名进行URL编码
|
|
|
|
+ String encodedFileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString());
|
|
return ResponseEntity.ok().contentLength(fileData.length)
|
|
return ResponseEntity.ok().contentLength(fileData.length)
|
|
- .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + fileName + "\"")
|
|
|
|
|
|
+ .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + encodedFileName + "\"")
|
|
.contentType(MediaType.parseMediaType("application/octet-stream"))
|
|
.contentType(MediaType.parseMediaType("application/octet-stream"))
|
|
.body(new InputStreamResource(new ByteArrayInputStream(fileData)));
|
|
.body(new InputStreamResource(new ByteArrayInputStream(fileData)));
|
|
}
|
|
}
|
|
@@ -66,9 +89,11 @@ public class Export2ExcelController {
|
|
public ResponseEntity<InputStreamResource> exportProject(@RequestBody List<Integer> tenantIds) throws IOException {
|
|
public ResponseEntity<InputStreamResource> exportProject(@RequestBody List<Integer> tenantIds) throws IOException {
|
|
byte[] fileData = export2ExcelService.exportProjectNameToExcel(tenantIds);
|
|
byte[] fileData = export2ExcelService.exportProjectNameToExcel(tenantIds);
|
|
//保存生成excel的地址
|
|
//保存生成excel的地址
|
|
- String fileName = IdUtil.simpleUUID() + ".xls";
|
|
|
|
|
|
+ String fileName = "租户专题库使用报表.xlsx";
|
|
|
|
+ //文件原始名中的中文字符可能会乱码,对文件名进行URL编码
|
|
|
|
+ String encodedFileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString());
|
|
return ResponseEntity.ok().contentLength(fileData.length)
|
|
return ResponseEntity.ok().contentLength(fileData.length)
|
|
- .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + fileName + "\"")
|
|
|
|
|
|
+ .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + encodedFileName + "\"")
|
|
.contentType(MediaType.parseMediaType("application/octet-stream"))
|
|
.contentType(MediaType.parseMediaType("application/octet-stream"))
|
|
.body(new InputStreamResource(new ByteArrayInputStream(fileData)));
|
|
.body(new InputStreamResource(new ByteArrayInputStream(fileData)));
|
|
}
|
|
}
|
|
@@ -78,9 +103,11 @@ public class Export2ExcelController {
|
|
public ResponseEntity<InputStreamResource> exportPersonName(@RequestBody List<Integer> tenantIds) throws IOException {
|
|
public ResponseEntity<InputStreamResource> exportPersonName(@RequestBody List<Integer> tenantIds) throws IOException {
|
|
byte[] fileData = export2ExcelService.exportPersonnelNameToExcel(tenantIds);
|
|
byte[] fileData = export2ExcelService.exportPersonnelNameToExcel(tenantIds);
|
|
//保存生成excel的地址
|
|
//保存生成excel的地址
|
|
- String fileName = IdUtil.simpleUUID() + ".xls";
|
|
|
|
|
|
+ String fileName = "租户人员报表.xlsx";
|
|
|
|
+ //文件原始名中的中文字符可能会乱码,对文件名进行URL编码
|
|
|
|
+ String encodedFileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString());
|
|
return ResponseEntity.ok().contentLength(fileData.length)
|
|
return ResponseEntity.ok().contentLength(fileData.length)
|
|
- .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + fileName + "\"")
|
|
|
|
|
|
+ .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + encodedFileName + "\"")
|
|
.contentType(MediaType.parseMediaType("application/octet-stream"))
|
|
.contentType(MediaType.parseMediaType("application/octet-stream"))
|
|
.body(new InputStreamResource(new ByteArrayInputStream(fileData)));
|
|
.body(new InputStreamResource(new ByteArrayInputStream(fileData)));
|
|
}
|
|
}
|
|
@@ -88,7 +115,7 @@ public class Export2ExcelController {
|
|
@PostMapping("/getTenantPerson")
|
|
@PostMapping("/getTenantPerson")
|
|
@Operation(summary = "查出所有租户,并且查出租户下的人员")
|
|
@Operation(summary = "查出所有租户,并且查出租户下的人员")
|
|
public List<ReportTenantVO> getTenantPerson(@RequestBody List<Integer> tenantIds){
|
|
public List<ReportTenantVO> getTenantPerson(@RequestBody List<Integer> tenantIds){
|
|
- return export2ExcelService.getTenantPerson(tenantIds);
|
|
|
|
|
|
+ return parseOutDataForExcelService.getTenantPerson(tenantIds);
|
|
}
|
|
}
|
|
|
|
|
|
@PostMapping("/exportReport")
|
|
@PostMapping("/exportReport")
|
|
@@ -96,9 +123,11 @@ public class Export2ExcelController {
|
|
public ResponseEntity<InputStreamResource> exportReport(@RequestBody List<Integer> tenantIds) throws IOException {
|
|
public ResponseEntity<InputStreamResource> exportReport(@RequestBody List<Integer> tenantIds) throws IOException {
|
|
byte[] fileData = export2ExcelService.exportReportTenant(tenantIds);
|
|
byte[] fileData = export2ExcelService.exportReportTenant(tenantIds);
|
|
//保存生成excel的地址
|
|
//保存生成excel的地址
|
|
- String fileName = IdUtil.simpleUUID() + ".xls";
|
|
|
|
|
|
+ String fileName = "租户报告使用报表.xlsx";
|
|
|
|
+ //文件原始名中的中文字符可能会乱码,对文件名进行URL编码
|
|
|
|
+ String encodedFileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString());
|
|
return ResponseEntity.ok().contentLength(fileData.length)
|
|
return ResponseEntity.ok().contentLength(fileData.length)
|
|
- .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + fileName + "\"")
|
|
|
|
|
|
+ .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + encodedFileName + "\"")
|
|
.contentType(MediaType.parseMediaType("application/octet-stream"))
|
|
.contentType(MediaType.parseMediaType("application/octet-stream"))
|
|
.body(new InputStreamResource(new ByteArrayInputStream(fileData)));
|
|
.body(new InputStreamResource(new ByteArrayInputStream(fileData)));
|
|
}
|
|
}
|
|
@@ -108,9 +137,11 @@ public class Export2ExcelController {
|
|
public ResponseEntity<InputStreamResource> exportProjectShared(@RequestBody List<Integer> tenantIds) throws IOException {
|
|
public ResponseEntity<InputStreamResource> exportProjectShared(@RequestBody List<Integer> tenantIds) throws IOException {
|
|
byte[] fileData = export2ExcelService.exportProjectShared(tenantIds);
|
|
byte[] fileData = export2ExcelService.exportProjectShared(tenantIds);
|
|
//保存生成excel的地址
|
|
//保存生成excel的地址
|
|
- String fileName = IdUtil.simpleUUID() + ".xls";
|
|
|
|
|
|
+ String fileName = "租户被分享专题库报表.xlsx";
|
|
|
|
+ //文件原始名中的中文字符可能会乱码,对文件名进行URL编码
|
|
|
|
+ String encodedFileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString());
|
|
return ResponseEntity.ok().contentLength(fileData.length)
|
|
return ResponseEntity.ok().contentLength(fileData.length)
|
|
- .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + fileName + "\"")
|
|
|
|
|
|
+ .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + encodedFileName + "\"")
|
|
.contentType(MediaType.parseMediaType("application/octet-stream"))
|
|
.contentType(MediaType.parseMediaType("application/octet-stream"))
|
|
.body(new InputStreamResource(new ByteArrayInputStream(fileData)));
|
|
.body(new InputStreamResource(new ByteArrayInputStream(fileData)));
|
|
}
|
|
}
|
|
@@ -118,7 +149,7 @@ public class Export2ExcelController {
|
|
@PostMapping("/getPersonnelNameData")
|
|
@PostMapping("/getPersonnelNameData")
|
|
@Operation(summary = "获取租户人员报表信息")
|
|
@Operation(summary = "获取租户人员报表信息")
|
|
public List<PersonnelNameVO> getPersonnelNameData(@RequestBody List<Integer> tenantIds) {
|
|
public List<PersonnelNameVO> getPersonnelNameData(@RequestBody List<Integer> tenantIds) {
|
|
- return export2ExcelService.getPersonnelNameData(tenantIds);
|
|
|
|
|
|
+ return parseOutDataForExcelService.getPersonnelNameData(tenantIds);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|