比对相关代码

This commit is contained in:
caozehui
2025-08-04 10:27:00 +08:00
parent 417a53a835
commit 2d889b07f7
63 changed files with 3987 additions and 863 deletions

View File

@@ -3,8 +3,8 @@ package com.njcn.gather.storage.controller;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.db.mybatisplus.handler.DynamicTableNameHandler;
import com.njcn.gather.storage.pojo.po.AdHarmonicResult;
import com.njcn.gather.storage.pojo.po.AdNonHarmonicResult;
import com.njcn.gather.storage.pojo.po.SimAndDigHarmonicResult;
import com.njcn.gather.storage.pojo.po.SimAndDigNonHarmonicResult;
import com.njcn.gather.storage.service.DetectionDataDealService;
import com.njcn.web.controller.BaseController;
import com.njcn.web.utils.HttpResultUtil;
@@ -33,24 +33,24 @@ public class DataDealController extends BaseController {
public HttpResult<Object> dataDealAndInsert(){
String methodDescribe = getMethodDescribe("dataDealAndInsert");
List<AdHarmonicResult> list2 = new ArrayList<>();
AdHarmonicResult adHarmonicResult = new AdHarmonicResult();
adHarmonicResult.setDataType("aa");
adHarmonicResult.setAdType("aaaa");
List<SimAndDigHarmonicResult> list2 = new ArrayList<>();
SimAndDigHarmonicResult SimAndDigHarmonicResult = new SimAndDigHarmonicResult();
SimAndDigHarmonicResult.setDataType("aa");
SimAndDigHarmonicResult.setAdType("aaaa");
adHarmonicResult.setMonitorId("ss");
adHarmonicResult.setScriptId("ddd");
adHarmonicResult.setTimeId(LocalDateTime.now());
SimAndDigHarmonicResult.setMonitorId("ss");
SimAndDigHarmonicResult.setScriptId("ddd");
SimAndDigHarmonicResult.setTimeId(LocalDateTime.now());
list2.add(adHarmonicResult);
AdHarmonicResult adHarmonicResult2 = new AdHarmonicResult();
adHarmonicResult2.setDataType("aabb");
adHarmonicResult2.setAdType("aaaabb");
list2.add(SimAndDigHarmonicResult);
SimAndDigHarmonicResult SimAndDigHarmonicResult2 = new SimAndDigHarmonicResult();
SimAndDigHarmonicResult2.setDataType("aabb");
SimAndDigHarmonicResult2.setAdType("aaaabb");
adHarmonicResult2.setMonitorId("ssbb");
adHarmonicResult2.setScriptId("dddbb");
adHarmonicResult2.setTimeId(LocalDateTime.now());
list2.add(adHarmonicResult2);
SimAndDigHarmonicResult2.setMonitorId("ssbb");
SimAndDigHarmonicResult2.setScriptId("dddbb");
SimAndDigHarmonicResult2.setTimeId(LocalDateTime.now());
list2.add(SimAndDigHarmonicResult2);
detectionDataDealService.acceptAd(list2,"1");

View File

@@ -28,9 +28,9 @@ public class TableGenController extends BaseController {
@GetMapping("genAdHarmonicTable")
@ApiOperation("生成表")
@OperateInfo
public HttpResult<Object> genAdHarmonicTable(@RequestParam("code") String code){
public HttpResult<Object> genAdHarmonicTable(@RequestParam("code") String code, @RequestParam("isContrast") boolean isContrast) {
String methodDescribe = getMethodDescribe("genAdHarmonicTable");
tableGenService.genAdNonHarmonicTable(code);
tableGenService.genTable(code, isContrast);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

View File

@@ -1,17 +0,0 @@
package com.njcn.gather.storage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.njcn.gather.storage.pojo.po.AdHarmonicResult;
import com.njcn.gather.storage.pojo.po.AdNonHarmonicResult;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface AdNonHarmonicMapper extends MPJBaseMapper<AdNonHarmonicResult> {
}

View File

@@ -0,0 +1,11 @@
package com.njcn.gather.storage.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.njcn.gather.storage.pojo.po.ContrastHarmonicResult;
/**
* @author caozehui
* @data 2025-08-06
*/
public interface ContrastHarmonicMappper extends MPJBaseMapper<ContrastHarmonicResult> {
}

View File

@@ -0,0 +1,11 @@
package com.njcn.gather.storage.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.njcn.gather.storage.pojo.po.ContrastNonHarmonicResult;
/**
* @author caozehui
* @data 2025-07-28
*/
public interface ContrastNonHarmonicMappper extends MPJBaseMapper<ContrastNonHarmonicResult> {
}

View File

@@ -1,11 +1,11 @@
package com.njcn.gather.storage.mapper;
import com.njcn.db.mybatisplus.mapper.BatchBaseMapper;
import com.njcn.gather.storage.pojo.po.AdHarmonicResult;
import com.njcn.gather.storage.pojo.po.SimAndDigHarmonicResult;
import java.util.List;
public interface DetectionDataDealMapper extends BatchBaseMapper<AdHarmonicResult> {
public interface DetectionDataDealMapper extends BatchBaseMapper<SimAndDigHarmonicResult> {
/**
* 根据设备ID查询禁用的脚本详情索引

View File

@@ -1,8 +1,7 @@
package com.njcn.gather.storage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.njcn.gather.storage.pojo.po.AdHarmonicResult;
import com.njcn.gather.storage.pojo.po.SimAndDigHarmonicResult;
import org.apache.ibatis.annotations.Mapper;
/**
@@ -10,5 +9,5 @@ import org.apache.ibatis.annotations.Mapper;
* @data 2024-12-30
*/
@Mapper
public interface AdHarmonicMappper extends MPJBaseMapper<AdHarmonicResult> {
public interface SimAndDigHarmonicMappper extends MPJBaseMapper<SimAndDigHarmonicResult> {
}

View File

@@ -0,0 +1,11 @@
package com.njcn.gather.storage.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.njcn.gather.storage.pojo.po.SimAndDigNonHarmonicResult;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface SimAndDigNonHarmonicMapper extends MPJBaseMapper<SimAndDigNonHarmonicResult> {
}

View File

@@ -1,16 +1,15 @@
package com.njcn.gather.storage.mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
public interface TableGenMapper {
void genAdNonHarmonicTable(@Param("code")String code);
void genNonHarmonicTable(@Param("code") String code, @Param("isContrast") boolean isContrast);
void genAdHarmonicTable(@Param("tableSql")String tableSql);
void genAdHarmonicTable(@Param("tableSql") String tableSql);
void genAdNonHarmonicResultTable(@Param("code")String code);
void genNonHarmonicResultTable(@Param("code") String code, @Param("isContrast") boolean isContrast);
}

View File

@@ -1,6 +1,6 @@
<?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.gather.storage.mapper.AdNonHarmonicMapper">
<mapper namespace="com.njcn.gather.storage.mapper.SimAndDigNonHarmonicMapper">

View File

@@ -1,45 +1,65 @@
<?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.gather.storage.mapper.TableGenMapper">
<update id="genAdNonHarmonicTable" parameterType="string">
CREATE TABLE ad_non_harmonic_${code} (
Monitor_Id CHAR(60) NOT NULL COMMENT '监测点Id',
Time_Id DATETIME(3) NOT NULL COMMENT '时间',
Script_Id CHAR(32) NOT NULL COMMENT '检测脚本子表Id,字典表',
Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',
AD_Type CHAR(32) NOT NULL COMMENT '检测指标,字典表',
Data_Type CHAR(32) NOT NULL COMMENT '数据指标只有数据源为分钟统计时候才会使用最大、最小、平均、CP95默认平均值字典表',
A_Value float DEFAULT NULL COMMENT 'A相值',
B_Value float DEFAULT NULL COMMENT 'B相值',
C_Value float DEFAULT NULL COMMENT 'C相值',
T_Value float DEFAULT NULL COMMENT 'T相值(没有相别的则存这里)',
Result_Flag int(1) NULL COMMENT '1合格 2不合格 4无法处理',
PRIMARY KEY (Monitor_Id, Time_Id, Script_Id, Sort, AD_Type)
) COMMENT='监测数据表';
<update id="genNonHarmonicTable">
CREATE TABLE ad_non_harmonic_${code}
(
Monitor_Id CHAR(34) NOT NULL COMMENT '监测点Id',
Time_Id DATETIME(3) NOT NULL COMMENT '时间',
AD_Type CHAR(32) NOT NULL COMMENT '检测指标,字典表',
Data_Type CHAR(32) NOT NULL COMMENT '数据指标只有数据源为分钟统计时候才会使用最大、最小、平均、CP95默认平均值字典表',
A_Value float DEFAULT NULL COMMENT 'A相值',
B_Value float DEFAULT NULL COMMENT 'B相值',
C_Value float DEFAULT NULL COMMENT 'C相值',
T_Value float DEFAULT NULL COMMENT 'T相值(没有相别的则存这里)',
Result_Flag int(1) NULL COMMENT '1合格 2不合格 4无法处理',
<choose>
<when test="isContrast">
Error_Id CHAR(32) NOT NULL COMMENT '误差体系表ID',
Num tinyint(1) unsigned DEFAULT 0 COMMENT '第几次检测',
PRIMARY KEY (Monitor_Id, Time_Id, Error_Id, AD_Type)
</when>
<otherwise>
Script_Id CHAR(32) NOT NULL COMMENT '检测脚本表Id',
Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',
PRIMARY KEY (Monitor_Id, Time_Id, Script_Id, Sort, AD_Type)
</otherwise>
</choose>
) COMMENT='非谐波类原始数据表';
</update>
<update id="genAdHarmonicTable" parameterType="string">
${tableSql}
</update>
<update id="genAdNonHarmonicResultTable" parameterType="string">
<update id="genNonHarmonicResultTable">
CREATE TABLE if not exists ad_non_harmonic_result_${code} (
Monitor_Id CHAR(60) NOT NULL COMMENT '监测点Id',
Time_Id DATETIME(3) NULL COMMENT '时间',
Script_Id CHAR(32) NOT NULL COMMENT '检测脚本子表Id字典表',
Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',
Monitor_Id CHAR(34) NOT NULL COMMENT '监测点Id',
Time_Id DATETIME NULL COMMENT '时间',
AD_Type CHAR(32) NOT NULL COMMENT '检测指标,字典表',
Data_Type CHAR(32) NOT NULL COMMENT '数据指标只有数据源为分钟统计时候才会使用最大、最小、平均、CP95默认平均值字典表',
Result_Flag int(1) NOT NULL COMMENT '1合格 2不合格 4无法处理',
A_Value json NULL COMMENT 'A相值',
B_Value json NULL COMMENT 'B相值',
C_Value json NULL COMMENT 'C相值',
T_Value json NULL COMMENT 'T相值(没有相别的则存这里)',
PRIMARY KEY (Monitor_Id, Script_Id, Sort, AD_Type,Data_Type)
) COMMENT='监测数据表';
Result_Flag int(1) NOT NULL COMMENT '1合格 2不合格 4无法处理',
<choose>
<when test="isContrast">
Error_Id CHAR(32) NOT NULL COMMENT '误差体系表ID',
Num tinyint(1) unsigned DEFAULT 0 COMMENT '第几次检测',
PRIMARY KEY (Monitor_Id, Error_Id, Num, AD_Type)
</when>
<otherwise>
Script_Id CHAR(32) NOT NULL COMMENT '检测脚本表Id',
Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',
PRIMARY KEY (Monitor_Id, Script_Id, Sort, AD_Type)
</otherwise>
</choose>
) COMMENT='非谐波类检测结果表';
</update>
</mapper>

View File

@@ -1,80 +0,0 @@
package com.njcn.gather.storage.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
* 监测数据表
* </p>
*
* @author cdf
* @since 2024-12-24
*/
@Getter
@Setter
@TableName(value = "ad_harmonic_xx")
public class AdNonHarmonicResult {
private static final long serialVersionUID = 1L;
/**
* 监测点Id
*/
private String monitorId;
/**
* 时间
*/
private LocalDateTime timeId;
/**
* 检测脚本子表Id字典表
*/
private String scriptId;
/**
* 总检测脚本中的测试项序号
*/
private Integer sort;
/**
* 检测指标,字典表
*/
private String adType;
/**
* 数据指标只有数据源为分钟统计时候才会使用最大、最小、平均、CP95默认平均值字典表
*/
private String dataType;
/**
* 1.合格 2.不合格 4.无法处理
*/
private Integer resultFlag;
/**
* A相值
*/
private String aValue;
/**
* B相值
*/
private String bValue;
/**
* C相值
*/
private String cValue;
/**
* T相值(没有相别的则存这里)
*/
private String tValue;
}

View File

@@ -0,0 +1,37 @@
package com.njcn.gather.storage.pojo.po;
import lombok.Data;
import java.time.LocalDateTime;
/**
* @author caozehui
* @data 2025-07-28
*/
@Data
public class BaseResult {
/**
* 监测点Id
*/
private String monitorId;
/**
* 时间
*/
private LocalDateTime timeId;
/**
* 0.不合格 1.合格 4.无法处理
*/
private Integer resultFlag;
/**
* 检测指标,字典表
*/
private String adType;
/**
* 数据指标只有数据源为分钟统计时候才会使用最大、最小、平均、CP95默认平均值字典表
*/
private String dataType;
}

View File

@@ -0,0 +1,22 @@
package com.njcn.gather.storage.pojo.po;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author caozehui
* @data 2025-07-28
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ContrastBaseResult extends BaseResult {
/**
* 误差体系Id
*/
private String errorId;
/**
* 第几次检测
*/
private Integer num;
}

View File

@@ -0,0 +1,917 @@
package com.njcn.gather.storage.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author caozehui
* @data 2025-08-04
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("ad_harmonic_xx")
public class ContrastHarmonicResult extends ContrastBaseResult {
private static final long serialVersionUID = 1L;
/**
* A相基波
*/
@TableField(value = "A_Value_1")
private String aValue1;
/**
* 2次A相谐波
*/
@TableField(value = "A_Value_2")
private String aValue2;
/**
* 3次A相谐波
*/
@TableField(value = "A_Value_3")
private String aValue3;
/**
* 4次A相谐波
*/
@TableField(value = "A_Value_4")
private String aValue4;
/**
* 5次A相谐波
*/
@TableField(value = "A_Value_5")
private String aValue5;
/**
* 6次A相谐波
*/
@TableField(value = "A_Value_6")
private String aValue6;
/**
* 7次A相谐波
*/
@TableField(value = "A_Value_7")
private String aValue7;
/**
* 8次A相谐波
*/
@TableField(value = "A_Value_8")
private String aValue8;
/**
* 9次A相谐波
*/
@TableField(value = "A_Value_9")
private String aValue9;
/**
* 10次A相谐波
*/
@TableField(value = "A_Value_10")
private String aValue10;
/**
* 11次A相谐波
*/
@TableField(value = "A_Value_11")
private String aValue11;
/**
* 12次A相谐波
*/
@TableField(value = "A_Value_12")
private String aValue12;
/**
* 13次A相谐波
*/
@TableField(value = "A_Value_13")
private String aValue13;
/**
* 14次A相谐波
*/
@TableField(value = "A_Value_14")
private String aValue14;
/**
* 15次A相谐波
*/
@TableField(value = "A_Value_15")
private String aValue15;
/**
* 16次A相谐波
*/
@TableField(value = "A_Value_16")
private String aValue16;
/**
* 17次A相谐波
*/
@TableField(value = "A_Value_17")
private String aValue17;
/**
* 18次A相谐波
*/
@TableField(value = "A_Value_18")
private String aValue18;
/**
* 19次A相谐波
*/
@TableField(value = "A_Value_19")
private String aValue19;
/**
* 20次A相谐波
*/
@TableField(value = "A_Value_20")
private String aValue20;
/**
* 21次A相谐波
*/
@TableField(value = "A_Value_21")
private String aValue21;
/**
* 22次A相谐波
*/
@TableField(value = "A_Value_22")
private String aValue22;
/**
* 23次A相谐波
*/
@TableField(value = "A_Value_23")
private String aValue23;
/**
* 24次A相谐波
*/
@TableField(value = "A_Value_24")
private String aValue24;
/**
* 25次A相谐波
*/
@TableField(value = "A_Value_25")
private String aValue25;
/**
* 26次A相谐波
*/
@TableField(value = "A_Value_26")
private String aValue26;
/**
* 27次A相谐波
*/
@TableField(value = "A_Value_27")
private String aValue27;
/**
* 28次A相谐波
*/
@TableField(value = "A_Value_28")
private String aValue28;
/**
* 29次A相谐波
*/
@TableField(value = "A_Value_29")
private String aValue29;
/**
* 30次A相谐波
*/
@TableField(value = "A_Value_30")
private String aValue30;
/**
* 31次A相谐波
*/
@TableField(value = "A_Value_31")
private String aValue31;
/**
* 32次A相谐波
*/
@TableField(value = "A_Value_32")
private String aValue32;
/**
* 33次A相谐波
*/
@TableField(value = "A_Value_33")
private String aValue33;
/**
* 34次A相谐波
*/
@TableField(value = "A_Value_34")
private String aValue34;
/**
* 35次A相谐波
*/
@TableField(value = "A_Value_35")
private String aValue35;
/**
* 36次A相谐波
*/
@TableField(value = "A_Value_36")
private String aValue36;
/**
* 37次A相谐波
*/
@TableField(value = "A_Value_37")
private String aValue37;
/**
* 38次A相谐波
*/
@TableField(value = "A_Value_38")
private String aValue38;
/**
* 39次A相谐波
*/
@TableField(value = "A_Value_39")
private String aValue39;
/**
* 40次A相谐波
*/
@TableField(value = "A_Value_40")
private String aValue40;
/**
* 41次A相谐波
*/
@TableField(value = "A_Value_41")
private String aValue41;
/**
* 42次A相谐波
*/
@TableField(value = "A_Value_42")
private String aValue42;
/**
* 43次A相谐波
*/
@TableField(value = "A_Value_43")
private String aValue43;
/**
* 44次A相谐波
*/
@TableField(value = "A_Value_44")
private String aValue44;
/**
* 45次A相谐波
*/
@TableField(value = "A_Value_45")
private String aValue45;
/**
* 46次A相谐波
*/
@TableField(value = "A_Value_46")
private String aValue46;
/**
* 47次A相谐波
*/
@TableField(value = "A_Value_47")
private String aValue47;
/**
* 48次A相谐波
*/
@TableField(value = "A_Value_48")
private String aValue48;
/**
* 49次A相谐波
*/
@TableField(value = "A_Value_49")
private String aValue49;
/**
* 50次A相谐波
*/
@TableField(value = "A_Value_50")
private String aValue50;
/**
* B相基波
*/
@TableField(value = "B_Value_1")
private String bValue1;
/**
* 2次B相谐波
*/
@TableField(value = "B_Value_2")
private String bValue2;
/**
* 3次B相谐波
*/
@TableField(value = "B_Value_3")
private String bValue3;
/**
* 4次B相谐波
*/
@TableField(value = "B_Value_4")
private String bValue4;
/**
* 5次B相谐波
*/
@TableField(value = "B_Value_5")
private String bValue5;
/**
* 6次B相谐波
*/
@TableField(value = "B_Value_6")
private String bValue6;
/**
* 7次B相谐波
*/
@TableField(value = "B_Value_7")
private String bValue7;
/**
* 8次B相谐波
*/
@TableField(value = "B_Value_8")
private String bValue8;
/**
* 9次B相谐波
*/
@TableField(value = "B_Value_9")
private String bValue9;
/**
* 10次B相谐波
*/
@TableField(value = "B_Value_10")
private String bValue10;
/**
* 11次B相谐波
*/
@TableField(value = "B_Value_11")
private String bValue11;
/**
* 12次B相谐波
*/
@TableField(value = "B_Value_12")
private String bValue12;
/**
* 13次B相谐波
*/
@TableField(value = "B_Value_13")
private String bValue13;
/**
* 14次B相谐波
*/
@TableField(value = "B_Value_14")
private String bValue14;
/**
* 15次B相谐波
*/
@TableField(value = "B_Value_15")
private String bValue15;
/**
* 16次B相谐波
*/
@TableField(value = "B_Value_16")
private String bValue16;
/**
* 17次B相谐波
*/
@TableField(value = "B_Value_17")
private String bValue17;
/**
* 18次B相谐波
*/
@TableField(value = "B_Value_18")
private String bValue18;
/**
* 19次B相谐波
*/
@TableField(value = "B_Value_19")
private String bValue19;
/**
* 20次B相谐波
*/
@TableField(value = "B_Value_20")
private String bValue20;
/**
* 21次B相谐波
*/
@TableField(value = "B_Value_21")
private String bValue21;
/**
* 22次B相谐波
*/
@TableField(value = "B_Value_22")
private String bValue22;
/**
* 23次B相谐波
*/
@TableField(value = "B_Value_23")
private String bValue23;
/**
* 24次B相谐波
*/
@TableField(value = "B_Value_24")
private String bValue24;
/**
* 25次B相谐波
*/
@TableField(value = "B_Value_25")
private String bValue25;
/**
* 26次B相谐波
*/
@TableField(value = "B_Value_26")
private String bValue26;
/**
* 27次B相谐波
*/
@TableField(value = "B_Value_27")
private String bValue27;
/**
* 28次B相谐波
*/
@TableField(value = "B_Value_28")
private String bValue28;
/**
* 29次B相谐波
*/
@TableField(value = "B_Value_29")
private String bValue29;
/**
* 30次B相谐波
*/
@TableField(value = "B_Value_30")
private String bValue30;
/**
* 31次B相谐波
*/
@TableField(value = "B_Value_31")
private String bValue31;
/**
* 32次B相谐波
*/
@TableField(value = "B_Value_32")
private String bValue32;
/**
* 33次B相谐波
*/
@TableField(value = "B_Value_33")
private String bValue33;
/**
* 34次B相谐波
*/
@TableField(value = "B_Value_34")
private String bValue34;
/**
* 35次B相谐波
*/
@TableField(value = "B_Value_35")
private String bValue35;
/**
* 36次B相谐波
*/
@TableField(value = "B_Value_36")
private String bValue36;
/**
* 37次B相谐波
*/
@TableField(value = "B_Value_37")
private String bValue37;
/**
* 38次B相谐波
*/
@TableField(value = "B_Value_38")
private String bValue38;
/**
* 39次B相谐波
*/
@TableField(value = "B_Value_39")
private String bValue39;
/**
* 40次B相谐波
*/
@TableField(value = "B_Value_40")
private String bValue40;
/**
* 41次B相谐波
*/
@TableField(value = "B_Value_41")
private String bValue41;
/**
* 42次B相谐波
*/
@TableField(value = "B_Value_42")
private String bValue42;
/**
* 43次B相谐波
*/
@TableField(value = "B_Value_43")
private String bValue43;
/**
* 44次B相谐波
*/
@TableField(value = "B_Value_44")
private String bValue44;
/**
* 45次B相谐波
*/
@TableField(value = "B_Value_45")
private String bValue45;
/**
* 46次B相谐波
*/
@TableField(value = "B_Value_46")
private String bValue46;
/**
* 47次B相谐波
*/
@TableField(value = "B_Value_47")
private String bValue47;
/**
* 48次B相谐波
*/
@TableField(value = "B_Value_48")
private String bValue48;
/**
* 49次B相谐波
*/
@TableField(value = "B_Value_49")
private String bValue49;
/**
* 50次B相谐波
*/
@TableField(value = "B_Value_50")
private String bValue50;
/**
* C相基波
*/
@TableField(value = "C_Value_1")
private String cValue1;
/**
* 2次C相谐波
*/
@TableField(value = "C_Value_2")
private String cValue2;
/**
* 3次C相谐波
*/
@TableField(value = "C_Value_3")
private String cValue3;
/**
* 4次C相谐波
*/
@TableField(value = "C_Value_4")
private String cValue4;
/**
* 5次C相谐波
*/
@TableField(value = "C_Value_5")
private String cValue5;
/**
* 6次C相谐波
*/
@TableField(value = "C_Value_6")
private String cValue6;
/**
* 7次C相谐波
*/
@TableField(value = "C_Value_7")
private String cValue7;
/**
* 8次C相谐波
*/
@TableField(value = "C_Value_8")
private String cValue8;
/**
* 9次C相谐波
*/
@TableField(value = "C_Value_9")
private String cValue9;
/**
* 10次C相谐波
*/
@TableField(value = "C_Value_10")
private String cValue10;
/**
* 11次C相谐波
*/
@TableField(value = "C_Value_11")
private String cValue11;
/**
* 12次C相谐波
*/
@TableField(value = "C_Value_12")
private String cValue12;
/**
* 13次C相谐波
*/
@TableField(value = "C_Value_13")
private String cValue13;
/**
* 14次C相谐波
*/
@TableField(value = "C_Value_14")
private String cValue14;
/**
* 15次C相谐波
*/
@TableField(value = "C_Value_15")
private String cValue15;
/**
* 16次C相谐波
*/
@TableField(value = "C_Value_16")
private String cValue16;
/**
* 17次C相谐波
*/
@TableField(value = "C_Value_17")
private String cValue17;
/**
* 18次C相谐波
*/
@TableField(value = "C_Value_18")
private String cValue18;
/**
* 19次C相谐波
*/
@TableField(value = "C_Value_19")
private String cValue19;
/**
* 20次C相谐波
*/
@TableField(value = "C_Value_20")
private String cValue20;
/**
* 21次C相谐波
*/
@TableField(value = "C_Value_21")
private String cValue21;
/**
* 22次C相谐波
*/
@TableField(value = "C_Value_22")
private String cValue22;
/**
* 23次C相谐波
*/
@TableField(value = "C_Value_23")
private String cValue23;
/**
* 24次C相谐波
*/
@TableField(value = "C_Value_24")
private String cValue24;
/**
* 25次C相谐波
*/
@TableField(value = "C_Value_25")
private String cValue25;
/**
* 26次C相谐波
*/
@TableField(value = "C_Value_26")
private String cValue26;
/**
* 27次C相谐波
*/
@TableField(value = "C_Value_27")
private String cValue27;
/**
* 28次C相谐波
*/
@TableField(value = "C_Value_28")
private String cValue28;
/**
* 29次C相谐波
*/
@TableField(value = "C_Value_29")
private String cValue29;
/**
* 30次C相谐波
*/
@TableField(value = "C_Value_30")
private String cValue30;
/**
* 31次C相谐波
*/
@TableField(value = "C_Value_31")
private String cValue31;
/**
* 32次C相谐波
*/
@TableField(value = "C_Value_32")
private String cValue32;
/**
* 33次C相谐波
*/
@TableField(value = "C_Value_33")
private String cValue33;
/**
* 34次C相谐波
*/
@TableField(value = "C_Value_34")
private String cValue34;
/**
* 35次C相谐波
*/
@TableField(value = "C_Value_35")
private String cValue35;
/**
* 36次C相谐波
*/
@TableField(value = "C_Value_36")
private String cValue36;
/**
* 37次C相谐波
*/
@TableField(value = "C_Value_37")
private String cValue37;
/**
* 38次C相谐波
*/
@TableField(value = "C_Value_38")
private String cValue38;
/**
* 39次C相谐波
*/
@TableField(value = "C_Value_39")
private String cValue39;
/**
* 40次C相谐波
*/
@TableField(value = "C_Value_40")
private String cValue40;
/**
* 41次C相谐波
*/
@TableField(value = "C_Value_41")
private String cValue41;
/**
* 42次C相谐波
*/
@TableField(value = "C_Value_42")
private String cValue42;
/**
* 43次C相谐波
*/
@TableField(value = "C_Value_43")
private String cValue43;
/**
* 44次C相谐波
*/
@TableField(value = "C_Value_44")
private String cValue44;
/**
* 45次C相谐波
*/
@TableField(value = "C_Value_45")
private String cValue45;
/**
* 46次C相谐波
*/
@TableField(value = "C_Value_46")
private String cValue46;
/**
* 47次C相谐波
*/
@TableField(value = "C_Value_47")
private String cValue47;
/**
* 48次C相谐波
*/
@TableField(value = "C_Value_48")
private String cValue48;
/**
* 49次C相谐波
*/
@TableField(value = "C_Value_49")
private String cValue49;
/**
* 50次C相谐波
*/
@TableField(value = "C_Value_50")
private String cValue50;
}

View File

@@ -0,0 +1,34 @@
package com.njcn.gather.storage.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author caozehui
* @data 2025-08-06
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "ad_harmonic_xx")
public class ContrastNonHarmonicResult extends ContrastBaseResult {
/**
* A相值
*/
private String aValue;
/**
* B相值
*/
private String bValue;
/**
* C相值
*/
private String cValue;
/**
* T相值(没有相别的则存这里)
*/
private String tValue;
}

View File

@@ -1,17 +1,15 @@
package com.njcn.gather.storage.pojo.po;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author caozehui
* @data 2024-12-30
*/
@Data
public class AdBaseResult {
/**
* 监测点Id
*/
private String monitorId;
@EqualsAndHashCode(callSuper = true)
public class SimAndDigBaseResult extends BaseResult {
/**
* 检测脚本Id
@@ -22,14 +20,4 @@ public class AdBaseResult {
* 总检测脚本中的测试项序号
*/
private Integer sort;
/**
* 0.不合格 1.合格
*/
private Integer resultFlag;
/**
* 检测指标字典表
*/
private String adType;
}

View File

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
@@ -16,49 +18,13 @@ import lombok.Setter;
* @author cdf
* @since 2024-12-24
*/
@Getter
@Setter
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("ad_harmonic_xx")
public class AdHarmonicResult {
public class SimAndDigHarmonicResult extends SimAndDigBaseResult {
private static final long serialVersionUID = 1L;
/**
* 监测点Id
*/
private String monitorId;
/**
* 时间
*/
private LocalDateTime timeId;
/**
* 检测脚本子表Id字典表
*/
private String scriptId;
/**
* 总检测脚本中的测试项序号
*/
private Integer sort;
/**
* 检测指标字典表
*/
private String adType;
/**
* 数据指标只有数据源为分钟统计时候才会使用最大最小平均CP95默认平均值字典表
*/
private String dataType;
/**
* 1.合格 2.不合格 4.无法处理
*/
private Integer resultFlag;
/**
* A相基波
*/

View File

@@ -0,0 +1,41 @@
package com.njcn.gather.storage.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 监测数据表
* </p>
*
* @author cdf
* @since 2024-12-24
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "ad_harmonic_xx")
public class SimAndDigNonHarmonicResult extends SimAndDigBaseResult {
private static final long serialVersionUID = 1L;
/**
* A相值
*/
private String aValue;
/**
* B相值
*/
private String bValue;
/**
* C相值
*/
private String cValue;
/**
* T相值(没有相别的则存这里)
*/
private String tValue;
}

View File

@@ -0,0 +1,11 @@
package com.njcn.gather.storage.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.gather.storage.pojo.po.ContrastHarmonicResult;
/**
* @author caozehui
* @data 2025-07-28
*/
public interface ContrastHarmonicService extends IService<ContrastHarmonicResult> {
}

View File

@@ -0,0 +1,12 @@
package com.njcn.gather.storage.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.gather.storage.pojo.po.ContrastNonHarmonicResult;
/**
* @author caozehui
* @data 2025-07-28
*/
public interface ContrastNonHarmonicService extends IService<ContrastNonHarmonicResult> {
}

View File

@@ -1,24 +1,25 @@
package com.njcn.gather.storage.service;
import com.njcn.db.mybatisplus.service.IReplenishMybatisService;
import com.njcn.gather.storage.pojo.po.AdHarmonicResult;
import com.njcn.gather.storage.pojo.po.AdNonHarmonicResult;
import com.njcn.gather.storage.pojo.po.BaseResult;
import com.njcn.gather.storage.pojo.po.ContrastNonHarmonicResult;
import com.njcn.gather.storage.pojo.po.SimAndDigHarmonicResult;
import com.njcn.gather.storage.pojo.po.SimAndDigNonHarmonicResult;
import java.util.List;
import java.util.Map;
public interface DetectionDataDealService extends IReplenishMybatisService<AdHarmonicResult> {
public interface DetectionDataDealService extends IReplenishMybatisService<SimAndDigHarmonicResult> {
Boolean acceptAdNon(List<AdNonHarmonicResult> adNonHarmonicResultList,String code);
Boolean acceptAdNon(List<SimAndDigNonHarmonicResult> SimAndDigNonHarmonicResultList,String code);
Boolean acceptAd(List<AdHarmonicResult> adHarmonicResultList,String code);
Boolean acceptAd(List<SimAndDigHarmonicResult> SimAndDigHarmonicResultList,String code);
Boolean acceptNonHarmonicResult(List<? extends BaseResult> nonHarmonicResultList, String code);
Boolean acceptAdNonResult(List<AdNonHarmonicResult> adNonHarmonicResultList,String code);
Boolean acceptAdResult(List<AdHarmonicResult> adHarmonicResultList,String code);
Boolean acceptAdResult(List<SimAndDigHarmonicResult> SimAndDigHarmonicResultList,String code);
/**
* 根据终端id查询终端所有监测项目是否合格

View File

@@ -3,8 +3,8 @@ package com.njcn.gather.storage.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.gather.storage.pojo.param.SingleNonHarmParam;
import com.njcn.gather.storage.pojo.param.StorageParam;
import com.njcn.gather.storage.pojo.po.AdBaseResult;
import com.njcn.gather.storage.pojo.po.AdHarmonicResult;
import com.njcn.gather.storage.pojo.po.SimAndDigBaseResult;
import com.njcn.gather.storage.pojo.po.SimAndDigHarmonicResult;
import com.njcn.gather.storage.pojo.vo.RawDataVO;
import com.njcn.gather.storage.pojo.vo.RawResultDataVO;
@@ -15,7 +15,7 @@ import java.util.Map;
* @author caozehui
* @data 2024-12-30
*/
public interface AdHarmonicService extends IService<AdHarmonicResult> {
public interface SimAndDigHarmonicService extends IService<SimAndDigHarmonicResult> {
/**
* 根据设备ID和通道号获取谐波结果
@@ -26,7 +26,7 @@ public interface AdHarmonicService extends IService<AdHarmonicResult> {
* @param code 计划code
* @return 谐波结果
*/
List<AdBaseResult> get(String scriptId, List<Integer> index, String deviceId, String chnNum, String code);
List<SimAndDigBaseResult> get(String scriptId, List<Integer> index, String deviceId, String chnNum, String code);
/**
* 查询原始数据
@@ -52,7 +52,7 @@ public interface AdHarmonicService extends IService<AdHarmonicResult> {
*/
List<Integer> getIndex(StorageParam param);
AdHarmonicResult getSingleResult(SingleNonHarmParam singleNonHarmParam);
SimAndDigHarmonicResult getSingleResult(SingleNonHarmParam singleNonHarmParam);
/**
* 获取所有谐波结果数据
@@ -62,7 +62,7 @@ public interface AdHarmonicService extends IService<AdHarmonicResult> {
* @param devId 设备ID
* @return
*/
List<AdHarmonicResult> listAllResultData(String scriptId, String code, String devId);
List<SimAndDigHarmonicResult> listAllResultData(String scriptId, String code, String devId);
/**
* 获取所有原始数据
@@ -72,5 +72,5 @@ public interface AdHarmonicService extends IService<AdHarmonicResult> {
* @param devId
* @return
*/
List<AdHarmonicResult> listAllRawData(String scriptId, String code, String devId);
List<SimAndDigHarmonicResult> listAllRawData(String scriptId, String code, String devId);
}

View File

@@ -3,15 +3,15 @@ package com.njcn.gather.storage.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.gather.storage.pojo.param.SingleNonHarmParam;
import com.njcn.gather.storage.pojo.param.StorageParam;
import com.njcn.gather.storage.pojo.po.AdBaseResult;
import com.njcn.gather.storage.pojo.po.AdNonHarmonicResult;
import com.njcn.gather.storage.pojo.po.SimAndDigBaseResult;
import com.njcn.gather.storage.pojo.po.SimAndDigNonHarmonicResult;
import com.njcn.gather.storage.pojo.vo.RawDataVO;
import com.njcn.gather.storage.pojo.vo.RawResultDataVO;
import java.util.List;
import java.util.Map;
public interface AdNonHarmonicService extends IService<AdNonHarmonicResult> {
public interface SimAndDigNonHarmonicService extends IService<SimAndDigNonHarmonicResult> {
/**
@@ -23,7 +23,7 @@ public interface AdNonHarmonicService extends IService<AdNonHarmonicResult> {
* @param chnNum 通道号从1开始
* @return 非谐波结果
*/
List<AdBaseResult> get(String scriptId, List<Integer> sort, String deviceId, String chnNum, String code);
List<SimAndDigBaseResult> listSimAndDigBaseResult(String scriptId, List<Integer> sort, String deviceId, String chnNum, String code);
/**
* 非谐波原始数据展示
@@ -45,7 +45,7 @@ public interface AdNonHarmonicService extends IService<AdNonHarmonicResult> {
* 根据参数查询指定非谐波结果
* @param singleNonHarmParam 查询参数
*/
AdNonHarmonicResult getSingleResult(SingleNonHarmParam singleNonHarmParam);
SimAndDigNonHarmonicResult getSingleSimAndDigBaseResult(SingleNonHarmParam singleNonHarmParam);
/**
* 获取所有结果数据
@@ -54,13 +54,13 @@ public interface AdNonHarmonicService extends IService<AdNonHarmonicResult> {
* @param devId
* @return
*/
List<AdNonHarmonicResult> listAllResultData(String scriptId,String code,String devId);
List<SimAndDigNonHarmonicResult> listSimAndDigBaseResult(String scriptId,String code,String devId);
/**
* 根据查询条件查找结果
* @param param 查询条件
*/
List<AdNonHarmonicResult> queryByCondition(SingleNonHarmParam param);
List<SimAndDigNonHarmonicResult> queryByCondition(SingleNonHarmParam param);
/**
@@ -72,5 +72,5 @@ public interface AdNonHarmonicService extends IService<AdNonHarmonicResult> {
* @param devId
* @return
*/
List<AdNonHarmonicResult> listAllRawData(String scriptId, String code, String devId);
List<SimAndDigNonHarmonicResult> listAllSimAndDigRawData(String scriptId, String code, String devId);
}

View File

@@ -5,7 +5,7 @@ import java.util.List;
public interface TableGenService {
void genAdNonHarmonicTable(String code);
void genTable(String code, boolean isContrast);
/**
* 批量删除表 (包括谐波表、谐波结果表、非谐波表、非谐波结果表)

View File

@@ -0,0 +1,17 @@
package com.njcn.gather.storage.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.gather.storage.mapper.ContrastHarmonicMappper;
import com.njcn.gather.storage.pojo.po.ContrastHarmonicResult;
import com.njcn.gather.storage.service.ContrastHarmonicService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @author caozehui
* @data 2025-07-28
*/
@Service
@RequiredArgsConstructor
public class ContrastHarmonicServiceImpl extends ServiceImpl<ContrastHarmonicMappper, ContrastHarmonicResult> implements ContrastHarmonicService {
}

View File

@@ -0,0 +1,17 @@
package com.njcn.gather.storage.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.gather.storage.mapper.ContrastNonHarmonicMappper;
import com.njcn.gather.storage.pojo.po.ContrastNonHarmonicResult;
import com.njcn.gather.storage.service.ContrastNonHarmonicService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @author caozehui
* @data 2025-07-28
*/
@Service
@RequiredArgsConstructor
public class ContrastNonHarmonicServiceImpl extends ServiceImpl<ContrastNonHarmonicMappper, ContrastNonHarmonicResult> implements ContrastNonHarmonicService {
}

View File

@@ -1,19 +1,26 @@
package com.njcn.gather.storage.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.db.mybatisplus.handler.DynamicTableNameHandler;
import com.njcn.db.mybatisplus.service.impl.ReplenishMybatisServiceImpl;
import com.njcn.gather.storage.mapper.DetectionDataDealMapper;
import com.njcn.gather.storage.pojo.po.AdHarmonicResult;
import com.njcn.gather.storage.pojo.po.AdNonHarmonicResult;
import com.njcn.gather.storage.service.AdNonHarmonicService;
import com.njcn.gather.storage.pojo.po.BaseResult;
import com.njcn.gather.storage.pojo.po.ContrastNonHarmonicResult;
import com.njcn.gather.storage.pojo.po.SimAndDigHarmonicResult;
import com.njcn.gather.storage.pojo.po.SimAndDigNonHarmonicResult;
import com.njcn.gather.storage.service.ContrastNonHarmonicService;
import com.njcn.gather.storage.service.DetectionDataDealService;
import com.njcn.gather.storage.service.SimAndDigNonHarmonicService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -23,23 +30,24 @@ import java.util.stream.Collectors;
*/
@Service
@RequiredArgsConstructor
public class DetectionDataServiceImpl extends ReplenishMybatisServiceImpl<DetectionDataDealMapper, AdHarmonicResult> implements DetectionDataDealService {
public class DetectionDataServiceImpl extends ReplenishMybatisServiceImpl<DetectionDataDealMapper, SimAndDigHarmonicResult> implements DetectionDataDealService {
private final AdNonHarmonicService adNonHarmonicService;
private final SimAndDigNonHarmonicService adNonHarmonicService;
private final ContrastNonHarmonicService contrastNonHarmonicService;
private final DetectionDataDealMapper detectionDataDealMapper;
@Override
@Transactional
public Boolean acceptAdNon(List<AdNonHarmonicResult> adNonHarmonicResultList, String code) {
public Boolean acceptAdNon(List<SimAndDigNonHarmonicResult> SimAndDigNonHarmonicResultList, String code) {
String adNonTable = "ad_non_harmonic_";
DynamicTableNameHandler.setTableName(adNonTable + code);
List<String> monitorIds = adNonHarmonicResultList.stream().map(AdNonHarmonicResult::getMonitorId).distinct().collect(Collectors.toList());
List<String> monitorIds = SimAndDigNonHarmonicResultList.stream().map(SimAndDigNonHarmonicResult::getMonitorId).distinct().collect(Collectors.toList());
if (CollUtil.isNotEmpty(monitorIds)) {
adNonHarmonicService.remove(new LambdaQueryWrapper<AdNonHarmonicResult>().in(AdNonHarmonicResult::getMonitorId, monitorIds)
.eq(AdNonHarmonicResult::getScriptId, adNonHarmonicResultList.get(0).getScriptId())
.eq(AdNonHarmonicResult::getSort, adNonHarmonicResultList.get(0).getSort()));
adNonHarmonicService.saveBatch(adNonHarmonicResultList, 100);
adNonHarmonicService.remove(new LambdaQueryWrapper<SimAndDigNonHarmonicResult>().in(SimAndDigNonHarmonicResult::getMonitorId, monitorIds)
.eq(SimAndDigNonHarmonicResult::getScriptId, SimAndDigNonHarmonicResultList.get(0).getScriptId())
.eq(SimAndDigNonHarmonicResult::getSort, SimAndDigNonHarmonicResultList.get(0).getSort()));
adNonHarmonicService.saveBatch(SimAndDigNonHarmonicResultList, 100);
}
DynamicTableNameHandler.remove();
return true;
@@ -47,15 +55,15 @@ public class DetectionDataServiceImpl extends ReplenishMybatisServiceImpl<Detect
@Override
@Transactional
public Boolean acceptAd(List<AdHarmonicResult> adHarmonicResultList, String code) {
public Boolean acceptAd(List<SimAndDigHarmonicResult> SimAndDigHarmonicResultList, String code) {
String adTable = "ad_harmonic_";
DynamicTableNameHandler.setTableName(adTable + code);
List<String> monitorIds = adHarmonicResultList.stream().map(AdHarmonicResult::getMonitorId).distinct().collect(Collectors.toList());
List<String> monitorIds = SimAndDigHarmonicResultList.stream().map(SimAndDigHarmonicResult::getMonitorId).distinct().collect(Collectors.toList());
if (CollUtil.isNotEmpty(monitorIds)) {
this.remove(new LambdaQueryWrapper<AdHarmonicResult>().in(AdHarmonicResult::getMonitorId, monitorIds)
.eq(AdHarmonicResult::getScriptId, adHarmonicResultList.get(0).getScriptId())
.eq(AdHarmonicResult::getSort, adHarmonicResultList.get(0).getSort()));
this.saveBatch(adHarmonicResultList, 100);
this.remove(new LambdaQueryWrapper<SimAndDigHarmonicResult>().in(SimAndDigHarmonicResult::getMonitorId, monitorIds)
.eq(SimAndDigHarmonicResult::getScriptId, SimAndDigHarmonicResultList.get(0).getScriptId())
.eq(SimAndDigHarmonicResult::getSort, SimAndDigHarmonicResultList.get(0).getSort()));
this.saveBatch(SimAndDigHarmonicResultList, 100);
}
DynamicTableNameHandler.remove();
@@ -64,31 +72,46 @@ public class DetectionDataServiceImpl extends ReplenishMybatisServiceImpl<Detect
@Override
@Transactional
public Boolean acceptAdNonResult(List<AdNonHarmonicResult> adNonHarmonicResultList, String code) {
String adNonTableResult = "ad_non_harmonic_result_";
DynamicTableNameHandler.setTableName(adNonTableResult + code);
List<String> monitorIds = adNonHarmonicResultList.stream().map(AdNonHarmonicResult::getMonitorId).distinct().collect(Collectors.toList());
if (CollUtil.isNotEmpty(monitorIds)) {
adNonHarmonicService.remove(new LambdaQueryWrapper<AdNonHarmonicResult>().in(AdNonHarmonicResult::getMonitorId, monitorIds)
.eq(AdNonHarmonicResult::getScriptId, adNonHarmonicResultList.get(0).getScriptId())
.eq(AdNonHarmonicResult::getSort, adNonHarmonicResultList.get(0).getSort()));
adNonHarmonicService.saveBatch(adNonHarmonicResultList, 100);
public Boolean acceptNonHarmonicResult(List<? extends BaseResult> nonHarmonicResultList, String code) {
if (CollUtil.isNotEmpty(nonHarmonicResultList)) {
String adNonTableResult = "ad_non_harmonic_result_";
DynamicTableNameHandler.setTableName(adNonTableResult + code);
if (nonHarmonicResultList.get(0) instanceof SimAndDigNonHarmonicResult) {
List<SimAndDigNonHarmonicResult> simAndDigNonHarmonicResultList = BeanUtil.copyToList(nonHarmonicResultList, SimAndDigNonHarmonicResult.class);
List<String> monitorIds = simAndDigNonHarmonicResultList.stream().map(SimAndDigNonHarmonicResult::getMonitorId).distinct().collect(Collectors.toList());
if (CollUtil.isNotEmpty(monitorIds)) {
adNonHarmonicService.remove(new LambdaQueryWrapper<SimAndDigNonHarmonicResult>().in(SimAndDigNonHarmonicResult::getMonitorId, monitorIds)
.eq(SimAndDigNonHarmonicResult::getScriptId, simAndDigNonHarmonicResultList.get(0).getScriptId())
.eq(SimAndDigNonHarmonicResult::getSort, simAndDigNonHarmonicResultList.get(0).getSort()));
adNonHarmonicService.saveBatch(simAndDigNonHarmonicResultList, 100);
}
}
if (nonHarmonicResultList.get(0) instanceof ContrastNonHarmonicResult) {
List<ContrastNonHarmonicResult> contrastNonHarmonicResultList = BeanUtil.copyToList(nonHarmonicResultList, ContrastNonHarmonicResult.class);
List<String> monitorIds = contrastNonHarmonicResultList.stream().map(ContrastNonHarmonicResult::getMonitorId).distinct().collect(Collectors.toList());
if (CollUtil.isNotEmpty(monitorIds)) {
contrastNonHarmonicService.remove(new LambdaQueryWrapper<ContrastNonHarmonicResult>().in(ContrastNonHarmonicResult::getMonitorId, monitorIds)
.eq(ContrastNonHarmonicResult::getErrorId, contrastNonHarmonicResultList.get(0).getErrorId())
.eq(ContrastNonHarmonicResult::getNum, contrastNonHarmonicResultList.get(0).getNum()));
contrastNonHarmonicService.saveBatch(contrastNonHarmonicResultList, 100);
}
}
DynamicTableNameHandler.remove();
}
DynamicTableNameHandler.remove();
return true;
}
@Override
@Transactional
public Boolean acceptAdResult(List<AdHarmonicResult> adHarmonicResultList, String code) {
public Boolean acceptAdResult(List<SimAndDigHarmonicResult> simAndDigHarmonicResultList, String code) {
String adTableResult = "ad_harmonic_result_";
DynamicTableNameHandler.setTableName(adTableResult + code);
List<String> monitorIds = adHarmonicResultList.stream().map(AdHarmonicResult::getMonitorId).distinct().collect(Collectors.toList());
List<String> monitorIds = simAndDigHarmonicResultList.stream().map(SimAndDigHarmonicResult::getMonitorId).distinct().collect(Collectors.toList());
if (CollUtil.isNotEmpty(monitorIds)) {
this.remove(new LambdaQueryWrapper<AdHarmonicResult>().in(AdHarmonicResult::getMonitorId, monitorIds)
.eq(AdHarmonicResult::getScriptId, adHarmonicResultList.get(0).getScriptId())
.eq(AdHarmonicResult::getSort, adHarmonicResultList.get(0).getSort()));
this.saveBatch(adHarmonicResultList, 100);
this.remove(new LambdaQueryWrapper<SimAndDigHarmonicResult>().in(SimAndDigHarmonicResult::getMonitorId, monitorIds)
.eq(SimAndDigHarmonicResult::getScriptId, simAndDigHarmonicResultList.get(0).getScriptId())
.eq(SimAndDigHarmonicResult::getSort, simAndDigHarmonicResultList.get(0).getSort()));
this.saveBatch(simAndDigHarmonicResultList, 100);
}
DynamicTableNameHandler.remove();
return true;
@@ -97,30 +120,30 @@ public class DetectionDataServiceImpl extends ReplenishMybatisServiceImpl<Detect
@Override
public Map<String, Integer> devResult(List<String> ids, List<String> valueType, String code) {
List<Integer> disabledScriptDtlIndexs = detectionDataDealMapper.listDisabledScriptDtlIndexs(ids.get(0));
List<AdNonHarmonicResult> noHarm = new ArrayList<>();
List<SimAndDigNonHarmonicResult> noHarm = new ArrayList<>();
for (String id : ids) {
DynamicTableNameHandler.setTableName("ad_non_harmonic_result_" + code);
noHarm.addAll(adNonHarmonicService.list(new LambdaQueryWrapper<AdNonHarmonicResult>()
.like(AdNonHarmonicResult::getMonitorId, id)
.notIn(CollUtil.isNotEmpty(disabledScriptDtlIndexs), AdNonHarmonicResult::getSort, disabledScriptDtlIndexs)
.in(CollUtil.isNotEmpty(valueType), AdNonHarmonicResult::getAdType, valueType)
noHarm.addAll(adNonHarmonicService.list(new LambdaQueryWrapper<SimAndDigNonHarmonicResult>()
.like(SimAndDigNonHarmonicResult::getMonitorId, id)
.notIn(CollUtil.isNotEmpty(disabledScriptDtlIndexs), SimAndDigNonHarmonicResult::getSort, disabledScriptDtlIndexs)
.in(CollUtil.isNotEmpty(valueType), SimAndDigNonHarmonicResult::getAdType, valueType)
));
}
DynamicTableNameHandler.remove();
List<AdHarmonicResult> harm = new ArrayList<>();
List<SimAndDigHarmonicResult> harm = new ArrayList<>();
for (String id : ids) {
DynamicTableNameHandler.setTableName("ad_harmonic_result_" + code);
harm.addAll(this.list(new LambdaQueryWrapper<AdHarmonicResult>()
.like(AdHarmonicResult::getMonitorId, id)
.notIn(CollUtil.isNotEmpty(disabledScriptDtlIndexs), AdHarmonicResult::getSort, disabledScriptDtlIndexs)
.in(CollUtil.isNotEmpty(valueType), AdHarmonicResult::getAdType, valueType)
harm.addAll(this.list(new LambdaQueryWrapper<SimAndDigHarmonicResult>()
.like(SimAndDigHarmonicResult::getMonitorId, id)
.notIn(CollUtil.isNotEmpty(disabledScriptDtlIndexs), SimAndDigHarmonicResult::getSort, disabledScriptDtlIndexs)
.in(CollUtil.isNotEmpty(valueType), SimAndDigHarmonicResult::getAdType, valueType)
));
}
DynamicTableNameHandler.remove();
Map<String, List<Integer>> noHarmMap = noHarm.stream().collect(Collectors.groupingBy(x -> x.getMonitorId().split("_")[0],
Collectors.mapping(AdNonHarmonicResult::getResultFlag, Collectors.toList())));
Collectors.mapping(SimAndDigNonHarmonicResult::getResultFlag, Collectors.toList())));
Map<String, List<Integer>> harmMap = harm.stream().collect(Collectors.groupingBy(x -> x.getMonitorId().split("_")[0],
Collectors.mapping(AdHarmonicResult::getResultFlag, Collectors.toList())));
Collectors.mapping(SimAndDigHarmonicResult::getResultFlag, Collectors.toList())));
Map<String, Integer> map = new HashMap<>(2);
for (String id : ids) {
List<Integer> resultFlags = new ArrayList<>();

View File

@@ -11,16 +11,16 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.njcn.db.mybatisplus.handler.DynamicTableNameHandler;
import com.njcn.gather.storage.mapper.AdHarmonicMappper;
import com.njcn.gather.storage.mapper.AdNonHarmonicMapper;
import com.njcn.gather.storage.mapper.SimAndDigHarmonicMappper;
import com.njcn.gather.storage.mapper.SimAndDigNonHarmonicMapper;
import com.njcn.gather.storage.pojo.param.SingleNonHarmParam;
import com.njcn.gather.storage.pojo.param.StorageParam;
import com.njcn.gather.storage.pojo.po.AdBaseResult;
import com.njcn.gather.storage.pojo.po.AdHarmonicResult;
import com.njcn.gather.storage.pojo.po.AdNonHarmonicResult;
import com.njcn.gather.storage.pojo.po.SimAndDigBaseResult;
import com.njcn.gather.storage.pojo.po.SimAndDigHarmonicResult;
import com.njcn.gather.storage.pojo.po.SimAndDigNonHarmonicResult;
import com.njcn.gather.storage.pojo.vo.RawDataVO;
import com.njcn.gather.storage.pojo.vo.RawResultDataVO;
import com.njcn.gather.storage.service.AdHarmonicService;
import com.njcn.gather.storage.service.SimAndDigHarmonicService;
import com.njcn.gather.system.dictionary.mapper.DictTreeMapper;
import com.njcn.gather.system.dictionary.pojo.enums.DictDataEnum;
import com.njcn.gather.system.dictionary.pojo.po.DictTree;
@@ -42,42 +42,42 @@ import java.util.stream.Collectors;
*/
@Service
@RequiredArgsConstructor
public class AdHarmonicServiceImpl extends ServiceImpl<AdHarmonicMappper, AdHarmonicResult> implements AdHarmonicService {
public class SimAndDigHarmonicServiceImpl extends ServiceImpl<SimAndDigHarmonicMappper, SimAndDigHarmonicResult> implements SimAndDigHarmonicService {
private final AdNonHarmonicMapper adNonHarmonicMapper;
private final SimAndDigNonHarmonicMapper adNonHarmonicMapper;
private final DictTreeMapper dictTreeMapper;
private final IDictTreeService dictTreeService;
@Override
public List<AdBaseResult> get(String scriptId, List<Integer> sort, String deviceId, String chnNum, String code) {
public List<SimAndDigBaseResult> get(String scriptId, List<Integer> sort, String deviceId, String chnNum, String code) {
String prefix = "ad_harmonic_result_";
DynamicTableNameHandler.setTableName(prefix + code);
MPJLambdaWrapper<AdHarmonicResult> wrapper = new MPJLambdaWrapper<>();
MPJLambdaWrapper<SimAndDigHarmonicResult> wrapper = new MPJLambdaWrapper<>();
String monitorId = deviceId + "_" + chnNum;
if ("-1".equals(chnNum)) {
monitorId = deviceId;
}
wrapper.like(AdHarmonicResult::getMonitorId, monitorId)
.eq(ObjectUtil.isNotNull(scriptId), AdHarmonicResult::getScriptId, scriptId)
.in(CollUtil.isNotEmpty(sort), AdHarmonicResult::getSort, sort);
List<AdHarmonicResult> list = this.getBaseMapper().selectJoinList(AdHarmonicResult.class, wrapper);
wrapper.like(SimAndDigHarmonicResult::getMonitorId, monitorId)
.eq(ObjectUtil.isNotNull(scriptId), SimAndDigHarmonicResult::getScriptId, scriptId)
.in(CollUtil.isNotEmpty(sort), SimAndDigHarmonicResult::getSort, sort);
List<SimAndDigHarmonicResult> list = this.getBaseMapper().selectJoinList(SimAndDigHarmonicResult.class, wrapper);
DynamicTableNameHandler.remove();
return BeanUtil.copyToList(list, AdBaseResult.class);
return BeanUtil.copyToList(list, SimAndDigBaseResult.class);
}
@Override
public Map<String, List<RawDataVO>> listHarmData(StorageParam param) {
String prefix = "ad_harmonic_";
DynamicTableNameHandler.setTableName(prefix + param.getCode());
MPJLambdaWrapper<AdHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.like(AdHarmonicResult::getMonitorId, param.getDevId() + "_" + param.getDevNum())
.eq(ObjectUtil.isNotNull(param.getScriptId()), AdHarmonicResult::getScriptId, param.getScriptId())
.in(ObjectUtil.isNotEmpty(param.getIndex()), AdHarmonicResult::getSort, param.getIndex())
.orderByAsc(AdHarmonicResult::getTimeId)
MPJLambdaWrapper<SimAndDigHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.like(SimAndDigHarmonicResult::getMonitorId, param.getDevId() + "_" + param.getDevNum())
.eq(ObjectUtil.isNotNull(param.getScriptId()), SimAndDigHarmonicResult::getScriptId, param.getScriptId())
.in(ObjectUtil.isNotEmpty(param.getIndex()), SimAndDigHarmonicResult::getSort, param.getIndex())
.orderByAsc(SimAndDigHarmonicResult::getTimeId)
;
List<AdHarmonicResult> adHarmonicResults = this.getBaseMapper().selectJoinList(AdHarmonicResult.class, wrapper);
LinkedHashMap<String, List<AdHarmonicResult>> adMap =
adHarmonicResults.stream().collect(Collectors.groupingBy(AdHarmonicResult::getAdType, LinkedHashMap::new, Collectors.toList()));
List<SimAndDigHarmonicResult> simAndDigHarmonicResults = this.getBaseMapper().selectJoinList(SimAndDigHarmonicResult.class, wrapper);
LinkedHashMap<String, List<SimAndDigHarmonicResult>> adMap =
simAndDigHarmonicResults.stream().collect(Collectors.groupingBy(SimAndDigHarmonicResult::getAdType, LinkedHashMap::new, Collectors.toList()));
List<DictTree> dictTreeById = dictTreeService.getDictTreeById(new ArrayList<>(adMap.keySet()));
Map<String, DictTree> dictTreeByName = dictTreeById.stream().collect(Collectors.toMap(DictTree::getId, Function.identity()));
Map<String, List<RawDataVO>> info = new LinkedHashMap<>(3);
@@ -95,13 +95,13 @@ public class AdHarmonicServiceImpl extends ServiceImpl<AdHarmonicMappper, AdHarm
} else {
unit = "%";
}
for (AdHarmonicResult harmonicResult : value) {
for (SimAndDigHarmonicResult harmonicResult : value) {
for (Double i : harmNum) {
dataVO = new RawDataVO();
dataVO.setHarmNum(i);
dataVO.setUnit(unit);
try {
Field timeId = harmonicResult.getClass().getDeclaredField("timeId");
Field timeId = harmonicResult.getClass().getSuperclass().getSuperclass().getDeclaredField("timeId");
timeId.setAccessible(true);
LocalDateTime localDateTime = (LocalDateTime) timeId.get(harmonicResult);
dataVO.setTime(localDateTime.format(DateTimeFormatter.ofPattern(DatePattern.ISO8601_PATTERN)));
@@ -136,14 +136,14 @@ public class AdHarmonicServiceImpl extends ServiceImpl<AdHarmonicMappper, AdHarm
public Map<String, List<RawResultDataVO>> listHarmResultData(StorageParam param) {
String prefix = "ad_harmonic_result_";
DynamicTableNameHandler.setTableName(prefix + param.getCode());
MPJLambdaWrapper<AdHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.like(AdHarmonicResult::getMonitorId, param.getDevId() + "_" + param.getDevNum())
.eq(ObjectUtil.isNotNull(param.getScriptId()), AdHarmonicResult::getScriptId, param.getScriptId())
.in(ObjectUtil.isNotEmpty(param.getIndex()), AdHarmonicResult::getSort, param.getIndex())
.orderByAsc(AdHarmonicResult::getTimeId);
List<AdHarmonicResult> adHarmonicResults = this.getBaseMapper().selectJoinList(AdHarmonicResult.class, wrapper);
LinkedHashMap<String, List<AdHarmonicResult>> adMap =
adHarmonicResults.stream().collect(Collectors.groupingBy(AdHarmonicResult::getAdType, LinkedHashMap::new, Collectors.toList()));
MPJLambdaWrapper<SimAndDigHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.like(SimAndDigHarmonicResult::getMonitorId, param.getDevId() + "_" + param.getDevNum())
.eq(ObjectUtil.isNotNull(param.getScriptId()), SimAndDigHarmonicResult::getScriptId, param.getScriptId())
.in(ObjectUtil.isNotEmpty(param.getIndex()), SimAndDigHarmonicResult::getSort, param.getIndex())
.orderByAsc(SimAndDigHarmonicResult::getTimeId);
List<SimAndDigHarmonicResult> adHarmonicResults = this.getBaseMapper().selectJoinList(SimAndDigHarmonicResult.class, wrapper);
LinkedHashMap<String, List<SimAndDigHarmonicResult>> adMap =
adHarmonicResults.stream().collect(Collectors.groupingBy(SimAndDigHarmonicResult::getAdType, LinkedHashMap::new, Collectors.toList()));
List<DictTree> dictTreeById = dictTreeService.getDictTreeById(new ArrayList<>(adMap.keySet()));
Map<String, DictTree> dictTreeByName = dictTreeById.stream().collect(Collectors.toMap(DictTree::getId, Function.identity()));
Map<String, List<RawResultDataVO>> info = new LinkedHashMap<>(3);
@@ -161,7 +161,7 @@ public class AdHarmonicServiceImpl extends ServiceImpl<AdHarmonicMappper, AdHarm
} else {
unit = "%";
}
for (AdHarmonicResult harmonicResult : value) {
for (SimAndDigHarmonicResult harmonicResult : value) {
for (Double i : harmNum) {
dataVO = new RawResultDataVO();
dataVO.setHarmNum(i);
@@ -205,40 +205,40 @@ public class AdHarmonicServiceImpl extends ServiceImpl<AdHarmonicMappper, AdHarm
String prefix = "ad_harmonic_result_";
String prefixNon = "ad_non_harmonic_result_";
DynamicTableNameHandler.setTableName(prefix + param.getCode());
LambdaQueryWrapper<AdHarmonicResult> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.select(AdHarmonicResult::getSort)
.likeRight(StrUtil.isNotBlank(param.getDevId()), AdHarmonicResult::getMonitorId, param.getDevId())
.ne(AdHarmonicResult::getResultFlag, 1)
.ne(AdHarmonicResult::getResultFlag, 4)
.ne(AdHarmonicResult::getResultFlag, 5)
.eq(AdHarmonicResult::getScriptId, param.getScriptId());
List<AdHarmonicResult> adHarmonicResultList = this.list(lambdaQueryWrapper);
List<Integer> indexes = new ArrayList<>(adHarmonicResultList.stream().map(AdHarmonicResult::getSort).distinct().collect(Collectors.toList()));
LambdaQueryWrapper<SimAndDigHarmonicResult> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.select(SimAndDigHarmonicResult::getSort)
.likeRight(StrUtil.isNotBlank(param.getDevId()), SimAndDigHarmonicResult::getMonitorId, param.getDevId())
.ne(SimAndDigHarmonicResult::getResultFlag, 1)
.ne(SimAndDigHarmonicResult::getResultFlag, 4)
.ne(SimAndDigHarmonicResult::getResultFlag, 5)
.eq(SimAndDigHarmonicResult::getScriptId, param.getScriptId());
List<SimAndDigHarmonicResult> adHarmonicResultList = this.list(lambdaQueryWrapper);
List<Integer> indexes = new ArrayList<>(adHarmonicResultList.stream().map(SimAndDigHarmonicResult::getSort).distinct().collect(Collectors.toList()));
DynamicTableNameHandler.setTableName(prefixNon + param.getCode());
LambdaQueryWrapper<AdNonHarmonicResult> resultLambdaQueryWrapper = new LambdaQueryWrapper<>();
resultLambdaQueryWrapper.select(AdNonHarmonicResult::getSort)
.likeRight(StrUtil.isNotBlank(param.getDevId()), AdNonHarmonicResult::getMonitorId, param.getDevId())
.ne(AdNonHarmonicResult::getResultFlag, 1)
.ne(AdNonHarmonicResult::getResultFlag, 4)
.ne(AdNonHarmonicResult::getResultFlag, 5)
.eq(AdNonHarmonicResult::getScriptId, param.getScriptId());
List<AdNonHarmonicResult> nonHarmonicResults = adNonHarmonicMapper.selectList(resultLambdaQueryWrapper);
indexes.addAll(nonHarmonicResults.stream().map(AdNonHarmonicResult::getSort).distinct().collect(Collectors.toList()));
LambdaQueryWrapper<SimAndDigNonHarmonicResult> resultLambdaQueryWrapper = new LambdaQueryWrapper<>();
resultLambdaQueryWrapper.select(SimAndDigNonHarmonicResult::getSort)
.likeRight(StrUtil.isNotBlank(param.getDevId()), SimAndDigNonHarmonicResult::getMonitorId, param.getDevId())
.ne(SimAndDigNonHarmonicResult::getResultFlag, 1)
.ne(SimAndDigNonHarmonicResult::getResultFlag, 4)
.ne(SimAndDigNonHarmonicResult::getResultFlag, 5)
.eq(SimAndDigNonHarmonicResult::getScriptId, param.getScriptId());
List<SimAndDigNonHarmonicResult> nonHarmonicResults = adNonHarmonicMapper.selectList(resultLambdaQueryWrapper);
indexes.addAll(nonHarmonicResults.stream().map(SimAndDigNonHarmonicResult::getSort).distinct().collect(Collectors.toList()));
DynamicTableNameHandler.remove();
return indexes;
}
@Override
public AdHarmonicResult getSingleResult(SingleNonHarmParam singleNonHarmParam) {
public SimAndDigHarmonicResult getSingleResult(SingleNonHarmParam singleNonHarmParam) {
if (ObjectUtil.isNotNull(singleNonHarmParam)) {
String prefix = "ad_harmonic_result_";
DynamicTableNameHandler.setTableName(prefix + singleNonHarmParam.getPlanCode());
MPJLambdaWrapper<AdHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.like(AdHarmonicResult::getMonitorId, singleNonHarmParam.getDevId() + "_" + singleNonHarmParam.getChannelNo())
.eq(AdHarmonicResult::getSort, singleNonHarmParam.getSort())
.eq(AdHarmonicResult::getAdType, singleNonHarmParam.getAdType());
List<AdHarmonicResult> adHarmonicResults = this.getBaseMapper().selectJoinList(AdHarmonicResult.class, wrapper);
MPJLambdaWrapper<SimAndDigHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.like(SimAndDigHarmonicResult::getMonitorId, singleNonHarmParam.getDevId() + "_" + singleNonHarmParam.getChannelNo())
.eq(SimAndDigHarmonicResult::getSort, singleNonHarmParam.getSort())
.eq(SimAndDigHarmonicResult::getAdType, singleNonHarmParam.getAdType());
List<SimAndDigHarmonicResult> adHarmonicResults = this.getBaseMapper().selectJoinList(SimAndDigHarmonicResult.class, wrapper);
DynamicTableNameHandler.remove();
if (CollectionUtil.isNotEmpty(adHarmonicResults)) {
return adHarmonicResults.get(0);
@@ -248,29 +248,29 @@ public class AdHarmonicServiceImpl extends ServiceImpl<AdHarmonicMappper, AdHarm
}
@Override
public List<AdHarmonicResult> listAllResultData(String scriptId, String code, String devId) {
public List<SimAndDigHarmonicResult> listAllResultData(String scriptId, String code, String devId) {
String prefix = "ad_harmonic_result_" + code;
DynamicTableNameHandler.setTableName(prefix);
MPJLambdaWrapper<AdHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.selectAll(AdHarmonicResult.class)
.selectAs(DictTree::getCode, AdHarmonicResult::getAdType)
.leftJoin(DictTree.class, DictTree::getId, AdHarmonicResult::getAdType).eq(AdHarmonicResult::getScriptId, scriptId)
.likeRight(AdHarmonicResult::getMonitorId, devId);
List<AdHarmonicResult> results = this.getBaseMapper().selectJoinList(AdHarmonicResult.class, wrapper);
MPJLambdaWrapper<SimAndDigHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.selectAll(SimAndDigHarmonicResult.class)
.selectAs(DictTree::getCode, SimAndDigHarmonicResult::getAdType)
.leftJoin(DictTree.class, DictTree::getId, SimAndDigHarmonicResult::getAdType).eq(SimAndDigHarmonicResult::getScriptId, scriptId)
.likeRight(SimAndDigHarmonicResult::getMonitorId, devId);
List<SimAndDigHarmonicResult> results = this.getBaseMapper().selectJoinList(SimAndDigHarmonicResult.class, wrapper);
DynamicTableNameHandler.remove();
return results;
}
@Override
public List<AdHarmonicResult> listAllRawData(String scriptId, String code, String devId) {
public List<SimAndDigHarmonicResult> listAllRawData(String scriptId, String code, String devId) {
String prefix = "ad_harmonic_" + code;
DynamicTableNameHandler.setTableName(prefix);
MPJLambdaWrapper<AdHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.selectAll(AdHarmonicResult.class)
.selectAs(DictTree::getCode, AdHarmonicResult::getAdType)
.leftJoin(DictTree.class, DictTree::getId, AdHarmonicResult::getAdType).eq(AdHarmonicResult::getScriptId, scriptId)
.likeRight(AdHarmonicResult::getMonitorId, devId);
List<AdHarmonicResult> results = this.getBaseMapper().selectJoinList(AdHarmonicResult.class, wrapper);
MPJLambdaWrapper<SimAndDigHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.selectAll(SimAndDigHarmonicResult.class)
.selectAs(DictTree::getCode, SimAndDigHarmonicResult::getAdType)
.leftJoin(DictTree.class, DictTree::getId, SimAndDigHarmonicResult::getAdType).eq(SimAndDigHarmonicResult::getScriptId, scriptId)
.likeRight(SimAndDigHarmonicResult::getMonitorId, devId);
List<SimAndDigHarmonicResult> results = this.getBaseMapper().selectJoinList(SimAndDigHarmonicResult.class, wrapper);
DynamicTableNameHandler.remove();
return results;
}

View File

@@ -10,14 +10,14 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.njcn.db.mybatisplus.handler.DynamicTableNameHandler;
import com.njcn.gather.storage.mapper.AdNonHarmonicMapper;
import com.njcn.gather.storage.mapper.SimAndDigNonHarmonicMapper;
import com.njcn.gather.storage.pojo.param.SingleNonHarmParam;
import com.njcn.gather.storage.pojo.param.StorageParam;
import com.njcn.gather.storage.pojo.po.AdBaseResult;
import com.njcn.gather.storage.pojo.po.AdNonHarmonicResult;
import com.njcn.gather.storage.pojo.po.SimAndDigBaseResult;
import com.njcn.gather.storage.pojo.po.SimAndDigNonHarmonicResult;
import com.njcn.gather.storage.pojo.vo.RawDataVO;
import com.njcn.gather.storage.pojo.vo.RawResultDataVO;
import com.njcn.gather.storage.service.AdNonHarmonicService;
import com.njcn.gather.storage.service.SimAndDigNonHarmonicService;
import com.njcn.gather.system.dictionary.pojo.po.DictTree;
import com.njcn.gather.system.dictionary.service.IDictTreeService;
import lombok.RequiredArgsConstructor;
@@ -34,46 +34,46 @@ import java.util.stream.Collectors;
*/
@Service
@RequiredArgsConstructor
public class AdNonHarmonicServiceImpl extends ServiceImpl<AdNonHarmonicMapper, AdNonHarmonicResult> implements AdNonHarmonicService {
public class SimAndDigNonHarmonicServiceImpl extends ServiceImpl<SimAndDigNonHarmonicMapper, SimAndDigNonHarmonicResult> implements SimAndDigNonHarmonicService {
private final IDictTreeService dictTreeService;
@Override
public List<AdBaseResult> get(String scriptId, List<Integer> sort, String deviceId, String chnNum, String code) {
public List<SimAndDigBaseResult> listSimAndDigBaseResult(String scriptId, List<Integer> sort, String deviceId, String chnNum, String code) {
String prefix = "ad_non_harmonic_result_";
DynamicTableNameHandler.setTableName(prefix + code);
MPJLambdaWrapper<AdNonHarmonicResult> wrapper = new MPJLambdaWrapper<>();
MPJLambdaWrapper<SimAndDigNonHarmonicResult> wrapper = new MPJLambdaWrapper<>();
String monitorId = deviceId + "_" + chnNum;
if ("-1".equals(chnNum)) {
monitorId = deviceId;
}
wrapper.like(AdNonHarmonicResult::getMonitorId, monitorId)
.eq(ObjectUtil.isNotNull(scriptId), AdNonHarmonicResult::getScriptId, scriptId)
.in(CollUtil.isNotEmpty(sort), AdNonHarmonicResult::getSort, sort);
List<AdNonHarmonicResult> list = this.getBaseMapper().selectJoinList(AdNonHarmonicResult.class, wrapper);
wrapper.like(SimAndDigNonHarmonicResult::getMonitorId, monitorId)
.eq(ObjectUtil.isNotNull(scriptId), SimAndDigNonHarmonicResult::getScriptId, scriptId)
.in(CollUtil.isNotEmpty(sort), SimAndDigNonHarmonicResult::getSort, sort);
List<SimAndDigNonHarmonicResult> list = this.getBaseMapper().selectJoinList(SimAndDigNonHarmonicResult.class, wrapper);
DynamicTableNameHandler.remove();
return BeanUtil.copyToList(list, AdBaseResult.class);
return BeanUtil.copyToList(list, SimAndDigBaseResult.class);
}
@Override
public Map<String, List<RawDataVO>> listNonHarmData(StorageParam param) {
String prefix = "ad_non_harmonic_";
DynamicTableNameHandler.setTableName(prefix + param.getCode());
MPJLambdaWrapper<AdNonHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.like(AdNonHarmonicResult::getMonitorId, param.getDevId() + "_" + param.getDevNum())
.eq(ObjectUtil.isNotNull(param.getScriptId()), AdNonHarmonicResult::getScriptId, param.getScriptId())
.in(ObjectUtil.isNotEmpty(param.getIndex()), AdNonHarmonicResult::getSort, param.getIndex());
List<AdNonHarmonicResult> adHarmonicResults = this.getBaseMapper().selectJoinList(AdNonHarmonicResult.class, wrapper);
MPJLambdaWrapper<SimAndDigNonHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.like(SimAndDigNonHarmonicResult::getMonitorId, param.getDevId() + "_" + param.getDevNum())
.eq(ObjectUtil.isNotNull(param.getScriptId()), SimAndDigNonHarmonicResult::getScriptId, param.getScriptId())
.in(ObjectUtil.isNotEmpty(param.getIndex()), SimAndDigNonHarmonicResult::getSort, param.getIndex());
List<SimAndDigNonHarmonicResult> SimAndDigHarmonicResults = this.getBaseMapper().selectJoinList(SimAndDigNonHarmonicResult.class, wrapper);
Map<String, List<RawDataVO>> info = new LinkedHashMap<>(2);
Map<String, List<AdNonHarmonicResult>> adTypeMap = adHarmonicResults.stream().collect(Collectors.groupingBy(AdNonHarmonicResult::getAdType));
Map<String, List<SimAndDigNonHarmonicResult>> adTypeMap = SimAndDigHarmonicResults.stream().collect(Collectors.groupingBy(SimAndDigNonHarmonicResult::getAdType));
List<DictTree> dictTreeById = dictTreeService.getDictTreeById(new ArrayList<>(adTypeMap.keySet()));
Map<String, DictTree> dictTreeByName = dictTreeById.stream().collect(Collectors.toMap(DictTree::getId, Function.identity()));
adTypeMap.forEach((key, value) -> {
if (dictTreeByName.containsKey(key)) {
DictTree dictTree = dictTreeByName.get(key);
List<RawDataVO> rawDataVOS = new ArrayList<>();
for (AdNonHarmonicResult result : value) {
for (SimAndDigNonHarmonicResult result : value) {
RawDataVO dataVO = new RawDataVO();
dataVO.setUnit(dictTree.getCode().equals("MAG")?"%":unit(dictTree.getCode()));
dataVO.setTime(result.getTimeId().format(DateTimeFormatter.ofPattern(DatePattern.ISO8601_PATTERN)));
@@ -94,17 +94,17 @@ public class AdNonHarmonicServiceImpl extends ServiceImpl<AdNonHarmonicMapper, A
public Map<String, List<RawResultDataVO>> listNonHarmResultData(StorageParam param) {
String prefix = "ad_non_harmonic_result_";
DynamicTableNameHandler.setTableName(prefix + param.getCode());
MPJLambdaWrapper<AdNonHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.like(AdNonHarmonicResult::getMonitorId, param.getDevId() + "_" + param.getDevNum())
.eq(ObjectUtil.isNotNull(param.getScriptId()), AdNonHarmonicResult::getScriptId, param.getScriptId())
.in(ObjectUtil.isNotEmpty(param.getIndex()), AdNonHarmonicResult::getSort, param.getIndex());
MPJLambdaWrapper<SimAndDigNonHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.like(SimAndDigNonHarmonicResult::getMonitorId, param.getDevId() + "_" + param.getDevNum())
.eq(ObjectUtil.isNotNull(param.getScriptId()), SimAndDigNonHarmonicResult::getScriptId, param.getScriptId())
.in(ObjectUtil.isNotEmpty(param.getIndex()), SimAndDigNonHarmonicResult::getSort, param.getIndex());
List<AdNonHarmonicResult> adHarmonicResults = this.getBaseMapper().selectJoinList(AdNonHarmonicResult.class, wrapper);
List<SimAndDigNonHarmonicResult> SimAndDigHarmonicResults = this.getBaseMapper().selectJoinList(SimAndDigNonHarmonicResult.class, wrapper);
Map<String, List<RawResultDataVO>> info = new LinkedHashMap<>(2);
Map<String, AdNonHarmonicResult> adTypeMap = adHarmonicResults.stream()
.sorted(Comparator.comparing(AdNonHarmonicResult::getResultFlag))
.collect(Collectors.toMap(AdNonHarmonicResult::getAdType, Function.identity(), (a, b) -> a, LinkedHashMap::new));
Map<String, SimAndDigNonHarmonicResult> adTypeMap = SimAndDigHarmonicResults.stream()
.sorted(Comparator.comparing(SimAndDigNonHarmonicResult::getResultFlag))
.collect(Collectors.toMap(SimAndDigNonHarmonicResult::getAdType, Function.identity(), (a, b) -> a, LinkedHashMap::new));
List<DictTree> dictTreeById = dictTreeService.getDictTreeById(new ArrayList<>(adTypeMap.keySet()));
Map<String, DictTree> dictTreeByName = dictTreeById.stream().collect(Collectors.toMap(DictTree::getId, Function.identity()));
adTypeMap.forEach((key, result) -> {
@@ -136,62 +136,62 @@ public class AdNonHarmonicServiceImpl extends ServiceImpl<AdNonHarmonicMapper, A
}
@Override
public AdNonHarmonicResult getSingleResult(SingleNonHarmParam singleNonHarmParam) {
public SimAndDigNonHarmonicResult getSingleSimAndDigBaseResult(SingleNonHarmParam singleNonHarmParam) {
if (ObjectUtil.isNotNull(singleNonHarmParam)) {
String prefix = "ad_non_harmonic_result_";
DynamicTableNameHandler.setTableName(prefix + singleNonHarmParam.getPlanCode());
MPJLambdaWrapper<AdNonHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.like(AdNonHarmonicResult::getMonitorId, singleNonHarmParam.getDevId() + "_" + singleNonHarmParam.getChannelNo())
.eq(AdNonHarmonicResult::getSort, singleNonHarmParam.getSort())
.eq(AdNonHarmonicResult::getAdType, singleNonHarmParam.getAdType());
List<AdNonHarmonicResult> adHarmonicResults = this.getBaseMapper().selectJoinList(AdNonHarmonicResult.class, wrapper);
if (CollectionUtil.isNotEmpty(adHarmonicResults)) {
return adHarmonicResults.get(0);
MPJLambdaWrapper<SimAndDigNonHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.like(SimAndDigNonHarmonicResult::getMonitorId, singleNonHarmParam.getDevId() + "_" + singleNonHarmParam.getChannelNo())
.eq(SimAndDigNonHarmonicResult::getSort, singleNonHarmParam.getSort())
.eq(SimAndDigNonHarmonicResult::getAdType, singleNonHarmParam.getAdType());
List<SimAndDigNonHarmonicResult> SimAndDigHarmonicResults = this.getBaseMapper().selectJoinList(SimAndDigNonHarmonicResult.class, wrapper);
if (CollectionUtil.isNotEmpty(SimAndDigHarmonicResults)) {
return SimAndDigHarmonicResults.get(0);
}
}
return null;
}
@Override
public List<AdNonHarmonicResult> listAllResultData(String scriptId, String code, String devId) {
public List<SimAndDigNonHarmonicResult> listSimAndDigBaseResult(String scriptId, String code, String devId) {
String prefix = "ad_non_harmonic_result_" + code;
DynamicTableNameHandler.setTableName(prefix);
MPJLambdaWrapper<AdNonHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.selectAll(AdNonHarmonicResult.class)
.selectAs(DictTree::getCode, AdNonHarmonicResult::getAdType)
.leftJoin(DictTree.class, DictTree::getId, AdNonHarmonicResult::getAdType)
.eq(AdNonHarmonicResult::getScriptId, scriptId)
.likeRight(AdNonHarmonicResult::getMonitorId, devId);
List<AdNonHarmonicResult> results = this.getBaseMapper().selectJoinList(AdNonHarmonicResult.class, wrapper);
MPJLambdaWrapper<SimAndDigNonHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.selectAll(SimAndDigNonHarmonicResult.class)
.selectAs(DictTree::getCode, SimAndDigNonHarmonicResult::getAdType)
.leftJoin(DictTree.class, DictTree::getId, SimAndDigNonHarmonicResult::getAdType)
.eq(SimAndDigNonHarmonicResult::getScriptId, scriptId)
.likeRight(SimAndDigNonHarmonicResult::getMonitorId, devId);
List<SimAndDigNonHarmonicResult> results = this.getBaseMapper().selectJoinList(SimAndDigNonHarmonicResult.class, wrapper);
DynamicTableNameHandler.remove();
return results;
}
@Override
public List<AdNonHarmonicResult> queryByCondition(SingleNonHarmParam param) {
public List<SimAndDigNonHarmonicResult> queryByCondition(SingleNonHarmParam param) {
String prefix = "ad_non_harmonic_result_";
DynamicTableNameHandler.setTableName(prefix + param.getPlanCode());
MPJLambdaWrapper<AdNonHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.like(AdNonHarmonicResult::getMonitorId, param.getDevId() + "_" + param.getChannelNo())
.in(AdNonHarmonicResult::getSort, param.getSortList())
.in(AdNonHarmonicResult::getAdType, param.getValueTypeList());
List<AdNonHarmonicResult> adNonHarmonicResults = this.getBaseMapper().selectJoinList(AdNonHarmonicResult.class, wrapper);
MPJLambdaWrapper<SimAndDigNonHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.like(SimAndDigNonHarmonicResult::getMonitorId, param.getDevId() + "_" + param.getChannelNo())
.in(SimAndDigNonHarmonicResult::getSort, param.getSortList())
.in(SimAndDigNonHarmonicResult::getAdType, param.getValueTypeList());
List<SimAndDigNonHarmonicResult> adNonHarmonicResults = this.getBaseMapper().selectJoinList(SimAndDigNonHarmonicResult.class, wrapper);
DynamicTableNameHandler.remove();
return adNonHarmonicResults;
}
@Override
public List<AdNonHarmonicResult> listAllRawData(String scriptId, String code, String devId) {
public List<SimAndDigNonHarmonicResult> listAllSimAndDigRawData(String scriptId, String code, String devId) {
String prefix = "ad_non_harmonic_" + code;
DynamicTableNameHandler.setTableName(prefix);
MPJLambdaWrapper<AdNonHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.selectAll(AdNonHarmonicResult.class)
.selectAs(DictTree::getCode, AdNonHarmonicResult::getAdType)
.leftJoin(DictTree.class, DictTree::getId, AdNonHarmonicResult::getAdType)
.eq(AdNonHarmonicResult::getScriptId, scriptId)
.likeRight(AdNonHarmonicResult::getMonitorId, devId);
List<AdNonHarmonicResult> results = this.getBaseMapper().selectJoinList(AdNonHarmonicResult.class, wrapper);
MPJLambdaWrapper<SimAndDigNonHarmonicResult> wrapper = new MPJLambdaWrapper<>();
wrapper.selectAll(SimAndDigNonHarmonicResult.class)
.selectAs(DictTree::getCode, SimAndDigNonHarmonicResult::getAdType)
.leftJoin(DictTree.class, DictTree::getId, SimAndDigNonHarmonicResult::getAdType)
.eq(SimAndDigNonHarmonicResult::getScriptId, scriptId)
.likeRight(SimAndDigNonHarmonicResult::getMonitorId, devId);
List<SimAndDigNonHarmonicResult> results = this.getBaseMapper().selectJoinList(SimAndDigNonHarmonicResult.class, wrapper);
DynamicTableNameHandler.remove();
return results;
}

View File

@@ -4,7 +4,6 @@ import com.njcn.gather.storage.mapper.TableGenMapper;
import com.njcn.gather.storage.service.TableGenService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -16,9 +15,9 @@ public class TableGenServiceImpl implements TableGenService {
@Override
public void genAdNonHarmonicTable(String code) {
tableGenMapper.genAdNonHarmonicTable(code);
tableGenMapper.genAdNonHarmonicResultTable(code);
public void genTable(String code, boolean isContrast) {
tableGenMapper.genNonHarmonicTable(code, isContrast);
tableGenMapper.genNonHarmonicResultTable(code, isContrast);
StringBuilder A = new StringBuilder();
StringBuilder B = new StringBuilder();
@@ -36,32 +35,42 @@ public class TableGenServiceImpl implements TableGenService {
}
String sql = "CREATE TABLE AD_Harmonic_" + code + " (\n" +
" Monitor_Id CHAR(60) NOT NULL COMMENT '监测点Id',\n" +
" Monitor_Id CHAR(34) NOT NULL COMMENT '监测点Id',\n" +
" Time_Id DATETIME(3) NOT NULL COMMENT '时间',\n" +
" Script_Id CHAR(32) NOT NULL COMMENT '检测脚本子表Id字典表',\n" +
" Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',\n" +
" AD_Type CHAR(32) NOT NULL COMMENT '检测指标,字典表',\n" +
" Data_Type CHAR(32) NOT NULL COMMENT '数据指标只有数据源为分钟统计时候才会使用最大、最小、平均、CP95默认平均值字典表',\n" +
" Result_Flag int(1) NULL COMMENT '0不合格 1合格 4无法处理',\n" +
A + B + C +
" PRIMARY KEY (Monitor_Id,Time_Id,Script_Id, Sort, AD_Type)\n" +
") COMMENT='监测数据表';";
" Result_Flag int(1) NULL COMMENT '0不合格 1合格 4无法处理',\n" +
(isContrast ?
" Error_Id CHAR(32) NOT NULL COMMENT '误差体系表Id',\n" +
" Num tinyint(1) unsigned DEFAULT 0 COMMENT '第几次检测',\n" +
" PRIMARY KEY (Monitor_Id,Time_Id,Error_Id, AD_Type)\n"
:
" Script_Id CHAR(32) NOT NULL COMMENT '检测脚本表Id',\n" +
" Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',\n"+
" PRIMARY KEY (Monitor_Id, Time_Id, Script_Id, Sort, AD_Type)\n"
) + ") COMMENT='谐波类原始数据表';";
tableGenMapper.genAdHarmonicTable(sql);
String a = A.toString().replaceAll("float", "json");
String b = B.toString().replaceAll("float", "json");
String c = C.toString().replaceAll("float", "json");
String sql2 = "CREATE TABLE AD_Harmonic_Result_" + code + " (\n" +
" Monitor_Id CHAR(60) NOT NULL COMMENT '监测点Id',\n" +
" Monitor_Id CHAR(34) NOT NULL COMMENT '监测点Id',\n" +
" Time_Id DATETIME(3) NULL COMMENT '时间',\n" +
" Script_Id CHAR(32) NOT NULL COMMENT '检测脚本子表Id字典表',\n" +
" Sort int(5) NOT NULL COMMENT '总检测脚本中的测试项序号',\n" +
" AD_Type CHAR(32) NOT NULL COMMENT '检测指标,字典表',\n" +
" Data_Type CHAR(32) NOT NULL COMMENT '数据指标只有数据源为分钟统计时候才会使用最大、最小、平均、CP95默认平均值字典表',\n" +
" Result_Flag int(1) NOT NULL COMMENT '1合格 2不合格 4无法处理',\n" +
a + b + c +
" PRIMARY KEY (Monitor_Id,Script_Id, Sort, AD_Type)\n" +
") COMMENT='监测数据表';";
" Result_Flag int(1) NOT NULL COMMENT '1合格 2不合格 4无法处理',\n" +
(isContrast ?
" Error_Id CHAR(32) NOT NULL COMMENT '误差体系表Id',\n" +
" Num tinyint(1) unsigned DEFAULT 0 COMMENT '第几次检测',\n" +
" PRIMARY KEY (Monitor_Id, Error_Id, Num, AD_Type)\n"
:
" Script_Id CHAR(32) NOT NULL COMMENT '检测脚本表Id',\n" +
" Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',\n"+
" PRIMARY KEY (Monitor_Id,Script_Id, Sort, AD_Type)\n"
) + ") COMMENT='谐波类检测结果表';";
tableGenMapper.genAdHarmonicTable(sql2);
}