提交一次接线图实时调试

This commit is contained in:
2025-12-19 09:56:53 +08:00
parent 46aef0d97f
commit efdb1781da
20 changed files with 681 additions and 50 deletions

View File

@@ -18,7 +18,7 @@ public enum CsSystemResponseEnum {
SAME_DATA_ERROR("A0301","数据重复"),
CS_SYSTEM_COMMON_ERROR("A00302","治理系统模块异常"),
BIND_TARGET_ERROR("A00601","指标参数绑定异常"),
;

View File

@@ -146,5 +146,35 @@ public class EleEpdPqd {
*/
private String defaultValue;
/**
* 状态(0:删除 1:正常)
*/
private Integer status;
/**
* 报表数据来源(mysql表名)
*/
private String resourcesId;
/**
* 限值名称
*/
private String limitName;
/**
* 限值表名
*/
private String limitTable;
/**
* 超标判断方式
*/
private String formula;
/**
* 二次值转一次值公式
*/
private String primaryFormula;
}

View File

@@ -0,0 +1,27 @@
package com.njcn.cssystem.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class EleEpdTreeVO {
@ApiModelProperty(name = "id",value = "模板索引")
private String id;
@ApiModelProperty(name = "name",value = "模板字段名")
private String name;
@ApiModelProperty(name = "showName",value = "模板中文展示名")
private String showName;
@ApiModelProperty(name = "flag",value = "用于标识最底层对象 1.表示已经没有子级")
private Integer flag;
@ApiModelProperty(name = "unit",value = "单位")
private String unit;
private List<EleEpdTreeVO> children;
}

View File

@@ -0,0 +1,54 @@
package com.njcn.cssystem.controller.zutai;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.cssystem.pojo.vo.EleEpdTreeVO;
import com.njcn.cssystem.service.IEleEpdPqdService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author xuyang
* @since 2023-05-24
*/
@Slf4j
@RestController
@RequestMapping("/csDictData")
@Api(tags = "指标数据字典")
@AllArgsConstructor
public class EleEpdPqdController extends BaseController {
private final IEleEpdPqdService eleEpdPqdService;
/**
* 获取电能质量指标模板树
* @author cdf
* @date 2022/8/16
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@GetMapping("/eleEpdChooseTree")
@ApiOperation("获取电能质量指标模板树")
public HttpResult<List<EleEpdTreeVO>> eleEpdChooseTree(){
String methodDescribe = getMethodDescribe("eleEpdChooseTree");
List<EleEpdTreeVO> res = eleEpdPqdService.eleEpdChooseTree();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe);
}
}

View File

@@ -0,0 +1,19 @@
package com.njcn.cssystem.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.cssystem.pojo.po.EleEpdPqd;
/**
* <p>
* Mapper 接口
* </p>
*
* @author xuyang
* @since 2023-05-24
*/
public interface EleEpdPqdMapper extends BaseMapper<EleEpdPqd> {
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.cssystem.mapper.EleEpdPqdMapper">
</mapper>

View File

@@ -0,0 +1,21 @@
package com.njcn.cssystem.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.cssystem.pojo.po.EleEpdPqd;
import com.njcn.cssystem.pojo.vo.EleEpdTreeVO;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author xuyang
* @since 2023-05-24
*/
public interface IEleEpdPqdService extends IService<EleEpdPqd> {
List<EleEpdTreeVO> eleEpdChooseTree();
}

View File

@@ -0,0 +1,128 @@
package com.njcn.cssystem.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.cssystem.mapper.EleEpdPqdMapper;
import com.njcn.cssystem.pojo.po.EleEpdPqd;
import com.njcn.cssystem.pojo.vo.EleEpdTreeVO;
import com.njcn.cssystem.service.IEleEpdPqdService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* <p>
* 服务实现类
* </p>
*
* @author xuyang
* @since 2023-05-24
*/
@Service
@RequiredArgsConstructor
public class EleEpdPqdServiceImpl extends ServiceImpl<EleEpdPqdMapper, EleEpdPqd> implements IEleEpdPqdService {
private final DicDataFeignClient dicDataFeignClient;
private final String STR_ONE = "#";
private final String STR_TWO = "$";
@Override
public List<EleEpdTreeVO> eleEpdChooseTree() {
DictData dic = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.CS_DATA_TYPE.getName(), DicDataEnum.EPD.getName()).getData();
LambdaQueryWrapper<EleEpdPqd> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(EleEpdPqd::getDataType, dic.getId()).orderByAsc(EleEpdPqd::getSort);
List<EleEpdPqd> list = this.getBaseMapper().selectList(lambdaQueryWrapper);
Map<String, List<EleEpdPqd>> map = list.stream().collect(Collectors.groupingBy(EleEpdPqd::getName, LinkedHashMap::new, Collectors.toList()));
List<EleEpdTreeVO> tree = new ArrayList<>();
map.forEach((key, value) -> {
EleEpdTreeVO reportTreeVO = new EleEpdTreeVO();
reportTreeVO.setName(value.get(0).getOtherName());
reportTreeVO.setShowName(value.get(0).getShowName());
//存在1-50次 2-50次情况
if (Objects.nonNull(value.get(0).getHarmStart()) && Objects.nonNull(value.get(0).getHarmEnd())) {
List<EleEpdTreeVO> reHarm = new ArrayList<>();
for (int i = value.get(0).getHarmStart(); i <= value.get(0).getHarmEnd(); i++) {
EleEpdTreeVO reportTreeCount = new EleEpdTreeVO();
reportTreeCount.setName(value.get(0).getOtherName() + "_" + i);
reportTreeCount.setShowName(i + "" + value.get(0).getShowName());
reportTreeVO.setFlag(1);
assPhase(value, reportTreeCount, reportTreeCount.getName());
reHarm.add(reportTreeCount);
}
reportTreeVO.setChildren(reHarm);
} else {
assPhase(value, reportTreeVO, value.get(0).getOtherName());
}
tree.add(reportTreeVO);
});
return tree;
}
/*组装相别*/
private void assPhase(List<EleEpdPqd> value, EleEpdTreeVO reportTreeItem, String key) {
List<EleEpdTreeVO> phaseTree = new ArrayList<>();
value.forEach(item -> {
if (Objects.nonNull(item.getPhase()) && !"M".equals(item.getPhase())) {
List<EleEpdTreeVO> statTree = new ArrayList<>();
EleEpdTreeVO reportTreePhase = new EleEpdTreeVO();
reportTreePhase.setName(item.getPhase());
reportTreePhase.setShowName(item.getPhase());
// reportTreePhase.setUnit(item.getUnit());
assStatMethod(item, statTree, key, item.getPhase());
reportTreePhase.setChildren(statTree);
phaseTree.add(reportTreePhase);
reportTreeItem.setChildren(phaseTree);
} else {
List<EleEpdTreeVO> statTree = new ArrayList<>();
assStatMethod(item, statTree, key, "T");
reportTreeItem.setChildren(statTree);
}
});
}
private void assStatMethod(EleEpdPqd item, List<EleEpdTreeVO> statTree, String oneKey, String twoKey) {
//存在向别为M但是Stat_Method不为空
if (StrUtil.isNotBlank(item.getStatMethod())) {
String[] arr = item.getStatMethod().split(",");
List<String> stat = Stream.of(arr).collect(Collectors.toList());
if (CollUtil.isNotEmpty(stat)) {
stat.forEach(statItem -> {
EleEpdTreeVO reportTreeStat = new EleEpdTreeVO();
reportTreeStat.setUnit(item.getUnit());
String tem = "";
if (Objects.nonNull(item.getLimitName())) {
tem = STR_ONE + item.getLimitName();
} else {
tem = "#NO";
}
if (StrUtil.isNotBlank(twoKey)) {
reportTreeStat.setName(STR_TWO + oneKey + STR_ONE + twoKey + STR_ONE + statItem + STR_ONE + item.getClassId().trim() + tem.trim() + STR_TWO);
} else {
reportTreeStat.setName(STR_TWO + oneKey + STR_ONE + statItem + STR_ONE + item.getClassId().trim() + tem.trim() + STR_TWO);
}
reportTreeStat.setShowName(statItem);
statTree.add(reportTreeStat);
});
}
}
}
}