Commit d927cd82 authored by chenzhao's avatar chenzhao

ziliaoxiazai youhua

parent 2b9dd1c9
......@@ -55,7 +55,7 @@ public class CommonController {
commonService.downZiliao(surveyInformationId,peasantHouseholdIds,processInstanceId,response);
System.out.println("zip下载成功");
}
/**
......
......@@ -26,6 +26,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.activemq.util.MapHelper;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.reflect.FieldUtils;
......@@ -505,6 +506,35 @@ public class CommonServiceImpl {
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 {
String fileName = "";
String redisKey = "";
......@@ -548,7 +578,14 @@ public class CommonServiceImpl {
Path templateDir = Paths.get(TEMPLATE_FILE_PATH).getParent();
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 {
Files.createDirectories(tempDir); // 创建临时目录
System.out.println("Temporary directory created at: " + tempDir);
......@@ -622,22 +659,29 @@ public class CommonServiceImpl {
current = current + 15 ;
redisUtils.set(redisKey, MapBuilder.<String, Object>create()
.put("value", current).build());
List<HygfRectificationOrder> areaOrdersCon = Optional.ofNullable(returnDto.getPowerStationConstructionData().getAreaOrders())
.orElse(new ArrayList<>());
addNonNullList(areaOrdersCon, returnDto.getPowerStationConstructionData().getDesignOrders());
addNonNullList(areaOrdersCon, returnDto.getPowerStationConstructionData().getEngineeringOrders());
List<HygfRectificationOrder> areaOrdersCon =new ArrayList<>();
if (ObjectUtils.isNotEmpty(returnDto.getHygfOnGrid())) {
areaOrdersCon = Optional.ofNullable(returnDto.getPowerStationConstructionData().getAreaOrders())
.orElse(new ArrayList<>());
addNonNullList(areaOrdersCon, returnDto.getPowerStationConstructionData().getDesignOrders());
addNonNullList(areaOrdersCon, returnDto.getPowerStationConstructionData().getEngineeringOrders());
}
// 主方法或代码块
List<HygfRectificationOrder> areaOrders = Optional.ofNullable(returnDto.getHygfOnGrid().getAreaOrders())
.orElse(new ArrayList<>());
addNonNullList(areaOrders, returnDto.getHygfOnGrid().getDesignOrders());
addNonNullList(areaOrders, returnDto.getHygfOnGrid().getEngineeringOrders());
List<HygfRectificationOrder> areaOrdersAcc = Optional.ofNullable(returnDto.getAcceptanceCheck().getAreaOrders())
.orElse(new ArrayList<>());
addNonNullList(areaOrders, returnDto.getAcceptanceCheck().getLegalOrders());
addNonNullList(areaOrders, returnDto.getAcceptanceCheck().getFinanceOrders());
addNonNullList(areaOrders, returnDto.getAcceptanceCheck().getPropertyOrders());
List<HygfRectificationOrder> areaOrders =new ArrayList<>();
if (ObjectUtils.isNotEmpty(returnDto.getHygfOnGrid())) {
areaOrders = Optional.ofNullable(returnDto.getHygfOnGrid().getAreaOrders())
.orElse(new ArrayList<>());
addNonNullList(areaOrders, returnDto.getHygfOnGrid().getDesignOrders());
addNonNullList(areaOrders, returnDto.getHygfOnGrid().getEngineeringOrders());
}
List<HygfRectificationOrder> areaOrdersAcc = new ArrayList<>();
if (ObjectUtils.isNotEmpty(returnDto.getAcceptanceCheck())){
areaOrdersAcc = Optional.ofNullable(returnDto.getAcceptanceCheck().getAreaOrders())
.orElse(new ArrayList<>());
addNonNullList(areaOrdersAcc, returnDto.getAcceptanceCheck().getLegalOrders());
addNonNullList(areaOrdersAcc, returnDto.getAcceptanceCheck().getFinanceOrders());
addNonNullList(areaOrdersAcc, returnDto.getAcceptanceCheck().getPropertyOrders());
}
List<Future<?>> futures = new ArrayList<>();
String finalRedisKey = redisKey;
......@@ -724,9 +768,10 @@ public class CommonServiceImpl {
e.printStackTrace();
}
}));
futures.add(executorService.submit(() -> {
List<HygfRectificationOrder> finalAreaOrdersCon = areaOrdersCon;
futures.add(executorService.submit(() -> {
try {
downloadAndZipImages(areaOrdersCon,"施工信息整改单附件",tempDir,urlPath);
downloadAndZipImages(finalAreaOrdersCon,"施工信息整改单附件",tempDir,urlPath);
if (!finalRedisKey.contains(",")){
Map<String, Object> map = (Map<String, Object>) redisUtils.get(finalRedisKey);
Integer currentNum = (Integer) map.get("value")+7;
......@@ -752,9 +797,10 @@ public class CommonServiceImpl {
e.printStackTrace();
}
}));
futures.add(executorService.submit(() -> {
List<HygfRectificationOrder> finalAreaOrders = areaOrders;
futures.add(executorService.submit(() -> {
try {
downloadAndZipImages(areaOrders,"并网信息整改单附件",tempDir,urlPath);
downloadAndZipImages(finalAreaOrders,"并网信息整改单附件",tempDir,urlPath);
if (!finalRedisKey.contains(",")){
Map<String, Object> map = (Map<String, Object>) redisUtils.get(finalRedisKey);
Integer currentNum = (Integer) map.get("value")+7;
......@@ -780,9 +826,10 @@ public class CommonServiceImpl {
e.printStackTrace();
}
}));
futures.add(executorService.submit(() -> {
List<HygfRectificationOrder> finalAreaOrdersAcc = areaOrdersAcc;
futures.add(executorService.submit(() -> {
try {
downloadAndZipImages(areaOrdersAcc,"验收信息整改单附件",tempDir,urlPath);
downloadAndZipImages(finalAreaOrdersAcc,"验收信息整改单附件",tempDir,urlPath);
if (!finalRedisKey.contains(",")){
Map<String, Object> map = (Map<String, Object>) redisUtils.get(finalRedisKey);
Integer currentNum = (Integer) map.get("value")+7;
......@@ -818,7 +865,6 @@ public class CommonServiceImpl {
}
String encodedFilename = "";
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
if (peasantHouseholdIds.size() > 1){
fileName = "批量资料";
......@@ -841,7 +887,9 @@ public class CommonServiceImpl {
private void fillSheet(Sheet sheet, Object data) {
if (Objects.isNull(null)){
return;
}
int startRow = 1;
for (int i = 0; i < sheet.getLastRowNum() + 1; i++) {
Row row = sheet.getRow(i);
......@@ -1274,6 +1322,9 @@ public class CommonServiceImpl {
}
public static void downloadAndZipImages(Object obj,String fileName, Path tempDir,String urlPath) throws IOException {
if (ObjectUtils.isEmpty(obj)){
return;
}
Path baseInfoPath = tempDir.resolve(fileName);
try {
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