Commit d927cd82 authored by chenzhao's avatar chenzhao

ziliaoxiazai youhua

parent 2b9dd1c9
...@@ -55,7 +55,7 @@ public class CommonController { ...@@ -55,7 +55,7 @@ public class CommonController {
commonService.downZiliao(surveyInformationId,peasantHouseholdIds,processInstanceId,response); commonService.downZiliao(surveyInformationId,peasantHouseholdIds,processInstanceId,response);
System.out.println("zip下载成功");
} }
/** /**
......
...@@ -26,6 +26,7 @@ import lombok.extern.slf4j.Slf4j; ...@@ -26,6 +26,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.activemq.util.MapHelper; import org.apache.activemq.util.MapHelper;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.reflect.FieldUtils; import org.apache.commons.lang3.reflect.FieldUtils;
...@@ -505,6 +506,35 @@ public class CommonServiceImpl { ...@@ -505,6 +506,35 @@ public class CommonServiceImpl {
return jsonArray; return jsonArray;
} }
public static Path createUniqueDirectory(Path baseDir, String baseName) {
Path dirPath = baseDir.resolve(baseName);
// 检查目录是否存在
if (Files.exists(dirPath)) {
// 如果目录存在,则尝试创建带有数字后缀的目录
int counter = 1;
while (true) {
String newName = baseName + "_" + counter;
dirPath = baseDir.resolve(newName);
if (!Files.exists(dirPath)) {
break; // 找到了一个新的名称,退出循环
}
counter++;
}
}
// 创建目录
try {
Files.createDirectories(dirPath);
return dirPath;
} catch (IOException e) {
System.err.println("Failed to create directory: " + dirPath);
e.printStackTrace();
return null;
}
}
public void downZiliao(String surveyInformationId, List<String> peasantHouseholdIds, String processInstanceId, HttpServletResponse response) throws IOException { public void downZiliao(String surveyInformationId, List<String> peasantHouseholdIds, String processInstanceId, HttpServletResponse response) throws IOException {
String fileName = ""; String fileName = "";
String redisKey = ""; String redisKey = "";
...@@ -548,7 +578,14 @@ public class CommonServiceImpl { ...@@ -548,7 +578,14 @@ public class CommonServiceImpl {
Path templateDir = Paths.get(TEMPLATE_FILE_PATH).getParent(); Path templateDir = Paths.get(TEMPLATE_FILE_PATH).getParent();
System.out.println("模版文件所在目录是: " + templateDir); System.out.println("模版文件所在目录是: " + templateDir);
Path tempDir =ziLiaoDir.resolve(returnDto.getSurveyInformation().getOwnersName());
Path tempDir = createUniqueDirectory(ziLiaoDir, returnDto.getSurveyInformation().getOwnersName());
boolean directoryExists = Files.exists(tempDir);
if (directoryExists){
}else {
}
try { try {
Files.createDirectories(tempDir); // 创建临时目录 Files.createDirectories(tempDir); // 创建临时目录
System.out.println("Temporary directory created at: " + tempDir); System.out.println("Temporary directory created at: " + tempDir);
...@@ -622,22 +659,29 @@ public class CommonServiceImpl { ...@@ -622,22 +659,29 @@ public class CommonServiceImpl {
current = current + 15 ; current = current + 15 ;
redisUtils.set(redisKey, MapBuilder.<String, Object>create() redisUtils.set(redisKey, MapBuilder.<String, Object>create()
.put("value", current).build()); .put("value", current).build());
List<HygfRectificationOrder> areaOrdersCon = Optional.ofNullable(returnDto.getPowerStationConstructionData().getAreaOrders()) List<HygfRectificationOrder> areaOrdersCon =new ArrayList<>();
if (ObjectUtils.isNotEmpty(returnDto.getHygfOnGrid())) {
areaOrdersCon = Optional.ofNullable(returnDto.getPowerStationConstructionData().getAreaOrders())
.orElse(new ArrayList<>()); .orElse(new ArrayList<>());
addNonNullList(areaOrdersCon, returnDto.getPowerStationConstructionData().getDesignOrders()); addNonNullList(areaOrdersCon, returnDto.getPowerStationConstructionData().getDesignOrders());
addNonNullList(areaOrdersCon, returnDto.getPowerStationConstructionData().getEngineeringOrders()); addNonNullList(areaOrdersCon, returnDto.getPowerStationConstructionData().getEngineeringOrders());
}
// 主方法或代码块 // 主方法或代码块
List<HygfRectificationOrder> areaOrders = Optional.ofNullable(returnDto.getHygfOnGrid().getAreaOrders()) List<HygfRectificationOrder> areaOrders =new ArrayList<>();
if (ObjectUtils.isNotEmpty(returnDto.getHygfOnGrid())) {
areaOrders = Optional.ofNullable(returnDto.getHygfOnGrid().getAreaOrders())
.orElse(new ArrayList<>()); .orElse(new ArrayList<>());
addNonNullList(areaOrders, returnDto.getHygfOnGrid().getDesignOrders()); addNonNullList(areaOrders, returnDto.getHygfOnGrid().getDesignOrders());
addNonNullList(areaOrders, returnDto.getHygfOnGrid().getEngineeringOrders()); addNonNullList(areaOrders, returnDto.getHygfOnGrid().getEngineeringOrders());
}
List<HygfRectificationOrder> areaOrdersAcc = Optional.ofNullable(returnDto.getAcceptanceCheck().getAreaOrders()) List<HygfRectificationOrder> areaOrdersAcc = new ArrayList<>();
if (ObjectUtils.isNotEmpty(returnDto.getAcceptanceCheck())){
areaOrdersAcc = Optional.ofNullable(returnDto.getAcceptanceCheck().getAreaOrders())
.orElse(new ArrayList<>()); .orElse(new ArrayList<>());
addNonNullList(areaOrders, returnDto.getAcceptanceCheck().getLegalOrders()); addNonNullList(areaOrdersAcc, returnDto.getAcceptanceCheck().getLegalOrders());
addNonNullList(areaOrders, returnDto.getAcceptanceCheck().getFinanceOrders()); addNonNullList(areaOrdersAcc, returnDto.getAcceptanceCheck().getFinanceOrders());
addNonNullList(areaOrders, returnDto.getAcceptanceCheck().getPropertyOrders()); addNonNullList(areaOrdersAcc, returnDto.getAcceptanceCheck().getPropertyOrders());
}
List<Future<?>> futures = new ArrayList<>(); List<Future<?>> futures = new ArrayList<>();
String finalRedisKey = redisKey; String finalRedisKey = redisKey;
...@@ -724,9 +768,10 @@ public class CommonServiceImpl { ...@@ -724,9 +768,10 @@ public class CommonServiceImpl {
e.printStackTrace(); e.printStackTrace();
} }
})); }));
List<HygfRectificationOrder> finalAreaOrdersCon = areaOrdersCon;
futures.add(executorService.submit(() -> { futures.add(executorService.submit(() -> {
try { try {
downloadAndZipImages(areaOrdersCon,"施工信息整改单附件",tempDir,urlPath); downloadAndZipImages(finalAreaOrdersCon,"施工信息整改单附件",tempDir,urlPath);
if (!finalRedisKey.contains(",")){ if (!finalRedisKey.contains(",")){
Map<String, Object> map = (Map<String, Object>) redisUtils.get(finalRedisKey); Map<String, Object> map = (Map<String, Object>) redisUtils.get(finalRedisKey);
Integer currentNum = (Integer) map.get("value")+7; Integer currentNum = (Integer) map.get("value")+7;
...@@ -752,9 +797,10 @@ public class CommonServiceImpl { ...@@ -752,9 +797,10 @@ public class CommonServiceImpl {
e.printStackTrace(); e.printStackTrace();
} }
})); }));
List<HygfRectificationOrder> finalAreaOrders = areaOrders;
futures.add(executorService.submit(() -> { futures.add(executorService.submit(() -> {
try { try {
downloadAndZipImages(areaOrders,"并网信息整改单附件",tempDir,urlPath); downloadAndZipImages(finalAreaOrders,"并网信息整改单附件",tempDir,urlPath);
if (!finalRedisKey.contains(",")){ if (!finalRedisKey.contains(",")){
Map<String, Object> map = (Map<String, Object>) redisUtils.get(finalRedisKey); Map<String, Object> map = (Map<String, Object>) redisUtils.get(finalRedisKey);
Integer currentNum = (Integer) map.get("value")+7; Integer currentNum = (Integer) map.get("value")+7;
...@@ -780,9 +826,10 @@ public class CommonServiceImpl { ...@@ -780,9 +826,10 @@ public class CommonServiceImpl {
e.printStackTrace(); e.printStackTrace();
} }
})); }));
List<HygfRectificationOrder> finalAreaOrdersAcc = areaOrdersAcc;
futures.add(executorService.submit(() -> { futures.add(executorService.submit(() -> {
try { try {
downloadAndZipImages(areaOrdersAcc,"验收信息整改单附件",tempDir,urlPath); downloadAndZipImages(finalAreaOrdersAcc,"验收信息整改单附件",tempDir,urlPath);
if (!finalRedisKey.contains(",")){ if (!finalRedisKey.contains(",")){
Map<String, Object> map = (Map<String, Object>) redisUtils.get(finalRedisKey); Map<String, Object> map = (Map<String, Object>) redisUtils.get(finalRedisKey);
Integer currentNum = (Integer) map.get("value")+7; Integer currentNum = (Integer) map.get("value")+7;
...@@ -818,7 +865,6 @@ public class CommonServiceImpl { ...@@ -818,7 +865,6 @@ public class CommonServiceImpl {
} }
String encodedFilename = ""; String encodedFilename = "";
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
if (peasantHouseholdIds.size() > 1){ if (peasantHouseholdIds.size() > 1){
fileName = "批量资料"; fileName = "批量资料";
...@@ -841,7 +887,9 @@ public class CommonServiceImpl { ...@@ -841,7 +887,9 @@ public class CommonServiceImpl {
private void fillSheet(Sheet sheet, Object data) { private void fillSheet(Sheet sheet, Object data) {
if (Objects.isNull(null)){
return;
}
int startRow = 1; int startRow = 1;
for (int i = 0; i < sheet.getLastRowNum() + 1; i++) { for (int i = 0; i < sheet.getLastRowNum() + 1; i++) {
Row row = sheet.getRow(i); Row row = sheet.getRow(i);
...@@ -1274,6 +1322,9 @@ public class CommonServiceImpl { ...@@ -1274,6 +1322,9 @@ public class CommonServiceImpl {
} }
public static void downloadAndZipImages(Object obj,String fileName, Path tempDir,String urlPath) throws IOException { public static void downloadAndZipImages(Object obj,String fileName, Path tempDir,String urlPath) throws IOException {
if (ObjectUtils.isEmpty(obj)){
return;
}
Path baseInfoPath = tempDir.resolve(fileName); Path baseInfoPath = tempDir.resolve(fileName);
try { try {
Files.createDirectories(baseInfoPath); Files.createDirectories(baseInfoPath);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment