This commit is contained in:
ls
2025-07-08 23:53:25 +08:00
parent c03a6ea811
commit 38944b6002
2 changed files with 49 additions and 20 deletions

View File

@@ -82,7 +82,7 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
@Autowired
private IrradiationStandardsServiceImpl irradiationStandardsService;
public static void main(String[] args) throws IOException {
public static void main2(String[] args) throws IOException {
//The core API uses a minimalist design, only one line of code is required
TestStandards testStandards = new TestStandards();
testStandards.setAttachment("");
@@ -141,20 +141,27 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
}
private static String formatDate(String date) {
private static String formatDateTime(String date) {
if (StringUtils.isBlank(date)) {
return "";
}
return StringUtils.contains(date, " ") ? StringUtils.substringBefore(date, " ") : date;
}
private static String formatDate(Date date) {
private static String formatDateTime(Date date) {
if (Objects.isNull(date)) {
return "";
}
return DateUtils.formatDate(date, "yyyy-MM-dd HH:mm");
}
private static String formatDate(Date date) {
if (Objects.isNull(date)) {
return "";
}
return DateUtils.formatDate(date, "yyyy-MM-dd");
}
public String generateExperimentDoc(String experimentId, String fileName, String version) {
String absolutePath = templatePath + File.separator + docTempalteMap.get(fileName);
log.info("doc template path: " + absolutePath);
@@ -269,8 +276,8 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
root.put("试验编号", experiment.getExperimentNo());
Client client = clientService.getOne(new LambdaQueryWrapper<Client>().eq(Client::getName, experiment.getClientName()), false);
root.put("委托方单位名称", Optional.ofNullable(client).map(Client::getName).orElse(""));
String startDate = formatDate(experiment.getStartDate());
String endDate = formatDate(experiment.getEndDate());
String startDate = formatDateTime(experiment.getStartDate());
String endDate = formatDateTime(experiment.getEndDate());
root.put("试验时间", StringUtils.joinWith(" ~ ", startDate, endDate));
List<ExperimentRadiationProcess> radiationProcessList = experimentRadiationProcessService.getByExperimentId(experimentId);
String collect = radiationProcessList.stream().map(v -> v.getRadiationSource()).collect(Collectors.joining(","));
@@ -278,10 +285,11 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
String temp = radiationProcessList.stream().map(v -> v.getEnvironmentalTemperature()).collect(Collectors.joining(","));
root.put("温度", temp);
ExperimentReport latestReport = experimentReportService.getLatestReport(experimentId);
root.put("批准人员姓名", Optional.ofNullable(latestReport).map(v -> sysUserService.getById(v.getConfirmer()))
.map(SysUser::getRealname).orElse(""));
root.put("编制人员姓名", Optional.ofNullable(sysUserService.getUserByName(experiment.getCreateBy())).map(SysUser::getRealname)
.orElse(""));
root.put("批准人员姓名", fixChineseName(Optional.ofNullable(latestReport).map(v -> sysUserService.getById(v.getConfirmer()))
.map(SysUser::getRealname).orElse("")));
root.put("编制人员姓名", fixChineseName(Optional.ofNullable(sysUserService.getUserByName(experiment.getCreateBy()))
.map(SysUser::getRealname)
.orElse("")));
List<Map<String, Object>> sampleList = new ArrayList<>();
for (ExperimentRadiationProcess radiationProcess : radiationProcessList) {
@@ -328,12 +336,13 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
}
Map<String, Object> params = new HashMap<>();
if (Objects.nonNull(experimentReport)) {
params.put("审核人员姓名", Optional.ofNullable(sysUserService.getById(experimentReport.getAuditor())).map(SysUser::getRealname)
.orElse(""));
params.put("校对人员姓名", Optional.ofNullable(sysUserService.getById(experimentReport.getProofreader()))
.map(SysUser::getRealname).orElse(""));
params.put("批准人员姓名", Optional.ofNullable(sysUserService.getById(experimentReport.getConfirmer()))
.map(SysUser::getRealname).orElse(""));
params.put("审核人员姓名", fixChineseName(Optional.ofNullable(sysUserService.getById(experimentReport.getAuditor()))
.map(SysUser::getRealname)
.orElse("")));
params.put("校对人员姓名", fixChineseName(Optional.ofNullable(sysUserService.getById(experimentReport.getProofreader()))
.map(SysUser::getRealname).orElse("")));
params.put("批准人员姓名", fixChineseName(Optional.ofNullable(sysUserService.getById(experimentReport.getConfirmer()))
.map(SysUser::getRealname).orElse("")));
params.put("报告生成日期", formatDate(experimentReport.getCreateTime()));
params.put("批准日期", experimentReport.getConfirmerTime());
params.put("校对日期", experimentReport.getProofreaderTime());
@@ -342,8 +351,9 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
}
params.put("试验报告名称", experiment.getName());
params.put("试验编号", experiment.getExperimentNo());
params.put("编制人员姓名", Optional.ofNullable(sysUserService.getUserByName(experiment.getCreateBy())).map(SysUser::getRealname)
.orElse(""));
params.put("编制人员姓名", fixChineseName(Optional.ofNullable(sysUserService.getUserByName(experiment.getCreateBy()))
.map(SysUser::getRealname)
.orElse("")));
Client client = clientService.getOne(new LambdaQueryWrapper<Client>().eq(Client::getName, experiment.getClientName()), false);
params.put("委托方单位名称", Optional.ofNullable(client).map(Client::getName).orElse(""));
params.put("委托方单位地址", Optional.ofNullable(client).map(Client::getAddress).orElse(""));
@@ -391,11 +401,11 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
}
}
}
String formatDate = formatDate(experiment.getStartDate());
String toDate = formatDate(experiment.getEndDate());
String formatDate = formatDateTime(experiment.getStartDate());
String toDate = formatDateTime(experiment.getEndDate());
params.put("试验日期", formatDate + (StringUtils.isBlank(toDate) ? "" : (" ~ " + toDate)));
params.put("负责人名称", experiment.getSupervisorName());
params.put("负责人名称", fixChineseName(experiment.getSupervisorName()));
params.put("剂量管理员名称", "");
String operatorName = experiment.getExperimentUserList().stream().map(v -> v.getUserName()).collect(Collectors.joining(","));
params.put("操作员名称", operatorName);
@@ -770,5 +780,24 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
}
return string;
}
private static String fixChineseName(String name) {
if (name == null || name.length() < 2) {
return name;
}
if (name.length() == 2) {
// 两个汉字的情况下,在中间加一个空格
return name.charAt(0) + " " + name.charAt(1);
}
// 三个及以上汉字的情况下,保持不变或按需调整
return name;
}
public static void main(String[] args) {
System.out.println(fixChineseName("张三"));
System.out.println(fixChineseName("张站三"));
}
}

Binary file not shown.