数据校验接口返回值优化

This commit is contained in:
caozehui
2026-06-26 09:11:09 +08:00
parent 3c0d7a6268
commit 6f8acd3fb5
4 changed files with 92 additions and 10 deletions

View File

@@ -167,11 +167,11 @@ public class ResultController extends BaseController {
@GetMapping("/createChecksquareTask")
@ApiOperation("调用第三方数模数据检测接口")
@ApiImplicitParam(name = "devId", value = "设备id", required = true)
public HttpResult<String> createChecksquareTask(@RequestParam("devId") String devId) {
public HttpResult<DataCheckResultVO> createChecksquareTask(@RequestParam("devId") String devId) {
String methodDescribe = getMethodDescribe("createChecksquareTask");
LogUtil.njcnDebug(log, "{}调用第三方数模数据检测接口设备id为{}", methodDescribe, devId);
String result = resultService.createChecksquareTaskByDevId(devId);
DataCheckResultVO result = resultService.createChecksquareTaskByDevId(devId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}

View File

@@ -0,0 +1,72 @@
package com.njcn.gather.result.pojo.vo;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author caozehui
* @data 2026-06-26
*/
@Data
public class DataCheckResultVO {
/**
* 任务 ID
*/
@JSONField(name = "taskId")
private String taskId;
/**
* 任务编号
*/
@JSONField(name = "taskNo")
private String taskNo;
/**
* 监测点Id集合
*/
@JSONField(name = "lineIds")
private List<String> lineIds;
/**
* 监测点名称;多监测点时为多个名称拼接结果
*/
@JSONField(name = "lineName")
private String lineName;
/**
* 开始时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime timeStart;
/**
* 结束时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime timeEnd;
/**
* 统计间隔,单位分钟
*/
private long intervalMinutes;
/**
* 任务状态RUNNING、SUCCESS、FAIL
*/
private String taskStatus;
/**
* 检测项数量
*/
private long itemCount;
/**
* 异常检测项数量
*/
private long abnormalItemCount;
/**
* 最低数据完整性0 到 1 的小数
*/
private long minDataIntegrity;
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
}

View File

@@ -20,7 +20,13 @@ import java.util.Map;
public interface IResultService {
void tryNotifyThirdPartyAfterFormalTest(PreDetectionParam param);
String createChecksquareTaskByDevId(String devId);
/**
* 调用第三方数据校验结果
*
* @param devId
* @return
*/
DataCheckResultVO createChecksquareTaskByDevId(String devId);
/**
* 检测详情表单头

View File

@@ -9,6 +9,7 @@ import cn.hutool.core.text.StrPool;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -144,7 +145,7 @@ public class ResultServiceImpl implements IResultService {
private final DataCheckAsyncNotifier dataCheckAsyncNotifier;
private final RestTemplateUtil restTemplateUtil;
public static final String CHECKSQUARE_CREATE_URL = "http://192.168.2.147:18091/steady/checksquare/create";
public static final String CHECKSQUARE_CREATE_URL = "http://192.168.2.147:18091/api/steady/checksquare/create";
private static final DateTimeFormatter CHECKSQUARE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
private final Map<String, NotifyState> notifyStates = new ConcurrentHashMap<>();
@@ -195,7 +196,7 @@ public class ResultServiceImpl implements IResultService {
}
@Override
public String createChecksquareTaskByDevId(String devId) {
public DataCheckResultVO createChecksquareTaskByDevId(String devId) {
if (StrUtil.isBlank(devId)) {
throw new BusinessException(CommonResponseEnum.FAIL, "设备id不能为空");
}
@@ -219,10 +220,13 @@ public class ResultServiceImpl implements IResultService {
// request.setTimeStart(CHECKSQUARE_TIME_FORMATTER.format(devSub.getCheckStartTime()));
// request.setTimeEnd(CHECKSQUARE_TIME_FORMATTER.format(devSub.getCheckEndTime()));
request.setLineIds(Arrays.asList("ee9a33337bfd4d5588c00a2dbef6bc7e"));
request.setIndicatorCodes(Collections.emptyList());
request.setTimeStart("2026-05-22 09:00:00");
request.setTimeEnd("2026-05-22 12:00:00");
return restTemplateUtil.postJson(CHECKSQUARE_CREATE_URL, request, String.class);
request.setIndicatorCodes(Arrays.asList("V_RMS"));
request.setTimeStart("2026-06-08 00:00:00");
request.setTimeEnd("2026-06-08 23:59:59");
String s = restTemplateUtil.postJson(CHECKSQUARE_CREATE_URL, request, String.class);
JSONObject obj = JSONUtil.parseObj(s);
DataCheckResultVO data = BeanUtil.copyProperties(obj.get("data"), DataCheckResultVO.class);
return data;
}
public enum NotifyStatus {
@@ -739,7 +743,7 @@ public class ResultServiceImpl implements IResultService {
case F:
//Pst=1(变动率=1.459%*1)
List<PqScriptDtls> flicker = scriptDtlIndexList.stream().filter(x -> "Flicker".equals(x.getValueType())).collect(Collectors.toList());
dtlType.setScriptTypeName("(变动频度=" + flicker.get(0).getChagFre() + "次/min" + "变动率=" + flicker.get(0).getChagValue() + "%");
dtlType.setScriptTypeName("变动频度=" + flicker.get(0).getChagFre() + "次/min" + "变动率=" + flicker.get(0).getChagValue() + "%");
break;
/**
* 暂态