update
This commit is contained in:
@@ -9,8 +9,10 @@ import com.alibaba.fastjson.*;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.deepoove.poi.XWPFTemplate;
|
import com.deepoove.poi.XWPFTemplate;
|
||||||
|
import com.deepoove.poi.config.Configure;
|
||||||
import com.deepoove.poi.data.Tables;
|
import com.deepoove.poi.data.Tables;
|
||||||
import com.deepoove.poi.data.style.BorderStyle;
|
import com.deepoove.poi.data.style.BorderStyle;
|
||||||
|
import com.deepoove.poi.plugin.table.LoopRowTableRenderPolicy;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.poi.xwpf.usermodel.*;
|
import org.apache.poi.xwpf.usermodel.*;
|
||||||
@@ -44,15 +46,17 @@ import java.util.stream.Collectors;
|
|||||||
public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, ExperimentDoc> implements IExperimentDocService {
|
public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, ExperimentDoc> implements IExperimentDocService {
|
||||||
|
|
||||||
@Value("${jeecg.template.path}")
|
@Value("${jeecg.template.path}")
|
||||||
private String templatePath;
|
private String templatePath;
|
||||||
@Value("${server.ip}")
|
@Value("${server.ip}")
|
||||||
private String serverIp;
|
private String serverIp;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IExperimentService experimentService;
|
private IExperimentService experimentService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IExperimentReportService experimentReportService;
|
private IExperimentReportService experimentReportService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysUserService sysUserService;
|
private IExperimentDeviationEquipmentService experimentDeviationEquipmentService;
|
||||||
|
@Autowired
|
||||||
|
private ISysUserService sysUserService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IClientService clientService;
|
private IClientService clientService;
|
||||||
@@ -102,8 +106,9 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
|
|||||||
FileUtil.del(outputFile);
|
FileUtil.del(outputFile);
|
||||||
}
|
}
|
||||||
log.info("output file path: " + outputFile);
|
log.info("output file path: " + outputFile);
|
||||||
Map<String, Object> params = assembleParams(experimentId, fileName);
|
assembleParams(experimentId, fileName, outputFile);
|
||||||
XWPFTemplate render = XWPFTemplate.compile(absolutePath).render(params);
|
//XWPFTemplate render = XWPFTemplate.compile(absolutePath).render(params);
|
||||||
|
//render.writeToFile(outputFile);
|
||||||
/* NiceXWPFDocument document = render.getXWPFDocument();
|
/* NiceXWPFDocument document = render.getXWPFDocument();
|
||||||
//render
|
//render
|
||||||
//.writeToFile(outputFile);
|
//.writeToFile(outputFile);
|
||||||
@@ -121,7 +126,6 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
|
|||||||
document.write(out);
|
document.write(out);
|
||||||
}
|
}
|
||||||
document.close();*/
|
document.close();*/
|
||||||
render.writeToFile(outputFile);
|
|
||||||
String path = MinioUtil.upload(FileUtil.getInputStream(outputFile),
|
String path = MinioUtil.upload(FileUtil.getInputStream(outputFile),
|
||||||
"experiment_doc/" + experimentId + "/" + version + "/" + experiment.getName() + "-" + fileName + ".docx");
|
"experiment_doc/" + experimentId + "/" + version + "/" + experiment.getName() + "-" + fileName + ".docx");
|
||||||
return path;
|
return path;
|
||||||
@@ -181,24 +185,90 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, Object> assembleParams(String experimentId, String type) {
|
private Map<String, Object> assembleParams(String experimentId, String type, String outputFile) throws IOException {
|
||||||
|
String absolutePath = templatePath + File.separator + docTempalteMap.get(type);
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case "辐照试验计划表":
|
case "辐照试验计划表":
|
||||||
return assembleFzsyjhb(experimentId);
|
Map<String, Object> jhparams = assembleFzsyjhb(experimentId);
|
||||||
|
XWPFTemplate jhrender = XWPFTemplate.compile(absolutePath).render(jhparams);
|
||||||
|
jhrender.writeToFile(outputFile);
|
||||||
|
break;
|
||||||
case "试验报告评审表":
|
case "试验报告评审表":
|
||||||
return assembleSybgpsb(experimentId);
|
Map<String, Object> psparams = assembleSybgpsb(experimentId);
|
||||||
|
XWPFTemplate psrender = XWPFTemplate.compile(absolutePath).render(psparams);
|
||||||
|
psrender.writeToFile(outputFile);
|
||||||
|
break;
|
||||||
case "设备使用记录表":
|
case "设备使用记录表":
|
||||||
return assembleSbsyjlb(experimentId);
|
Map<String, Object> sbParams = assembleSbsyjlb(experimentId);
|
||||||
|
LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy();
|
||||||
|
Configure config = Configure.builder().bind("equipment", policy).build();
|
||||||
|
XWPFTemplate template = XWPFTemplate.compile(absolutePath, config).render(sbParams);
|
||||||
|
template.writeToFile(outputFile);
|
||||||
|
break;
|
||||||
case "试验报告":
|
case "试验报告":
|
||||||
return assembleSybg(experimentId);
|
Map<String, Object> params = assembleSybg(experimentId);
|
||||||
|
XWPFTemplate render = XWPFTemplate.compile(absolutePath).render(params);
|
||||||
|
render.writeToFile(outputFile);
|
||||||
|
break;
|
||||||
case "辐照试验总结单":
|
case "辐照试验总结单":
|
||||||
return assembleFzsyzjd(experimentId);
|
Map<String, Object> zjdParams = assembleFzsyzjd(experimentId);
|
||||||
|
LoopRowTableRenderPolicy zjdpolicy = new LoopRowTableRenderPolicy();
|
||||||
|
Configure zjdconfig = Configure.builder().bind("sample", zjdpolicy).build();
|
||||||
|
XWPFTemplate zjdtemplate = XWPFTemplate.compile(absolutePath, zjdconfig).render(zjdParams);
|
||||||
|
zjdtemplate.writeToFile(outputFile);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return new HashMap<>();
|
return new HashMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, Object> assembleFzsyzjd(String experimentId) {
|
private Map<String, Object> assembleFzsyzjd(String experimentId) {
|
||||||
return new HashMap<>();
|
Experiment experiment = experimentService.getById(experimentId);
|
||||||
|
experimentService.fetchExperimentDetail(experiment);
|
||||||
|
if (Objects.isNull(experiment)) {
|
||||||
|
return new HashMap<>();
|
||||||
|
}
|
||||||
|
Map<String, Object> root = new HashMap<>();
|
||||||
|
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());
|
||||||
|
root.put("试验时间", StringUtils.joinWith(" ~ ", startDate, endDate));
|
||||||
|
List<ExperimentRadiationProcess> radiationProcessList = experimentRadiationProcessService.getByExperimentId(experimentId);
|
||||||
|
String collect = radiationProcessList.stream().map(v -> v.getRadiationSource()).collect(Collectors.joining(","));
|
||||||
|
root.put("辐射源", collect);
|
||||||
|
String temp = radiationProcessList.stream().map(v -> v.getEnvironmentalTemperature()).collect(Collectors.joining(","));
|
||||||
|
root.put("温度", temp);
|
||||||
|
root.put("湿度", "");
|
||||||
|
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(""));
|
||||||
|
List<Map<String, Object>> sampleList = new ArrayList<>();
|
||||||
|
List<ExperimentSampleInfo> sampleInfoList = experiment.getSampleInfoList();
|
||||||
|
for (int i = 0; i < sampleInfoList.size(); i++) {
|
||||||
|
ExperimentSampleInfo sampleInfo = sampleInfoList.get(i);
|
||||||
|
Map<String, Object> sample = new HashMap<>();
|
||||||
|
sample.put("index", i + 1);
|
||||||
|
sample.put("样品名称", sampleInfo.getSampleName());
|
||||||
|
sample.put("样品型号", sampleInfo.getSampleModel());
|
||||||
|
sample.put("样品类型", sampleInfo.getSampleType());
|
||||||
|
sample.put("样品批次", sampleInfo.getSampleBatch());
|
||||||
|
sample.put("注量率", "");
|
||||||
|
sample.put("总剂量", "");
|
||||||
|
sampleList.add(sample);
|
||||||
|
}
|
||||||
|
root.put("sample", sampleList);
|
||||||
|
|
||||||
|
return root;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String formatDate(String date) {
|
||||||
|
if (StringUtils.isBlank(date)) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return StringUtils.contains(date, " ") ? StringUtils.substringBefore(date, " ") : date;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, Object> assembleSybg(String experimentId) {
|
private Map<String, Object> assembleSybg(String experimentId) {
|
||||||
@@ -288,12 +358,10 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
|
|||||||
if (CollUtil.isNotEmpty(deviationEquipmentList)) {
|
if (CollUtil.isNotEmpty(deviationEquipmentList)) {
|
||||||
for (int i = 0; i < deviationEquipmentList.size(); i++) {
|
for (int i = 0; i < deviationEquipmentList.size(); i++) {
|
||||||
ExperimentDeviationEquipment deviationEquipment = deviationEquipmentList.get(i);
|
ExperimentDeviationEquipment deviationEquipment = deviationEquipmentList.get(i);
|
||||||
strings[i + 1] = new String[] {(i + 1) + "",
|
strings[i + 1] = new String[] {(i + 1) + "", Optional.ofNullable(deviationEquipment.getEquipmentName()).orElse(""),
|
||||||
Optional.ofNullable(deviationEquipment.getEquipmentName()).orElse(""),
|
Optional.ofNullable(deviationEquipment.getEquipmentNo()).orElse(""), Optional.ofNullable(
|
||||||
Optional.ofNullable(deviationEquipment.getEquipmentNo()).orElse(""),
|
deviationEquipment.getMeasurementValidity()).orElse(""), Optional.ofNullable(deviationEquipment.getRoomNo()).orElse(
|
||||||
Optional.ofNullable(deviationEquipment.getMeasurementValidity()).orElse(""),
|
""),};
|
||||||
Optional.ofNullable(deviationEquipment.getRoomNo()).orElse(""),
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
params.put("装置表格", Tables.of(strings).border(BorderStyle.DEFAULT).create());
|
params.put("装置表格", Tables.of(strings).border(BorderStyle.DEFAULT).create());
|
||||||
@@ -301,15 +369,66 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, Object> assembleSbsyjlb(String experimentId) {
|
private Map<String, Object> assembleSbsyjlb(String experimentId) {
|
||||||
return new HashMap<>();
|
List<ExperimentDeviationEquipment> equipmentList = experimentDeviationEquipmentService.getByExperimentId(experimentId);
|
||||||
|
List<Map<String, Object>> list = new ArrayList<>();
|
||||||
|
for (int i = 0; i < equipmentList.size(); i++) {
|
||||||
|
ExperimentDeviationEquipment v = equipmentList.get(i);
|
||||||
|
Map<String, Object> params = new HashMap<>();
|
||||||
|
params.put("index", i + 1);
|
||||||
|
params.put("设备名称", Optional.ofNullable(v.getEquipmentName()).orElse(""));
|
||||||
|
params.put("管理编号", Optional.ofNullable(v.getEquipmentNo()).orElse(""));
|
||||||
|
String measurementValidity = v.getMeasurementValidity();
|
||||||
|
params.put("使用日期", "");
|
||||||
|
params.put("归还日期", "");
|
||||||
|
params.put("计量有效期", Optional.ofNullable(measurementValidity).orElse(""));
|
||||||
|
params.put("异常记录", "");
|
||||||
|
list.add(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
Experiment experiment = experimentService.getById(experimentId);
|
||||||
|
Map<String, Object> root = new HashMap<>();
|
||||||
|
root.put("equipment", list);
|
||||||
|
root.put("试验编号", experiment.getExperimentNo());
|
||||||
|
return root;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, Object> assembleSybgpsb(String experimentId) {
|
private Map<String, Object> assembleSybgpsb(String experimentId) {
|
||||||
|
Experiment experiment = experimentService.getById(experimentId);
|
||||||
|
experimentService.fetchExperimentDetail(experiment);
|
||||||
|
if (Objects.isNull(experiment)) {
|
||||||
|
return new HashMap<>();
|
||||||
|
}
|
||||||
|
ExperimentReport latestReport = experimentReportService.getLatestReport(experimentId);
|
||||||
|
Map<String, Object> params = new HashMap<>();
|
||||||
|
params.put("批准人员姓名", Optional.ofNullable(latestReport).map(v -> sysUserService.getById(v.getConfirmer()))
|
||||||
|
.map(SysUser::getRealname).orElse(""));
|
||||||
|
params.put("审核人名称", Optional.ofNullable(latestReport).map(v -> sysUserService.getById(v.getAuditor()))
|
||||||
|
.map(SysUser::getRealname).orElse(""));
|
||||||
|
params.put("校对人名称", Optional.ofNullable(latestReport).map(v -> sysUserService.getById(v.getProofreader()))
|
||||||
|
.map(SysUser::getRealname).orElse(""));
|
||||||
|
params.put("负责人名称", experiment.getSupervisorName());
|
||||||
|
|
||||||
|
params.put("试验报告名称", experiment.getName());
|
||||||
|
params.put("试验编号", experiment.getExperimentNo());
|
||||||
|
params.put("驳回意见", "");
|
||||||
|
params.put("驳回意见2", Optional.ofNullable(latestReport).map(v -> v.getMemo()).orElse(""));
|
||||||
|
|
||||||
return new HashMap<>();
|
return new HashMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, Object> assembleFzsyjhb(String experimentId) {
|
private Map<String, Object> assembleFzsyjhb(String experimentId) {
|
||||||
return new HashMap<>();
|
Experiment experiment = experimentService.getById(experimentId);
|
||||||
|
Map<String, Object> root = new HashMap<>();
|
||||||
|
root.put("试验编号", experiment.getExperimentNo());
|
||||||
|
root.put("能量", "");
|
||||||
|
root.put("束流", "");
|
||||||
|
root.put("X能量", "");
|
||||||
|
root.put("管电流", "");
|
||||||
|
root.put("管电压", "");
|
||||||
|
root.put("质子能量", "");
|
||||||
|
root.put("面积", "");
|
||||||
|
root.put("均衡性", "");
|
||||||
|
return root;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
templates/设备使用记录表.docx
Normal file
BIN
templates/设备使用记录表.docx
Normal file
Binary file not shown.
BIN
templates/试验报告.docx
Normal file
BIN
templates/试验报告.docx
Normal file
Binary file not shown.
BIN
templates/试验报告评审表.docx
Normal file
BIN
templates/试验报告评审表.docx
Normal file
Binary file not shown.
BIN
templates/辐照试验总结单.docx
Normal file
BIN
templates/辐照试验总结单.docx
Normal file
Binary file not shown.
BIN
templates/辐照试验计划表.docx
Normal file
BIN
templates/辐照试验计划表.docx
Normal file
Binary file not shown.
Reference in New Issue
Block a user