|
|
|
@ -198,11 +198,12 @@ public class SyncBasicFileImpl implements ISyncBasicFileService {
|
|
|
|
|
//解析文件上传参数
|
|
|
|
|
List<FileUploadJpgDto> fileUploadJpg = JSONArray.parseArray(uploadJpgFileParam.getUploadFileParams(), FileUploadJpgDto.class);
|
|
|
|
|
String patientId = fileUploadJpg.get(0).getPatientId();
|
|
|
|
|
Integer admissTimes= null;
|
|
|
|
|
if (fileUploadJpg.get(0).getAdmissTimes()==null){
|
|
|
|
|
admissTimes= 0;
|
|
|
|
|
}else {
|
|
|
|
|
admissTimes=fileUploadJpg.get(0).getAdmissTimes();
|
|
|
|
|
Integer admissTimes = null;
|
|
|
|
|
if (fileUploadJpg.get(0).getAdmissTimes() == null) {
|
|
|
|
|
admissTimes = 0;
|
|
|
|
|
fileUploadJpg.get(0).setAdmissTimes(0);
|
|
|
|
|
} else {
|
|
|
|
|
admissTimes = fileUploadJpg.get(0).getAdmissTimes();
|
|
|
|
|
}
|
|
|
|
|
String admissId = fileUploadJpg.get(0).getAdmissId();
|
|
|
|
|
Date disDate = fileUploadJpg.get(0).getDisDate();
|
|
|
|
@ -293,6 +294,119 @@ public class SyncBasicFileImpl implements ISyncBasicFileService {
|
|
|
|
|
return CommonResult.success("上传完成");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public CommonResult<String> batchFileUploadJpg(MultipartFile[] files, UploadJpgFileParam uploadJpgFileParam) {
|
|
|
|
|
|
|
|
|
|
// 校验上传的数据
|
|
|
|
|
if (Objects.isNull(uploadJpgFileParam) || Objects.isNull(uploadJpgFileParam.getUploadFileParams())) {
|
|
|
|
|
log.info("文件上传参数为空!");
|
|
|
|
|
return CommonResult.failed("文件上传参数为空!");
|
|
|
|
|
}
|
|
|
|
|
//解析文件上传参数
|
|
|
|
|
List<FileUploadJpgDto> fileUploadJpg = JSONArray.parseArray(uploadJpgFileParam.getUploadFileParams(), FileUploadJpgDto.class);
|
|
|
|
|
String patientId = fileUploadJpg.get(0).getPatientId();
|
|
|
|
|
Integer admissTimes = null;
|
|
|
|
|
if (fileUploadJpg.get(0).getAdmissTimes() == null) {
|
|
|
|
|
admissTimes = 0;
|
|
|
|
|
fileUploadJpg.get(0).setAdmissTimes(0);
|
|
|
|
|
} else {
|
|
|
|
|
admissTimes = fileUploadJpg.get(0).getAdmissTimes();
|
|
|
|
|
}
|
|
|
|
|
String admissId = fileUploadJpg.get(0).getAdmissId();
|
|
|
|
|
Date disDate = fileUploadJpg.get(0).getDisDate();
|
|
|
|
|
|
|
|
|
|
for (FileUploadJpgDto dto : fileUploadJpg) {
|
|
|
|
|
if (StrUtil.isBlank(dto.getPatientId())) {
|
|
|
|
|
log.info("PatientId为空");
|
|
|
|
|
return CommonResult.failed("PatientId不能为空!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (fileUploadJpg.size() != files.length) {
|
|
|
|
|
log.info(patientId + "文件上传数量与参数不一致!");
|
|
|
|
|
return CommonResult.failed("文件上传数量与参数不一致");
|
|
|
|
|
}
|
|
|
|
|
// 参数不含上传的,不匹配
|
|
|
|
|
List<String> originalFileNames = fileUploadJpg.stream().map(item -> String.valueOf(item.getUploadFileName())).collect(Collectors.toList());
|
|
|
|
|
for (MultipartFile file : files) {
|
|
|
|
|
if (!originalFileNames.contains(file.getOriginalFilename())) {
|
|
|
|
|
log.info("文件名:" + file.getOriginalFilename() + "与病案号:" + patientId + "集合中文件名不匹配");
|
|
|
|
|
return CommonResult.failed("文件名:" + file.getOriginalFilename() + "与病案号:" + patientId + "集合中中文名不匹配");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
final String source = "lianzhong";
|
|
|
|
|
List<TbasicSub> tbasicSubList = this.getTbasicSubList(fileUploadJpg);
|
|
|
|
|
|
|
|
|
|
//查询是否存在更新,不存在新增
|
|
|
|
|
Tbasic oldBasic = getOldTbasic(fileUploadJpg.get(0));
|
|
|
|
|
Tbasic tbasic = oldBasic;
|
|
|
|
|
if (oldBasic == null) {
|
|
|
|
|
ArrayList<Tbasic> tbasics = new ArrayList<>();
|
|
|
|
|
//组织基础数据
|
|
|
|
|
Tbasic addTbasic = this.getTbasic(fileUploadJpg);
|
|
|
|
|
tbasics.add(addTbasic);
|
|
|
|
|
basicDeptService.handleDept(tbasics);
|
|
|
|
|
tbasic = addTbasic;
|
|
|
|
|
basicMapper.addBasic(tbasics);
|
|
|
|
|
log.info("批次新增PatientId为:" + patientId + "的基础数据成功");
|
|
|
|
|
} else {
|
|
|
|
|
//删除tbasic拓展表
|
|
|
|
|
basicMapper.delTbasicSub(oldBasic.getPatientId());
|
|
|
|
|
}
|
|
|
|
|
for (TbasicSub sub : tbasicSubList) {
|
|
|
|
|
sub.setPatientId(tbasic.getPatientId());
|
|
|
|
|
}
|
|
|
|
|
basicMapper.insertOrUpdateTbasicSub(tbasicSubList);
|
|
|
|
|
|
|
|
|
|
// 删除旧的存在的同名的联众文件数据、图像
|
|
|
|
|
if (oldBasic != null) {
|
|
|
|
|
List<ScanAssort> scanAssort = scanAssortMapper.getScanAssort(oldBasic.getPatientId(), source);
|
|
|
|
|
if (!CollectionUtils.isEmpty(scanAssort)) {
|
|
|
|
|
for (MultipartFile file : files) {
|
|
|
|
|
String originalFilename = file.getOriginalFilename();
|
|
|
|
|
for (ScanAssort assort : scanAssort) {
|
|
|
|
|
if (originalFilename.equals(assort.getScanPage())) {
|
|
|
|
|
File oldFile = new File(assort.getImagePath() + File.separatorChar + assort.getScanPage());
|
|
|
|
|
try {
|
|
|
|
|
oldFile.delete(); // 删除照片
|
|
|
|
|
int i = scanAssortMapper.delScanAssortById(assort.getId());
|
|
|
|
|
break;
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 保存文件和文件数据
|
|
|
|
|
String filePathdir = createDirectory(patientId, admissTimes, admissId, disDate);
|
|
|
|
|
//保存文件
|
|
|
|
|
ArrayList<ScanAssort> scanAssorts = new ArrayList<>();
|
|
|
|
|
for (MultipartFile file : files) {
|
|
|
|
|
for (FileUploadJpgDto dto : fileUploadJpg) {
|
|
|
|
|
//上传原文件名与实际文件名一致
|
|
|
|
|
if (dto.getUploadFileName().equals(file.getOriginalFilename())) {
|
|
|
|
|
//记录排序
|
|
|
|
|
final int[] sort = {0};
|
|
|
|
|
ScanAssort tScanAssortDto = addScanAssort(tbasic.getPatientId(), filePathdir, file, dto, sort);
|
|
|
|
|
if (Objects.isNull(tScanAssortDto)) {
|
|
|
|
|
log.info("批次病案主键:" + tbasic.getPatientId() + "中" + dto.getFileTitle() + "中保存失败");
|
|
|
|
|
} else {
|
|
|
|
|
tScanAssortDto.setSource(source);
|
|
|
|
|
scanAssorts.add(tScanAssortDto);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!scanAssortMapper.addScanAssort(scanAssorts)) {
|
|
|
|
|
log.info(patientId + "保存数据库失败");
|
|
|
|
|
return CommonResult.failed(patientId + "保存数据库失败");
|
|
|
|
|
}
|
|
|
|
|
log.info("本次批次传输成功病案主键为:" + patientId);
|
|
|
|
|
return CommonResult.success("上传完成");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private Tbasic getOldTbasic(FileUploadJpgDto fileUploadJpgDto) {
|
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
// String admissId = fileUploadJpgDto.getAdmissId();
|
|
|
|
@ -328,7 +442,7 @@ public class SyncBasicFileImpl implements ISyncBasicFileService {
|
|
|
|
|
String month = parts[1];
|
|
|
|
|
String day = parts[2];
|
|
|
|
|
//文件保存目录
|
|
|
|
|
String filePathdir = savePath + File.separatorChar + year + File.separatorChar + month + File.separatorChar + day+File.separatorChar+ admissId +"_"+ admissTimes +File.separatorChar+ patientId;
|
|
|
|
|
String filePathdir = savePath + File.separatorChar + year + File.separatorChar + month + File.separatorChar + day + File.separatorChar + admissId + "_" + admissTimes + File.separatorChar + patientId;
|
|
|
|
|
File filePath = new File(filePathdir);
|
|
|
|
|
//判断文件夹是否存在不存在创建文件夹
|
|
|
|
|
if (!filePath.exists()) {
|
|
|
|
@ -339,7 +453,7 @@ public class SyncBasicFileImpl implements ISyncBasicFileService {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private List<TbasicSub> getTbasicSubList(List<FileUploadJpgDto> tbasicList) {
|
|
|
|
|
return tbasicList.stream().map(m->{
|
|
|
|
|
return tbasicList.stream().map(m -> {
|
|
|
|
|
TbasicSub tbasicSub = new TbasicSub();
|
|
|
|
|
tbasicSub.setBirthday(m.getBirthday());
|
|
|
|
|
tbasicSub.setPatientId(m.getPatientId());
|
|
|
|
@ -379,7 +493,7 @@ public class SyncBasicFileImpl implements ISyncBasicFileService {
|
|
|
|
|
Tbasic addTbasic = new Tbasic();
|
|
|
|
|
addTbasic.setPatientId(String.valueOf(SnowflakeIdWorker.idWorker.nextId()));
|
|
|
|
|
addTbasic.setAdmissTimes(fileUploadJpgDto.getAdmissTimes());
|
|
|
|
|
if(addTbasic.getAdmissTimes()==null){
|
|
|
|
|
if (addTbasic.getAdmissTimes() == null) {
|
|
|
|
|
addTbasic.setAdmissTimes(0);
|
|
|
|
|
}
|
|
|
|
|
addTbasic.setInpatientNo(fileUploadJpgDto.getInpatientNo());
|
|
|
|
|