This commit is contained in:
ls
2025-05-26 10:59:10 +08:00
parent 777d7cba5c
commit aeb676bc6b
3 changed files with 42 additions and 42 deletions

View File

@@ -39,7 +39,7 @@ public class ExperimentDeviationEquipmentController
@Autowired
private IExperimentDeviationEquipmentService experimentDeviationEquipmentService;
@Autowired
private IEquipmentService equipmentService;
private IEquipmentService equipmentService;
/**
* 分页列表查询
@@ -76,7 +76,7 @@ public class ExperimentDeviationEquipmentController
@PostMapping(value = "/add")
public Result<String> add(@RequestBody ExperimentDeviationEquipment experimentDeviationEquipment) {
String equipmentNo = experimentDeviationEquipment.getEquipmentNo();
if (StringUtils.isNotBlank(equipmentNo)) {
if (StringUtils.isNotBlank(equipmentNo) && StringUtils.isBlank(experimentDeviationEquipment.getMeasurementValidity())) {
Equipment equipment = equipmentService.getByManagementNo(equipmentNo);
experimentDeviationEquipment.setMeasurementValidity(equipment.getExpireDate());
}

View File

@@ -288,13 +288,11 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
RadiationMapDTO radiationMap = JSON.parseObject(radiationDetailJson, RadiationMapDTO.class);
List<RadiationDetailDTO> detailDTOList = radiationMap.assembleDetails();
maxPoint = detailDTOList.stream().map(obj -> obj.getPoint()) // 获取point字段
.filter(point -> StringUtils.isNotBlank(point))
.filter(str -> str.matches("-?\\d+(\\.\\d+)?")) // 只保留数字格式的字符串
.filter(point -> StringUtils.isNotBlank(point)).filter(str -> str.matches("-?\\d+(\\.\\d+)?")) // 只保留数字格式的字符串
.mapToDouble(Double::parseDouble) // 转换为double
.max();
maxRate = detailDTOList.stream().map(obj -> obj.getActualMeasurementRate()) // 获取point字段
.filter(point -> StringUtils.isNotBlank(point))
.filter(str -> str.matches("-?\\d+(\\.\\d+)?")) // 只保留数字格式的字符串
.filter(point -> StringUtils.isNotBlank(point)).filter(str -> str.matches("-?\\d+(\\.\\d+)?")) // 只保留数字格式的字符串
.mapToDouble(Double::parseDouble) // 转换为double
.max();
}
@@ -328,11 +326,9 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
params.put("审核人员姓名", Optional.ofNullable(sysUserService.getById(experimentReport.getAuditor())).map(SysUser::getRealname)
.orElse(""));
params.put("校对人员姓名", Optional.ofNullable(sysUserService.getById(experimentReport.getProofreader()))
.map(SysUser::getRealname)
.orElse(""));
.map(SysUser::getRealname).orElse(""));
params.put("批准人员姓名", Optional.ofNullable(sysUserService.getById(experimentReport.getConfirmer()))
.map(SysUser::getRealname)
.orElse(""));
.map(SysUser::getRealname).orElse(""));
params.put("报告生成日期", formatDate(experimentReport.getCreateTime()));
params.put("批准日期", experimentReport.getConfirmerTime());
params.put("校对日期", experimentReport.getProofreaderTime());
@@ -372,16 +368,12 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
if (CollUtil.isNotEmpty(sampleInfoList)) {
for (int i = 0; i < sampleInfoList.size(); i++) {
JSONObject info = sampleInfoList.get(i);
params.put("table" + i, Tables.of(
new String[][] {new String[] {"试验样品名称", getStringOrDefault(info, "sampleName"), "试验样品型号",
getStringOrDefault(info, "sampleModel")},
new String[] {"批 次", getStringOrDefault(info, "sampleBatch"), "试验样品编号",
getStringOrDefault(
info,
"sampleType")},
new String[] {"生产厂家", getStringOrDefault(info, "sampleManufacturer"), "试验样品数量",
sampleInfoList.size() + ""},
new String[] {"放置地点", "", "接收日期", ""},}).border(BorderStyle.DEFAULT).create());
params.put("table" + i, Tables.of(new String[][] {new String[] {"试验样品名称", getStringOrDefault(info,
"sampleName"), "试验样品型号", getStringOrDefault(info, "sampleModel")},
new String[] {"批 次", getStringOrDefault(info, "sampleBatch"), "试验样品编号", getStringOrDefault(info,
"sampleType")}, new String[] {"生产厂家", getStringOrDefault(info, "sampleManufacturer"),
"试验样品数量", sampleInfoList.size() + ""}, new String[] {"放置地点", "", "接收日期", ""},})
.border(BorderStyle.DEFAULT).create());
String imgUrls = info.getString("picture");
if (StringUtils.isNotBlank(imgUrls)) {
if (!StringUtils.startsWith(imgUrls, "http")) {
@@ -465,8 +457,7 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
String actualMeasurementPoint = list.stream().map(x -> x.getPoint()).filter(point -> StringUtils.isNotBlank(point)).collect(
Collectors.joining(","));
OptionalDouble maxMeasurementPoint = list.stream().map(obj -> obj.getPoint()) // 获取point字段
.filter(point -> StringUtils.isNotBlank(point))
.filter(str -> str.matches("-?\\d+(\\.\\d+)?")) // 只保留数字格式的字符串
.filter(point -> StringUtils.isNotBlank(point)).filter(str -> str.matches("-?\\d+(\\.\\d+)?")) // 只保留数字格式的字符串
.mapToDouble(Double::parseDouble) // 转换为double
.max();
@@ -493,6 +484,9 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
return "";
}
@Autowired
private IEquipmentService equipmentService;
private Map<String, Object> assembleSbsyjlb(String experimentId) {
List<ExperimentDeviationEquipment> equipmentList = experimentDeviationEquipmentService.getByExperimentId(experimentId);
Experiment experiment = experimentService.getById(experimentId);
@@ -503,10 +497,10 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
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("使用日期", experiment.getStartDate());
params.put("归还日期", experiment.getEndDate());
params.put("计量有效期", Optional.ofNullable(measurementValidity).orElse(""));
Equipment equipment = equipmentService.getByManagementNo(v.getEquipmentNo());
params.put("计量有效期", Optional.ofNullable(equipment).map(s -> s.getExpireDate()).orElse(""));
params.put("异常记录", "");
list.add(params);
}
@@ -537,8 +531,7 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
params.put("校对人名称", Optional.ofNullable(latestReport).map(v -> sysUserService.getById(v.getProofreader()))
.map(SysUser::getRealname).orElse(""));
params.put("审核时间", Optional.ofNullable(latestReport)
.map(v -> DateUtils.formatDate(v.getProofreaderTime(), "yyyy 年 M 月 d 日"))
params.put("审核时间", Optional.ofNullable(latestReport).map(v -> DateUtils.formatDate(v.getProofreaderTime(), "yyyy 年 M 月 d 日"))
.orElse(" 年 月 日"));
params.put("负责人名称", experiment.getSupervisorName());
@@ -589,45 +582,37 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
root.put("电子加速器", hasElectronics ? "☑电子加速器" : "□电子加速器");
root.put("质子加速器", hasProton ? "☑质子加速器" : "□质子加速器");
OptionalDouble maxEnergy = detailDTOList.stream().map(obj -> obj.getEnergy()) // 获取point字段
.filter(point -> StringUtils.isNotBlank(point))
.filter(str -> str.matches("-?\\d+(\\.\\d+)?")) // 只保留数字格式的字符串
.filter(point -> StringUtils.isNotBlank(point)).filter(str -> str.matches("-?\\d+(\\.\\d+)?")) // 只保留数字格式的字符串
.mapToDouble(Double::parseDouble) // 转换为double
.max();
OptionalDouble maxBeam = detailDTOList.stream().map(obj -> obj.getBeam()) // 获取point字段
.filter(point -> StringUtils.isNotBlank(point))
.filter(str -> str.matches("-?\\d+(\\.\\d+)?")) // 只保留数字格式的字符串
.filter(point -> StringUtils.isNotBlank(point)).filter(str -> str.matches("-?\\d+(\\.\\d+)?")) // 只保留数字格式的字符串
.mapToDouble(Double::parseDouble) // 转换为double
.max();
OptionalDouble maxElectronEnergy = detailDTOList.stream().map(obj -> obj.getElectronEnergy()) // 获取point字段
.filter(point -> StringUtils.isNotBlank(point))
.filter(str -> str.matches("-?\\d+(\\.\\d+)?")) // 只保留数字格式的字符串
.filter(point -> StringUtils.isNotBlank(point)).filter(str -> str.matches("-?\\d+(\\.\\d+)?")) // 只保留数字格式的字符串
.mapToDouble(Double::parseDouble) // 转换为double
.max();
OptionalDouble maxTubeCurrent = detailDTOList.stream().map(obj -> obj.getTubeCurrent()) // 获取point字段
.filter(point -> StringUtils.isNotBlank(point))
.filter(str -> str.matches("-?\\d+(\\.\\d+)?")) // 只保留数字格式的字符串
.filter(point -> StringUtils.isNotBlank(point)).filter(str -> str.matches("-?\\d+(\\.\\d+)?")) // 只保留数字格式的字符串
.mapToDouble(Double::parseDouble) // 转换为double
.max();
OptionalDouble maxProtonEnergy = detailDTOList.stream().map(obj -> obj.getProtonEnergy()) // 获取point字段
.filter(point -> StringUtils.isNotBlank(point))
.filter(str -> str.matches("-?\\d+(\\.\\d+)?")) // 只保留数字格式的字符串
.filter(point -> StringUtils.isNotBlank(point)).filter(str -> str.matches("-?\\d+(\\.\\d+)?")) // 只保留数字格式的字符串
.mapToDouble(Double::parseDouble) // 转换为double
.max();
OptionalDouble maxScanArea = detailDTOList.stream().map(obj -> obj.getScanArea()) // 获取point字段
.filter(point -> StringUtils.isNotBlank(point))
.filter(str -> str.matches("-?\\d+(\\.\\d+)?")) // 只保留数字格式的字符串
.filter(point -> StringUtils.isNotBlank(point)).filter(str -> str.matches("-?\\d+(\\.\\d+)?")) // 只保留数字格式的字符串
.mapToDouble(Double::parseDouble) // 转换为double
.max();
OptionalDouble maxX = detailDTOList.stream().map(obj -> obj.getXy()) // 获取point字段
.filter(point -> StringUtils.isNotBlank(point))
.map(str -> str.split(",")[0]) // 只保留数字格式的字符串
.filter(point -> StringUtils.isNotBlank(point)).map(str -> str.split(",")[0]) // 只保留数字格式的字符串
.mapToDouble(Double::parseDouble) // 转换为double
.max();
OptionalDouble maxY = detailDTOList.stream().map(obj -> obj.getXy()) // 获取point字段
.filter(point -> StringUtils.isNotBlank(point))
.map(str -> str.split(",")[0]) // 只保留数字格式的字符串
.filter(point -> StringUtils.isNotBlank(point)).map(str -> str.split(",")[0]) // 只保留数字格式的字符串
.mapToDouble(Double::parseDouble) // 转换为double
.max();
@@ -660,6 +645,21 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
root.put("均匀性", maxX.orElse(0) + "," + maxY.orElse(0));
root.put("辐射环境", environmentSelectStr);
root.put("试验类型", typeSelectStr);
Optional<String> first = detailDTOList.stream().filter(v -> StringUtils.isNotBlank(v.getCalibrationDistance())).map(
s -> s.getCalibrationDistance()).findFirst();
root.put("标定距离", first.orElse(""));
OptionalDouble maxActualMeasurementRate = detailDTOList.stream().map(obj -> obj.getActualMeasurementRate()) // 获取point字段
.filter(point -> StringUtils.isNotBlank(point)).filter(str -> str.matches("-?\\d+(\\.\\d+)?")) // 只保留数字格式的字符串
.mapToDouble(Double::parseDouble) // 转换为double
.max();
OptionalDouble maxPoint = detailDTOList.stream().map(obj -> obj.getPoint()) // 获取point字段
.filter(point -> StringUtils.isNotBlank(point)).filter(str -> str.matches("-?\\d+(\\.\\d+)?")) // 只保留数字格式的字符串
.mapToDouble(Double::parseDouble) // 转换为double
.max();
root.put("剂量率", maxActualMeasurementRate);
root.put("总剂量", maxPoint);
return root;
}