feat(report): 迁移自定义报表功能模块

This commit is contained in:
贾同学
2025-11-26 09:58:44 +08:00
parent 02e5100426
commit 61c8656fd9
15 changed files with 2555 additions and 0 deletions

View File

@@ -20,7 +20,18 @@ public enum CsHarmonicResponseEnum {
RECORD_MISSING("A00602","record.bin文件缺失,补召失败"),
EVENT_FILE_NOT_SAME("A00603","cfg、dat文件名称不一致"),
CUSTOM_REPORT_REPEAT("A00552","自定义报表模板名称已存在"),
CUSTOM_REPORT_JSON("A00553","模板非严格json数据"),
CUSTOM_REPORT_DEPT("A00554","该部门已存在绑定报表模板"),
CUSTOM_TYPE("A00555","字典中未查询到报表模板类型"),
CUSTOM_REPORT_ACTIVE("A00556","不存在激活的自定义报告模板"),
CUSTOM_REPORT_EMPTY("A00557","自定义报表模板异常,模板数据为空"),
CUSTOM_REPORT_FILE("A00558","上传文件服务器错误,请检查数据"),
REPORT_DOWNLOAD_ERROR("A00559","报表文件下载异常"),
REPORT_TEMPLATE_DOWNLOAD_ERROR("A00560","报表模板下载异常")
;

View File

@@ -0,0 +1,35 @@
package com.njcn.csharmonic.param;
import com.njcn.web.pojo.annotation.DateTimeStrValid;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class SensitiveUserReportQueryParam {
@ApiModelProperty(name = "lineId",value = "监测对象id")
private String sensitiveUserId;
@ApiModelProperty(name = "tempId",value = "模板ID")
private String tempId;
@ApiModelProperty(name = "searchBeginTime", value = "开始时间")
@NotBlank(message = "起始时间不可为空")
@DateTimeStrValid(message = "起始时间格式出错")
private String searchBeginTime;
@ApiModelProperty(name = "searchEndTime", value = "结束时间")
@NotBlank(message = "结束时间不可为空")
private String searchEndTime;
//目前用于区分不同系统资源null默认 1.无线系统配合cs-device
private Integer resourceType;
//浙江无线报表特殊标识 null为通用报表 1.浙江无线报表
private Integer customType;
}

View File

@@ -0,0 +1,59 @@
package com.njcn.csharmonic.pojo.dto;
import lombok.Data;
/**
* pqs
*
* @author cdf
* @date 2022/8/22
*/
@Data
public class ReportTemplateDTO {
/**
* $HA[_25]#B#max#classId#resourceId$
*/
private String itemName;
/**
* 对应influxdb数据库中字段
*/
private String templateName;
/**
* 对应限值字段
*/
private String limitName;
/**
* 相别
*/
private String phase;
/**
* max min avg cp95
*/
private String statMethod;
/**
* 对应influxdb数据库的表名
*/
private String classId;
/**
* 对应mysql数据库的表名
*/
private String resourceId;
/**
* 标识指标是否越限 0.否 1.是
*/
private Integer overLimitFlag;
/**
* 填入的value值
*/
private String value;
}

View File

@@ -0,0 +1,42 @@
package com.njcn.csharmonic.pojo.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 模板动态更新数据
*
* @author qijian
* @date 2022/10/11
*/
@Data
public class ReportSearchParam {
@ApiModelProperty(name = "lineId",value = "监测点id")
private String lineId;
@ApiModelProperty(name = "tempId",value = "模板ID")
private String tempId;
@ApiModelProperty(name = "activation",value = "激活状态")
private Integer activation;
@ApiModelProperty(name = "type",value = "报表类型")
private Integer type;
@ApiModelProperty(name = "startTime",value = "开始时间")
private String startTime;
@ApiModelProperty(name = "endTime",value = "结束时间")
private String endTime;
@ApiModelProperty(name = "deptId",value = "部门ID")
private String deptId;
//目前用于区分不同系统资源null默认 1.无线系统配合cs-device
private Integer resourceType;
//浙江无线报表特殊标识 null为通用报表 1.浙江无线报表
private Integer customType;
}

View File

@@ -0,0 +1,59 @@
package com.njcn.csharmonic.pojo.param;
import com.njcn.common.pojo.constant.PatternRegex;
import com.njcn.web.constant.ValidMessage;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.List;
/**
* pqs
*
* @author cdf
* @date 2022/8/16
*/
@Data
public class ReportTemplateParam {
@ApiModelProperty(name = "name",value = "模板名称",required = true)
@NotBlank(message = "模板名称不可为空")
private String name;
@ApiModelProperty(name = "fileContent",value = "json文件",required = true)
@NotNull(message = "模板文件不可为空")
private MultipartFile fileContent;
@ApiModelProperty(name = "content",value = "json文件内容")
private String content;
@ApiModelProperty(name = "deptId",value = "部门id")
private List<String> deptId;
@ApiModelProperty(name = "valueTitle",value = "存取库中")
private String valueTitle;
@ApiModelProperty(name = "reportType",value = "模板类型",required = true)
@NotBlank(message = "模板类型不可为空")
private String reportType;
@ApiModelProperty(name = "reportForm",value = "报表类型",required = true)
private String reportForm;
@Data
@EqualsAndHashCode(callSuper = true)
public static class UpdateReportTemplateParam extends ReportTemplateParam {
@ApiModelProperty(name = "id",required = true)
@NotBlank(message = ValidMessage.ID_NOT_BLANK)
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR)
private String id;
}
}

View File

@@ -0,0 +1,37 @@
package com.njcn.csharmonic.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* pqs
* 自定义报表
* @author cdf
* @date 2022/8/16
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "sys_excel_rpt_temp")
public class ExcelRptTemp extends BaseEntity {
private String id;
private String name;
private String content;
private Integer activation;
private Integer state;
private String valueTitle;
private String reportType;
private String reportForm;
private Integer sort;
}

View File

@@ -0,0 +1,34 @@
package com.njcn.csharmonic.pojo.vo;
import com.njcn.db.bo.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* pqs
* 自定义报表
* @author cdf
* @date 2022/8/16
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ReportTemplateVO extends BaseEntity {
private String id;
private String name;
private String content;
private String deptId;
private Integer activation;
private Integer state;
private String deptName;
private String reportType;
private String reportForm;
}

View File

@@ -0,0 +1,30 @@
package com.njcn.csharmonic.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* pqs
*
* @author cdf
* @date 2022/8/18
*/
@Data
public class ReportTreeVO {
@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;
private List<ReportTreeVO> children;
}

View File

@@ -0,0 +1,37 @@
package com.njcn.csharmonic.pojo.vo;
import lombok.Data;
import java.io.Serializable;
/**
*
* @author qijian
* @since 2022-10-19 09:31:39
*/
@Data
public class SysDeptTempVO implements Serializable {
private static final long serialVersionUID = -35391150359300949L;
/**
* 主键
*/
private String id;
/**
* 部门主键
*/
private String deptId;
/**
* 模板主键
*/
private String tempId;
/**
* 激活状态
*/
private Integer activation;
//部门名称
private String deptName;
}

View File

@@ -0,0 +1,46 @@
package com.njcn.csharmonic.utils;
public class DataChangeUtil {
/**
* 用来将二次值转成一次值
*/
public static double secondaryToPrimary(String formula, Double data,Double pt, Double ct) {
switch (formula) {
case "*PT":
data = data * pt;
break;
case "*CT":
data = data * ct;
break;
case "*PT*CT":
data = data * pt * ct;
break;
default:
break;
}
return data;
}
/**
* 用来将一次值转成二次值
*/
public static double primaryToSecondary(String formula, Double data,Double pt, Double ct) {
switch (formula) {
case "*PT":
data = data / pt;
break;
case "*CT":
data = data / ct;
break;
case "*PT*CT":
data = data / pt / ct;
break;
default:
break;
}
return data;
}
}