diff --git a/detection/src/main/java/com/njcn/gather/plan/controller/AdPlanController.java b/detection/src/main/java/com/njcn/gather/plan/controller/AdPlanController.java index dd8ff545..d23aae6e 100644 --- a/detection/src/main/java/com/njcn/gather/plan/controller/AdPlanController.java +++ b/detection/src/main/java/com/njcn/gather/plan/controller/AdPlanController.java @@ -386,12 +386,13 @@ public class AdPlanController extends BaseController { @ApiOperation("导出计划检测结果数据") @ApiImplicitParams({ @ApiImplicitParam(name = "planId", value = "计划id", required = true), + @ApiImplicitParam(name = "devIds", value = "被检设备ids", required = true), @ApiImplicitParam(name = "report", value = "是否导出报告, 0 否,1 是", required = true) }) - public void exportPlanCheckData(@RequestParam("planId") String planId,@RequestParam("report") Integer report, HttpServletResponse response) { + public void exportPlanCheckData(@RequestParam("planId") String planId, @RequestParam("devIds") String devIds, @RequestParam("report") Integer report, HttpServletResponse response) { String methodDescribe = getMethodDescribe("exportPlanCheckData"); - LogUtil.njcnDebug(log, "{},导出ID数据为:{}", methodDescribe, planId); - adPlanService.exportPlanCheckDataZip(planId,report, response); + LogUtil.njcnDebug(log, "{},导出ID数据为:{} {} {}", methodDescribe, planId, devIds, report); + adPlanService.exportPlanCheckDataZip(planId, StrUtil.split(devIds, StrUtil.COMMA), report, response); } diff --git a/detection/src/main/java/com/njcn/gather/plan/service/IAdPlanService.java b/detection/src/main/java/com/njcn/gather/plan/service/IAdPlanService.java index 22260d19..ce7a1c96 100644 --- a/detection/src/main/java/com/njcn/gather/plan/service/IAdPlanService.java +++ b/detection/src/main/java/com/njcn/gather/plan/service/IAdPlanService.java @@ -178,6 +178,7 @@ public interface IAdPlanService extends IService { * @param response */ void exportSubPlanDataZip(String planId, HttpServletResponse response); + /** * 项目成员导入子计划元信息 * @@ -191,10 +192,11 @@ public interface IAdPlanService extends IService { * 导出计划检测结果数据 * * @param planId + * @param devIds * @param report * @param response */ - void exportPlanCheckDataZip(String planId,Integer report, HttpServletResponse response); + void exportPlanCheckDataZip(String planId, List devIds, Integer report, HttpServletResponse response); /** * 导入计划检测结果数据 @@ -204,6 +206,7 @@ public interface IAdPlanService extends IService { * @param response */ boolean importSubPlanCheckDataZip(MultipartFile file, String patternId, HttpServletResponse response); + /** * 合并计划检测结果数据 * diff --git a/detection/src/main/java/com/njcn/gather/plan/service/impl/AdPlanServiceImpl.java b/detection/src/main/java/com/njcn/gather/plan/service/impl/AdPlanServiceImpl.java index f7835418..158b4f89 100644 --- a/detection/src/main/java/com/njcn/gather/plan/service/impl/AdPlanServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/plan/service/impl/AdPlanServiceImpl.java @@ -1828,28 +1828,48 @@ public class AdPlanServiceImpl extends ServiceImpl impleme } @Override - public void exportPlanCheckDataZip(String planId, Integer report, HttpServletResponse response) { + public void exportPlanCheckDataZip(String planId, List devIds, Integer report, HttpServletResponse response) { AdPlanCheckDataVO planCheckDataVO = new AdPlanCheckDataVO(); // 获取检测计划基本数据 AdPlan plan = this.getById(planId); planCheckDataVO.setPlan(plan); // 获取检测计划绑定的被检设备数据 - List devList = pqDevService.list(new LambdaQueryWrapper().eq(PqDev::getPlanId, planId)); + List devList = pqDevService.list(new LambdaQueryWrapper().eq(PqDev::getPlanId, planId).in(PqDev::getId, devIds)); + if (CollUtil.isEmpty(devList)) { + throw new BusinessException(CommonResponseEnum.FAIL, "选择的被检设备不存在"); + } planCheckDataVO.setDevList(devList); - List devIds = devList.stream().map(PqDev::getId).collect(Collectors.toList()); + List devIdList = devList.stream().map(PqDev::getId).collect(Collectors.toList()); // 被检设备状态统计 - List devSubList = pqDevSubService.list(new LambdaQueryWrapper().in(PqDevSub::getDevId, devIds)); + List devSubList = pqDevSubService.list(new LambdaQueryWrapper().in(PqDevSub::getDevId, devIdList)); planCheckDataVO.setDevSubList(devSubList); + // 被检设备监测点信息 + List monitorList = pqMonitorService.list(new LambdaQueryWrapper().in(PqMonitor::getDevId, devIdList)); + List monitorIds = monitorList.stream().map(PqMonitor::getId).collect(Collectors.toList()); // 设备通道匹对关系 - List pairList = adPairService.list(new LambdaQueryWrapper().eq(AdPair::getPlanId, planId)); + List pairList = adPairService.list(new LambdaQueryWrapper().eq(AdPair::getPlanId, planId).in(AdPair::getDevMonitorId, monitorIds)); planCheckDataVO.setPairList(pairList); // 获取计划检测结果数据表以及数据 Integer code = plan.getCode(); Map>> checkData = new HashMap<>(); + List dataTableNames = CollUtil.newArrayList("ad_harmonic_" + code, "ad_non_harmonic_" + code, "ad_harmonic_result_" + code, "ad_non_harmonic_result_" + code); - for (String dataTableName : dataTableNames) { - List> dataList = jdbcTemplate.queryForList("select * from " + dataTableName); - checkData.put(dataTableName, dataList); + if (CollUtil.isNotEmpty(monitorIds)) { + for (String dataTableName : dataTableNames) { + StringBuilder sql = new StringBuilder("select * from " + dataTableName); + + sql.append(" where Dev_Monitor_Id in ("); + for (int i = 0; i < monitorIds.size(); i++) { + sql.append("'").append(monitorIds.get(i)).append("'"); + if (i < monitorIds.size() - 1) { + sql.append(","); + } + } + sql.append(")"); + + List> dataList = jdbcTemplate.queryForList(sql.toString()); + checkData.put(dataTableName, dataList); + } } planCheckDataVO.setCheckData(checkData);