From 8b55687c6f8dfcf95e2a104c1e523306609c2a2b Mon Sep 17 00:00:00 2001 From: pangyang <475446853@qq.com> Date: Fri, 6 Mar 2026 11:32:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A7=BD=E6=B6=B2=E5=90=84=E4=B8=AAbug?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/LauncherConstant.java | 4 +- .../pojo/entity/LiquidTankTaskCopy.java | 16 ++ .../pojo/entity/RelTankReportItem.java | 11 + .../pojo/vo/LiquidTankReportConfigVO.java | 2 + .../pojo/vo/LiquidTankWaveDrawSingleVO.java | 1 + .../LiquidTankReportConfigController.java | 11 + .../LiquidTankReportController.java | 18 +- .../LiquidTankTaskCopyController.java | 224 +++++++++++++++--- .../desk/quality/excel/LiquidTankExcel.java | 14 +- .../service/ILiquidTankTaskCopyService.java | 2 +- .../service/ILiquidTankTaskService.java | 2 + .../service/LiquidTankTaskSetVoService.java | 7 +- .../service/impl/LiquidTankServiceImpl.java | 2 +- .../impl/LiquidTankTaskCopyServiceImpl.java | 49 +++- .../impl/LiquidTankTaskServiceImpl.java | 61 +++-- .../desk/quality/util/FullMergeExcelUtil.java | 17 +- 16 files changed, 356 insertions(+), 85 deletions(-) diff --git a/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java b/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java index 6dfc16cd..73debd58 100644 --- a/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java +++ b/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java @@ -12,9 +12,9 @@ public interface LauncherConstant { /** * nacos 命名空间 */ - String NACOS_NAMESPACE = "feaf627f-a847-463b-8b73-24a0538f526e"; +// String NACOS_NAMESPACE = "feaf627f-a847-463b-8b73-24a0538f526e"; // 生产环境 -// String NACOS_NAMESPACE = "db3f4da1-ae19-4104-8c17-6d9b8f069401"; + String NACOS_NAMESPACE = "db3f4da1-ae19-4104-8c17-6d9b8f069401"; // 测试环境 // String NACOS_NAMESPACE = "6cdd0310-0d61-4f54-891a-7fb06224d9b8"; diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTaskCopy.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTaskCopy.java index 5afe627d..cca6ffec 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTaskCopy.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTaskCopy.java @@ -536,4 +536,20 @@ public class LiquidTankTaskCopy extends BaseEntity { @Schema(description = "药品监督人签名") private String drugSuUserSign; + @Schema(description = "超出规范极限调整后的结果") + private String outRangeResult; + @Schema(description = "槽液清理记录") + private String clearRecord; + + @Schema(description = "控制规范") + private String norm; + @Schema(description = "报告id") + private Long reportId; + @Schema(description = "采样时间") + private LocalDate sampleDate; + @Schema(description = "化验频率") + private String testFrequency; + @Schema(description = "药品计算公式") + private String reportFormulaContent; + } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/RelTankReportItem.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/RelTankReportItem.java index 3b24c65b..119f952c 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/RelTankReportItem.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/RelTankReportItem.java @@ -64,4 +64,15 @@ public class RelTankReportItem extends BaseEntity { */ @Schema(description = "备注") private String remark; + + @Schema(description = "药品添加人签名") + private String drugAddUserSign; + @Schema(description = "药品监督人签名") + private String drugSuUserSign; + @Schema(description = "超出规范极限调整后的结果") + private String result; + @Schema(description = "槽液清理记录") + private String clearRecord; + @Schema(description = "控制规范") + private String controllerText; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankReportConfigVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankReportConfigVO.java index e5312a68..254d4b2a 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankReportConfigVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankReportConfigVO.java @@ -21,4 +21,6 @@ public class LiquidTankReportConfigVO extends LiquidTankReportConfig { @Serial private static final long serialVersionUID = 1L; + private String wcName; + } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawSingleVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawSingleVO.java index 2fdcd0dd..500c4efc 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawSingleVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawSingleVO.java @@ -9,6 +9,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankReportConfigController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankReportConfigController.java index 59053fe4..70f2a7ce 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankReportConfigController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankReportConfigController.java @@ -24,6 +24,8 @@ import org.springblade.core.secure.BladeUser; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; +import org.springblade.desk.basic.pojo.entity.WorkCenter; +import org.springblade.desk.basic.service.IWorkCenterService; import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.quality.constant.QAModuleConst; import org.springblade.desk.quality.excel.LiquidTankReportConfigExcel; @@ -56,6 +58,9 @@ public class LiquidTankReportConfigController extends BladeController { @Resource private ILiquidTankReportConfigService service; + @Resource + private IWorkCenterService workCenterService; + /** * [槽液报告配置] 详情 */ @@ -80,6 +85,12 @@ public class LiquidTankReportConfigController extends BladeController { QueryWrapper qw = Condition.getQueryWrapper(liquidTankReportConfig, LiquidTankReportConfig.class); IPage pages = service.page(Condition.getPage(query), qw); IPage pagesVO = LiquidTankReportConfigWrapper.build().pageVO(pages); + for(LiquidTankReportConfigVO one : pagesVO.getRecords()){ + WorkCenter workCenter =workCenterService.getById(one.getWcId()); + if(null != workCenter){ + one.setWcName(workCenter.getWcName()); + } + } return R.data(pagesVO); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankReportController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankReportController.java index fbb61545..8a59f8b7 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankReportController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankReportController.java @@ -37,6 +37,8 @@ import org.springblade.desk.quality.service.ILiquidTankReportService; import org.springblade.desk.quality.service.ILiquidTankTaskCopyService; import org.springblade.desk.quality.wrapper.LiquidTankReportDetailWrapper; import org.springblade.desk.quality.wrapper.LiquidTankReportWrapper; +import org.springblade.system.feign.IUserClient; +import org.springblade.system.pojo.entity.User; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -64,6 +66,8 @@ public class LiquidTankReportController extends BladeController { private ILiquidTankReportService service; @Resource private ILiquidTankTaskCopyService liquidTankTaskCopyService; + @Resource + private IUserClient iUserClient; /** * [槽液报告] 详情 @@ -76,7 +80,9 @@ public class LiquidTankReportController extends BladeController { LiquidTankReport detail = service.getOne(qw); LiquidTankReportDetailVO detailVO = LiquidTankReportDetailWrapper.build().entityVO(detail); // 直接查询明细列表 - detailVO.setCopyList(liquidTankTaskCopyService.getListByLiquidTankReportId(detailVO.getId())); +// detailVO.setCopyList(liquidTankTaskCopyService.getListByLiquidTankReportId(detailVO.getId())); + detailVO.setCopyList(liquidTankTaskCopyService.getListByLiquidTankReportIdNew(detailVO.getId())); + return R.data(detailVO); } @@ -97,6 +103,16 @@ public class LiquidTankReportController extends BladeController { } IPage pages = service.page(Condition.getPage(query), qw); IPage pagesVO = LiquidTankReportWrapper.build().pageVO(pages); + for(LiquidTankReportVO one : pagesVO.getRecords()){ + + if(null == one.getUpdateUser()){ + R user= iUserClient.userInfoById(one.getCreateUser()); + one.setUpdateUserRealName(user.getData().getRealName()); + }else{ + R user= iUserClient.userInfoById(one.getUpdateUser()); + one.setUpdateUserRealName(user.getData().getRealName()); + } + } return R.data(pagesVO); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskCopyController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskCopyController.java index 7afde493..a1c4130a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskCopyController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskCopyController.java @@ -32,17 +32,12 @@ import org.springblade.desk.quality.constant.LiquidTankTaskConst; import org.springblade.desk.quality.constant.QAModuleConst; import org.springblade.desk.quality.excel.LiquidTankTaskCopyExcel; import org.springblade.desk.quality.pojo.entity.*; -import org.springblade.desk.quality.pojo.vo.LiquidTankReportDetailVO; -import org.springblade.desk.quality.pojo.vo.LiquidTankTaskCopyVO; -import org.springblade.desk.quality.pojo.vo.LiquidTankWaveDrawVO; -import org.springblade.desk.quality.pojo.vo.LiquidTankWaveDrawSingleVO; -import org.springblade.desk.quality.service.ILiquidTankReportConfigService; -import org.springblade.desk.quality.service.ILiquidTankReportService; -import org.springblade.desk.quality.service.ILiquidTankService; -import org.springblade.desk.quality.service.ILiquidTankTaskCopyService; +import org.springblade.desk.quality.pojo.vo.*; +import org.springblade.desk.quality.service.*; import org.springblade.desk.quality.util.FullMergeExcelUtil; import org.springblade.desk.quality.wrapper.LiquidTankReportDetailWrapper; import org.springblade.desk.quality.wrapper.LiquidTankTaskCopyWrapper; +import org.springblade.desk.quality.wrapper.LiquidTankTaskWrapper; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -71,6 +66,9 @@ public class LiquidTankTaskCopyController extends BladeController { @Resource private ILiquidTankTaskCopyService service; + @Resource + private ILiquidTankTaskService taskService; + @Resource private ILiquidTankService tankService; @@ -90,16 +88,82 @@ public class LiquidTankTaskCopyController extends BladeController { /** * [槽液报告] 查询Copy任务 list分页 */ +// @GetMapping("/listReport") +// @ApiOperationSupport(order = 20) +// @Operation(summary = "[槽液报告] 查询任务 list分页", description = "传入LiquidTankTaskCopy Obj") +// public R> list(@Parameter(hidden = true) @RequestParam Map map, +// Query query) { +// map.forEach((key, value) -> { +// log.warn("key = {}, value = {}, type = {}", key, value, value.getClass()); +// } +// ); +// QueryWrapper qw = Condition.getQueryWrapper(map, LiquidTankTaskCopy.class); +// // 正常结束的,异常结束的 +// qw.in(BaseCol.STATUS, asList(LiquidTankTaskConst.S_FINISH_FAILED, LiquidTankTaskConst.S_FINISH_OK)); +// // [作业中心]id +// qw.eq(map.containsKey(LiquidTankTaskCopy.COL_WORK_CENTER_ID), LiquidTankTaskCopy.COL_WORK_CENTER_ID, Func.toLong(map.get("workCenterId"))); +// // [作业槽]id +// qw.eq(map.containsKey(LiquidTankTaskCopy.COL_WORK_TANK_ID), LiquidTankTaskCopy.COL_WORK_TANK_ID, Func.toLong(map.get("workTankId"))); +// // 待测成分/分析项目 +// qw.like(map.containsKey(LiquidTankTaskCopy.COL_TEST_ELEMENT), LiquidTankTaskCopy.COL_TEST_ELEMENT, Func.toStr(map.get("testElement"))); +// // 范围日期 +// if (map.containsKey(BaseRequest.CREATE_TIME_START) && map.containsKey(BaseRequest.CREATE_TIME_END)) { +// Date crStart = RequestUtil.buildDateBeginOfDay(map, BaseRequest.CREATE_TIME_START); +// Date crEnd = RequestUtil.buildDateEndOfDay(map, BaseRequest.CREATE_TIME_END); +// qw.between(BaseCol.CREATE_TIME, crStart, crEnd); +// } +// // ID 升序 +// qw.orderByAsc(BaseCol.ID); +// // +// IPage pages = service.page(Condition.getPage(query), qw); +// IPage pagesVO = LiquidTankTaskCopyWrapper.build().pageVO(pages); +// +// List list = pagesVO.getRecords(); +// for(LiquidTankTaskCopyVO copyVO : list){ +// QueryWrapper queryWrapper = new QueryWrapper<>(); +// queryWrapper.eq("ID",copyVO.getLiquidTankId()); +// List records = tankService.list(queryWrapper); +// if(null != records && records.size()>0){ +// LiquidTank tank = records.get(0); +// if(1==tank.getJobType()){ +// String weekly = tank.getJobTypeWeekValue(); +// List weeks = Arrays.asList(weekly.split(",")); +// copyVO.setTestFrequency( weeks.size()+"次/周"); +// } +// +// if(2==tank.getJobType()){ +// String month = tank.getJobTypeMonthValue(); +// List months = Arrays.asList(month.split(",")); +// copyVO.setTestFrequency( months.size()+"次/月"); +// } +// +// if(3==tank.getJobType()){ +// String year = tank.getJobTypeYearValue(); +// List years = Arrays.asList(year.split(",")); +// copyVO.setTestFrequency( years.size()+"次/年"); +// } +// } +// } +// +// pagesVO.getRecords() +// .stream() +// .peek(service::setVOValue) +// .collect(Collectors.toList()); +// return R.data(pagesVO); +// } + + + @GetMapping("/listReport") @ApiOperationSupport(order = 20) @Operation(summary = "[槽液报告] 查询任务 list分页", description = "传入LiquidTankTaskCopy Obj") - public R> list(@Parameter(hidden = true) @RequestParam Map map, - Query query) { + public R> list(@Parameter(hidden = true) @RequestParam Map map, + Query query) { map.forEach((key, value) -> { log.warn("key = {}, value = {}, type = {}", key, value, value.getClass()); } ); - QueryWrapper qw = Condition.getQueryWrapper(map, LiquidTankTaskCopy.class); + QueryWrapper qw = Condition.getQueryWrapper(map, LiquidTankTask.class); // 正常结束的,异常结束的 qw.in(BaseCol.STATUS, asList(LiquidTankTaskConst.S_FINISH_FAILED, LiquidTankTaskConst.S_FINISH_OK)); // [作业中心]id @@ -117,11 +181,11 @@ public class LiquidTankTaskCopyController extends BladeController { // ID 升序 qw.orderByAsc(BaseCol.ID); // - IPage pages = service.page(Condition.getPage(query), qw); - IPage pagesVO = LiquidTankTaskCopyWrapper.build().pageVO(pages); + IPage pages = taskService.page(Condition.getPage(query), qw); + IPage pagesVO = LiquidTankTaskWrapper.build().pageVO(pages); - List list = pagesVO.getRecords(); - for(LiquidTankTaskCopyVO copyVO : list){ + List list = pagesVO.getRecords(); + for(LiquidTankTaskVO copyVO : list){ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ID",copyVO.getLiquidTankId()); List records = tankService.list(queryWrapper); @@ -147,16 +211,91 @@ public class LiquidTankTaskCopyController extends BladeController { } } -// pagesVO.getRecords() -// .stream() -// .peek(service::setVOValue) -// .collect(Collectors.toList()); + pagesVO.getRecords() + .stream() + .peek(taskService::setVOCopyValue) + .collect(Collectors.toList()); return R.data(pagesVO); } /** * [槽液曲线] 查询Copy任务 list分页 */ +// @GetMapping("/listWave") +// @ApiOperationSupport(order = 20) +// @Operation(summary = "[槽液曲线] 查询任务 list分页", description = "传入LiquidTankTaskCopy Obj") +// public R listWave(@Parameter(hidden = true) @RequestParam Map map, +// Query query) { +// map.forEach((key, value) -> { +// log.warn("key = {}, value = {}, type = {}", key, value, value.getClass()); +// } +// ); +// QueryWrapper qw = Condition.getQueryWrapper(map, LiquidTankTaskCopy.class); +// // 正常结束的,异常结束的 +// qw.in(BaseCol.STATUS, asList(LiquidTankTaskConst.S_FINISH_FAILED, LiquidTankTaskConst.S_FINISH_OK)); +// // [作业中心]id +// qw.eq(map.containsKey(LiquidTankTaskCopy.COL_WORK_CENTER_ID), LiquidTankTaskCopy.COL_WORK_CENTER_ID, Func.toLong(map.get("workCenterId"))); +// // 范围日期 +// if (map.containsKey(BaseRequest.CREATE_TIME_START) && map.containsKey(BaseRequest.CREATE_TIME_END)) { +// Date crStart = RequestUtil.buildDateBeginOfDay(map, BaseRequest.CREATE_TIME_START); +// Date crEnd = RequestUtil.buildDateEndOfDay(map, BaseRequest.CREATE_TIME_END); +// qw.between(BaseCol.CREATE_TIME, crStart, crEnd); +// } +// // 排序 槽液id升序 复测化验时间升序 +// qw.orderByAsc( +// List.of( +// BaseCol.ID, +// LiquidTankTaskCopy.COL_REPEAT_TEST_DATE +// )); +// IPage pages = service.page(Condition.getPage(query), qw); +// IPage pagesVO = LiquidTankTaskCopyWrapper.build().pageVO(pages); +// pagesVO.getRecords() +// .stream() +// .peek(service::setVOValue) +// .collect(Collectors.toList()); +// // key 自带排序 +// // key: [作业槽]id +// // value: 任务数据列表 +// Map> treeMap = new TreeMap<>(); +// // 遍历赋值到treeMap中 +// pagesVO.getRecords().forEach(vo -> { +// final Long wtId = vo.getWorkTankId(); +// // 不包含,新建 +// if (!treeMap.containsKey(wtId)) { +// List list = new ArrayList<>(); +// treeMap.put(wtId, list); +// } +// treeMap.get(wtId).add(vo); +// }); +// // 前端要求匹配对象 +// LiquidTankWaveDrawVO allVO = new LiquidTankWaveDrawVO(); +// List allChart = allVO.getWaveData(); +// // 每个entry一个图表 +// for (Map.Entry> entry : treeMap.entrySet()) { +// Long wtId = entry.getKey(); +// // 数据列表 +// List list = entry.getValue(); +// LiquidTankWaveDrawSingleVO singleChart = new LiquidTankWaveDrawSingleVO(); +// for (LiquidTankTaskCopyVO one : list) { +// singleChart.setWcId(one.getWorkCenterId()); +// singleChart.setWcName(one.getWcName()); +// singleChart.setWorkTankId(one.getWorkTankId()); +// singleChart.setWorkTankName(one.getWorkTankName()); +// singleChart.setLiquidTankId(one.getLiquidTankId()); +// singleChart.setTestElement(one.getTestElement()); +// singleChart.getMaxList().add(one.getTargetValueMax()); +// singleChart.getMinList().add(one.getTargetValueMin()); +// singleChart.getTargetList().add(one.getTargetValue()); +// singleChart.getTestList().add(one.getRepeatTestValue()); +// singleChart.getTestDateList().add(one.getRepeatTestDate()); +// singleChart.setId(one.getId()); +// } +// allChart.add(singleChart); +// } +// return R.data(allVO); +// } + + @GetMapping("/listWave") @ApiOperationSupport(order = 20) @Operation(summary = "[槽液曲线] 查询任务 list分页", description = "传入LiquidTankTaskCopy Obj") @@ -166,39 +305,45 @@ public class LiquidTankTaskCopyController extends BladeController { log.warn("key = {}, value = {}, type = {}", key, value, value.getClass()); } ); - QueryWrapper qw = Condition.getQueryWrapper(map, LiquidTankTaskCopy.class); + map.forEach((key, value) -> { + log.warn("key = {}, value = {}, type = {}", key, value, value.getClass()); + } + ); + QueryWrapper qw = Condition.getQueryWrapper(map, LiquidTankTask.class); // 正常结束的,异常结束的 qw.in(BaseCol.STATUS, asList(LiquidTankTaskConst.S_FINISH_FAILED, LiquidTankTaskConst.S_FINISH_OK)); // [作业中心]id qw.eq(map.containsKey(LiquidTankTaskCopy.COL_WORK_CENTER_ID), LiquidTankTaskCopy.COL_WORK_CENTER_ID, Func.toLong(map.get("workCenterId"))); + // [作业槽]id +// qw.eq(map.containsKey(LiquidTankTaskCopy.COL_WORK_TANK_ID), LiquidTankTaskCopy.COL_WORK_TANK_ID, Func.toLong(map.get("workTankId"))); + // 待测成分/分析项目 +// qw.like(map.containsKey(LiquidTankTaskCopy.COL_TEST_ELEMENT), LiquidTankTaskCopy.COL_TEST_ELEMENT, Func.toStr(map.get("testElement"))); // 范围日期 if (map.containsKey(BaseRequest.CREATE_TIME_START) && map.containsKey(BaseRequest.CREATE_TIME_END)) { Date crStart = RequestUtil.buildDateBeginOfDay(map, BaseRequest.CREATE_TIME_START); Date crEnd = RequestUtil.buildDateEndOfDay(map, BaseRequest.CREATE_TIME_END); qw.between(BaseCol.CREATE_TIME, crStart, crEnd); } - // 排序 槽液id升序 复测化验时间升序 - qw.orderByAsc( - List.of( - BaseCol.ID, - LiquidTankTaskCopy.COL_REPEAT_TEST_DATE - )); - IPage pages = service.page(Condition.getPage(query), qw); - IPage pagesVO = LiquidTankTaskCopyWrapper.build().pageVO(pages); + // ID 升序 + qw.orderByAsc(BaseCol.ID); + // + IPage pages = taskService.page(Condition.getPage(query), qw); + IPage pagesVO = LiquidTankTaskWrapper.build().pageVO(pages); + pagesVO.getRecords() .stream() - .peek(service::setVOValue) + .peek(taskService::setVOCopyValue) .collect(Collectors.toList()); // key 自带排序 // key: [作业槽]id // value: 任务数据列表 - Map> treeMap = new TreeMap<>(); + Map> treeMap = new TreeMap<>(); // 遍历赋值到treeMap中 pagesVO.getRecords().forEach(vo -> { final Long wtId = vo.getWorkTankId(); // 不包含,新建 if (!treeMap.containsKey(wtId)) { - List list = new ArrayList<>(); + List list = new ArrayList<>(); treeMap.put(wtId, list); } treeMap.get(wtId).add(vo); @@ -207,12 +352,12 @@ public class LiquidTankTaskCopyController extends BladeController { LiquidTankWaveDrawVO allVO = new LiquidTankWaveDrawVO(); List allChart = allVO.getWaveData(); // 每个entry一个图表 - for (Map.Entry> entry : treeMap.entrySet()) { + for (Map.Entry> entry : treeMap.entrySet()) { Long wtId = entry.getKey(); // 数据列表 - List list = entry.getValue(); + List list = entry.getValue(); LiquidTankWaveDrawSingleVO singleChart = new LiquidTankWaveDrawSingleVO(); - for (LiquidTankTaskCopyVO one : list) { + for (LiquidTankTaskVO one : list) { singleChart.setWcId(one.getWorkCenterId()); singleChart.setWcName(one.getWcName()); singleChart.setWorkTankId(one.getWorkTankId()); @@ -223,6 +368,9 @@ public class LiquidTankTaskCopyController extends BladeController { singleChart.getMinList().add(one.getTargetValueMin()); singleChart.getTargetList().add(one.getTargetValue()); singleChart.getTestList().add(one.getRepeatTestValue()); + LocalDate localDate = one.getRepeatFillDate().toLocalDate(); + singleChart.getTestDateList().add(localDate); +// singleChart.getTestDateList().add(one.getRepeatFillDate()); singleChart.setId(one.getId()); } allChart.add(singleChart); @@ -359,7 +507,10 @@ public class LiquidTankTaskCopyController extends BladeController { HttpServletResponse response) { LiquidTankReport report = reportService.getById(id); - List list = service.getListByLiquidTankReportId(report.getId()); +// List list = service.getListByLiquidTankReportId(report.getId()); + + List list = service.getListByLiquidTankReportIdNew(report.getId()); + Long centerId = list.get(0).getWorkCenterId(); @@ -367,8 +518,10 @@ public class LiquidTankTaskCopyController extends BladeController { queryWrapper.eq("WC_ID",centerId); List rule = configService.list(queryWrapper); String name = ""; + String tableTtile =""; if(null != rule && rule.size() > 0){ name = rule.get(0).getNamePrefix(); + tableTtile = rule.get(0).getReportCode(); } @@ -377,6 +530,7 @@ public class LiquidTankTaskCopyController extends BladeController { response, "槽液检测报告", name, + tableTtile, new String[]{"取样时间", "温度(℃)", "槽号", "体积(L)", "分析项目", "规范下限(g/L)", "目标下限(g/L)", "添加点(g/L)", "目标值(g/L)","目标上限(g/L)","规范上限(g/L)","化验频率","化验值(g/L)", "药品计算公式","药品添加量","药品批次号","药品监督员签名","药品添加人签名","调整后化验值(g/L)", diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/LiquidTankExcel.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/LiquidTankExcel.java index c55ad04d..e051b290 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/LiquidTankExcel.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/LiquidTankExcel.java @@ -72,47 +72,47 @@ public class LiquidTankExcel implements Serializable { */ @ColumnWidth(20) @ExcelProperty("规范上限") - private BigDecimal normValueMax; + private Double normValueMax; /** * 规范下限 */ @ColumnWidth(20) @ExcelProperty("规范下限") - private BigDecimal normValueMin; + private Double normValueMin; /** * 目标上限 */ @ColumnWidth(20) @ExcelProperty("目标上限") - private BigDecimal targetValueMax; + private Double targetValueMax; /** * 目标下限 */ @ColumnWidth(20) @ExcelProperty("目标下限") - private BigDecimal targetValueMin; + private Double targetValueMin; /** * 目标值 */ @ColumnWidth(20) @ExcelProperty("目标值") - private BigDecimal targetValue; + private Double targetValue; /** * 添加点 */ @ColumnWidth(20) @ExcelProperty("添加点") - private BigDecimal fillingLocation; + private Double fillingLocation; /** * 体积 */ @ColumnWidth(20) @ExcelProperty("体积") - private BigDecimal volume; + private Double volume; /** * 测量值计量单位 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankTaskCopyService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankTaskCopyService.java index b1de266c..cc67b92b 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankTaskCopyService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankTaskCopyService.java @@ -45,6 +45,6 @@ public interface ILiquidTankTaskCopyService extends BaseService list); R generateWave(@Valid @RequestBody List list); - + List getListByLiquidTankReportIdNew(Long liquidTankReportId); List getListByLiquidTankReportId(Long liquidTankReportId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankTaskService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankTaskService.java index ced44d7a..a549b6ab 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankTaskService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankTaskService.java @@ -68,6 +68,8 @@ public interface ILiquidTankTaskService extends BaseService { void setVOValue(LiquidTankTaskVO vo); + void setVOCopyValue(LiquidTankTaskVO vo); + void generateAuto(); void checkRemind(); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskSetVoService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskSetVoService.java index 65fb56d7..f016d60a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskSetVoService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskSetVoService.java @@ -63,11 +63,12 @@ public class LiquidTankTaskSetVoService { // 加药量[计算公式] vo.setAddDrugFormulaName(formulaAdd.getName()); // 药品计算公式(报告) 加药量[计算公式] 公式内容 - vo.setReportFormulaContent(formulaAdd.getContent()); +// vo.setReportFormulaContent(formulaAdd.getContent()); } Formula formulaThe = formulaService.getById(lt.getAfterTheoryFormulaId()); if (formulaThe != null) { vo.setAfterTheoryFormulaName(formulaThe.getName()); + vo.setReportFormulaContent(formulaThe.getContent()); } } WorkCenter wc = workCenterService.getById(vo.getWorkCenterId()); @@ -128,8 +129,8 @@ public class LiquidTankTaskSetVoService { // 取样时间:当天时间 vo.setSampleDate(LocalDate.now()); // 有效期 - Date validDateT = DateUtil.offsetDay(vo.getCreateTime(), vo.getAnalysisCycle()); - vo.setValidDate(LocalDateTimeUtil.of(validDateT).toLocalDate()); +// Date validDateT = DateUtil.offsetDay(vo.getCreateTime(), vo.getAnalysisCycle()); +// vo.setValidDate(LocalDateTimeUtil.of(validDateT).toLocalDate()); // 超出规范极限调整后的结果 打印用 todo: vo.setOutRangeResult(""); // 槽液清理记录 todo: diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankServiceImpl.java index 1adbe6a1..2022bc9a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankServiceImpl.java @@ -253,7 +253,7 @@ public class LiquidTankServiceImpl extends BaseServiceImpl getListByLiquidTankReportIdNew(Long liquidTankReportId) { + LambdaQueryWrapper qw = Wrappers.lambdaQuery(); + qw.eq(LiquidTankTaskCopy::getReportId, liquidTankReportId); + List copys = this.list(qw); + List copyList = LiquidTankTaskCopyWrapper.build().listVO(copys); + + for(LiquidTankTaskCopyVO copyVO : copyList){ + + WorkTank tank = workTankService.getById(copyVO.getWorkTankId()); + if(tank != null){ + copyVO.setWorkTankName(tank.getName()); + } + + } + return copyList; + } } + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskServiceImpl.java index 96069120..ef6c2388 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskServiceImpl.java @@ -320,6 +320,14 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl userList, int[] mergeColumnIndexes) throws Exception { // 1. 创建工作簿和工作表 Workbook workbook = new XSSFWorkbook(); @@ -44,7 +44,17 @@ public class FullMergeExcelUtil { mergeTitleCell.setCellValue(mergeTitle); CellStyle mergeTitleStyle = createStyle(workbook, true, (short) 16, HorizontalAlignment.CENTER); mergeTitleCell.setCellStyle(mergeTitleStyle); - sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, columnTitles.length - 1)); +// sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, columnTitles.length - 1)); + sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, columnTitles.length - 3)); + + CellStyle merge = createStyle(workbook, false, (short) 9, HorizontalAlignment.CENTER); + Cell celltitle = mergeTitleRow.createCell(columnTitles.length-2); + celltitle.setCellValue("表号:"); + celltitle.setCellStyle(merge); + + Cell celldata = mergeTitleRow.createCell(columnTitles.length-1); + celldata.setCellValue(tableTtile); + celldata.setCellStyle(merge); // -------------------------- 第二步:创建列标题 -------------------------- Row columnTitleRow = sheet.createRow(1); @@ -167,9 +177,10 @@ public class FullMergeExcelUtil { cell18.setCellValue(user.getRepeatTestValue()== null ? 0 : user.getRepeatTestValue()); //1\合格 2、不合格 + String qualified = user.getQualified() == 1 ? "合格" : "不合格"; Cell cell19 = dataRow.createCell(19); cell19.setCellStyle(dataStyle); - cell19.setCellValue(user.getQualified()== null ? 0 : user.getQualified()); + cell19.setCellValue(qualified); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); //有效期