|
|
|
|
@ -221,6 +221,127 @@ public class LiquidTankTaskCopyController extends BladeController { |
|
|
|
|
/** |
|
|
|
|
* [槽液曲线] 查询Copy任务 list分页 |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
@GetMapping("/listWave") |
|
|
|
|
@ApiOperationSupport(order = 20) |
|
|
|
|
@Operation(summary = "[槽液曲线] 查询任务 list分页", description = "传入LiquidTankTaskCopy Obj") |
|
|
|
|
public R listWave(@Parameter(hidden = true) @RequestParam Map<String, Object> map, |
|
|
|
|
Query query) { |
|
|
|
|
map.forEach((key, value) -> { |
|
|
|
|
log.warn("key = {}, value = {}, type = {}", key, value, value.getClass()); |
|
|
|
|
} |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
List<Long> ids = new ArrayList<>(); |
|
|
|
|
ids.add(2029787979027017730L); |
|
|
|
|
ids.add(2029746616600240129L); |
|
|
|
|
ids.add(2029744474384678914L); |
|
|
|
|
ids.add(2029740705257250817L); |
|
|
|
|
|
|
|
|
|
QueryWrapper<LiquidTankTaskCopy> 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); |
|
|
|
|
} |
|
|
|
|
// qw.in("ID",ids);
|
|
|
|
|
// 排序 槽液id升序 复测化验时间升序
|
|
|
|
|
qw.orderByAsc( |
|
|
|
|
List.of( |
|
|
|
|
"SAMPLE_DATE", |
|
|
|
|
"WORK_CENTER_ID", |
|
|
|
|
"WORK_TANK_ID", |
|
|
|
|
"TEST_ELEMENT" |
|
|
|
|
)); |
|
|
|
|
|
|
|
|
|
List<LiquidTankTaskCopy> records = service.list(qw); |
|
|
|
|
// List<LiquidTankTaskCopyVO> vos = records.stream()
|
|
|
|
|
// .map(LiquidTankTaskCopyWrapper.build()::entityVO)
|
|
|
|
|
// .collect(Collectors.toList());
|
|
|
|
|
//// IPage<LiquidTankTaskCopy> pages = service.page(Condition.getPage(query), qw);
|
|
|
|
|
//// IPage<LiquidTankTaskCopyVO> pagesVO = LiquidTankTaskCopyWrapper.build().pageVO(pages);
|
|
|
|
|
// pagesVO.stream()
|
|
|
|
|
// .peek(service::setVOValue)
|
|
|
|
|
// .collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, LiquidTankTaskCopy> latestRecordMap = records.stream() |
|
|
|
|
.collect(Collectors.groupingBy( |
|
|
|
|
record -> record.getWorkTankId() + "_" + record.getWorkCenterId()+"_"+record.getTestElement()+"_"+record.getSampleDate(), |
|
|
|
|
// 每组内按dateTime降序,取最新的一条
|
|
|
|
|
Collectors.collectingAndThen( |
|
|
|
|
Collectors.maxBy(Comparator.comparing(LiquidTankTaskCopy::getCreateTime)), |
|
|
|
|
optional -> optional.orElse(null) // 处理Optional避免空指针
|
|
|
|
|
) |
|
|
|
|
)); |
|
|
|
|
|
|
|
|
|
// 3. 转换为List(如果需要List格式)
|
|
|
|
|
|
|
|
|
|
List<LiquidTankTaskCopy> lesss = new ArrayList<>(latestRecordMap.values()); |
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
List<LiquidTankTaskCopyVO> voess = lesss.stream() |
|
|
|
|
.map(LiquidTankTaskCopyWrapper.build()::entityVO) |
|
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
List<LiquidTankTaskCopyVO> vos = voess.stream() |
|
|
|
|
.sorted(Comparator.comparing(LiquidTankTaskCopyVO::getSampleDate)) |
|
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
// key 自带排序
|
|
|
|
|
// key: [作业槽]id
|
|
|
|
|
// value: 任务数据列表
|
|
|
|
|
Map<String, List<LiquidTankTaskCopyVO>> treeMap = new TreeMap<>(); |
|
|
|
|
// 遍历赋值到treeMap中
|
|
|
|
|
vos.forEach(vo -> { |
|
|
|
|
final Long wtId = vo.getWorkTankId(); |
|
|
|
|
final Long wcId = vo.getWorkCenterId(); |
|
|
|
|
final String testElement = vo.getTestElement(); |
|
|
|
|
final LocalDate date = vo.getSampleDate(); |
|
|
|
|
final String keys = wtId + "_" + wcId + "_" + testElement; |
|
|
|
|
// 不包含,新建
|
|
|
|
|
if (!treeMap.containsKey(keys)) { |
|
|
|
|
List<LiquidTankTaskCopyVO> list = new ArrayList<>(); |
|
|
|
|
treeMap.put(keys, list); |
|
|
|
|
} |
|
|
|
|
treeMap.get(keys).add(vo); |
|
|
|
|
}); |
|
|
|
|
// 前端要求匹配对象
|
|
|
|
|
LiquidTankWaveDrawVO allVO = new LiquidTankWaveDrawVO(); |
|
|
|
|
List<LiquidTankWaveDrawSingleVO> allChart = allVO.getWaveData(); |
|
|
|
|
// 每个entry一个图表
|
|
|
|
|
for (Map.Entry<String, List<LiquidTankTaskCopyVO>> entry : treeMap.entrySet()) { |
|
|
|
|
String key = entry.getKey(); |
|
|
|
|
// 数据列表
|
|
|
|
|
List<LiquidTankTaskCopyVO> 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.getSampleDate()); |
|
|
|
|
singleChart.setId(one.getId()); |
|
|
|
|
} |
|
|
|
|
allChart.add(singleChart); |
|
|
|
|
} |
|
|
|
|
return R.data(allVO); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// @GetMapping("/listWave")
|
|
|
|
|
// @ApiOperationSupport(order = 20)
|
|
|
|
|
// @Operation(summary = "[槽液曲线] 查询任务 list分页", description = "传入LiquidTankTaskCopy Obj")
|
|
|
|
|
@ -232,7 +353,7 @@ public class LiquidTankTaskCopyController extends BladeController { |
|
|
|
|
// );
|
|
|
|
|
// QueryWrapper<LiquidTankTaskCopy> qw = Condition.getQueryWrapper(map, LiquidTankTaskCopy.class);
|
|
|
|
|
// // 正常结束的,异常结束的
|
|
|
|
|
// qw.in(BaseCol.STATUS, asList(LiquidTankTaskConst.S_FINISH_FAILED, LiquidTankTaskConst.S_FINISH_OK));
|
|
|
|
|
//// 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")));
|
|
|
|
|
// // 范围日期
|
|
|
|
|
@ -247,6 +368,8 @@ public class LiquidTankTaskCopyController extends BladeController { |
|
|
|
|
// BaseCol.ID,
|
|
|
|
|
// LiquidTankTaskCopy.COL_REPEAT_TEST_DATE
|
|
|
|
|
// ));
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// IPage<LiquidTankTaskCopy> pages = service.page(Condition.getPage(query), qw);
|
|
|
|
|
// IPage<LiquidTankTaskCopyVO> pagesVO = LiquidTankTaskCopyWrapper.build().pageVO(pages);
|
|
|
|
|
// pagesVO.getRecords()
|
|
|
|
|
@ -287,7 +410,7 @@ public class LiquidTankTaskCopyController extends BladeController { |
|
|
|
|
// singleChart.getMinList().add(one.getTargetValueMin());
|
|
|
|
|
// singleChart.getTargetList().add(one.getTargetValue());
|
|
|
|
|
// singleChart.getTestList().add(one.getRepeatTestValue());
|
|
|
|
|
// singleChart.getTestDateList().add(one.getRepeatTestDate());
|
|
|
|
|
// singleChart.getTestDateList().add(one.getSampleDate());
|
|
|
|
|
// singleChart.setId(one.getId());
|
|
|
|
|
// }
|
|
|
|
|
// allChart.add(singleChart);
|
|
|
|
|
@ -296,87 +419,87 @@ public class LiquidTankTaskCopyController extends BladeController { |
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@GetMapping("/listWave") |
|
|
|
|
@ApiOperationSupport(order = 20) |
|
|
|
|
@Operation(summary = "[槽液曲线] 查询任务 list分页", description = "传入LiquidTankTaskCopy Obj") |
|
|
|
|
public R listWave(@Parameter(hidden = true) @RequestParam Map<String, Object> map, |
|
|
|
|
Query query) { |
|
|
|
|
map.forEach((key, value) -> { |
|
|
|
|
log.warn("key = {}, value = {}, type = {}", key, value, value.getClass()); |
|
|
|
|
} |
|
|
|
|
); |
|
|
|
|
map.forEach((key, value) -> { |
|
|
|
|
log.warn("key = {}, value = {}, type = {}", key, value, value.getClass()); |
|
|
|
|
} |
|
|
|
|
); |
|
|
|
|
QueryWrapper<LiquidTankTask> 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(BaseCol.ID); |
|
|
|
|
//
|
|
|
|
|
IPage<LiquidTankTask> pages = taskService.page(Condition.getPage(query), qw); |
|
|
|
|
IPage<LiquidTankTaskVO> pagesVO = LiquidTankTaskWrapper.build().pageVO(pages); |
|
|
|
|
|
|
|
|
|
pagesVO.getRecords() |
|
|
|
|
.stream() |
|
|
|
|
.peek(taskService::setVOCopyValue) |
|
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
// key 自带排序
|
|
|
|
|
// key: [作业槽]id
|
|
|
|
|
// value: 任务数据列表
|
|
|
|
|
Map<Long, List<LiquidTankTaskVO>> treeMap = new TreeMap<>(); |
|
|
|
|
// 遍历赋值到treeMap中
|
|
|
|
|
pagesVO.getRecords().forEach(vo -> { |
|
|
|
|
final Long wtId = vo.getWorkTankId(); |
|
|
|
|
// 不包含,新建
|
|
|
|
|
if (!treeMap.containsKey(wtId)) { |
|
|
|
|
List<LiquidTankTaskVO> list = new ArrayList<>(); |
|
|
|
|
treeMap.put(wtId, list); |
|
|
|
|
} |
|
|
|
|
treeMap.get(wtId).add(vo); |
|
|
|
|
}); |
|
|
|
|
// 前端要求匹配对象
|
|
|
|
|
LiquidTankWaveDrawVO allVO = new LiquidTankWaveDrawVO(); |
|
|
|
|
List<LiquidTankWaveDrawSingleVO> allChart = allVO.getWaveData(); |
|
|
|
|
// 每个entry一个图表
|
|
|
|
|
for (Map.Entry<Long, List<LiquidTankTaskVO>> entry : treeMap.entrySet()) { |
|
|
|
|
Long wtId = entry.getKey(); |
|
|
|
|
// 数据列表
|
|
|
|
|
List<LiquidTankTaskVO> list = entry.getValue(); |
|
|
|
|
LiquidTankWaveDrawSingleVO singleChart = new LiquidTankWaveDrawSingleVO(); |
|
|
|
|
for (LiquidTankTaskVO 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()); |
|
|
|
|
LocalDate localDate = one.getRepeatFillDate().toLocalDate(); |
|
|
|
|
singleChart.getTestDateList().add(localDate); |
|
|
|
|
// singleChart.getTestDateList().add(one.getRepeatFillDate());
|
|
|
|
|
singleChart.setId(one.getId()); |
|
|
|
|
} |
|
|
|
|
allChart.add(singleChart); |
|
|
|
|
} |
|
|
|
|
return R.data(allVO); |
|
|
|
|
} |
|
|
|
|
// @GetMapping("/listWave")
|
|
|
|
|
// @ApiOperationSupport(order = 20)
|
|
|
|
|
// @Operation(summary = "[槽液曲线] 查询任务 list分页", description = "传入LiquidTankTaskCopy Obj")
|
|
|
|
|
// public R listWave(@Parameter(hidden = true) @RequestParam Map<String, Object> map,
|
|
|
|
|
// Query query) {
|
|
|
|
|
// map.forEach((key, value) -> {
|
|
|
|
|
// log.warn("key = {}, value = {}, type = {}", key, value, value.getClass());
|
|
|
|
|
// }
|
|
|
|
|
// );
|
|
|
|
|
// map.forEach((key, value) -> {
|
|
|
|
|
// log.warn("key = {}, value = {}, type = {}", key, value, value.getClass());
|
|
|
|
|
// }
|
|
|
|
|
// );
|
|
|
|
|
// QueryWrapper<LiquidTankTask> 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(BaseCol.ID);
|
|
|
|
|
// //
|
|
|
|
|
// IPage<LiquidTankTask> pages = taskService.page(Condition.getPage(query), qw);
|
|
|
|
|
// IPage<LiquidTankTaskVO> pagesVO = LiquidTankTaskWrapper.build().pageVO(pages);
|
|
|
|
|
//
|
|
|
|
|
// pagesVO.getRecords()
|
|
|
|
|
// .stream()
|
|
|
|
|
// .peek(taskService::setVOCopyValue)
|
|
|
|
|
// .collect(Collectors.toList());
|
|
|
|
|
// // key 自带排序
|
|
|
|
|
// // key: [作业槽]id
|
|
|
|
|
// // value: 任务数据列表
|
|
|
|
|
// Map<Long, List<LiquidTankTaskVO>> treeMap = new TreeMap<>();
|
|
|
|
|
// // 遍历赋值到treeMap中
|
|
|
|
|
// pagesVO.getRecords().forEach(vo -> {
|
|
|
|
|
// final Long wtId = vo.getWorkTankId();
|
|
|
|
|
// // 不包含,新建
|
|
|
|
|
// if (!treeMap.containsKey(wtId)) {
|
|
|
|
|
// List<LiquidTankTaskVO> list = new ArrayList<>();
|
|
|
|
|
// treeMap.put(wtId, list);
|
|
|
|
|
// }
|
|
|
|
|
// treeMap.get(wtId).add(vo);
|
|
|
|
|
// });
|
|
|
|
|
// // 前端要求匹配对象
|
|
|
|
|
// LiquidTankWaveDrawVO allVO = new LiquidTankWaveDrawVO();
|
|
|
|
|
// List<LiquidTankWaveDrawSingleVO> allChart = allVO.getWaveData();
|
|
|
|
|
// // 每个entry一个图表
|
|
|
|
|
// for (Map.Entry<Long, List<LiquidTankTaskVO>> entry : treeMap.entrySet()) {
|
|
|
|
|
// Long wtId = entry.getKey();
|
|
|
|
|
// // 数据列表
|
|
|
|
|
// List<LiquidTankTaskVO> list = entry.getValue();
|
|
|
|
|
// LiquidTankWaveDrawSingleVO singleChart = new LiquidTankWaveDrawSingleVO();
|
|
|
|
|
// for (LiquidTankTaskVO 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());
|
|
|
|
|
// LocalDate localDate = one.getRepeatFillDate().toLocalDate();
|
|
|
|
|
// singleChart.getTestDateList().add(localDate);
|
|
|
|
|
//// singleChart.getTestDateList().add(one.getRepeatFillDate());
|
|
|
|
|
// singleChart.setId(one.getId());
|
|
|
|
|
// }
|
|
|
|
|
// allChart.add(singleChart);
|
|
|
|
|
// }
|
|
|
|
|
// return R.data(allVO);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* [槽液检测任务复制] page分页 |
|
|
|
|
|