检测计划导出,微调被检设备、误差体系

This commit is contained in:
caozehui
2024-12-12 15:34:55 +08:00
parent b801497a33
commit e48efef8d6
15 changed files with 399 additions and 127 deletions

View File

@@ -3,6 +3,7 @@ package com.njcn.gather.device.device.controller;
import cn.afterturn.easypoi.excel.ExcelImportUtil; import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams; import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.annotation.OperateInfo;
@@ -17,8 +18,12 @@ import com.njcn.gather.device.device.pojo.po.PqDev;
import com.njcn.gather.device.device.pojo.vo.PqDevExcel; import com.njcn.gather.device.device.pojo.vo.PqDevExcel;
import com.njcn.gather.device.device.pojo.vo.PqDevVO; import com.njcn.gather.device.device.pojo.vo.PqDevVO;
import com.njcn.gather.device.device.service.IPqDevService; import com.njcn.gather.device.device.service.IPqDevService;
import com.njcn.gather.device.pojo.constant.DevConst;
import com.njcn.gather.device.pojo.enums.DevResponseEnum; import com.njcn.gather.device.pojo.enums.DevResponseEnum;
import com.njcn.gather.system.dictionary.pojo.po.DictData;
import com.njcn.gather.system.dictionary.service.IDictDataService;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import com.njcn.web.utils.ExcelUtil;
import com.njcn.web.utils.HttpResultUtil; import com.njcn.web.utils.HttpResultUtil;
import com.njcn.web.utils.PoiUtil; import com.njcn.web.utils.PoiUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@@ -48,6 +53,8 @@ import java.util.Map;
public class PqDevController extends BaseController { public class PqDevController extends BaseController {
private final IPqDevService pqDevService; private final IPqDevService pqDevService;
private final IDictDataService dictDataService;
@OperateInfo @OperateInfo
@PostMapping("/list") @PostMapping("/list")
@@ -159,7 +166,16 @@ public class PqDevController extends BaseController {
public void export(@RequestBody @Validated PqDevParam.QueryParam queryParam) { public void export(@RequestBody @Validated PqDevParam.QueryParam queryParam) {
String methodDescribe = getMethodDescribe("export"); String methodDescribe = getMethodDescribe("export");
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, queryParam); LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, queryParam);
pqDevService.exportPqDevData(queryParam); DictData dictData = dictDataService.getDictDataById(queryParam.getPattern());
if (ObjectUtil.isNotNull(dictData)) {
if (DevConst.PATTERN_CONTRAST.equals(dictData.getCode())) {
List<Map<String, Object>> sheetList = pqDevService.getContrastExportSheetList(queryParam);
ExcelUtil.exportExcel("被检设备导出数据.xlsx", sheetList);
} else {
List<Map<String, Object>> sheetList = pqDevService.getSimOrDigitExportSheetList(queryParam);
ExcelUtil.exportExcel("被检设备导出数据.xlsx", sheetList);
}
}
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@@ -174,13 +190,24 @@ public class PqDevController extends BaseController {
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/listBoundByPlanId") @PostMapping("/listByPlanId")
@ApiOperation("根据检测计划id查询出所有已绑定的设备") @ApiOperation("根据检测计划id查询出所有已绑定的设备")
@ApiImplicitParam(name = "planId", value = "计划id", required = true) @ApiImplicitParam(name = "planId", value = "计划id", required = true)
public HttpResult<List<PqDev>> listBoundByPlanId(@RequestBody @Validated PqDevParam.QueryParam param) { public HttpResult<List<PqDev>> listByPlanId(@RequestBody @Validated PqDevParam.QueryParam param) {
String methodDescribe = getMethodDescribe("listBoundByPlanId"); String methodDescribe = getMethodDescribe("listByPlanId");
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, param); LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, param);
List<PqDev> result = pqDevService.listBoundByPlanId(param); List<PqDev> result = pqDevService.listByPlanId(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
} }
// @OperateInfo(info = LogEnum.BUSINESS_COMMON)
// @PostMapping("/listUnDocumentByPlanId")
// @ApiOperation("根据检测计划id查询出所有已绑定未归档的设备")
// @ApiImplicitParam(name = "planId", value = "计划id", required = true)
// public HttpResult<List<PqDev>> listUnDocumentByPlanId(@RequestBody @Validated PqDevParam.QueryParam param) {
// String methodDescribe = getMethodDescribe("listUnDocumentByPlanId");
// LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, param);
// List<PqDev> result = pqDevService.listUnDocumentByPlanId(param);
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
// }
} }

View File

@@ -137,6 +137,11 @@ public class PqDevParam {
@Min(value = 0, message = DevValidMessage.RECHECK_NUM_FORMAT_ERROR) @Min(value = 0, message = DevValidMessage.RECHECK_NUM_FORMAT_ERROR)
private Integer reCheckNum; private Integer reCheckNum;
@ApiModelProperty("是否支持系数校准")
@Min(value = 0, message = DevValidMessage.FACTOR_FLAG_FORMAT_ERROR)
@Max(value = 1, message = DevValidMessage.FACTOR_FLAG_FORMAT_ERROR)
private String factorFlag;
@ApiModelProperty("监测点台账列表") @ApiModelProperty("监测点台账列表")
@Valid @Valid
private List<PqMonitorParam> monitorList; private List<PqMonitorParam> monitorList;
@@ -155,7 +160,7 @@ public class PqDevParam {
@ApiModelProperty("检测状态") @ApiModelProperty("检测状态")
@Min(value = 0, message = DevValidMessage.CHECK_STATE_FORMAT_ERROR) @Min(value = 0, message = DevValidMessage.CHECK_STATE_FORMAT_ERROR)
@Max(value = 2, message = DevValidMessage.CHECK_STATE_FORMAT_ERROR) @Max(value = 3, message = DevValidMessage.CHECK_STATE_FORMAT_ERROR)
private Integer checkState; private Integer checkState;
@ApiModelProperty("检测结果") @ApiModelProperty("检测结果")
@@ -185,7 +190,6 @@ public class PqDevParam {
private String name; private String name;
@ApiModelProperty(value = "设备模式,字典表(数字、模拟、比对)") @ApiModelProperty(value = "设备模式,字典表(数字、模拟、比对)")
// @NotBlank(message = DevValidMessage.PATTERN_NOT_BLANK)
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = DevValidMessage.PATTERN_FORMAT_ERROR) @Pattern(regexp = PatternRegex.SYSTEM_ID, message = DevValidMessage.PATTERN_FORMAT_ERROR)
private String pattern; private String pattern;
@@ -196,10 +200,10 @@ public class PqDevParam {
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = DevValidMessage.PLAN_ID_FORMAT_ERROR) @Pattern(regexp = PatternRegex.SYSTEM_ID, message = DevValidMessage.PLAN_ID_FORMAT_ERROR)
private String planId; private String planId;
@ApiModelProperty("检测状态") @ApiModelProperty("检测状态列表")
private List<
@Min(value = 0, message = DevValidMessage.CHECK_STATE_FORMAT_ERROR) @Min(value = 0, message = DevValidMessage.CHECK_STATE_FORMAT_ERROR)
@Max(value = 2, message = DevValidMessage.CHECK_STATE_FORMAT_ERROR) @Max(value = 3, message = DevValidMessage.CHECK_STATE_FORMAT_ERROR) Integer> checkStateList;
private Integer checkState;
@ApiModelProperty("检测结果") @ApiModelProperty("检测结果")
@Min(value = 0, message = DevValidMessage.CHECK_RESULT_FORMAT_ERROR) @Min(value = 0, message = DevValidMessage.CHECK_RESULT_FORMAT_ERROR)

View File

@@ -72,11 +72,28 @@ public interface IPqDevService extends IService<PqDev> {
void importPqDevData(List<PqDevExcel.ContrastImportData> sgEventExcels); void importPqDevData(List<PqDevExcel.ContrastImportData> sgEventExcels);
/** /**
* 导出被检设备信息 * 根据检测计划planIds获取被检设备设备导出时所需的SheetMap
*
* @param planIds
* @return SheetMap
*/
Map<String, Object> getExportSheetMap(List<String> planIds, Class clazz);
/**
* 获取模拟式||数字式设备导出时所需的SheetList
* *
* @param queryParam 查询参数 * @param queryParam 查询参数
* @return SheetList
*/ */
void exportPqDevData(PqDevParam.QueryParam queryParam); List<Map<String, Object>> getSimOrDigitExportSheetList(PqDevParam.QueryParam queryParam);
/**
* 获取比对式设备导出时所需的SheetList (包含与之关联的监控点信息)
*
* @param queryParam 查询参数
* @return SheetList
*/
List<Map<String, Object>> getContrastExportSheetList(PqDevParam.QueryParam queryParam);
/** /**
* 获取所有未绑定的设备 * 获取所有未绑定的设备
@@ -92,7 +109,7 @@ public interface IPqDevService extends IService<PqDev> {
* @param param 计划id * @param param 计划id
* @return 绑定的设备列表 * @return 绑定的设备列表
*/ */
List<PqDev> listBoundByPlanId(PqDevParam.QueryParam param); List<PqDev> listByPlanId(PqDevParam.QueryParam param);
/** /**
* 绑定计划 * 绑定计划
@@ -117,4 +134,11 @@ public interface IPqDevService extends IService<PqDev> {
* @return * @return
*/ */
PqDevVO getPqDevById(String id); PqDevVO getPqDevById(String id);
/**
* 获取所有非未检测状态的设备
*
* @return 所有非未检测状态的设备列表
*/
List<PqDev> listNotUnchecked();
} }

View File

@@ -4,6 +4,7 @@ import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -50,25 +51,7 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
@Override @Override
public Page<PqDev> listPqDevs(PqDevParam.QueryParam queryParam) { public Page<PqDev> listPqDevs(PqDevParam.QueryParam queryParam) {
QueryWrapper<PqDev> queryWrapper = new QueryWrapper<>(); Page<PqDev> page = this.page(new Page<>(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam)), this.getQueryWrapper(queryParam));
if (ObjectUtil.isNotNull(queryParam)) {
queryWrapper
.like(StrUtil.isNotBlank(queryParam.getName()), "pq_dev.name", queryParam.getName())
.eq(StrUtil.isNotBlank(queryParam.getPattern()), "pq_dev.pattern", queryParam.getPattern())
.eq(StrUtil.isNotBlank(queryParam.getManufacturer()), "pq_dev.manufacturer", queryParam.getManufacturer())
.between(ObjectUtil.isAllNotEmpty(queryParam.getSearchBeginTime(), queryParam.getSearchEndTime()), "pq_dev.Create_Date", queryParam.getSearchBeginTime(), queryParam.getSearchEndTime());
//排序
if (ObjectUtil.isAllNotEmpty(queryParam.getSortBy(), queryParam.getOrderBy())) {
queryWrapper.orderBy(true, queryParam.getOrderBy().equals(DbConstant.ASC), StrUtil.toUnderlineCase(queryParam.getSortBy()));
} else {
//没有排序参数默认根据sort字段排序没有排序字段的根据updateTime更新时间排序
queryWrapper.orderBy(true, true, "pq_dev.Create_Time");
}
} else {
queryWrapper.orderBy(true, true, "pq_dev.Create_Time");
}
queryWrapper.eq("pq_dev.state", DataStateEnum.ENABLE.getCode());
Page<PqDev> page = this.page(new Page<>(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam)), queryWrapper);
page.getRecords().forEach(p -> { page.getRecords().forEach(p -> {
if (ObjectUtil.isNotNull(p.getSeries())) { if (ObjectUtil.isNotNull(p.getSeries())) {
p.setSeries(DeviceUtil.decoderString(1, p.getSeries())); p.setSeries(DeviceUtil.decoderString(1, p.getSeries()));
@@ -82,6 +65,8 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
@Override @Override
public boolean addPqDev(PqDevParam pqDevParam) { public boolean addPqDev(PqDevParam pqDevParam) {
this.checkRepeat(pqDevParam, false);
PqDev pqDev = new PqDev(); PqDev pqDev = new PqDev();
BeanUtil.copyProperties(pqDevParam, pqDev); BeanUtil.copyProperties(pqDevParam, pqDev);
if (pqDevParam.getEncryptionFlag() == 1) { if (pqDevParam.getEncryptionFlag() == 1) {
@@ -111,6 +96,8 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
@Override @Override
public boolean updatePqDev(PqDevParam.UpdateParam updateParam) { public boolean updatePqDev(PqDevParam.UpdateParam updateParam) {
this.checkRepeat(updateParam, true);
PqDev pqDev = new PqDev(); PqDev pqDev = new PqDev();
BeanUtil.copyProperties(updateParam, pqDev); BeanUtil.copyProperties(updateParam, pqDev);
if (Objects.nonNull(pqDev.getSeries())) { if (Objects.nonNull(pqDev.getSeries())) {
@@ -177,73 +164,59 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
} }
@Override @Override
public void exportPqDevData(PqDevParam.QueryParam queryParam) { public Map<String, Object> getExportSheetMap(List<String> planIds, Class clazz) {
QueryWrapper<PqDev> queryWrapper = new QueryWrapper<>(); List<PqDev> devList = new ArrayList<>();
if (ObjectUtil.isNotNull(queryParam)) { if (ObjectUtil.isNotEmpty(planIds)) {
queryWrapper devList.addAll(this.lambdaQuery().in(PqDev::getPlanId, planIds).eq(PqDev::getState, DataStateEnum.ENABLE.getCode()).orderBy(true, true, PqDev::getCreateTime).list());
.like(StrUtil.isNotBlank(queryParam.getName()), "pq_dev.name", queryParam.getName())
.eq(StrUtil.isNotBlank(queryParam.getPattern()), "pq_dev.pattern", queryParam.getPattern())
.eq(StrUtil.isNotBlank(queryParam.getManufacturer()), "pq_dev.manufacturer", queryParam.getManufacturer())
.between(ObjectUtil.isAllNotEmpty(queryParam.getSearchBeginTime(), queryParam.getSearchEndTime()), "pq_dev.Create_Date", queryParam.getSearchBeginTime(), queryParam.getSearchEndTime());
//排序
if (ObjectUtil.isAllNotEmpty(queryParam.getSortBy(), queryParam.getOrderBy())) {
queryWrapper.orderBy(true, queryParam.getOrderBy().equals(DbConstant.ASC), StrUtil.toUnderlineCase(queryParam.getSortBy()));
} else {
//没有排序参数默认根据sort字段排序没有排序字段的根据updateTime更新时间排序
queryWrapper.orderBy(true, false, "pq_dev.Create_Time");
} }
} else { this.visualize(devList);
queryWrapper.orderBy(true, false, "pq_dev.Create_Time");
List<Object> pqDevExcels = BeanUtil.copyToList(devList, clazz);
Map<String, Object> sheetMap = new HashMap<>();
ExportParams exportParams = new ExportParams();
exportParams.setSheetName("被检设备");
sheetMap.put("title", exportParams);
sheetMap.put("data", pqDevExcels);
sheetMap.put("entity", PqDevExcel.ContrastExportData.class);
return sheetMap;
} }
queryWrapper.eq("pq_dev.state", DataStateEnum.ENABLE.getCode());
List<PqDev> pqDevs = this.list(queryWrapper); @Override
public List<Map<String, Object>> getSimOrDigitExportSheetList(PqDevParam.QueryParam queryParam) {
List<PqDev> pqDevs = this.list(this.getQueryWrapper(queryParam));
this.visualize(pqDevs); this.visualize(pqDevs);
DictData dictData = dictDataService.getDictDataById(queryParam.getPattern());
if (ObjectUtil.isNotNull(dictData)) {
if (DevConst.PATTERN_CONTRAST.equals(dictData.getCode())) {
List<PqDevExcel.ContrastExportData> pqDevExcels = BeanUtil.copyToList(pqDevs, PqDevExcel.ContrastExportData.class);
Map<String, Object> sheet1 = new HashMap<>();
ExportParams exportParams1 = new ExportParams();
exportParams1.setSheetName("被检设备");
sheet1.put("title", exportParams1);
sheet1.put("data", pqDevExcels);
sheet1.put("entity", PqDevExcel.ContrastExportData.class);
List<PqMonitorExcel.ExportData> pqMonitorExcels = new ArrayList<>();
for (int i = 0; i < pqDevs.size(); i++) {
List<PqMonitor> pqMonitors = pqMonitorService.listPqMonitorByDevId(pqDevs.get(i).getId());
if (ObjectUtil.isNotEmpty(pqMonitors)) {
List<PqMonitorExcel.ExportData> exportData = BeanUtil.copyToList(pqMonitors, PqMonitorExcel.ExportData.class);
int finalI = i;
exportData.forEach(data -> {
// 给监测点台账添加设备名称
data.setDevName(pqDevs.get(finalI).getName());
data.setPtType(dictDataService.getDictDataById(data.getPtType()).getName());
});
pqMonitorExcels.addAll(exportData);
}
}
Map<String, Object> sheet2 = new HashMap<>();
ExportParams exportParams2 = new ExportParams();
exportParams2.setSheetName("监测点台账");
sheet2.put("title", exportParams2);
sheet2.put("data", pqMonitorExcels);
sheet2.put("entity", PqMonitorExcel.ExportData.class);
List<Map<String, Object>> sheetsList = new ArrayList<>();
sheetsList.add(sheet1);
sheetsList.add(sheet2);
ExcelUtil.exportExcel("被检设备导出数据.xlsx", sheetsList);
// ExcelUtil.exportExcel("被检设备导出数据.xlsx", "被检设备", PqDevExcel.ContrastExportData.class, pqDevExcels);
} else {
List<PqDevExcel.SimulateAndDigitalExportData> pqDevExcels = BeanUtil.copyToList(pqDevs, PqDevExcel.SimulateAndDigitalExportData.class); List<PqDevExcel.SimulateAndDigitalExportData> pqDevExcels = BeanUtil.copyToList(pqDevs, PqDevExcel.SimulateAndDigitalExportData.class);
ExcelUtil.exportExcel("被检设备导出数据.xlsx", "被检设备", PqDevExcel.SimulateAndDigitalExportData.class, pqDevExcels);
} Map<String, Object> sheetMap = new HashMap<>();
ExportParams exportParams = new ExportParams();
exportParams.setSheetName("被检设备");
sheetMap.put("title", exportParams);
sheetMap.put("data", pqDevExcels);
sheetMap.put("entity", PqDevExcel.SimulateAndDigitalExportData.class);
return Collections.singletonList(sheetMap);
} }
@Override
public List<Map<String, Object>> getContrastExportSheetList(PqDevParam.QueryParam queryParam) {
List<PqDev> pqDevs = this.list(this.getQueryWrapper(queryParam));
this.visualize(pqDevs);
List<PqDevExcel.ContrastExportData> pqDevExcels = BeanUtil.copyToList(pqDevs, PqDevExcel.ContrastExportData.class);
Map<String, Object> sheetMap1 = new HashMap<>();
ExportParams exportParams = new ExportParams();
exportParams.setSheetName("被检设备");
sheetMap1.put("title", exportParams);
sheetMap1.put("data", pqDevExcels);
sheetMap1.put("entity", PqDevExcel.ContrastExportData.class);
Map<String, Object> sheetMap2 = pqMonitorService.getExportSheetMap(pqDevs);
List<Map<String, Object>> sheetList = new ArrayList<>();
sheetList.add(sheetMap1);
sheetList.add(sheetMap2);
return sheetList;
} }
@Override @Override
@@ -259,11 +232,11 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
} }
@Override @Override
public List<PqDev> listBoundByPlanId(PqDevParam.QueryParam param) { public List<PqDev> listByPlanId(PqDevParam.QueryParam param) {
List<PqDev> pqDevList = this.lambdaQuery() List<PqDev> pqDevList = this.lambdaQuery()
.eq(StrUtil.isNotBlank(param.getPlanId()), PqDev::getPlanId, param.getPlanId()) .eq(StrUtil.isNotBlank(param.getPlanId()), PqDev::getPlanId, param.getPlanId())
.eq(StrUtil.isNotBlank(param.getName()), PqDev::getName, param.getName()) .eq(StrUtil.isNotBlank(param.getName()), PqDev::getName, param.getName())
.eq(ObjectUtil.isNotNull(param.getCheckState()), PqDev::getCheckState, param.getCheckState()) .in(ObjectUtil.isNotEmpty(param.getCheckStateList()), PqDev::getCheckState, param.getCheckStateList())
.eq(ObjectUtil.isNotNull(param.getCheckResult()), PqDev::getCheckResult, param.getCheckResult()) .eq(ObjectUtil.isNotNull(param.getCheckResult()), PqDev::getCheckResult, param.getCheckResult())
.eq(PqDev::getState, DataStateEnum.ENABLE.getCode()).list(); .eq(PqDev::getState, DataStateEnum.ENABLE.getCode()).list();
// List<Map<String, Object>> result = pqDevList.stream().map(pqDev -> { // List<Map<String, Object>> result = pqDevList.stream().map(pqDev -> {
@@ -275,6 +248,7 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
return pqDevList; return pqDevList;
} }
@Override @Override
public boolean bind(AdPlanParam.BindPlanParam bindPlanParam) { public boolean bind(AdPlanParam.BindPlanParam bindPlanParam) {
String planId = bindPlanParam.getPlanId(); String planId = bindPlanParam.getPlanId();
@@ -282,7 +256,7 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
PqDevParam.QueryParam queryParam = new PqDevParam.QueryParam(); PqDevParam.QueryParam queryParam = new PqDevParam.QueryParam();
queryParam.setPlanId(planId); queryParam.setPlanId(planId);
List<String> existedBoundPqDevIds = this.listBoundByPlanId(queryParam).stream().map(PqDev::getId).collect(Collectors.toList()); List<String> existedBoundPqDevIds = this.listByPlanId(queryParam).stream().map(PqDev::getId).collect(Collectors.toList());
//共有的(交集) //共有的(交集)
List<String> intersection = existedBoundPqDevIds.stream().filter(pqDevIds::contains).collect(Collectors.toList()); List<String> intersection = existedBoundPqDevIds.stream().filter(pqDevIds::contains).collect(Collectors.toList());
@@ -332,6 +306,34 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
return pqDevVO; return pqDevVO;
} }
@Override
public List<PqDev> listNotUnchecked() {
return this.lambdaQuery().ne(PqDev::getCheckState, CheckStateEnum.UNCHECKED.getValue()).eq(PqDev::getState, DataStateEnum.ENABLE.getCode()).list();
}
/**
* 获取查询条件wrapper
*
* @param queryParam 查询条件
* @return
*/
private Wrapper getQueryWrapper(PqDevParam.QueryParam queryParam) {
QueryWrapper<PqDev> queryWrapper = new QueryWrapper<>();
if (ObjectUtil.isNotNull(queryParam)) {
queryWrapper
.like(StrUtil.isNotBlank(queryParam.getName()), "pq_dev.name", queryParam.getName())
.eq(StrUtil.isNotBlank(queryParam.getPattern()), "pq_dev.pattern", queryParam.getPattern())
.eq(StrUtil.isNotBlank(queryParam.getManufacturer()), "pq_dev.manufacturer", queryParam.getManufacturer())
.between(ObjectUtil.isAllNotEmpty(queryParam.getSearchBeginTime(), queryParam.getSearchEndTime()), "pq_dev.Create_Date", queryParam.getSearchBeginTime(), queryParam.getSearchEndTime());
//排序
if (ObjectUtil.isAllNotEmpty(queryParam.getSortBy(), queryParam.getOrderBy())) {
queryWrapper.orderBy(true, queryParam.getOrderBy().equals(DbConstant.ASC), StrUtil.toUnderlineCase(queryParam.getSortBy()));
}
}
queryWrapper.eq("pq_dev.state", DataStateEnum.ENABLE.getCode()).orderBy(true, true, "pq_dev.Create_Time");
return queryWrapper;
}
/** /**
* 获取检测状态饼状图数据 * 获取检测状态饼状图数据
* *

View File

@@ -19,11 +19,6 @@ import java.util.List;
@Data @Data
public class PqErrSysParam { public class PqErrSysParam {
@ApiModelProperty(value = "误差体系名称", required = true)
@NotBlank(message = DevValidMessage.NAME_NOT_BLANK)
@Pattern(regexp = PatternRegex.ERR_SYS_NAME, message = DevValidMessage.NAME_FORMAT_ERROR)
private String name;
@ApiModelProperty(value = "参照标准名称", required = true) @ApiModelProperty(value = "参照标准名称", required = true)
@NotBlank(message = DevValidMessage.STANDARD_NAME_NOT_BLANK) @NotBlank(message = DevValidMessage.STANDARD_NAME_NOT_BLANK)
@Pattern(regexp = PatternRegex.ERR_SYS_NAME, message = DevValidMessage.STANDARD_NAME_FORMAT_ERROR) @Pattern(regexp = PatternRegex.ERR_SYS_NAME, message = DevValidMessage.STANDARD_NAME_FORMAT_ERROR)

View File

@@ -22,6 +22,7 @@ import com.njcn.gather.system.dictionary.service.IDictTreeService;
import com.njcn.web.factory.PageFactory; import com.njcn.web.factory.PageFactory;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -183,4 +184,17 @@ public class PqErrSysServiceImpl extends ServiceImpl<PqErrSysMapper, PqErrSys> i
// pqErrSys.getPqErrSysDtlsList().forEach(pqErrSysDtls -> pqErrSysDtls.setId(UUID.randomUUID().toString().replaceAll("-", ""))); // pqErrSys.getPqErrSysDtlsList().forEach(pqErrSysDtls -> pqErrSysDtls.setId(UUID.randomUUID().toString().replaceAll("-", "")));
// return this.save(pqErrSys); // return this.save(pqErrSys);
// } // }
/**
* 生成误差体系名称(标准号+年份+设备等级)
*
* @return 检测源名称
*/
private String generatePqSourceName(PqErrSysParam param) {
DictData devLevel = dictDataService.getDictDataById(param.getDevLevel());
if (ObjectUtils.allNotNull(param.getStandardName(), param.getStandardTime(), devLevel)) {
return param.getStandardName() + "-" + param.getStandardTime() + "-" + devLevel.getName();
}
throw new BusinessException(DevResponseEnum.ERR_SOURCE_GEN_NAME_ERROR);
}
} }

View File

@@ -1,10 +1,12 @@
package com.njcn.gather.device.monitor.service; package com.njcn.gather.device.monitor.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.gather.device.device.pojo.po.PqDev;
import com.njcn.gather.device.monitor.pojo.param.PqMonitorParam; import com.njcn.gather.device.monitor.pojo.param.PqMonitorParam;
import com.njcn.gather.device.monitor.pojo.po.PqMonitor; import com.njcn.gather.device.monitor.pojo.po.PqMonitor;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author caozehui * @author caozehui
@@ -45,4 +47,12 @@ public interface IPqMonitorService extends IService<PqMonitor> {
* @return 修改成功返回true否则返回false * @return 修改成功返回true否则返回false
*/ */
boolean updatePqMonitorByDevId(String devId, List<PqMonitorParam> paramList); boolean updatePqMonitorByDevId(String devId, List<PqMonitorParam> paramList);
/**
* 根据被检设备获取导出监测点数据时所需的SheetMap
*
* @param devList 被检设备列表
* @return SheetMap
*/
Map<String, Object> getExportSheetMap(List<PqDev> devList);
} }

View File

@@ -1,17 +1,25 @@
package com.njcn.gather.device.monitor.service.impl; package com.njcn.gather.device.monitor.service.impl;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.gather.device.device.pojo.po.PqDev;
import com.njcn.gather.device.monitor.mapper.PqMonitorMapper; import com.njcn.gather.device.monitor.mapper.PqMonitorMapper;
import com.njcn.gather.device.monitor.pojo.param.PqMonitorParam; import com.njcn.gather.device.monitor.pojo.param.PqMonitorParam;
import com.njcn.gather.device.monitor.pojo.po.PqMonitor; import com.njcn.gather.device.monitor.pojo.po.PqMonitor;
import com.njcn.gather.device.monitor.pojo.vo.PqMonitorExcel;
import com.njcn.gather.device.monitor.service.IPqMonitorService; import com.njcn.gather.device.monitor.service.IPqMonitorService;
import com.njcn.gather.system.dictionary.service.IDictDataService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author caozehui * @author caozehui
@@ -22,6 +30,8 @@ import java.util.List;
@RequiredArgsConstructor @RequiredArgsConstructor
public class PqMonitorServiceImpl extends ServiceImpl<PqMonitorMapper, PqMonitor> implements IPqMonitorService { public class PqMonitorServiceImpl extends ServiceImpl<PqMonitorMapper, PqMonitor> implements IPqMonitorService {
private final IDictDataService dictDataService;
@Override @Override
public List<PqMonitor> listPqMonitorByDevId(String devId) { public List<PqMonitor> listPqMonitorByDevId(String devId) {
return this.lambdaQuery().eq(PqMonitor::getDevId, devId).list(); return this.lambdaQuery().eq(PqMonitor::getDevId, devId).list();
@@ -50,4 +60,32 @@ public class PqMonitorServiceImpl extends ServiceImpl<PqMonitorMapper, PqMonitor
pqMonitorList.forEach(pqMonitor -> pqMonitor.setDevId(devId)); pqMonitorList.forEach(pqMonitor -> pqMonitor.setDevId(devId));
return this.saveBatch(pqMonitorList); return this.saveBatch(pqMonitorList);
} }
@Override
public Map<String, Object> getExportSheetMap(List<PqDev> devList) {
List<PqMonitorExcel.ExportData> pqMonitorExcels = new ArrayList<>();
for (int i = 0; i < devList.size(); i++) {
List<PqMonitor> pqMonitors = this.listPqMonitorByDevId(devList.get(i).getId());
if (ObjectUtil.isNotEmpty(pqMonitors)) {
List<PqMonitorExcel.ExportData> exportData = BeanUtil.copyToList(pqMonitors, PqMonitorExcel.ExportData.class);
int finalI = i;
exportData.forEach(data -> {
// 给监测点台账添加设备名称
data.setDevName(devList.get(finalI).getName());
data.setPtType(dictDataService.getDictDataById(data.getPtType()).getName());
});
pqMonitorExcels.addAll(exportData);
}
}
Map<String, Object> sheetMap = new HashMap<>();
ExportParams exportParams = new ExportParams();
exportParams.setSheetName("监测点台账");
sheetMap.put("title", exportParams);
sheetMap.put("data", pqMonitorExcels);
sheetMap.put("entity", PqMonitorExcel.ExportData.class);
return sheetMap;
}
} }

View File

@@ -12,6 +12,7 @@ import com.njcn.gather.device.plan.pojo.param.AdPlanParam;
import com.njcn.gather.device.plan.pojo.vo.AdPlanVO; import com.njcn.gather.device.plan.pojo.vo.AdPlanVO;
import com.njcn.gather.device.plan.service.IAdPlanService; import com.njcn.gather.device.plan.service.IAdPlanService;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import com.njcn.web.utils.ExcelUtil;
import com.njcn.web.utils.HttpResultUtil; import com.njcn.web.utils.HttpResultUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@@ -121,6 +122,17 @@ public class AdPlanController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
} }
@OperateInfo(operateType = OperateType.DOWNLOAD)
@PostMapping("/export")
@ApiOperation("导出检测计划")
@ApiImplicitParam(name = "queryParam", value = "查询参数", required = true)
public void export(@RequestBody @Validated AdPlanParam.QueryParam queryParam) {
String methodDescribe = getMethodDescribe("download");
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, queryParam);
List<Map<String, Object>> sheetList = adPlanService.getAdPlanEexportSheetList(queryParam);
ExcelUtil.exportExcel("检测计划导出数据.xlsx", sheetList);
}
@OperateInfo @OperateInfo
@GetMapping("/getPieData") @GetMapping("/getPieData")
@ApiOperation("获取饼状图数据") @ApiOperation("获取饼状图数据")

View File

@@ -23,4 +23,13 @@ public enum DataSourceEnum {
this.value = value; this.value = value;
this.msg = msg; this.msg = msg;
} }
public static String getMsgByValue(String value) {
for (DataSourceEnum dataSourceEnum : DataSourceEnum.values()) {
if (dataSourceEnum.getValue().equals(value)) {
return dataSourceEnum.getMsg();
}
}
return null;
}
} }

View File

@@ -0,0 +1,48 @@
package com.njcn.gather.device.plan.pojo.vo;
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.njcn.gather.device.pojo.constant.DevValidMessage;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @author caozehui
* @data 2024-12-11
*/
@Data
public class AdPlanExcel {
@Excel(name = "名称", width = 40)
private String name;
@Excel(name = "模式", width = 20)
@NotBlank(message = DevValidMessage.PATTERN_NOT_BLANK)
private String pattern;
@Excel(name = "父计划id", width = 25)
private String fatherPlanId;
@Excel(name = "数据源", width = 20)
private String datasource;
@Excel(name = "脚本", width = 50)
private String script;
@Excel(name = "误差体系", width = 30)
private String errorSys;
@Excel(name = "是否做守时检测", width = 15, replace = {"否_0", "是_1"})
private Integer timeCheck;
@Excel(name = "检测状态", width = 10, replace = {"未检_0", "检测中_1", "检测完成_2"})
private Integer testState;
@Excel(name = "报告生成状态", width = 15, replace = {"未生成_0", "部分生成_1", "全部生成_2"})
private Integer reportState;
@Excel(name = "检测结果", width = 10, replace = {"不符合_0", "符合_1", "/_2"})
private Integer result;
@Excel(name = "数据表后缀", width = 20)
private Integer code;
}

View File

@@ -54,4 +54,12 @@ public interface IAdPlanService extends IService<AdPlan> {
* @return 检测计划列表 * @return 检测计划列表
*/ */
List<Map<String, Object>> listByPattern(String pattern); List<Map<String, Object>> listByPattern(String pattern);
/**
* 获取检测计划导出时所需的SheetList (包含与之关联的设备信息)
*
* @param queryParam 查询参数
* @return SheetList
*/
List<Map<String, Object>> getAdPlanEexportSheetList(AdPlanParam.QueryParam queryParam);
} }

View File

@@ -1,8 +1,10 @@
package com.njcn.gather.device.plan.service.impl; package com.njcn.gather.device.plan.service.impl;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -10,11 +12,15 @@ import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.gather.device.device.pojo.enums.TimeCheckResultEnum; import com.njcn.gather.device.device.pojo.enums.TimeCheckResultEnum;
import com.njcn.gather.device.device.pojo.param.PqDevParam; import com.njcn.gather.device.device.pojo.param.PqDevParam;
import com.njcn.gather.device.device.pojo.po.PqDev;
import com.njcn.gather.device.device.pojo.vo.PqDevExcel;
import com.njcn.gather.device.device.service.IPqDevService; import com.njcn.gather.device.device.service.IPqDevService;
import com.njcn.gather.device.err.service.IPqErrSysService; import com.njcn.gather.device.err.service.IPqErrSysService;
import com.njcn.gather.device.plan.mapper.AdPlanMapper; import com.njcn.gather.device.plan.mapper.AdPlanMapper;
import com.njcn.gather.device.plan.pojo.enums.DataSourceEnum;
import com.njcn.gather.device.plan.pojo.param.AdPlanParam; import com.njcn.gather.device.plan.pojo.param.AdPlanParam;
import com.njcn.gather.device.plan.pojo.po.AdPlan; import com.njcn.gather.device.plan.pojo.po.AdPlan;
import com.njcn.gather.device.plan.pojo.vo.AdPlanExcel;
import com.njcn.gather.device.plan.pojo.vo.AdPlanVO; import com.njcn.gather.device.plan.pojo.vo.AdPlanVO;
import com.njcn.gather.device.plan.service.IAdPlanService; import com.njcn.gather.device.plan.service.IAdPlanService;
import com.njcn.gather.device.plan.service.IAdPlanSourceService; import com.njcn.gather.device.plan.service.IAdPlanSourceService;
@@ -25,6 +31,8 @@ import com.njcn.gather.device.pojo.enums.DevResponseEnum;
import com.njcn.gather.device.pojo.enums.PlanReportStateEnum; import com.njcn.gather.device.pojo.enums.PlanReportStateEnum;
import com.njcn.gather.device.script.service.IPqScriptService; import com.njcn.gather.device.script.service.IPqScriptService;
import com.njcn.gather.device.source.pojo.po.PqSource; import com.njcn.gather.device.source.pojo.po.PqSource;
import com.njcn.gather.system.dictionary.pojo.po.DictData;
import com.njcn.gather.system.dictionary.service.IDictDataService;
import com.njcn.web.factory.PageFactory; import com.njcn.web.factory.PageFactory;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -47,19 +55,11 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
private final IPqErrSysService pqErrSysService; private final IPqErrSysService pqErrSysService;
private final IAdPlanSourceService adPlanSourceService; private final IAdPlanSourceService adPlanSourceService;
private final IPqDevService pqDevService; private final IPqDevService pqDevService;
private final IDictDataService dictDataService;
@Override @Override
public Page<AdPlanVO> listAdPlan(AdPlanParam.QueryParam queryParam) { public Page<AdPlanVO> listAdPlan(AdPlanParam.QueryParam queryParam) {
QueryWrapper<AdPlan> queryWrapper = new QueryWrapper<>(); Page<AdPlan> page1 = this.page(new Page<>(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam)), this.getQueryWrapper(queryParam));
if (ObjectUtil.isNotNull(queryParam)) {
queryWrapper.eq(StrUtil.isNotBlank(queryParam.getPattern()), "ad_plan.pattern", queryParam.getPattern())
.eq(StrUtil.isNotBlank(queryParam.getName()), "ad_plan.name", queryParam.getName())
.eq(ObjectUtil.isNotNull(queryParam.getTestState()), "ad_plan.Test_State", queryParam.getTestState())
.eq(ObjectUtil.isNotNull(queryParam.getReportState()), "ad_plan.Report_State", queryParam.getReportState())
.eq(ObjectUtil.isNotNull(queryParam.getResult()), "ad_plan.result", queryParam.getResult());
}
queryWrapper.eq("ad_plan.state", DataStateEnum.ENABLE.getCode());
Page<AdPlan> page1 = this.page(new Page<>(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam)), queryWrapper);
List<AdPlan> adPlans = page1.getRecords(); List<AdPlan> adPlans = page1.getRecords();
List<AdPlanVO> adPlanVOList = adPlans.stream().map(adPlan -> { List<AdPlanVO> adPlanVOList = adPlans.stream().map(adPlan -> {
AdPlanVO adPlanVO = new AdPlanVO(); AdPlanVO adPlanVO = new AdPlanVO();
@@ -129,11 +129,18 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
// 修改检测计划、检测源关联 // 修改检测计划、检测源关联
adPlanSourceService.updateAdPlanSource(param.getId(), param.getSourceIds()); adPlanSourceService.updateAdPlanSource(param.getId(), param.getSourceIds());
if (ObjectUtil.isNotEmpty(param.getDevIds())) { if (ObjectUtil.isNotEmpty(param.getDevIds())) {
// 修改时,只有未检测过的设备才可以修改绑定设备
List<String> notUnCheckedIds = pqDevService.listNotUnchecked().stream().map(PqDev::getId).collect(Collectors.toList());
List<String> intersection = new ArrayList<>(notUnCheckedIds);
intersection.retainAll(param.getDevIds());
if (ObjectUtil.isEmpty(intersection)) {
AdPlanParam.BindPlanParam bindPlanParam = new AdPlanParam.BindPlanParam(); AdPlanParam.BindPlanParam bindPlanParam = new AdPlanParam.BindPlanParam();
bindPlanParam.setPlanId(param.getId()); bindPlanParam.setPlanId(param.getId());
bindPlanParam.setPqDevIds(param.getDevIds()); bindPlanParam.setPqDevIds(param.getDevIds());
// 修改时,修改绑定设备
pqDevService.bind(bindPlanParam); pqDevService.bind(bindPlanParam);
} else {
throw new BusinessException(DevResponseEnum.HAS_NOT_UNCHECKED_DEVICE);
}
} }
return this.updateById(adPlan); return this.updateById(adPlan);
@@ -144,7 +151,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
for (String id : ids) { for (String id : ids) {
PqDevParam.QueryParam queryParam = new PqDevParam.QueryParam(); PqDevParam.QueryParam queryParam = new PqDevParam.QueryParam();
queryParam.setPlanId(id); queryParam.setPlanId(id);
if (ObjectUtils.isNotEmpty(pqDevService.listBoundByPlanId(queryParam))) { if (ObjectUtils.isNotEmpty(pqDevService.listByPlanId(queryParam))) {
throw new BusinessException(DevResponseEnum.PLAN_HAS_DEVICE_BIND); throw new BusinessException(DevResponseEnum.PLAN_HAS_DEVICE_BIND);
} }
} }
@@ -184,4 +191,74 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
return result; return result;
} }
@Override
public List<Map<String, Object>> getAdPlanEexportSheetList(AdPlanParam.QueryParam queryParam) {
List<AdPlan> adPlans = this.list(this.getQueryWrapper(queryParam));
List<AdPlanExcel> adPlanExcelList = this.getAdPlanExcelList(adPlans);
Map<String, Object> sheetMap1 = new HashMap<>();
ExportParams exportParams = new ExportParams();
exportParams.setSheetName("检测计划");
sheetMap1.put("title", exportParams);
sheetMap1.put("entity", AdPlanExcel.class);
sheetMap1.put("data", adPlanExcelList);
List<Map<String, Object>> sheetList = new ArrayList<>();
sheetList.add(sheetMap1);
DictData dictData = dictDataService.getDictDataById(queryParam.getPattern());
if (ObjectUtil.isNotNull(dictData)) {
if (DevConst.PATTERN_CONTRAST.equals(dictData.getCode())) {
sheetList.add(pqDevService.getExportSheetMap(adPlans.stream().map(AdPlan::getId).collect(Collectors.toList()), PqDevExcel.ContrastExportData.class));
} else {
sheetList.add(pqDevService.getExportSheetMap(adPlans.stream().map(AdPlan::getId).collect(Collectors.toList()), PqDevExcel.SimulateAndDigitalExportData.class));
}
}
return sheetList;
}
/**
* 获取查询条件wrapper
*
* @param queryParam 查询条件
* @return
*/
private Wrapper getQueryWrapper(AdPlanParam.QueryParam queryParam) {
QueryWrapper<AdPlan> queryWrapper = new QueryWrapper<>();
if (ObjectUtil.isNotNull(queryParam)) {
queryWrapper.eq(StrUtil.isNotBlank(queryParam.getPattern()), "ad_plan.pattern", queryParam.getPattern()).eq(StrUtil.isNotBlank(queryParam.getName()), "ad_plan.name", queryParam.getName()).eq(ObjectUtil.isNotNull(queryParam.getTestState()), "ad_plan.Test_State", queryParam.getTestState()).eq(ObjectUtil.isNotNull(queryParam.getReportState()), "ad_plan.Report_State", queryParam.getReportState()).eq(ObjectUtil.isNotNull(queryParam.getResult()), "ad_plan.result", queryParam.getResult());
}
queryWrapper.eq("ad_plan.state", DataStateEnum.ENABLE.getCode()).orderBy(true, true, "Create_Time");
return queryWrapper;
}
/**
* 获取检测计划excel数据
*
* @param adPlans 检测计划列表
* @return 检测计划excel数据
*/
private List<AdPlanExcel> getAdPlanExcelList(List<AdPlan> adPlans) {
return adPlans.stream().map(adPlan -> {
AdPlanExcel adPlanExcel = new AdPlanExcel();
BeanUtil.copyProperties(adPlan, adPlanExcel);
adPlanExcel.setPattern(dictDataService.getDictDataById(adPlan.getPattern()).getName());
StringBuilder sb = new StringBuilder();
for (String datasourceId : adPlan.getDatasourceId().split(StrUtil.COMMA)) {
sb.append(DataSourceEnum.getMsgByValue(datasourceId)).append(StrUtil.COMMA);
}
adPlanExcel.setDatasource(sb.toString().substring(0, sb.length() - 1));
adPlanExcel.setScript(pqScriptService.getPqScriptById(adPlan.getScriptId()).getName());
sb.delete(0, sb.length());
for (String errorSysId : adPlan.getErrorSysId().split(StrUtil.COMMA)) {
sb.append(pqErrSysService.getPqErrSysById(errorSysId).getName()).append(StrUtil.COMMA);
}
adPlanExcel.setErrorSys(sb.toString().substring(0, sb.length() - 1));
return adPlanExcel;
}).collect(Collectors.toList());
}
} }

View File

@@ -183,4 +183,6 @@ public interface DevValidMessage {
String MONITOR_CODE_FORMAT_ERROR = "监测点编码格式错误"; String MONITOR_CODE_FORMAT_ERROR = "监测点编码格式错误";
String MONITOR_NUM_NOT_NULL = "监测点序号不能为空"; String MONITOR_NUM_NOT_NULL = "监测点序号不能为空";
String FACTOR_FLAG_FORMAT_ERROR = "是否支持系数校准格式错误";
} }

View File

@@ -9,17 +9,19 @@ public enum DevResponseEnum {
IMPORT_DATA_FAIL("A001002", "导入数据失败"), IMPORT_DATA_FAIL("A001002", "导入数据失败"),
SERIES_AND_DEVKEY_NOT_BLANK("A001003", "加密设备的序列号和设备密钥不能为空"), SERIES_AND_DEVKEY_NOT_BLANK("A001003", "加密设备的序列号和设备密钥不能为空"),
PQ_SOURCE_GEN_NAME_ERROR("A001004", "检测源生成名称出错"), PQ_SOURCE_GEN_NAME_ERROR("A001004", "检测源生成名称出错"),
ERR_SOURCE_GEN_NAME_ERROR("A001005", "误差体系生成名称出错"),
PQ_ERRSYS_GEN_NAME_ERROR("A001005", "误差体系生成名称出错"), PQ_ERRSYS_GEN_NAME_ERROR("A001005", "误差体系生成名称出错"),
PLAN_HAS_DEVICE_BIND("A001006", "检测计划下已绑定设备,请先解绑设备"), PLAN_HAS_DEVICE_BIND("A001006", "检测计划下已绑定设备,请先解绑设备"),
PQ_DEV_REPEAT("A001007", "重复的被检设备"), PQ_DEV_REPEAT("A001007", "重复的被检设备"),
PQ_DEV_HAS_MONITOR("A001008", "该设备下关联有监测点,请先移除监测点"),; PQ_DEV_HAS_MONITOR("A001008", "该设备下关联有监测点,请先移除监测点"),
HAS_NOT_UNCHECKED_DEVICE("A001009", "设备在检测中或已被检测过,请勿解除绑定"),;
private final String msg; private final String message;
private final String code; private final String code;
DevResponseEnum(String code, String msg) { DevResponseEnum(String code, String message) {
this.code = code; this.code = code;
this.msg = msg; this.message = message;
} }
} }