Commit 6a8a1676 authored by huyuchen's avatar huyuchen

huych-电子档案批量导入第四次提交

parent 8db181df
......@@ -39,55 +39,55 @@ public class ArchiveDownloadFeedbackVO implements Serializable {
/**
* 项目名称
*/
@ExcelProperty(value = "项目名称", index = 3)
@ExcelProperty(value = "项目名称", index = 2)
@Schema(description = "项目名称")
private String deptName;
/**
* 客户名称
*/
@ExcelProperty(value = "客户名称", index = 4)
@ExcelProperty(value = "客户名称", index = 3)
@Schema(description = "客户名称")
private String customerName;
/**
* 资料类型
*/
@ExcelProperty(value = "资料类型", index = 5)
@ExcelProperty(value = "资料类型", index = 4)
@Schema(description = "资料类型")
private String materialType;
/**
* 资料类型
*/
@ExcelProperty(value = "档案所在地", index = 6)
@ExcelProperty(value = "档案所在地", index = 5)
@Schema(description = "档案所在地")
private String fileAddress;
/**
* 项目编码
*/
@ExcelProperty(value = "项目编码", index = 7)
@ExcelProperty(value = "项目编码", index = 6)
@Schema(description = "项目编码")
private String deptNo;
/**
* 客户编码
*/
@ExcelProperty(value = "客户编码", index = 8)
@ExcelProperty(value = "客户编码", index = 7)
@Schema(description = "客户编码")
private String customerCode;
/**
* 下载状态(成功/失败)
*/
@ExcelProperty(value = "下载状态", index = 9)
@ExcelProperty(value = "下载状态", index = 8)
@Schema(description = "下载状态")
private String downloadStatus;
/**
* 失败原因
*/
@ExcelProperty(value = "失败原因", index = 10)
@ExcelProperty(value = "失败原因", index = 9)
@Schema(description = "失败原因")
private String failReason;
}
......
......@@ -268,11 +268,12 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
detail.setStatus(ArchiveConstants.DETAIL_STATUS_DISABLED);
detail.setDeleteFlag(CommonConstants.ZERO_STRING);
// 设置档案所在地(需要从empInfo中获取)
detail.setFileProvince(empInfo.getFileProvince());
detail.setFileCity(empInfo.getFileCity());
detail.setFileTown(empInfo.getFileTown());
detailService.save(detail);
// 设置档案所在地(需要从empInfo中获取)
detail.setFileProvince(empInfo.getFileProvince());
detail.setFileCity(empInfo.getFileCity());
detail.setFileTown(empInfo.getFileTown());
detail.setFileAddress(buildFileAddress(empInfo.getFileProvince(), empInfo.getFileCity(), empInfo.getFileTown()));
detailService.save(detail);
}
successList.add(data);
......@@ -1128,6 +1129,7 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
detail.setFileProvince(empInfo.getFileProvince());
detail.setFileCity(empInfo.getFileCity());
detail.setFileTown(empInfo.getFileTown());
detail.setFileAddress(buildFileAddress(empInfo.getFileProvince(), empInfo.getFileCity(), empInfo.getFileTown()));
detailService.save(detail);
} else {
// 存在则更新资料类型(追加)
......@@ -1276,12 +1278,13 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
detail.setMaterialType(materialType);
detail.setStatus(ArchiveConstants.DETAIL_STATUS_ENABLED);
detail.setDeleteFlag(CommonConstants.ZERO_STRING);
detail.setFileProvince(empInfo.getFileProvince());
detail.setFileCity(empInfo.getFileCity());
detail.setFileTown(empInfo.getFileTown());
detailService.save(detail);
detail.setFileProvince(empInfo.getFileProvince());
detail.setFileCity(empInfo.getFileCity());
detail.setFileTown(empInfo.getFileTown());
detail.setFileAddress(buildFileAddress(empInfo.getFileProvince(), empInfo.getFileCity(), empInfo.getFileTown()));
detailService.save(detail);
} else {
} else {
// 存在则更新资料类型(追加)
Set<String> existTypes = new HashSet<>();
if (StrUtil.isNotBlank(detail.getMaterialType())) {
......@@ -1348,5 +1351,52 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
return R.failed("处理失败:" + e.getMessage());
}
}
/**
* 构建档案所在地地址字符串
* 格式:安徽省/合肥市 或 安徽省/合肥市/庐阳区
*
* @param provinceCode 省代码
* @param cityCode 市代码
* @param townCode 区代码
* @return 档案所在地地址字符串
*/
private String buildFileAddress(Integer provinceCode, Integer cityCode, Integer townCode) {
if (provinceCode == null) {
return "";
}
StringBuilder address = new StringBuilder();
// 获取省名称
String provinceName = (String) RedisUtil.redis.opsForValue().get(CacheConstants.AREA_LABEL + provinceCode);
if (StrUtil.isNotBlank(provinceName)) {
address.append(provinceName);
}
// 获取市名称
if (Common.isNotNull(cityCode)) {
String cityName = (String) RedisUtil.redis.opsForValue().get(CacheConstants.AREA_LABEL + cityCode);
if (StrUtil.isNotBlank(cityName)) {
if (address.length() > 0) {
address.append("/");
}
address.append(cityName);
}
}
// 获取区名称(如果存在)
if (Common.isNotNull(townCode)) {
String townName = (String) RedisUtil.redis.opsForValue().get(CacheConstants.AREA_LABEL + townCode);
if (StrUtil.isNotBlank(townName)) {
if (address.length() > 0) {
address.append("/");
}
address.append(townName);
}
}
return address.toString();
}
}
......@@ -236,7 +236,7 @@ public class TElectronicArchiveDetailServiceImpl extends ServiceImpl<TElectronic
} catch (Exception e) {
log.error("处理下载请求失败,姓名:{},身份证:{},项目编码:{}",
request.getEmpName(), request.getEmpIdcard(), request.getDeptNo(), e);
feedbackList.add(createFeedbackVO(request, "系统异常:" + e.getMessage()));
feedbackList.add(createFeedbackVO(request, "系统异常:" + e.getMessage(),null));
}
}
......@@ -330,11 +330,6 @@ public class TElectronicArchiveDetailServiceImpl extends ServiceImpl<TElectronic
List<ArchiveDownloadFeedbackVO> feedbackList,
boolean isCheck,
List<String> deptNoList) {
//项目权限校验
if (isCheck && !deptNoList.contains(request.getDeptNo())) {
feedbackList.add(createFeedbackVO(request, "没有该项目的权限"));
return;
}
// 1. 根据姓名、身份证、项目编码、项目名称查询电子档案明细
LambdaQueryWrapper<TElectronicArchiveDetail> wrapper = Wrappers.<TElectronicArchiveDetail>lambdaQuery()
......@@ -350,10 +345,16 @@ public class TElectronicArchiveDetailServiceImpl extends ServiceImpl<TElectronic
// 查询档案明细
TElectronicArchiveDetail detail = baseMapper.selectOne(wrapper);
//项目权限校验
if (isCheck && !deptNoList.contains(request.getDeptNo())) {
feedbackList.add(createFeedbackVO(request, "没有该项目的权限",detail));
return;
}
// 2. 如果未找到档案,添加失败反馈
if (Common.isEmpty(detail)) {
feedbackList.add(createFeedbackVO(request, "没找到这个人和项目对应的信息"));
feedbackList.add(createFeedbackVO(request, "没找到这个人和项目对应的信息",detail));
return;
}
......@@ -369,7 +370,7 @@ public class TElectronicArchiveDetailServiceImpl extends ServiceImpl<TElectronic
.eq(TAttaInfo::getStatus, ArchiveConstants.ATTA_STATUS_ENABLED));
if (CollUtil.isEmpty(allAttaList)) {
feedbackList.add(createFeedbackVO(request, "该人员在此项目下没有可用的附件"));
feedbackList.add(createFeedbackVO(request, "该人员在此项目下没有可用的附件", detail));
return;
}
......@@ -406,14 +407,14 @@ public class TElectronicArchiveDetailServiceImpl extends ServiceImpl<TElectronic
feedbackRequest.setDeptNo(request.getDeptNo());
feedbackRequest.setDeptName(request.getDeptName());
feedbackRequest.setMaterialType("全部资料类型");
feedbackList.add(createSuccessFeedbackVO(feedbackRequest));
feedbackList.add(createSuccessFeedbackVO(feedbackRequest,detail));
} else {
// 下载指定资料类型
// 检查资料类型是否匹配(支持多个资料类型,用逗号分隔)
if (StrUtil.isBlank(detail.getMaterialType()) ||
!detail.getMaterialType().contains(request.getMaterialType())) {
feedbackList.add(createFeedbackVO(request, "该人员在此项目下没有【" + request.getMaterialType() + "】类型的资料"));
feedbackList.add(createFeedbackVO(request, "该人员在此项目下没有【" + request.getMaterialType() + "】类型的资料",detail));
return;
}
......@@ -426,7 +427,7 @@ public class TElectronicArchiveDetailServiceImpl extends ServiceImpl<TElectronic
// 如果没有附件,添加失败反馈
if (CollUtil.isEmpty(attaList)) {
feedbackList.add(createFeedbackVO(request, "该资料类型下没有可用的附件"));
feedbackList.add(createFeedbackVO(request, "该资料类型下没有可用的附件",detail));
return;
}
......@@ -449,7 +450,7 @@ public class TElectronicArchiveDetailServiceImpl extends ServiceImpl<TElectronic
downloadInfo.setMaterialType(request.getMaterialType());
// 添加成功的反馈(状态暂时为"处理中",实际下载完成后更新)
feedbackList.add(createSuccessFeedbackVO(request));
feedbackList.add(createSuccessFeedbackVO(request,detail));
}
}
......@@ -526,13 +527,19 @@ public class TElectronicArchiveDetailServiceImpl extends ServiceImpl<TElectronic
* @param failReason 失败原因
* @return 反馈VO
*/
private ArchiveDownloadFeedbackVO createFeedbackVO(ArchiveBatchDownloadRequestVO request, String failReason) {
private ArchiveDownloadFeedbackVO createFeedbackVO(ArchiveBatchDownloadRequestVO request, String failReason
,TElectronicArchiveDetail detail) {
ArchiveDownloadFeedbackVO feedback = new ArchiveDownloadFeedbackVO();
feedback.setEmpName(request.getEmpName());
feedback.setEmpIdcard(request.getEmpIdcard());
feedback.setDeptNo(request.getDeptNo());
feedback.setDeptName(request.getDeptName());
feedback.setMaterialType(request.getMaterialType());
if (Common.isNotNull(detail)) {
feedback.setCustomerCode(detail.getCustomerCode());
feedback.setCustomerName(detail.getCustomerName());
feedback.setFileAddress(detail.getFileAddress());
}
feedback.setDownloadStatus("失败");
feedback.setFailReason(failReason);
return feedback;
......@@ -544,13 +551,18 @@ public class TElectronicArchiveDetailServiceImpl extends ServiceImpl<TElectronic
* @param request 请求VO
* @return 反馈VO
*/
private ArchiveDownloadFeedbackVO createSuccessFeedbackVO(ArchiveBatchDownloadRequestVO request) {
private ArchiveDownloadFeedbackVO createSuccessFeedbackVO(ArchiveBatchDownloadRequestVO request,TElectronicArchiveDetail detail) {
ArchiveDownloadFeedbackVO feedback = new ArchiveDownloadFeedbackVO();
feedback.setEmpName(request.getEmpName());
feedback.setEmpIdcard(request.getEmpIdcard());
feedback.setDeptNo(request.getDeptNo());
feedback.setDeptName(request.getDeptName());
feedback.setMaterialType(request.getMaterialType());
if (Common.isNotNull(detail)) {
feedback.setCustomerCode(detail.getCustomerCode());
feedback.setCustomerName(detail.getCustomerName());
feedback.setFileAddress(detail.getFileAddress());
}
feedback.setDownloadStatus("处理中");
feedback.setFailReason("");
return feedback;
......@@ -950,6 +962,9 @@ public class TElectronicArchiveDetailServiceImpl extends ServiceImpl<TElectronic
feedback.setDeptNo("未知");
feedback.setDeptName("未知");
feedback.setMaterialType(request.getMaterialTypes() != null ? String.join(",", request.getMaterialTypes()) : "");
feedback.setCustomerCode("");
feedback.setCustomerName("");
feedback.setFileAddress("");
feedback.setDownloadStatus("失败");
feedback.setFailReason(failReason);
return feedback;
......@@ -965,15 +980,18 @@ public class TElectronicArchiveDetailServiceImpl extends ServiceImpl<TElectronic
* @return 反馈VO
*/
private ArchiveDownloadFeedbackVO createSelectedExportFeedbackVOWithDetail(TElectronicArchiveDetail detail,
TElectronicArchiveTask task,
String materialType,
String failReason) {
TElectronicArchiveTask task,
String materialType,
String failReason) {
ArchiveDownloadFeedbackVO feedback = new ArchiveDownloadFeedbackVO();
feedback.setEmpName(detail.getEmpName());
feedback.setEmpIdcard(detail.getEmpIdcard());
feedback.setDeptNo(detail.getDeptNo());
feedback.setDeptName(detail.getDeptName());
feedback.setMaterialType(materialType);
feedback.setCustomerCode(detail.getCustomerCode());
feedback.setCustomerName(detail.getCustomerName());
feedback.setFileAddress(detail.getFileAddress());
feedback.setDownloadStatus("失败");
feedback.setFailReason(failReason);
return feedback;
......@@ -988,14 +1006,17 @@ public class TElectronicArchiveDetailServiceImpl extends ServiceImpl<TElectronic
* @return 反馈VO
*/
private ArchiveDownloadFeedbackVO createSelectedExportSuccessFeedbackVO(TElectronicArchiveDetail detail,
TElectronicArchiveTask task,
String materialType) {
TElectronicArchiveTask task,
String materialType) {
ArchiveDownloadFeedbackVO feedback = new ArchiveDownloadFeedbackVO();
feedback.setEmpName(detail.getEmpName());
feedback.setEmpIdcard(detail.getEmpIdcard());
feedback.setDeptNo(detail.getDeptNo());
feedback.setDeptName(detail.getDeptName());
feedback.setMaterialType(materialType);
feedback.setCustomerCode(detail.getCustomerCode());
feedback.setCustomerName(detail.getCustomerName());
feedback.setFileAddress(detail.getFileAddress());
feedback.setDownloadStatus("处理中");
feedback.setFailReason("");
return feedback;
......@@ -1216,6 +1237,9 @@ public class TElectronicArchiveDetailServiceImpl extends ServiceImpl<TElectronic
feedback.setDeptNo(detail.getDeptNo());
feedback.setDeptName(detail.getDeptName());
feedback.setMaterialType(detail.getMaterialType());
feedback.setCustomerCode(detail.getCustomerCode());
feedback.setCustomerName(detail.getCustomerName());
feedback.setFileAddress(detail.getFileAddress());
feedback.setDownloadStatus("失败");
feedback.setFailReason(failReason);
return feedback;
......@@ -1236,6 +1260,9 @@ public class TElectronicArchiveDetailServiceImpl extends ServiceImpl<TElectronic
feedback.setDeptNo(detail.getDeptNo());
feedback.setDeptName(detail.getDeptName());
feedback.setMaterialType(String.join(",", materialTypes));
feedback.setCustomerCode(detail.getCustomerCode());
feedback.setCustomerName(detail.getCustomerName());
feedback.setFileAddress(detail.getFileAddress());
feedback.setDownloadStatus("处理中");
feedback.setFailReason("");
return feedback;
......
......@@ -23,7 +23,7 @@
<result property="createTime" column="CREATE_TIME"/>
<result property="updateBy" column="UPDATE_BY"/>
<result property="updateTime" column="UPDATE_TIME"/>
<result property="fileAddress" column="FILE_ADRESS"/>
<result property="fileAddress" column="FILE_ADDRESS"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
......@@ -44,7 +44,7 @@
a.CREATE_TIME,
a.UPDATE_BY,
a.UPDATE_TIME,
a.FILE_ADRESS
a.FILE_ADDRESS
</sql>
<sql id="tElectronicArchiveDetail_where">
<if test="tElectronicArchiveDetail != null">
......
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