Commit d9f43408 authored by huyuchen's avatar huyuchen

huych-商险问题修改

parent c9c0ba25
...@@ -619,10 +619,10 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo ...@@ -619,10 +619,10 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
List<String> materialTypes = new ArrayList<>(); List<String> materialTypes = new ArrayList<>();
List<String> failReasons = new ArrayList<>(); List<String> failReasons = new ArrayList<>();
// 遍历该人员的所有文件夹 // 遍历该人员的所有文件夹
for (File personDir : personDirs) { for (File personDir : personDirs) {
processPersonDirectoryWithResult(personDir, detail, materialTypes, failReasons, taskId); processPersonDirectoryWithResult(personDir, detail, materialTypes, failReasons, taskId, userId, userName);
} }
personMaterialTypesMap.put(uniqueKey, materialTypes); personMaterialTypesMap.put(uniqueKey, materialTypes);
...@@ -849,9 +849,12 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo ...@@ -849,9 +849,12 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
* @param materialTypes 成功处理的资料类型列表(输出参数) * @param materialTypes 成功处理的资料类型列表(输出参数)
* @param failReasons 失败原因列表(输出参数) * @param failReasons 失败原因列表(输出参数)
* @param taskId 任务ID * @param taskId 任务ID
* @param userId 用户ID
* @param userName 用户名
*/ */
private void processPersonDirectoryWithResult(File personDir, TElectronicArchiveDetail detail, private void processPersonDirectoryWithResult(File personDir, TElectronicArchiveDetail detail,
List<String> materialTypes, List<String> failReasons, String taskId) { List<String> materialTypes, List<String> failReasons, String taskId,
String userId, String userName) {
// 处理第三级目录(资料类型或直接是文件) // 处理第三级目录(资料类型或直接是文件)
File[] subFiles = personDir.listFiles(); File[] subFiles = personDir.listFiles();
if (subFiles == null || subFiles.length == 0) { if (subFiles == null || subFiles.length == 0) {
...@@ -887,14 +890,14 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo ...@@ -887,14 +890,14 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
continue; continue;
} }
// 按资料类型分组处理目录下的所有文件 // 按资料类型分组处理目录下的所有文件
String result = processMaterialTypeDirectoryWithResult(subFile, detail, materialType, taskId); String result = processMaterialTypeDirectoryWithResult(subFile, detail, materialType, taskId, userId, userName);
if ("success".equals(result)) { if ("success".equals(result)) {
materialTypesSet.add(materialType); materialTypesSet.add(materialType);
} else {
failReasons.add(materialType + ":" + result);
}
} else { } else {
failReasons.add(materialType + ":" + result);
}
} else {
// 直接是文件,收集起来统一作为存量类型处理 // 直接是文件,收集起来统一作为存量类型处理
stockFiles.add(subFile); stockFiles.add(subFile);
} }
...@@ -902,7 +905,7 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo ...@@ -902,7 +905,7 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
// 统一处理所有直接文件(存量类型) // 统一处理所有直接文件(存量类型)
if (!stockFiles.isEmpty()) { if (!stockFiles.isEmpty()) {
String result = processMaterialTypeFilesWithResult(stockFiles, detail, ArchiveConstants.MATERIAL_TYPE_STOCK, taskId); String result = processMaterialTypeFilesWithResult(stockFiles, detail, ArchiveConstants.MATERIAL_TYPE_STOCK, taskId, userId, userName);
if ("success".equals(result)) { if ("success".equals(result)) {
materialTypesSet.add(ArchiveConstants.MATERIAL_TYPE_STOCK); materialTypesSet.add(ArchiveConstants.MATERIAL_TYPE_STOCK);
} else { } else {
...@@ -947,10 +950,12 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo ...@@ -947,10 +950,12 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
* @param detail 电子档案明细 * @param detail 电子档案明细
* @param materialType 资料类型 * @param materialType 资料类型
* @param taskId 任务ID * @param taskId 任务ID
* @param userId 用户ID
* @param userName 用户名
* @return "success" 表示成功,其他表示失败原因 * @return "success" 表示成功,其他表示失败原因
*/ */
private String processMaterialTypeDirectoryWithResult(File directory, TElectronicArchiveDetail detail, private String processMaterialTypeDirectoryWithResult(File directory, TElectronicArchiveDetail detail,
String materialType, String taskId) { String materialType, String taskId, String userId, String userName) {
// 收集该资料类型目录下的所有文件(递归收集子目录中的文件) // 收集该资料类型目录下的所有文件(递归收集子目录中的文件)
List<File> allFiles = new ArrayList<>(); List<File> allFiles = new ArrayList<>();
collectAllFiles(directory, allFiles); collectAllFiles(directory, allFiles);
...@@ -960,7 +965,7 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo ...@@ -960,7 +965,7 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
} }
// 统一处理该资料类型下的所有文件 // 统一处理该资料类型下的所有文件
return processMaterialTypeFilesWithResult(allFiles, detail, materialType, taskId); return processMaterialTypeFilesWithResult(allFiles, detail, materialType, taskId, userId, userName);
} }
/** /**
...@@ -1063,10 +1068,12 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo ...@@ -1063,10 +1068,12 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
* @param detail 电子档案明细 * @param detail 电子档案明细
* @param materialType 资料类型 * @param materialType 资料类型
* @param taskId 任务ID * @param taskId 任务ID
* @param userId 用户ID
* @param userName 用户名
* @return "success" 表示成功,其他表示失败原因 * @return "success" 表示成功,其他表示失败原因
*/ */
private String processMaterialTypeFilesWithResult(List<File> files, TElectronicArchiveDetail detail, private String processMaterialTypeFilesWithResult(List<File> files, TElectronicArchiveDetail detail,
String materialType, String taskId) { String materialType, String taskId, String userId, String userName) {
// 第一步:验证所有文件格式 // 第一步:验证所有文件格式
for (File file : files) { for (File file : files) {
String fileName = file.getName(); String fileName = file.getName();
...@@ -1092,20 +1099,23 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo ...@@ -1092,20 +1099,23 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
return "文件转换失败:" + fileName; return "文件转换失败:" + fileName;
} }
// 上传文件到阿里云OSS,uploadFileReturnAtta会自动生成TAttaInfo记录 // 上传文件到阿里云OSS,uploadFileReturnAtta会自动生成TAttaInfo记录
R<TAttaInfo> uploadResult = fileUploadService.uploadFileReturnAtta( // 传递用户信息,支持异步场景
multipartFile, R<TAttaInfo> uploadResult = fileUploadService.uploadFileReturnAtta(
ossDirectory, multipartFile,
CommonConstants.FOUR_STRING, ossDirectory,
detail.getId(), CommonConstants.FOUR_STRING,
taskId detail.getId(),
); taskId,
userId,
userName
);
if (!R.isSuccess(uploadResult)) { if (!R.isSuccess(uploadResult)) {
// 上传失败,整体失败 // 上传失败,整体失败
return "文件上传失败:" + fileName + ",原因:" + (uploadResult != null ? uploadResult.getMsg() : "未知错误"); return "文件上传失败:" + fileName + ",原因:" + (uploadResult != null ? uploadResult.getMsg() : "未知错误");
}
} }
}
// 第三步:所有文件上传成功 // 第三步:所有文件上传成功
return "success"; return "success";
......
package com.yifu.cloud.plus.v1.batch.service.impl; package com.yifu.cloud.plus.v1.batch.service.impl;
import cn.hutool.core.util.StrUtil;
import com.yifu.cloud.plus.v1.batch.entity.TAttaInfo; import com.yifu.cloud.plus.v1.batch.entity.TAttaInfo;
import com.yifu.cloud.plus.v1.batch.mapper.SysConfigLimitMapper; import com.yifu.cloud.plus.v1.batch.mapper.SysConfigLimitMapper;
import com.yifu.cloud.plus.v1.batch.service.FileUploadService; import com.yifu.cloud.plus.v1.batch.service.FileUploadService;
...@@ -105,22 +106,22 @@ public class FileUploadServiceImpl implements FileUploadService { ...@@ -105,22 +106,22 @@ public class FileUploadServiceImpl implements FileUploadService {
attaInfo.setDomainId(domainId); attaInfo.setDomainId(domainId);
attaInfo.setTaskId(taskId); attaInfo.setTaskId(taskId);
// 优先使用传入的用户信息(支持异步场景) // 优先使用传入的用户信息(支持异步场景)
if (Common.isNotNull(userId)) { if (Common.isNotNull(userId) && StrUtil.isNotBlank(userId)) {
attaInfo.setCreateBy(userId); attaInfo.setCreateBy(userId);
attaInfo.setCreateName(userName); attaInfo.setCreateName(userName);
} else { } else {
// 从上下文获取(同步场景) // 从上下文获取(同步场景)
try { try {
YifuUser user = SecurityUtils.getUser(); YifuUser user = SecurityUtils.getUser();
if (user != null) { if (user != null) {
attaInfo.setCreateBy(user.getId()); attaInfo.setCreateBy(user.getId());
attaInfo.setCreateName(user.getNickname()); attaInfo.setCreateName(user.getNickname());
}
} catch (Exception e) {
log.warn("获取用户上下文失败,使用默认值", e);
} }
} catch (Exception e) {
log.warn("获取用户上下文失败,附件创建人将为空", e);
} }
}
attaInfo = tAttaInfoService.add(attaInfo); attaInfo = tAttaInfoService.add(attaInfo);
} catch (Exception e) { } catch (Exception e) {
......
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