feat: 添加分批次调用

广州市市一联众
wyb 8 months ago
parent 79593b9a9d
commit c316a76c66

@ -54,29 +54,29 @@ public class FileUploader {
folder.delete(); folder.delete();
} }
public static void main(String[] args) throws IOException { // public static void main(String[] args) throws IOException {
List<File> files = new ArrayList<>(); // List<File> files = new ArrayList<>();
files.add(new File("C:\\jiahsi-saomiao\\413425_刘燊杨_20221009_004624\\16763947060057863381.jpg")); // files.add(new File("C:\\jiahsi-saomiao\\413425_刘燊杨_20221009_004624\\16763947060057863381.jpg"));
// files.add(new File("C:\\jiahsi-saomiao\\413425_刘燊杨_20221009_004624\\16763947060420811242.jpg")); //// files.add(new File("C:\\jiahsi-saomiao\\413425_刘燊杨_20221009_004624\\16763947060420811242.jpg"));
//
//
// 额外的表单字段参数 // // 额外的表单字段参数
List<FormField> params = new ArrayList<>(); // List<FormField> params = new ArrayList<>();
params.add(new FormField("uploadFileParams", "[ {\"inpatientNo\":\"35132331\", \"admiss_id\":\"12312342342312\",\"admiss_times\":\"1\",\"disDate\":\"2020-07-30 00:00:00.000\", \"fileTitle\":\"16763947060057863381.jpg\", \"uploadFileName\":\"16763947060057863381.jpg\", \"assortId\":\"078F7675CB0048EDBE586D59831C57B0\" ,\n" + // params.add(new FormField("uploadFileParams", "[ {\"inpatientNo\":\"35132331\", \"admiss_id\":\"12312342342312\",\"admiss_times\":\"1\",\"disDate\":\"2020-07-30 00:00:00.000\", \"fileTitle\":\"16763947060057863381.jpg\", \"uploadFileName\":\"16763947060057863381.jpg\", \"assortId\":\"078F7675CB0048EDBE586D59831C57B0\" ,\n" +
"\"patientId\":\"12323432412312\",\n" + // "\"patientId\":\"12323432412312\",\n" +
"\"name\":\"长三\",\n" + // "\"name\":\"长三\",\n" +
"\"admissDate\":\"2022-02-01\",\n" + // "\"admissDate\":\"2022-02-01\",\n" +
"\"sex\":\"男\"\n" + // "\"sex\":\"男\"\n" +
"}\n" + // "}\n" +
"]")); // "]"));
//
// 上传URL // // 上传URL
String uploadUrl = "http://192.168.16.116:9511/fileUploadJpg"; // String uploadUrl = "http://192.168.16.116:9511/fileUploadJpg";
//
// 执行批量上传 // // 执行批量上传
CommonResult commonResult = uploadFilesWithParams(files, uploadUrl, params); // CommonResult commonResult = uploadFilesWithParams(files, uploadUrl, params);
System.out.println(new Gson().toJson(commonResult)); // System.out.println(new Gson().toJson(commonResult));
} // }
} }

@ -8,15 +8,12 @@ import com.jiashi.service.CardInfo;
import com.jiashi.service.FormField; import com.jiashi.service.FormField;
import com.jiashi.service.Picture; import com.jiashi.service.Picture;
import com.jiashi.service.UploadInfo; import com.jiashi.service.UploadInfo;
import com.sun.xml.internal.ws.util.CompletedFuture;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
@ -27,8 +24,11 @@ import java.io.IOException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.*; import java.util.concurrent.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/** /**
* @author YongBin Wen * @author YongBin Wen
@ -268,15 +268,45 @@ public class LianZhongSyncController {
} }
Map<String, UploadInfo> uploadInfosMap = uploadInfos.stream().collect(Collectors.toMap(UploadInfo::getUploadFileName, Function.identity()));
boolean success = true;
// 上传
int totalSize = files.size();
int batchSize = 500;
if (totalSize > batchSize) {
for (int i = 0; i < totalSize; i += batchSize) {
ArrayList<File> batch = new ArrayList<>();
List<UploadInfo> uploadInfoParams = new ArrayList<>();
// 计算当前批次的结束索引
int end = Math.min(i + batchSize, totalSize);
for (int j = i; j < end; j++) {
batch.add(files.get(j));
uploadInfoParams.add(uploadInfosMap.get(files.get(j).getName()));
}
// 额外的表单字段参数
List<FormField> params = new ArrayList<>();
String s = new Gson().toJson(uploadInfoParams);
params.add(new FormField("uploadFileParams", s));
log.info("请求参数:" + cardInfo.getPatno());
CommonResult commonResult = FileUploader.uploadFilesWithParams(batch, "http://192.168.161.102:9511/batchFileUploadJpg", params);
boolean res = commonResult.getCode() == 0;
success = success && res;
}
} else {
// 额外的表单字段参数 // 额外的表单字段参数
List<FormField> params = new ArrayList<>(); List<FormField> params = new ArrayList<>();
String s = new Gson().toJson(uploadInfos); String s = new Gson().toJson(uploadInfos);
params.add(new FormField("uploadFileParams", s)); params.add(new FormField("uploadFileParams", s));
log.info("请求参数:" + cardInfo.getPatno()); log.info("请求参数:" + cardInfo.getPatno());
// 上传
CommonResult commonResult = FileUploader.uploadFilesWithParams(files, "http://192.168.161.102:9511/fileUploadJpg", params); CommonResult commonResult = FileUploader.uploadFilesWithParams(files, "http://192.168.161.102:9511/fileUploadJpg", params);
if (commonResult.getCode() == 0) { success = commonResult.getCode() == 0;
}
if (success) {
dataQuery.updateBatchState(cardInfo, 3); dataQuery.updateBatchState(cardInfo, 3);
} }
@ -295,4 +325,5 @@ public class LianZhongSyncController {
} }
} }

@ -12,10 +12,13 @@ import javax.annotation.PostConstruct;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import java.util.function.Function;
import java.util.stream.Collectors;
@Component @Component
@Slf4j @Slf4j
@ -122,21 +125,49 @@ public class UpdateService {
FileUploader.deleteFolder(directory); FileUploader.deleteFolder(directory);
return; return;
} }
try {
Map<String, UploadInfo> uploadInfosMap = uploadInfos.stream().collect(Collectors.toMap(UploadInfo::getUploadFileName, Function.identity()));
boolean success = true;
// 上传
int totalSize = files.size();
int batchSize = 500;
if (totalSize > batchSize) {
for (int i = 0; i < totalSize; i += batchSize) {
ArrayList<File> batch = new ArrayList<>();
List<UploadInfo> uploadInfoParams = new ArrayList<>();
// 计算当前批次的结束索引
int end = Math.min(i + batchSize, totalSize);
for (int j = i; j < end; j++) {
batch.add(files.get(j));
uploadInfoParams.add(uploadInfosMap.get(files.get(j).getName()));
}
// 额外的表单字段参数
List<FormField> params = new ArrayList<>();
String s = new Gson().toJson(uploadInfoParams);
params.add(new FormField("uploadFileParams", s));
log.info("请求参数:" + cardInfo.getPatno());
CommonResult commonResult = FileUploader.uploadFilesWithParams(batch, "http://192.168.161.102:9511/batchFileUploadJpg", params);
boolean res = commonResult.getCode() == 0;
success = success && res;
}
} else {
// 额外的表单字段参数 // 额外的表单字段参数
List<FormField> params = new ArrayList<>(); List<FormField> params = new ArrayList<>();
String s = new Gson().toJson(uploadInfos); String s = new Gson().toJson(uploadInfos);
params.add(new FormField("uploadFileParams", s)); params.add(new FormField("uploadFileParams", s));
log.info("请求参数:"+cardInfo.getPatno()); log.info("请求参数:" + cardInfo.getPatno());
// 上传
try {
CommonResult commonResult = FileUploader.uploadFilesWithParams(files, "http://192.168.161.102:9511/fileUploadJpg", params); CommonResult commonResult = FileUploader.uploadFilesWithParams(files, "http://192.168.161.102:9511/fileUploadJpg", params);
if(commonResult.getCode()==0){ success = commonResult.getCode() == 0;
}
if(success){
dataQuery.updateBatchState(cardInfo,3); dataQuery.updateBatchState(cardInfo,3);
}else{ }else{
dataQuery.updateBatchState(cardInfo,4); dataQuery.updateBatchState(cardInfo,4);
log.error(commonResult.getMsg());
} }
} catch (Exception e) { } catch (Exception e) {
dataQuery.updateBatchState(cardInfo,4); dataQuery.updateBatchState(cardInfo,4);

Loading…
Cancel
Save