调整检测脚本新增,增加设定值表新增

This commit is contained in:
wr
2025-02-18 15:38:54 +08:00
parent 8cef3c8358
commit bb9a0f586f
7 changed files with 109 additions and 58 deletions

View File

@@ -1,14 +1,13 @@
package com.njcn.gather.script.controller;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.LogUtil;
import com.njcn.gather.script.pojo.param.PqScriptDtlsParam;
import com.njcn.gather.script.pojo.param.PqScriptIssueParam;
import com.njcn.gather.script.pojo.param.PqScriptParam;
import com.njcn.gather.script.pojo.po.PqScript;
@@ -101,7 +100,7 @@ public class PqScriptController extends BaseController {
}
@OperateInfo
@GetMapping("getScriptDtlsByScriptId")
@GetMapping("/getScriptDtlsByScriptId")
@ApiOperation("根据脚本id查询检测脚本详情")
@ApiImplicitParam(name = "id", value = "检测脚本id", required = true)
public HttpResult<List<PqScriptDtls>> getScriptDtlsByScriptId(@RequestParam("id") String id) {
@@ -139,19 +138,26 @@ public class PqScriptController extends BaseController {
@OperateInfo
@PostMapping("dls")
@PostMapping("/dlsDetails")
@ApiOperation("根据脚本id查询检测脚本详情")
@ApiImplicitParam(name = "id", value = "检测脚本id", required = true)
public HttpResult<List<SourceIssue>> dls(@RequestBody PqScriptIssueParam param) {
String methodDescribe = getMethodDescribe("list");
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, param);
List<SourceIssue> sourceIssues = pqScriptDtlsService.listSourceIssue(param);
for (SourceIssue sourceIssue : sourceIssues) {
String jsonString = JSON.toJSONString(sourceIssue,SerializerFeature.WriteNullStringAsEmpty);
System.out.println();
}
String jsonString =JSON.toJSONString(sourceIssues);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, sourceIssues, methodDescribe);
}
@OperateInfo
@PostMapping("/addScriptDtls")
@ApiOperation("添加检测脚本")
@ApiImplicitParam(name = "id", value = "检测脚本id", required = true)
public HttpResult<Boolean> addScriptDtls(@RequestBody PqScriptDtlsParam sourceIssue) {
String methodDescribe = getMethodDescribe("list");
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, sourceIssue);
Boolean b = pqScriptDtlsService.saveScriptDtls(sourceIssue);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, b, methodDescribe);
}
}

View File

@@ -30,4 +30,10 @@ public class PqScriptIssueParam {
private String sourceId;
private List<Integer> indexList;
@ApiModelProperty("检测脚本类型")
private String scriptType;
@ApiModelProperty("表明指标类型例如Freq频率下的影响、Base额定下的影响、VOL电压下的影响")
private String scriptSubType;
}

View File

@@ -1,5 +1,6 @@
package com.njcn.gather.script.pojo.po;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
@@ -16,7 +17,7 @@ public class PqScriptCheckData implements Serializable {
/**
* 检测脚本参考设定值ID
*/
@TableId
@TableId(value = "Id", type = IdType.ASSIGN_UUID)
private String id;
/**

View File

@@ -1,34 +0,0 @@
package com.njcn.gather.script.pojo.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class PqScriptCheckDataVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 总检测脚本中的测试项序号
*/
private String valueTypeId;
/**
* 检测指标类型,与数据字典关联(例如电压有效值、谐波电压含有率等)
*/
private String valueTypeCode;
/**
* 数据类型,来源于字典表,包括实时数据(3s)、分钟统计数据(1min/3min/5min/10min)等
*/
private String dataType;
}

View File

@@ -0,0 +1,23 @@
package com.njcn.gather.script.pojo.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class PqScriptDtlDataVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 这条检测脚本的序号
*/
private String index;
}

View File

@@ -1,9 +1,11 @@
package com.njcn.gather.script.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.gather.script.pojo.param.PqScriptDtlsParam;
import com.njcn.gather.script.pojo.param.PqScriptIssueParam;
import com.njcn.gather.script.pojo.po.PqScriptDtls;
import com.njcn.gather.script.pojo.po.SourceIssue;
import com.njcn.gather.script.pojo.vo.PqScriptDtlDataVO;
import java.util.List;
@@ -75,7 +77,13 @@ public interface IPqScriptDtlsService extends IService<PqScriptDtls> {
* @param sourceIssue
* @return
*/
Boolean saveScriptDtls(SourceIssue sourceIssue);
Boolean saveScriptDtls(PqScriptDtlsParam sourceIssue);
/**
* 查询当前检测小项的信息
* @return
*/
List<PqScriptDtlDataVO> scriptDtlsList();
Boolean saveCheck();
}

View File

@@ -2,6 +2,7 @@ package com.njcn.gather.script.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -13,11 +14,13 @@ import com.njcn.gather.device.pojo.enums.CommonEnum;
import com.njcn.gather.script.mapper.PqScriptDtlsMapper;
import com.njcn.gather.script.mapper.PqScriptMapper;
import com.njcn.gather.script.pojo.param.PqScriptCheckDataParam;
import com.njcn.gather.script.pojo.param.PqScriptDtlsParam;
import com.njcn.gather.script.pojo.param.PqScriptIssueParam;
import com.njcn.gather.script.pojo.po.PqScript;
import com.njcn.gather.script.pojo.po.PqScriptCheckData;
import com.njcn.gather.script.pojo.po.PqScriptDtls;
import com.njcn.gather.script.pojo.po.SourceIssue;
import com.njcn.gather.script.pojo.vo.PqScriptDtlDataVO;
import com.njcn.gather.script.service.IPqScriptCheckDataService;
import com.njcn.gather.script.service.IPqScriptDtlsService;
import com.njcn.gather.script.util.ScriptDtlsDesc;
@@ -131,7 +134,7 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
if (voltSet.size() == 1 && currSet.size() == 1) {
Double volt = voltSet.stream().collect(Collectors.toList()).stream().findFirst().get();
Double curr = currSet.stream().collect(Collectors.toList()).stream().findFirst().get();
List<PqScriptDtls> pqScriptDtls = this.pqScriptDtls(param.getScriptId(), param.getIsPhaseSequence(), volt, curr, param.getIndexList());
List<PqScriptDtls> pqScriptDtls = this.pqScriptDtls(param, volt, curr);
Boolean isValueType = pqScriptMapper.selectScriptIsValueType(param.getScriptId());
if (CollUtil.isNotEmpty(pqScriptDtls)) {
/**
@@ -222,9 +225,37 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
@Override
@Transactional(rollbackFor = {Exception.class})
public Boolean saveScriptDtls(SourceIssue sourceIssue) {
public Boolean saveScriptDtls(PqScriptDtlsParam sourceIssue) {
List<PqScriptDtls> info = new ArrayList<>();
Integer i = this.baseMapper.selectMaxIndex(sourceIssue.getScriptId());
List<PqScriptCheckData> checkList = new ArrayList<>();
Integer i=sourceIssue.getIndex();
if(ObjectUtil.isNotNull(sourceIssue.getIndex())){
this.remove(new MPJLambdaWrapper<PqScriptDtls>()
.eq(PqScriptDtls::getScriptId,sourceIssue.getScriptId())
.eq(PqScriptDtls::getIndex,sourceIssue.getIndex())
);
pqScriptCheckDataService.remove(new MPJLambdaWrapper<PqScriptCheckData>()
.eq(PqScriptCheckData::getScriptId,sourceIssue.getScriptId())
.eq(PqScriptCheckData::getIndex,sourceIssue.getIndex())
);
}else{
i = this.baseMapper.selectMaxIndex(sourceIssue.getScriptId());
}
List<PqScriptDtlsParam.CheckData> checkDataList = sourceIssue.getCheckDataList();
PqScriptCheckData data;
for (PqScriptDtlsParam.CheckData checkData : checkDataList) {
data=new PqScriptCheckData();
data.setScriptId(sourceIssue.getScriptId());
data.setIndex(i);
data.setValueType(checkData.getValueType());
data.setDataType(checkData.getDataType());
data.setPhase(checkData.getPhase());
data.setValue(checkData.getValue());
data.setHarmNum(checkData.getHarmNum());
data.setEnable(checkData.getEnable());
data.setErrorFlag(checkData.getErrorFlag());
checkList.add(data);
}
//频率赋值
PqScriptDtls dtls = setScriptDtls(sourceIssue, i);
dtls.setValueType(FREQ);
@@ -310,7 +341,15 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
if (CollUtil.isNotEmpty(info)) {
this.saveBatch(info);
}
return false;
if(CollUtil.isNotEmpty(checkList)){
pqScriptCheckDataService.saveBatch(checkList);
}
return true;
}
@Override
public List<PqScriptDtlDataVO> scriptDtlsList() {
return Collections.emptyList();
}
@Override
@@ -318,22 +357,24 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
return null;
}
private PqScriptDtls setScriptDtls(SourceIssue sourceIssue, Integer i) {
private PqScriptDtls setScriptDtls(PqScriptDtlsParam sourceIssue, Integer i) {
PqScriptDtls dtls = new PqScriptDtls();
dtls.setScriptId(sourceIssue.getScriptId());
dtls.setIndex(i);
dtls.setScriptType(sourceIssue.getScriptId());
dtls.setScriptSubType(sourceIssue.getScriptId());
dtls.setScriptType(sourceIssue.getScriptType());
dtls.setScriptSubType(sourceIssue.getSubType());
dtls.setEnable(DataStateEnum.ENABLE.getCode());
return dtls;
}
public List<PqScriptDtls> pqScriptDtls(String scriptId, String isPhaseSequence, Double volt, Double curr, List<Integer> indexList) {
public List<PqScriptDtls> pqScriptDtls(PqScriptIssueParam param, Double volt, Double curr) {
List<PqScriptDtls> pqScriptDtls;
MPJLambdaWrapper<PqScriptDtls> queryWrapper = new MPJLambdaWrapper<>();
queryWrapper.selectAll(PqScriptDtls.class)
.selectAs(DictTree::getCode, PqScriptDtls::getScriptCode)
.leftJoin(DictTree.class, DictTree::getId, PqScriptDtls::getScriptType)
.eq(StrUtil.isNotBlank(param.getScriptType()), PqScriptDtls::getScriptType, param.getScriptSubType())
.eq(StrUtil.isNotBlank(param.getScriptSubType()), PqScriptDtls::getScriptSubType, param.getScriptSubType())
// .eq(PqScriptDtls::getIndex, 1)
// .le(PqScriptDtls::getIndex, 30)
// .in(PqScriptDtls::getIndex, Arrays.asList(1,7))
@@ -341,20 +382,20 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
.eq(PqScriptCheckData::getEnable, DataStateEnum.ENABLE.getCode())
.orderByAsc(PqScriptCheckData::getIndex)
;
if (isPhaseSequence.equals(CommonEnum.PHASE_TEST.getValue())) {
if (param.getIsPhaseSequence().equals(CommonEnum.PHASE_TEST.getValue())) {
//相序
queryWrapper.eq(PqScriptDtls::getIndex, -1)
.eq(PqScriptDtls::getEnable, 1);
pqScriptDtls = this.list(queryWrapper);
} else if (isPhaseSequence.equals(CommonEnum.COEFFICIENT_TEST.getValue())) {
} else if (param.getIsPhaseSequence().equals(CommonEnum.COEFFICIENT_TEST.getValue())) {
//系数
queryWrapper.in(PqScriptDtls::getIndex, indexList)
queryWrapper.in(PqScriptDtls::getIndex, param.getIndexList())
.eq(PqScriptDtls::getEnable, 1);
pqScriptDtls = this.list(queryWrapper);
} else {
//先获取检测脚本类型是否相对值 true相对值 false绝对值相对值要乘额定值,绝对值不需要处理)
Boolean isValueType = pqScriptMapper.selectScriptIsValueType(scriptId);
queryWrapper.eq(PqScriptDtls::getScriptId, scriptId);
Boolean isValueType = pqScriptMapper.selectScriptIsValueType(param.getScriptId());
queryWrapper.eq(PqScriptDtls::getScriptId, param.getScriptId());
pqScriptDtls = this.getBaseMapper().selectJoinList(PqScriptDtls.class, queryWrapper);
if (isValueType) {
for (PqScriptDtls pqScriptDtl : pqScriptDtls) {