初次提交

This commit is contained in:
2025-06-30 10:11:32 +08:00
commit f059c64d0e
1785 changed files with 258159 additions and 0 deletions

152
.gitignore vendored Normal file
View File

@ -0,0 +1,152 @@
.gradle
/build/
!gradle/wrapper/gradle-wrapper.jar
/gradle/
gradlew
gradlew.bat
### STS ###
### STS ###
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
/out/
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
*.log
### 各子模块 ###
### 网关 ###
api-gateway/out/
api-gateway/build/
api-gateway/target/
### 异步client ###
async-client/out/
async-client/build/
async-client/target/
### 异步消费者 ###
async-consumer/out/
async-consumer/build/
async-consumer/target/
### 公共组件 ###
common-tools/out/
common-tools/build/
common-tools/target/
### 用户中心 ###
user-service-api/out/
user-service-api/build/
user-service-api/target/
### 用户中心 ###
user-service/out/
user-service/build/
user-service/target/
### 业务中心-api ###
business-service-api/out/
business-service-api/build/
business-service-api/target/
### 业务中心-src ###
business-src/out/
business-src/build/
business-src/target/
### 业务中心-service-dao ###
business-service-dao/out/
business-service-dao/build/
business-service-dao/target/
### 业务中心 ###
business-service/out/
business-service/build/
business-service/target/
### 数据采集模块-api ###
data-collect-service-api/out/
data-collect-service-api/build/
data-collect-service-api/target/
data-collect-src/out/
data-collect-src/build/
data-collect-src/target/
### 数据采集模块 ###
data-collect-service/out/
data-collect-service/build/
data-collect-service/target/
### td-api模块 ###
td-service-api/out/
td-service-api/build/
td-service-api/target/
### td模块 ###
td-service/out/
td-service/build/
td-service/target/
### xxljob-admin模块 ###
xxl-job-admin/out/
xxl-job-admin/build/
xxl-job-admin/target/
### xxljob模块 ###
xxl-job/out/
xxl-job/build/
xxl-job/target/
### file-center模块 ###
file-center/out/
file-center/build/
file-center/target/
file-src/out/
file-src/build/
file-src/target/
### digitwins-center模块 ###
digitwins-center/out/
digitwins-center/build/
digitwins-center/target/
### springboot-admin模块 ###
springboot-admin/out/
springboot-admin/build/
springboot-admin/target/
### flowable-center-api模块 ###
flowable-center-api/out/
flowable-center-api/build/
flowable-center-api/target/
flowable-src/out/
flowable-src/build/
flowable-src/target/
### flowable-center模块 ###
flowable-center/out/
flowable-center/build/
flowable-center/target/
### flowable-center-dao模块 ###
flowable-center-dao/out/
flowable-center-dao/build/
flowable-center-dao/target/
### call-center 模块 ###
call-center/out/
call-center/build/
call-center/target/

52
Jenkinsfile vendored Normal file
View File

@ -0,0 +1,52 @@
pipeline {
agent any
parameters {
// 提供要部署的环境选项
choice(
description: '你需要选择哪个环境进行部署 ?',
name: 'env',
choices: ['开发环境', '测试环境', '线上环境']
)
// 提供构建的模块选项
choice(
description: '你需要选择哪个模块进行构建 ?',
name: 'moduleName',
choices: ['api_gateway', 'business_service', 'data_collect_service', 'file_center', 'flowable_center', 'td_service', 'user_service', 'vpp_service', 'xxl_job', 'xxl_job_admin']
)
environment {
GIT_CREDENTIALS_ID = 'gitlab_majun' // GitLab 凭证 ID
SONARQUBE_SERVER = 'sonarqube' // SonarQube 凭证 ID
MAVEN_HOME = tool(name: '/app/maven') // 使用jenkins容器内映射的maven路劲
}
stages {
stage('Checkout') {
steps {
script {
// GitLab repository URL and branch (edit these as needed)
def gitRepositoryUrl = 'http://192.168.100.250:7000/fanchunlei/hocloud-open.git'
def gitBranch = 'main'
// 拉取代码
git url: gitRepositoryUrl,
branch: gitBranch,
credentialsId: GIT_CREDENTIALS_ID
}
}
}
stage('SonarQube Analysis') {
steps {
withSonarQubeEnv(SONARQUBE_SERVER) {
// 使用 Maven 进行 SonarQube 扫描
sh "${MAVEN_HOME}/bin/mvn clean verify sonar:sonar -Dsonar.projectKey=fanchunlei_hocloud-open_AZMjkNEoXxgoDCEPS1yf""
}
}
}
}
post {
always {
// 清理工作区
cleanWs()
}
}
}

2
README.md Normal file
View File

@ -0,0 +1,2 @@
# hocloud-open

View File

@ -0,0 +1,3 @@
FROM jenkins/jenkins
ADD target/api-gateway.jar /api-gateway.jar
ENTRYPOINT ["java","-jar","/api-gateway.jar","--spring.profiles.active=danji","-c"]

View File

@ -0,0 +1,3 @@
FROM jenkins/jenkins
ADD target/api-gateway.jar /api-gateway.jar
ENTRYPOINT ["java","-jar","/api-gateway.jar","--spring.profiles.active=open","-c"]

58
api-gateway/pom.xml Normal file
View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ho-cloud</artifactId>
<groupId>com.hoenergy</groupId>
<version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>api-gateway</artifactId>
<dependencies>
<!--gateway-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!--SpringCloud ailibaba nacos -->
<!--<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<!--默认的版本中没有 NacosServiceManager 这个类,只有2.1.4版本中有-->
<version>2.1.4.RELEASE</version>
</dependency>
<!-- C++调用jna库 -->
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.3.1</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.2.12.RELEASE</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,24 @@
package com.ho.gateway;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
/**
*
*
*
*
*
* @author fancl
* @desc: 网关gateway
* @date 2022/8/9
*/
@SpringBootApplication
@EnableDiscoveryClient
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class,args);
}
}

View File

@ -0,0 +1,24 @@
package com.ho.gateway.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
import org.springframework.web.util.pattern.PathPatternParser;
@Configuration
public class CorsConfig {
@Bean
public CorsWebFilter corsFilter() {
CorsConfiguration config = new CorsConfiguration();
config.addAllowedMethod("*");
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.setMaxAge(1800L);
UrlBasedCorsConfigurationSource source = new
UrlBasedCorsConfigurationSource(new PathPatternParser());
source.registerCorsConfiguration("/**", config);
return new CorsWebFilter(source);
}
}

View File

@ -0,0 +1,11 @@
package com.ho.gateway.config;
import com.sun.jna.Library;
import com.sun.jna.Native;
public interface NativeLibrary extends Library{
int CheckLicence();
NativeLibrary INSTANCE = (NativeLibrary) Native.loadLibrary("/usr/lib/libauth_lib.so", NativeLibrary.class);
}

View File

@ -0,0 +1,53 @@
package com.ho.gateway.config.listnerForNacosServerUpdated;
import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
import com.alibaba.cloud.nacos.NacosServiceManager;
import com.alibaba.nacos.api.exception.NacosException;
import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.api.naming.listener.NamingEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
/**
* @author fancl
* @desc:
* @date 2022/9/20
*/
@Component
public class NacosServerListListener implements ServerListListener{
@Autowired
private NacosServiceManager nacosServiceManager;
private NamingService namingService;
@Autowired
private NacosDiscoveryProperties properties;
@PostConstruct
public void init() {
namingService = nacosServiceManager.getNamingService(properties.getNacosProperties());
}
/**
* 创建监听器
*/
@Override
public void listen(String serviceId, ServerEventHandler eventHandler) {
try {
namingService.subscribe(serviceId, event -> {
if (event instanceof NamingEvent) {
NamingEvent namingEvent = (NamingEvent) event;
// log.info("服务名:" + namingEvent.getServiceName());
// log.info("实例:" + namingEvent.getInstances());
// 实际更新
eventHandler.update();
}
});
} catch (NacosException e) {
e.printStackTrace();
}
}
}

View File

@ -0,0 +1,84 @@
package com.ho.gateway.config.listnerForNacosServerUpdated;
import com.netflix.loadbalancer.BaseLoadBalancer;
import com.netflix.loadbalancer.ServerListUpdater;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.lang.reflect.Field;
/**
* @author fancl
* @desc:
* @date 2022/9/20
*/
public class NotificationServerListUpdater implements ServerListUpdater {
private static final Logger logger = LoggerFactory.getLogger(NotificationServerListUpdater.class);
private final ServerListListener listener;
public NotificationServerListUpdater(ServerListListener listener) {
this.listener = listener;
}
/**
* 开始运行
*
* @param updateAction
*/
@Override
public void start(UpdateAction updateAction) {
// 创建监听
String clientName = getClientName(updateAction);
listener.listen(clientName, () -> {
logger.info("{} 服务变化, 主动刷新服务列表缓存", clientName);
// 回调直接更新
updateAction.doUpdate();
});
}
/**
* 通过updateAction获取服务名这种方法比较粗暴
*
* @param updateAction
* @return
*/
private String getClientName(UpdateAction updateAction) {
try {
Class<?> bc = updateAction.getClass();
Field field = bc.getDeclaredField("this$0");
field.setAccessible(true);
BaseLoadBalancer baseLoadBalancer = (BaseLoadBalancer) field.get(updateAction);
return baseLoadBalancer.getClientConfig().getClientName();
} catch (Exception e) {
e.printStackTrace();
throw new IllegalStateException(e);
}
}
@Override
public void stop() {
}
@Override
public String getLastUpdate() {
return null;
}
@Override
public long getDurationSinceLastUpdateMs() {
return 0;
}
@Override
public int getNumberMissedCycles() {
return 0;
}
@Override
public int getCoreThreads() {
return 0;
}
}

View File

@ -0,0 +1,20 @@
package com.ho.gateway.config.listnerForNacosServerUpdated;
import com.alibaba.cloud.nacos.ribbon.ConditionalOnRibbonNacos;
import com.netflix.loadbalancer.ServerListUpdater;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author fancl
* @desc:
* @date 2022/9/20
*/
@Configuration
@ConditionalOnRibbonNacos
public class RibbonConfig {
@Bean
public ServerListUpdater ribbonServerListUpdater(NacosServerListListener listener) {
return new NotificationServerListUpdater(listener);
}
}

View File

@ -0,0 +1,20 @@
package com.ho.gateway.config.listnerForNacosServerUpdated;
/**
* @author fancl
* @desc:
* @date 2022/9/20
*/
public interface ServerListListener {
/**
* 监听
* @param serviceId 服务名
* @param eventHandler 回调
*/
void listen(String serviceId, ServerEventHandler eventHandler);
@FunctionalInterface
interface ServerEventHandler {
void update();
}
}

View File

@ -0,0 +1,69 @@
package com.ho.gateway.filter;
import com.alibaba.fastjson.JSONObject;
import com.ho.gateway.config.NativeLibrary;
import com.ho.gateway.config.listnerForNacosServerUpdated.NotificationServerListUpdater;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.core.io.buffer.DataBuffer;
import org.springframework.http.HttpStatus;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;
import java.net.URI;
import java.nio.charset.StandardCharsets;
/**
* @author xueweizhi
* @desc: 网关处加过滤器,看请求是否到达网关
* @date 2023/4/12
*/
@Component
public class MyGateWayFilter implements GlobalFilter, Ordered {
private static final Logger logger = LoggerFactory.getLogger(NotificationServerListUpdater.class);
@Value("${isCheckLicence}")
boolean isCheckLicence;
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
URI uri = exchange.getRequest().getURI();
logger.info("进入网关过滤器,uri:{}", uri);
//todo 先注销当需要检查licence,打开
// -1 失败 0 成功
if(isCheckLicence){
int result = NativeLibrary.INSTANCE.CheckLicence();
logger.info("进入网关过滤器,checkLicence result:{}", result);
if(0 != result){
return this.getResponseError(exchange, "请检查是否取得licence授权");
}
}
return chain.filter(exchange);
}
private Mono<Void> getResponseError(ServerWebExchange exchange, String msg) {
ServerHttpResponse response = exchange.getResponse();
JSONObject message = new JSONObject();
message.put("code", HttpStatus.UNAUTHORIZED.value());
message.put("message", msg);
message.put("success", false);
byte[] bits = message.toJSONString().getBytes(StandardCharsets.UTF_8);
DataBuffer buffer = response.bufferFactory().wrap(bits);
response.setStatusCode(HttpStatus.UNAUTHORIZED);
//指定编码,否则在浏览器中会中文乱码
response.getHeaders().add("Content-Type", "text/plain;charset=UTF-8");
return response.writeWith(Mono.just(buffer));
}
@Override
public int getOrder() {
return 0;
}
}

View File

@ -0,0 +1,58 @@
#网关
server:
port: 8001
spring:
application:
name: api-gateway
cloud:
nacos:
username: nacos
password: nacos
discovery:
server-addr: 127.0.0.1:8848
#路由配置
gateway:
routes:
#用户中心
- id: user_center_route
uri: lb://user-center
predicates:
- Path=/api/sys/**
#业务中心
- id: business_route
uri: lb://business-service
predicates:
- Path=/api/business/**
#数据采集
- id: datacollect_route
uri: lb://datacollect-service
predicates:
- Path=/api/datacollect/**
#定时任务中心
- id: xxl_job_admin_route
uri: lb://xxl-job-admin
predicates:
- Path=/job-admin/**
#多媒体文件
- id: file_center_route
uri: lb://file-center
predicates:
- Path=/api/media/**
#告警和流程中心
- id: flow_center_route
uri: lb://flowable-center
predicates:
- Path=/api/flow/**
#actuator监控检查配置
management:
endpoint:
health:
show-details: always
health:
redis:
enabled: false
#需要校验true ,不需要校验false
isCheckLicence: false

View File

@ -0,0 +1,3 @@
spring:
profiles:
active: dev

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<configuration>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date{yyyy-MM-dd HH:mm:ss.SSS,CTT} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/home/hocloud/logs/api-gateway/api-gateway.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/home/hocloud/logs/api-gateway/api-gateway.%d{yyyy-MM-dd}-%i.log
</fileNamePattern>
<maxHistory>10</maxHistory>
<!-- 除按日志记录之外还配置了日志文件不能超过2M若超过2M日志文件会以索引0开始
命名日志文件例如log-error-2013-12-21.0.log -->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>512MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%date{yyyy-MM-dd HH:mm:ss.SSS,CTT} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<!-- project default level -->
<!-- <logger name="com.sinoinfo.bill" level="DEBUG"/>-->
<!-- &lt;!&ndash;log4jdbc &ndash;&gt;-->
<!-- <logger name="jdbc.sqltiming" level="DEBUG"/>-->
<root level="INFO">
<appender-ref ref="console"/>
<appender-ref ref="rollingFile"/>
</root>
</configuration>

View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ho-cloud</artifactId>
<groupId>com.hoenergy</groupId>
<version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>business-service-api</artifactId>
<properties>
<common-tools.version>1.0</common-tools.version>
</properties>
<dependencies>
<!--工具类-->
<dependency>
<groupId>com.hoenergy</groupId>
<artifactId>common-tools</artifactId>
<version>${common-tools.version}</version>
</dependency>
<!--引入深拷贝-->
<dependency>
<groupId>net.rakugakibox.spring.boot</groupId>
<artifactId>orika-spring-boot-starter</artifactId>
<version>1.9.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>4.3.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.1.1</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-spring-boot-starter</artifactId>
<version>4.3.0</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,390 @@
package com.ho.business.constant;
import com.ho.business.entity.Topology;
/**
* @author fancl
* @desc: 设备类型枚举
* @date 2022/9/6
*/
public interface DeviceTypeConstant {
//集团级
Integer SCOPE_GROUP = 1;
//电站级
Integer SCOPE_STATION = 2;
//device_complex
String DEVICE_COMPLEX = "device_complex";
//
String DEVICE_SIMPLE = "device_simple";
String STORAGE = "storage";
//电池管理系统
String BMS = "bms";
//防逆流
String AMMETERFNL = "ammeter_fnl";
//火电厂
String BAT = "BAT";
String BIGBMS = "BMS";
//站端统计
String STATISTICS = "statistics";
//计划曲线
String PLANCURVE = "planCurve";
//储能高压计量表
String DDB = "ddb";
//储能变流器
String PCS = "pcs";
//IO模块
String IO_MODULE = "io_module";
//空调
String AIR_CONDITION = "air_condition";
//电表
String ELE_METER = "ele_meter";
//pcs状态字
String STATUS_PCS = "statusPCS";
//温度湿度仪
String TRANSMITTER = "transmitter";
//消防设备
String STORAGE_FIRE = "storage_fire";
//液冷
String LIQUID_COOLING = "yl";
//管理机
String MANAGEMENT_MACHINE = "glj";
//合并点设备
String VIRTUAL_DEVICE = "virtualDevice";
//并网侧电表
String MAINS_POWER = "mainsPower";
//负载侧电表
String LOAD_SIDE_METER = "load_side_meter";
//光伏并网
String PHON_GRID = "phon_grid";
//光储一体机
String OPTICAL_STORAGE = "optical_storage";
//电表
String AGC = "agc";
String EMU = "emu";
//英博DC/DCMPPT
String DCDC = "dcdc";
//柴油发电机_济宁微山湖
String CF = "cf";
//集团
String GROUP = "group";
//电池芯
String CELL = "cell";
//电池包
String PACK = "pack";
//电池堆
String STACK = "stack";
//电池簇
String CLUSTER = "cluster";
//间隔
String BAY = "bay";
//电站
String STATION = "station";
//舱
String WAREHOUSE = "warehouse";
//气象
String METEOROLOGICAL = "Meteorological";
//气象站
String WEATHER_STATION = "weatherStation";
//通用电表
String COMMON_ELEMETER = "commonElemeter";
//其它类型
String OTHER = "other";
//外部电表
String OUTSIDE_ELE = "outsideEle";
//并网点统计电表
String GRID_METER = "gridMeter";
//厂(站)用电电表
String STATION_METER = "stationMeter";
//单项电量表
String SINGLE_HASE = "singleHase";
//光伏逆变器
String PVINVERTER = "pvinverter";
//充电桩
String CHARGE_PILE = "chargePile";
//充电枪
String CHARGE_GUN = "chargeGun";
//充电桩-通用
String CHARGE_PILE1 = "chargePile_1";
//充电桩-汽车快充
String CHARGE_PILE2 = "chargePile_2";
//充电桩-汽车慢充
String CHARGE_PILE3 = "chargePile_3";
//充电桩-电动车充电桩
String CHARGE_PILE4 = "chargePile_4";
//电能质量
String ELEC_QUALITY = "elecQuality";
//耗能设备
String ENERGY_EQUIPMENT = "energyEquipment";
//能耗表
String ENERGY_CONSUMPTION = "energyConsumption";
//充电桩电表
String CHARGE_PILE_METER = "chargePileMeter";
//泛着各种逆变器
String INVERTER_PREFIX = "inverter_";
//泛着各种逆变器
String INVERTER = "inverter";
//防逆流电表
String AMMETER_FNL = "ammeter_fnl";
//光伏逆变器禾望1500DC组串
String INVERTER_HW = "inverterhw";
//华为
String INVERTER_HUAWEI = "inverterhuawei";
//阳光
String INVERTER_YG = "inverteryg";
//固德威
String INVERTER_GDW = "invertergdw";
//地址
String ADDRESS = "address";
//设备型号
String DEVICE_MODEL = "deviceModel";
//电站接入点
String ACCESSPOINT = "accesspoint";
//故障字段
String AIRCONDITIONFAULT = "airconditionFault";
//发电机组
String FDJZ = "fdjz";
//虚拟节点
String VM_NODE = "vm_node";
//总充电量
String TOTAL_CHARGE = "totalCharge";
//总放电量
String TOTAL_DISCHARGE = "totalDischarge";
//总SOC
String TOTAL_SOC = "totalSOC";
//系统转换效率
String SYSTEM_EFFICIENCY = "systemEfficiency";
//电量的冻结值type数据
interface ELEC_METER_VALUE_TYPE {
//充电
Integer CHARGE = 8;
//放电
Integer DISCHARGE = 9;
//收益
Integer INCOME = 10;
//充电(小时)
Integer HOUR_CHARGE = 11;
//放电(小时)
Integer HOUR_DISCHARGE = 12;
//光伏充电
Integer PV_CHARGE = 13;
//柴发电量
Integer CF_CHARGE = 14;
}
//pcs的映射字段
interface PCS_DEVICE_TYPE {
//PCS交流累计充电电量低
String PCS_AC_ACCUMULATED_CHARGE_LOW = "pcsAcAccumulatedChargeLow";
//PCS交流累计充电电量高
String PCS_AC_ACCUMULATED_CHARGE_HIGH = "pcsAcAccumulatedChargeHigh";
//PCS交流累计放电电量低
String PCS_AC_ACCUMULATED_DISCHARGE_LOW = "pcsAcAccumulatedDischargeLow";
//PCS交流累计放电电量高
String PCS_AC_ACCUMULATED_DISCHARGE_HIGN = "pcsAcAccumulatedDischargeHign";
}
static Topology getDeviceType(String deviceType) {
Topology topology = new Topology();
switch (deviceType) {
case CELL:
topology.setCategory(11);
topology.setType(4);
topology.setSubType(8);
return topology;
case PACK:
topology.setCategory(11);
topology.setType(4);
topology.setSubType(7);
return topology;
case STACK:
topology.setCategory(11);
topology.setType(4);
topology.setSubType(5);
return topology;
case CLUSTER:
topology.setCategory(11);
topology.setType(4);
topology.setSubType(6);
return topology;
case STATION:
topology.setCategory(1);
topology.setType(1);
topology.setSubType(3);
return topology;
case WAREHOUSE:
topology.setCategory(2);
topology.setType(9);
topology.setSubType(1);
return topology;
case PVINVERTER:
topology.setCategory(2);
topology.setType(10);
topology.setSubType(1);
return topology;
case CHARGE_PILE:
topology.setCategory(12);
topology.setType(1);
return topology;
case CHARGE_GUN:
topology.setCategory(12);
topology.setType(2);
return topology;
case SINGLE_HASE:
topology.setCategory(11);
topology.setType(11);
topology.setSubType(4);
return topology;
case ELEC_QUALITY:
topology.setCategory(9);
topology.setType(3);
topology.setSubType(1);
return topology;
case ENERGY_CONSUMPTION:
topology.setCategory(11);
topology.setType(11);
topology.setSubType(6);
return topology;
case CHARGE_PILE_METER:
topology.setCategory(11);
topology.setType(11);
topology.setSubType(7);
return topology;
case ENERGY_EQUIPMENT:
topology.setCategory(8);
topology.setType(3);
return topology;
}
return topology;
}
static String judgeChargePile(String deviceType) {
switch (deviceType) {
case CHARGE_PILE1:
case CHARGE_PILE2:
case CHARGE_PILE3:
case CHARGE_PILE4:
return "chargePile";
}
return "";
}
//时间
String TIME = "时间";
interface POINT_DATA {
//时间
String DATE = "date";
//列名
String ROW_NAME_DATE = "row_name_date";
//值
String DIGITAL = "digital";
//中文名称
String ROW_NAME_DIGITAL = "row_name_digital";
String COL = "col";
String SRC_ID = "srcId";
}
interface SignalPrefix {
//EMU 温控器前缀
String emuTempControlPrefix = "emuTempControlStateBit";
//EMU 除湿器前缀
String emuDehumiPrefix = "emuDehumiStateBit";
//EMU温控字段
String emuTempControl = "EMUBoxTemperatureControllerStatus";
//EMU 除湿器
String emuDehumi = "EMUDehumidifier1Status";
}
//堆可放电量
String DISCHARGE_CAPACITY = "dischargeCapacity";
//高压计量表-瞬时总有功功率
String ACTIVE_POWER = "activePower";
//无功功率
String REACTIVE_POWER = "reactivePower";
//pcs无功功率
String REACTIVE_POWER_PCS = "reactivePowerPCS";
//离网
String OFF_GRID = "offGrid";
//并网
String ON_GRID = "onGrid";
String SOC = "soc";
String SOH = "soh";
String SOC2 = "SOC";
String SOH2 = "SOH";
//pcs有功功率
String OUTPUT_POWER = "outputPower";
//光伏有功
String AC_ACTIVE_POWER = "acActivePower";
//eps有功功率
String EPS_ACTIVE_POWER = "epsActivePower";
//光伏总发电量
String CUMULATIVE_POWER_GENERATION = "cumulativePowerGeneration";
//光伏日电量
String DAILY_POWER_GENERATION = "dailyPowerGeneration";
//日充
String DAILY_CHARGE = "dailyCharge";
String VOLTAGE = "cSingleV";
String TEMPERATURE = "cSingleT";
//计算单体电压簇单体电压组合以及位置标志位
String VOLCOMPUTE = "VolCompute";
//计算单体温度簇单体电压组合以及位置标志位
String TEMCOMPUTE = "TemCompute";
//电压箱号
String VOL_BMU_NUM = "VolBMUNum";
//电压箱内编号
String VOL_BOX_NUM = "VolBoxNum";
//电压箱号
String TEM_BMU_NUM = "TemBMUNum";
//电压箱内编号
String TEM_BOX_NUM = "TemBoxNum";
//电流流向
String FLOW_DIRECTION = "flowDirection";
interface JING_KE_TYPE {
String WORK_STATUS = "workStatus";
String ACTIVE_POWER_PCS = "outputPower"; //与原来系统保持一致
String REACTIVE_POWER_PCS = "reactivePowerPCS";
String GRID = "grid";
String BMS_TOTAL_VOL = "bmsTotalVol";
String BMS_TOTAL_CURRENT = "bmsTotalCurrent";
String SOC = "soc";
String SOH = "soh";
String BMS_MAX_VOL = "bmsMaxVol";
String BMS_MIN_VOL = "bmsMinVol";
}
//日充起始
String DAILY_CHARGE_START = "dailyChargeStart";
//日放起始
String DAILY_DISCHARGE_START = "dailyDischargeStart";
//计划曲线常量
interface PLAN_CURVE {
//远程控制模式
String PLAN_CONTROL_MODEL = "planControlModel";
//计划曲线每日刷新时间(小时)
String PLAN_REFRESHH = "planRefreshH";
//计划曲线每日刷新时间(分钟)
String PLAN_REFRESHM = "planRefreshM";
String PALN_CONTROL_DEVICE_TYPE = "planCurve_";
}
}

View File

@ -0,0 +1,10 @@
package com.ho.business.constant;
/**
* 文件类型
*/
public interface FileTypeConstant {
String XLS = "xls";
String XLSX = "xlsx";
}

View File

@ -0,0 +1,10 @@
package com.ho.business.constant;
public interface ForwardColTemplateConstant {
String TEMPLATE_NAME_DUPLICATION = "模板名称重复";
String ADD_TEMPLATE_SUCCESS = "添加模板成功";
String ADD_TEMPLATE_FAIL = "添加模板失败";
}

View File

@ -0,0 +1,47 @@
package com.ho.business.constant;
/**
* @Description 运行评价常量
* Author yule
* Date 2022/10/18 10:33
*/
public interface OperationEvaluationConstant {
//电站电量
interface GateValue{
Integer onGridEnergy = 1; //上网电量
Integer downGridEnergy = 2;//下网电量
}
//站用电量
interface EleStationValue{
Integer onGridEnergy = 1; //上网电量
Integer downGridEnergy = 2;//下网电量
}
//储能数据
interface EnergyStorage{
Integer charge = 1; //日充电量
Integer disCharge = 2;//日放电量
Integer dayProfit = 3;//日收益
Integer yearProfit = 4;//年收益
Integer disShutdown = 5;//非计划停运小时
Integer Shutdown = 6;//计划停运小时
Integer standbyHours = 7;//储能待机小时
Integer runHours = 8;//储能运行小时
Integer CommandsNum = 9;//调度下发命令
Integer successNum = 10;//响应调度命令成功
Integer tipChargeNum=11; //尖日充电量
Integer peakChargeNum=12; //峰日充电量
Integer dailyChargeNum=13; //平日充电量
Integer valleyChargeNum=14; //谷日充电量
Integer tipDischargeNum=15; //尖日放电量
Integer peakDischargeNum=16; // 16峰日放电量
Integer dailyDischargeNUm=17; // 17平日放电量
Integer valleyDischargeNum =18; // 18谷日放电量
}
}

View File

@ -0,0 +1,25 @@
package com.ho.business.constant;
/**
* @Description 电站遥测类型枚举类
* Author yule
* Date 2022/9/13 17:53
*/
public interface StationYcTypeConstant {
//正常
String NORMAL = "normal";
//离线
String OFFLINE = "offline";
//故障
String FAULT = "fault";
//日充电量
Integer dayChargeE = 1;
//日放电量
Integer dayDischargeE = 2;
//日收益
Integer sinceDayProfit = 3;
//年收益
Integer sinceYearProfit = 4;
}

View File

@ -0,0 +1,25 @@
package com.ho.business.entity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable;
/**
* @author fancl
* @desc: id自动生成
* @date 2022/10/14
*/
@Getter
@Setter
@ToString
public class BusiIdControl implements Serializable {
Integer id;
//类型, workOrder 工单
String idType;
Long currentValue;
}

View File

@ -0,0 +1,49 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
*
* @TableName col_count
*/
@Data
public class ColCount implements Serializable {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "电站id")
private Integer stationId;
@ApiModelProperty(value = "设备类型")
private String deviceType;
@ApiModelProperty(value = "指标")
private String col;
@ApiModelProperty(value = "指标名称")
private String colName;
@ApiModelProperty(value = "偏移值")
private BigDecimal offset;
@ApiModelProperty(value = "计算方式(加减乘除分别以 1234表示")
private Integer countMethod;
@ApiModelProperty(value = "计算标志(0:不需要计算;1:算一次;2:持续计算;)")
private Integer countFlag;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "更新时间")
private Date updateTime;
@ApiModelProperty(value = "低于该值则计算效率(当计算方法选5时生效)")
private BigDecimal identifyNum;
}

View File

@ -0,0 +1,44 @@
package com.ho.business.entity;
import lombok.Data;
import java.io.Serializable;
/**
*
* @TableName convert
*/
@Data
public class Convert implements Serializable {
/**
*
*/
private Integer id;
/**
* 电站id
*/
private Integer stationId;
/**
* src_id
*/
private Integer srcId;
/**
* col字段
*/
private String col;
/**
* 中文字段
*/
private String colName;
}

View File

@ -0,0 +1,47 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 曲线配置
*/
@Data
public class CurveConfig implements Serializable {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "曲线名称")
private String curveName;
@ApiModelProperty(value = "曲线名称(英文)")
private String curveNameEn;
@ApiModelProperty(value = "曲线类型")
private Integer curveType;
@ApiModelProperty(value = "辅助线值(预留)")
private BigDecimal auxiliaryValue;
@ApiModelProperty(value = "是否隐藏0否1是默认0")
private Integer isHide;
@ApiModelProperty(value = "电站id")
private Integer stationId;
@ApiModelProperty(value = "菜单id")
private Integer permissionId;
@ApiModelProperty(value = "页面上的div块位置")
private String pageLocation;
@ApiModelProperty(value = "设备id(用以区分属于哪个设备页)")
private Integer deviceId;
@ApiModelProperty(value = "排序")
private Integer sort;
}

View File

@ -0,0 +1,24 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 曲线配置关联关系
*/
@Data
public class CurveConfigRelation implements Serializable {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "曲线配置表主键id")
private Integer curveId;
@ApiModelProperty(value = "设备集合配置表主键id")
private Integer dynamicConfigId;
}

View File

@ -0,0 +1,14 @@
package com.ho.business.entity;
import lombok.Data;
/**
* @author gyan
* @desc: TODO
* @DateTime: 2024/4/8 10:05
*/
@Data
public class DefaultColor {
String value;
String color;
}

View File

@ -0,0 +1,117 @@
package com.ho.business.entity;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
*
* @TableName device
*/
@Data
public class Device implements Serializable {
/**
*
*/
@ApiModelProperty(value = "id")
private Integer id;
/**
* src_id
*/
@ApiModelProperty(value = "src_id")
private Integer srcId;
@ApiModelProperty(value = "pid")
private Integer pid;
@ApiModelProperty(value = "类别")
private Integer category;
/**
* 分组id
*/
@ApiModelProperty(value = "分组id")
private Integer groupId;
/**
* 部门id
*/
@ApiModelProperty(value = "部门id")
private Integer deptId;
/**
* 电站id
*/
@ApiModelProperty(value = "电站id")
private Integer stationId;
/**
* 设备名字
*/
@ApiModelProperty(value = "设备名字")
private String deviceName;
@ApiModelProperty(value = "设备类型")
private String deviceType;
/**
* 厂家名称
*/
@ApiModelProperty(value = "厂家名称")
private String producer;
@ApiModelProperty(value = "地址")
private String address;
/**
* SN码
*/
@ApiModelProperty(value = "SN码")
private String serialNo;
/**
*状态码
*/
@ApiModelProperty(value = "状态码(0,1,2前端展示为设备离线|3,4,5,6前端展示为设备在线)(0: 未知 1正在连接 2连接超时 3连接保持 4开始升级 5正在升级 6升级完成)")
private Integer status;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "更新时间")
private Date updateTime;
//设备扩展属性
private JSONObject deviceJson;
@ApiModelProperty(value = "1:虚拟设备, 0:真实设备, 默认0")
private Integer virtual;
@ApiModelProperty(value = "真实设备的src_id")
private Integer fromId;
/**
* 需要过滤电站,间隔,接入点标志位
*/
private Integer needFilter;
//是否隐藏 1 隐藏 0 不隐藏 默认0
private Integer hide;
@ApiModelProperty(value = "电流流向1正充负放2正放负充")
private Integer flowDirection;
@ApiModelProperty(value = "厂家设备型号")
private String producerType;
@ApiModelProperty(value = "上送的电量单位类型")
private Integer unitType;
//非数据库字段用来过滤上送的电量单位类型为MWh以及以上类型
private Integer isFilterUnitType;
}

View File

@ -0,0 +1,94 @@
package com.ho.business.entity;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
*
* @TableName device_call
*/
@Data
public class DeviceCall implements Serializable {
/**
*
*/
@ApiModelProperty(value = "id")
private Integer id;
/**
* src_id
*/
@ApiModelProperty(value = "src_id")
private Integer srcId;
@ApiModelProperty(value = "pid")
private Integer pid;
@ApiModelProperty(value = "类别")
private Integer category;
/**
* 分组id
*/
@ApiModelProperty(value = "分组id")
private Integer groupId;
/**
* 部门id
*/
@ApiModelProperty(value = "部门id")
private Integer deptId;
/**
* 电站id
*/
@ApiModelProperty(value = "电站id")
private Integer stationId;
/**
* 设备名字
*/
@ApiModelProperty(value = "设备名字")
private String deviceName;
@ApiModelProperty(value = "设备类型")
private String deviceType;
/**
* 厂家名称
*/
@ApiModelProperty(value = "厂家名称")
private String producer;
/**
* SN码
*/
@ApiModelProperty(value = "SN码")
private String serialNo;
/**
*状态码
*/
@ApiModelProperty(value = "状态码(0,1,2前端展示为设备离线|3,4,5,6前端展示为设备在线)(0: 未知 1正在连接 2连接超时 3连接保持 4开始升级 5正在升级 6升级完成)")
private Integer status;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "更新时间")
private Date updateTime;
//设备扩展属性
private JSONObject deviceJson;
/**
* 需要过滤电站,间隔,接入点标志位
*/
private Integer needFilter;
}

View File

@ -0,0 +1,31 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
*
* @TableName device_type
*/
@Data
public class DeviceType implements Serializable {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "类型id")
private Integer typeId;
@ApiModelProperty(value = "父id")
private Integer pid;
@ApiModelProperty(value = "名称")
private String name;
@ApiModelProperty(value = "设备名称")
private String deviceType;
}

View File

@ -0,0 +1,99 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @TableName device_type_col
*/
@Data
public class DeviceTypeCol implements Serializable {
/**
*
*/
@ApiModelProperty(value = "id")
private Integer id;
/**
* device_type的Id
*/
@ApiModelProperty(value = "device_type的Id")
private Integer deviceTypeId;
/**
*
*/
@ApiModelProperty(value = "设备类型")
private String deviceType;
/**
*
*/
@ApiModelProperty(value = "设备名称")
private String deviceTypeName;
/**
* 字段key
*/
@ApiModelProperty(value = "字段key")
private String col;
/**
* 字段中文名
*/
@ApiModelProperty(value = "字段中文名")
private String colName;
/**
* 字段英文名
*/
@ApiModelProperty(value = "字段英文名")
private String colEn;
/**
* INT BIGDECIMAL 等
*/
private String dataType;
@ApiModelProperty(value = "1遥信 2遥测")
private Integer sensType;
@ApiModelProperty(value = " 1展示 0 不展示")
private Integer isShow;
@ApiModelProperty(value = "是否采集")
private Integer isSave;
@ApiModelProperty(value = "最大值")
private BigDecimal maxValue;
@ApiModelProperty(value = "最小值")
private BigDecimal minValue;
@ApiModelProperty(value = "额定值")
private BigDecimal specifiedValue;
@ApiModelProperty(value = "偏移量")
private BigDecimal offsetValue;
@ApiModelProperty(value = "系数")
private BigDecimal factor;
@ApiModelProperty(value = "单位")
private String unit;
@ApiModelProperty(value = "是否可以更改: 1:可以更改2:不可以更改")
private boolean change;
/**
* 告警等级
*/
@ApiModelProperty(value = "告警等级")
Integer alarmLevel;
@ApiModelProperty(value = "过滤类型1:按照最大最小值过滤)")
private Integer filterType;
}

View File

@ -0,0 +1,15 @@
package com.ho.business.entity;
import lombok.Getter;
import lombok.Setter;
/**
* @author fancl
* @desc:
* @date 2022/9/1
*/
@Getter
@Setter
public class DeviceTypeComp extends DeviceType{
Integer layer;
}

View File

@ -0,0 +1,58 @@
package com.ho.business.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ho.common.tools.constant.CommonConstant;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author fancl
* @desc: 设备类型配置
* @date 2023/3/18
*/
@Data
public class DeviceTypeConfig {
@ApiModelProperty(value = "id")
Integer id;
@ApiModelProperty(value = "集团id")
Integer groupId;
@ApiModelProperty(value = "电站id")
Integer stationId;
@ApiModelProperty(value = "电站名称")
String stationName;
@ApiModelProperty(value = "1集团级 2电站级")
Integer scope;
@ApiModelProperty(value = "设备类型")
String deviceType;
@ApiModelProperty(value = "设备类型名称")
String name;
@ApiModelProperty(value = "模型名称,用于和超级表关联")
String modelName;
@ApiModelProperty(value = "删除标识 1未删除 0已删除" ,hidden = true)
Integer deleted;
@ApiModelProperty(value = "创建人")
String creator;
@JsonFormat(pattern=CommonConstant.DATE)
@ApiModelProperty(value = "创建时间")
Date createTime;
@JsonFormat(pattern= CommonConstant.DATE)
@ApiModelProperty(value = "修改时间")
Date updateTime;
@ApiModelProperty(value = "设备类型名称(英文)")
String nameEn;
}

View File

@ -0,0 +1,12 @@
package com.ho.business.entity;
import lombok.Data;
@Data
public class DropDownVo {
private Integer id;
private String name;
}

View File

@ -0,0 +1,56 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
*
* @TableName device_list_config
*/
@Data
public class DynamicConfig implements Serializable {
@ApiModelProperty(value = "id",hidden = true)
private Integer id;
@ApiModelProperty(value = "电站id")
private Integer stationId;
@ApiModelProperty(value = "设备id")
private Integer srcId;
@ApiModelProperty(value = "设备类型")
private String deviceType;
@ApiModelProperty(value = "指标")
private String col;
@ApiModelProperty(value = "指标名称")
private String colName;
@ApiModelProperty(value = "遥信遥测")
private Integer sensType;
@ApiModelProperty(value = "菜单id")
private Integer permissionId;
@ApiModelProperty(value = "页面上的div块位置")
private String pageLocation;
@ApiModelProperty(value = "div块中具体位置")
private String divLocation;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "设备id(用以区分属于哪个设备页)")
private Integer deviceId;
@ApiModelProperty(value = "指标名称(中文)")
private String colNameZh;
@ApiModelProperty(value = "指标名称(英文)")
private String colNameEn;
}

View File

@ -0,0 +1,39 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* 动态配置标题
* @TableName dynamic_config_title
*/
@Data
public class DynamicConfigTitle implements Serializable {
@ApiModelProperty(value = "id",hidden = true)
private Integer id;
@ApiModelProperty(value = "标题名称")
private String name;
@ApiModelProperty(value = "电站id")
private Integer stationId;
@ApiModelProperty(value = "菜单id")
private Integer permissionId;
@ApiModelProperty(value = "页面上的div块位置")
private String pageLocation;
@ApiModelProperty(value = "div块中具体位置")
private String divLocation;
@ApiModelProperty(value = "设备id(用以区分属于哪个设备页)")
private Integer deviceId;
@ApiModelProperty(value = "标题名称(英文)",hidden = true)
private String nameEn;
}

View File

@ -0,0 +1,80 @@
package com.ho.business.entity;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author catkins
* @date 2023/9/27 0027 20:06
*/
@Data
public class EarningCalculateDischarge implements Serializable {
/**
* 主键id
*/
private Integer id;
/**
* 分组id(与src_id)
*/
private Integer groupId;
/**
* 所属id
*/
private Integer pid;
/**
* 电站id
*/
private Integer stationId;
/**
* device表中的id字段相连
*/
private Integer srcId;
/**
* 部门id
*/
private Integer deptId;
/**
* 创建时间
*/
private Date createTime;
/**
* 日期
*/
private String day;
/**
* 数据类型: 0:充 1:放
*/
private Integer type;
/**
* 收益
*/
private BigDecimal discharge;
/**
* 电量
*/
private BigDecimal disElec;
/**
* 费率类型:elec_template_sub表type
*/
private String disRateType;
/**
* 价格
*/
private BigDecimal price;
}

View File

@ -0,0 +1,108 @@
package com.ho.business.entity;
import lombok.Data;
import lombok.ToString;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
*
* @TableName earnings_calculate
*/
@Data
@ToString
public class EarningsCalculate implements Serializable {
/**
* 主键id
*/
private Integer id;
/**
* 分组id(与src_id)
*/
private Integer groupId;
/**
* 所属id
*/
private Integer pid;
/**
* 电站id
*/
private Integer stationId;
/**
* device表中的id字段相连
*/
private Integer srcId;
/**
* 部门id
*/
private Integer deptId;
/**
* 创建时间
*/
private Date createTime;
/**
* 日期
*/
private String day;
/**
* 数据类型: 0:充 1:放
*/
private Integer type;
/**
* 收益
*/
private BigDecimal digital;
/**
* 电量
*/
private BigDecimal elec;
/**
* 费率类型:elec_template_sub表type
*/
private String rateType;
/**
* 价格
*/
private BigDecimal price;
/**
* 总充,总放 根据type判断
*/
private BigDecimal total;
/**
* 收益
*/
private BigDecimal discharge;
/**
* 电量
*/
private BigDecimal disElec;
/**
* 费率类型:elec_template_sub表type
*/
private String disRateType;
/**
* 折扣
*/
private BigDecimal discount;
}

View File

@ -0,0 +1,53 @@
package com.ho.business.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
public class EarningsCalculateSub implements Serializable {
/**
* 与elec_template id关联
*/
private Integer pid;
/**
* 开始时间
*/
@ApiModelProperty(value = "开始时间")
@ExcelProperty
private String beginTime;
/**
* 结束时间
*/
@ApiModelProperty(value = "结束时间")
@ExcelProperty
private String endTime;
/**
* 类型
*/
@ApiModelProperty(value = "类型")
@ExcelProperty
@Length(max = 10,message = "类型不能超过10个字符")
private String type;
/**
* 价格
*/
@ApiModelProperty(value = "价格")
@ExcelProperty
@Length(max = 10,message = "价格不能超过10位数")
private BigDecimal price;
@ApiModelProperty(value = "折扣")
private BigDecimal discount;
@ApiModelProperty(value = "费率类型")
private Integer rateType;
}

View File

@ -0,0 +1,40 @@
package com.ho.business.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ho.common.tools.constant.CommonConstant;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 充放电量时间设定
* 站首页使用
*/
@Data
public class ElecMeterConfig implements Serializable {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "用户id")
private String userId;
@ApiModelProperty(value = "电站id")
private Integer stationId;
@ApiModelProperty(value = "开始时间")
private String beginTime;
@ApiModelProperty(value = "结束时间")
private String endTime;
@JsonFormat(pattern = CommonConstant.DATE)
@ApiModelProperty(value = "创建时间")
private Date createTime;
@JsonFormat(pattern = CommonConstant.DATE)
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}

View File

@ -0,0 +1,87 @@
package com.ho.business.entity;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @TableName elec_meter_value
*/
@Data
public class ElecMeterValue implements Serializable {
/**
*
*/
@ExcelIgnore
private Integer id;
/**
* 分组id(与src_id)
*/
@ExcelIgnore
private Integer groupId;
/**
* 所属id
*/
@ExcelIgnore
private Integer pid;
/**
* 电站id
*/
@ExcelProperty(value = "电站", index = 1)
private Integer stationId;
/**
* device表中的id字段相连
*/
@ExcelIgnore
private Integer srcId;
/**
* 部门id
*/
@ExcelIgnore
private Integer deptId;
/**
* 创建时间
*/
@ExcelIgnore
private Date createTime;
/**
*
*/
@ExcelProperty(value = "日期", index = 0)
private String day;
/**
* 类型 :
* 储能空调集装箱空调1
* 办公空调: 2,
* 办公插座: 3
* 办公照明: 4
* 其它用电: 5
* 办公用水: 6
* 桩日充电量 7
*/
@ExcelIgnore
private Integer type;
/**
*
*/
@ExcelProperty(value = "数值",index = 2)
private BigDecimal digital;
private Integer status;
}

View File

@ -0,0 +1,47 @@
package com.ho.business.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ho.common.tools.constant.CommonConstant;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
*
* @TableName elec_price
*/
@Data
public class ElecPrice implements Serializable {
private Integer id;
/**
* 时段
*/
@JsonFormat(pattern= CommonConstant.DATE)
private String startTime;
/**
* 电价
*/
private BigDecimal price;
/**
* 电价类型
*/
private String priceType;
/**
* groupid
*/
private Integer groupId;
/**
* 电站id
*/
private Integer stationId;
}

View File

@ -0,0 +1,27 @@
package com.ho.business.entity;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class ElecRateMeterValue {
private Integer id;
private Integer stationId;
private Integer srcId;
private Date createTime;
private String day;
private Integer type;
private BigDecimal digital;
private String rateType;
}

View File

@ -0,0 +1,55 @@
package com.ho.business.entity;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
*
* @TableName elec_station_value
*/
@Data
public class ElecStationValue implements Serializable {
/**
*
*/
private Integer id;
/**
* 分组id
*/
private Integer groupId;
/**
* 部门id
*/
private Integer deptId;
/**
* 电站id
*/
private Integer stationId;
/**
* 创建时间
*/
private Date createTime;
/**
* 类型
*/
private Integer type;
/**
* 数值
*/
private BigDecimal digital;
/**
* yyyy-MM-dd
*/
private String day;
}

View File

@ -0,0 +1,87 @@
package com.ho.business.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ho.common.tools.constant.CommonConstant;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import java.io.Serializable;
import java.util.Date;
/**
*
* @TableName elec_template
*/
@Data
public class ElecTemplate implements Serializable {
Integer id;
/**
* 电站id
*/
@ApiModelProperty(value = "电站id")
private Integer stationId;
/**
* 集团id
*/
@ApiModelProperty(value = "集团id")
private Integer groupId;
/**
* 模板编号
*/
@ApiModelProperty(value = "模板编号")
private String templateNo;
/**
* 模板名称
*/
@ApiModelProperty(value = "模板名称")
@ExcelProperty
@Length(max = 50,message = "模板名称不能超过50个字符")
private String templateName;
/**
* 是否启动(启用:1,禁用:0)
*/
@ApiModelProperty(value = "是否启动(启用:1,禁用:0)")
private Integer isEnable;
/**
* 创建时间
*/
@JsonFormat(pattern = CommonConstant.DATE)
@ExcelProperty
private Date createTime;
/**
* 修改时间
*/
@JsonFormat(pattern = CommonConstant.DATE)
@ExcelProperty
private Date updateTime;
@ApiModelProperty(value = "模板类型0电网代购电价格 1售电价格")
private Integer templateType;
/**
* 价格
*/
@ApiModelProperty(value = "电价曲线类型(1: 储能 2光伏 3充电桩)")
private String elecType;
@ApiModelProperty(value="模板有效期开始时间")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date validityStartTime;
@ApiModelProperty(value="模板有效期结束时间")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date validityEndTime;
@ApiModelProperty(value="电价折扣")
private Double discount;
}

View File

@ -0,0 +1,53 @@
package com.ho.business.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import java.io.Serializable;
import java.math.BigDecimal;
/**
*
* @TableName elec_template_sub
*/
@Data
public class ElecTemplateSub implements Serializable {
/**
* 与elec_template id关联
*/
private Integer pid;
/**
* 开始时间
*/
@ApiModelProperty(value = "开始时间")
@ExcelProperty
private String beginTime;
/**
* 结束时间
*/
@ApiModelProperty(value = "结束时间")
@ExcelProperty
private String endTime;
/**
* 类型
*/
@ApiModelProperty(value = "类型")
@ExcelProperty
@Length(max = 10,message = "类型不能超过10个字符")
private String type;
/**
* 价格
*/
@ApiModelProperty(value = "价格")
@ExcelProperty
@Length(max = 10,message = "价格不能超过10位数")
private BigDecimal price;
}

View File

@ -0,0 +1,43 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class EmsMetric implements Serializable {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "station_id")
private Integer stationId;
@ApiModelProperty(value = "cpu占用率")
private BigDecimal cpuRatio;
@ApiModelProperty(value = "内存占用率")
private BigDecimal memoryRatio;
@ApiModelProperty(value = "磁盘占用率")
private BigDecimal diskRatio;
@ApiModelProperty(value = "日期")
private LocalDate day;
@ApiModelProperty(value = "创建时间")
private LocalDateTime createTime;
@ApiModelProperty(value = "边端上送的sn号")
private String sn;
}

View File

@ -0,0 +1,99 @@
package com.ho.business.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ho.common.tools.constant.CommonConstant;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
*
* @TableName event
*/
@Data
public class Event implements Serializable {
@ApiModelProperty(value = "id")
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
@ApiModelProperty(value = "电站id")
private Integer stationId;
@ApiModelProperty(value = "部门id")
private Integer deptId;
@ApiModelProperty(value = "分组id")
private Integer groupId;
@ApiModelProperty(value = "事件类型")
private Integer eventType;
@ApiModelProperty(value = "事件类型等级")
private Integer eventLevel;
@ApiModelProperty(value = "事件时间")
@JsonFormat(pattern= CommonConstant.DATE_YMD_HMSS)
private Date timeStamp;
@ApiModelProperty(value = "事件设备")
private Integer targetDevice;
@ApiModelProperty(value = "关联device_type表的id")
private Integer deviceTypeId;
@ApiModelProperty(value = "事件信号")
private String signal;
@ApiModelProperty(value = "事件状态 1已确认 0 未确认")
private Integer status;
@ApiModelProperty(value = "事件值")
private BigDecimal value;
@ApiModelProperty(value = "事件描述")
private String description;
@ApiModelProperty(value = "1 已确认 0 未确认")
private Integer confirmStatus;
@ApiModelProperty(value = "确认人")
private String confirmMan;
@ApiModelProperty(value = "确认时间")
@JsonFormat(pattern=CommonConstant.DATE)
private Date confirmTime;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "处理建议")
private String suggestion;
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern=CommonConstant.DATE)
private Date createTime;
@ApiModelProperty(value = "修改时间")
@JsonFormat(pattern=CommonConstant.DATE)
private Date updateTime;
@ApiModelProperty(value = "类别")
private Integer category;
@ApiModelProperty(value = "类型")
private Integer type;
@ApiModelProperty(value = "子类型")
private Integer subType;
}

View File

@ -0,0 +1,20 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ForwardCol {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "模板id")
private Integer templateId;
@ApiModelProperty(value = "模型字段col的id")
private Integer modelColId;
@ApiModelProperty(value = "模型字段中文名")
private String colName;
}

View File

@ -0,0 +1,22 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class ForwardColTemplate {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "模板名称")
private String templateName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}

View File

@ -0,0 +1,55 @@
package com.ho.business.entity;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
*
* @TableName gate_value
*/
@Data
public class GateValue implements Serializable {
/**
*
*/
private Integer id;
/**
* 分组id
*/
private Integer groupId;
/**
* 部门id
*/
private Integer deptId;
/**
* 电站id
*/
private Integer stationId;
/**
* 创建时间
*/
private Date createTime;
/**
* 类型
*/
private Integer type;
/**
* 数值
*/
private BigDecimal digital;
/**
* yyyy-MM-dd
*/
private String day;
}

View File

@ -0,0 +1,70 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
*
* @TableName his_curve_relate
*/
@Data
public class HisCurveRelate implements Serializable {
/**
* id
*/
private Integer id;
/**
* 电站id
*/
private Integer stationId;
/**
* 用户Id
*/
private String userId;
/**
* 模板id
*/
private String modelId;
/**
* 模板名称
*/
private String modelName;
/**
* srcId
*/
private Integer srcId;
/**
* 英文字段
*/
private String col;
/**
* 字段中文名称
*/
private String colName;
/**
* 设备类型
*/
private String deviceType;
List<HisCurveRelate> list;
}

View File

@ -0,0 +1,29 @@
package com.ho.business.entity;
import lombok.Data;
/**
* @author gyan
* @desc: TODO
* @DateTime: 2023/11/16 15:17
*/
@Data
public class HomeConfig {
private Integer id;
private Integer stationId;
private String topLeft;
private String leftBottom;
private String topCenter;
private String rightCenter;
private String bottom;
//右上角
private String rightTop;
}

View File

@ -0,0 +1,59 @@
package com.ho.business.entity;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serializable;
/**
* 收益测算-上网用电-上网电价表
*/
@Data
public class IncomeQRate implements Serializable {
@JsonSerialize(using = ToStringSerializer.class)
private long id;
/* 上网电量(kWh) */
private String surfQ;
/* 单价(元) */
private String price;
/* 设置人 */
private String operator;
/* 设置时间 */
private String date;
/* 电站id */
private Integer stationId;
/* 数据时间 */
private String dataDate;
/* 模板id */
@JsonSerialize(using = ToStringSerializer.class)
private long templateId;
/* 费率id */
private int rateId;
private String rateName;
private String discount;
private String startTime;
private String endTime;
/* 新费率id */
private int oldRateId;
@JsonSerialize(using = ToStringSerializer.class)
private long oldTemplateId;
}

View File

@ -0,0 +1,67 @@
package com.ho.business.entity;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serializable;
/**
* 收益测算-企业用电-费率设置表
*/
@Data
public class IncomeRate implements Serializable {
private long id;
/* 开始时间(时分秒) */
private String startTime;
/* 结束时间(时分秒) */
private String endTime;
/* 费率id */
private int rateId;
/* 费率名称 */
private String rateName;
/* 电量(kWh) */
private String q;
/* 企业用电单价(元) */
private String price;
/* 结算折扣 */
private String discount;
/* 设置人 */
private String operator;
/* 设置时间 */
private String date;
/* 电站id */
private Integer stationId;
/* 数据时间 */
private String dataDate;
/* 费率模板id */
@JsonSerialize(using = ToStringSerializer.class)
private long templateId;
private String templateName;
/* 数据类型 1.用户导入 2.实时数据(不可编辑) */
private int type;
/* 用户操作类型(判断流程用,数据库用不到) */
private int actionType;
@JsonSerialize(using = ToStringSerializer.class)
private long oldTemplateId;
private int oldRateId;
}

View File

@ -0,0 +1,21 @@
package com.ho.business.entity;
import lombok.Data;
@Data
public class IncomeRateMapping {
private Long rateId;
private String rateName;
private double price;
private long templateId;
private String startTime;
private String endTime;
private double discount;
}

View File

@ -0,0 +1,13 @@
package com.ho.business.entity;
import lombok.Data;
@Data
public class IncomeTemplateType {
private int id;
private int type;
private String typeName;
}

View File

@ -0,0 +1,65 @@
package com.ho.business.entity;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class IncomeTotal {
private Integer id;
private String type;
/* */
private double ele;
/* 企业用电收益(元) */
private BigDecimal eleTotalFee;
/* 上网用电收益(元) */
private BigDecimal incomeFee;
/* 总收益(元) */
private BigDecimal totalFee;
/* 操作 */
private int flag;
/* 时间 格式:2023-01 */
private String date;
/* 电站id */
private Integer stationId;
/* 数据时间 */
private String dataDate;
/* 模板id */
@JsonSerialize(using = ToStringSerializer.class)
private long templateId;
@JsonSerialize(using = ToStringSerializer.class)
private long surfTemplateId;
/* 费率 */
private int rateId;
/* 集团id */
private int groupId;
/* 逆变器id */
private int srcId;
private String rateName;
private String price;
private String startTime;
private String endTime;
private String discount;
}

View File

@ -0,0 +1,176 @@
package com.ho.business.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.data.annotation.Transient;
import javax.validation.constraints.Digits;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class IndustrialElecPrice implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id")
private Long id;
// 1:单一电价 2两部制电价【字典表】.....
@ApiModelProperty(value = "用电部制/分类字典表类型electricity_type")
private Integer electricityType;
@ApiModelProperty(value = "用电部制/分类字典表类型electricity_type")
@Transient
private String electricityTypeLabel;
// 用户类型 1.一般工业用户 2.大工业用电....
@ApiModelProperty(value = "用户类型字典表类型customer_type")
private Integer customerType;
@ApiModelProperty(value = "用户类型字典表类型customer_type")
@Transient
private String customerTypeLabel;
// 电压等级【字典表】
@ApiModelProperty(value = "电压等级字典表类型voltage_level")
private Integer voltageLevel;
@ApiModelProperty(value = "用户类型字典表类型customer_type")
@Transient
private String voltageLevelLabel;
// 非分时电价
@ApiModelProperty(value = "非分时电价")
@Digits(integer = 5, fraction = 10, message = "validation.nonTimePrice.digit.message")
private BigDecimal nonTimePrice;
// 代理购电价格
@ApiModelProperty(value = "代理购电价格")
@Digits(integer = 5, fraction = 10, message = "validation.proxyPrice.digit.message")
private BigDecimal proxyPrice;
@ApiModelProperty(value = "上网电价高峰时段")
@Digits(integer = 5, fraction = 10, message = "validation.feedPeakPrice.digit.message")
private BigDecimal feedPeakPrice;
@ApiModelProperty(value = "上网电价平时段")
@Digits(integer = 5, fraction = 10, message = "validation.feedRegularPrice.digit.message")
private BigDecimal feedRegularPrice;
@ApiModelProperty(value = "上网电价低谷时段")
@Digits(integer = 5, fraction = 10, message = "validation.feedLowValleyPrice.digit.message")
private BigDecimal feedLowValleyPrice;
@ApiModelProperty(value = "线损电价高峰时段")
@Digits(integer = 5, fraction = 10, message = "validation.linePeakPrice.digit.message")
private BigDecimal linePeakPrice;
@ApiModelProperty(value = "线损电价平时段")
@Digits(integer = 5, fraction = 10, message = "validation.lineRegularPrice.digit.message")
private BigDecimal lineRegularPrice;
@ApiModelProperty(value = "线损电价低谷时段")
@Digits(integer = 5, fraction = 10, message = "validation.lineLowValleyPrice.digit.message")
private BigDecimal lineLowValleyPrice;
// 线损电价
@ApiModelProperty(value = "线损电价")
@Digits(integer = 5, fraction = 10, message = "validation.lineLossPrice.digit.message")
private BigDecimal lineLossPrice;
// 输电电价
@ApiModelProperty(value = "输电电价")
@Digits(integer = 5, fraction = 10, message = "validation.transmissionPrice.digit.message")
private BigDecimal transmissionPrice;
// 运行电价
@ApiModelProperty(value = "运行电价")
@Digits(integer = 5, fraction = 10, message = "validation.runningPrice.digit.message")
private BigDecimal runningPrice;
// 政府性基金及附加电价
@ApiModelProperty(value = "政府性基金及附加电价")
@Digits(integer = 5, fraction = 10, message = "validation.addPrice.digit.message")
private BigDecimal addPrice;
// 分时电价高峰电价
@ApiModelProperty(value = "分时电价高峰电价")
@Digits(integer = 5, fraction = 10, message = "validation.peakPrice.digit.message")
private BigDecimal peakPrice;
// 分时电价高峰电价区间
@ApiModelProperty(value = "分时电价高峰电价区间")
@Length(max = 200, message = "validation.peakPriceInterval.length.message")
private String peakPriceInterval;
// 分时尖峰电价
@ApiModelProperty(value = "分时尖峰电价")
@Digits(integer = 5, fraction = 10, message = "validation.spikePrice.digit.message")
private BigDecimal spikePrice;
// 分时尖峰电价区间
@ApiModelProperty(value = "分时尖峰电价区间")
@Length(max = 200, message = "validation.spikePriceInterval.length.message")
private String spikePriceInterval;
// 分时平时电价
@ApiModelProperty(value = "分时平时电价")
@Digits(integer = 5, fraction = 10, message = "validation.regularPrice.digit.message")
private BigDecimal regularPrice;
// 分时平时电价区间
@ApiModelProperty(value = "分时平时电价区间")
@Length(max = 200, message = "validation.regularPriceInterval.length.message")
private String regularPriceInterval;
// 分时低谷电价
@ApiModelProperty(value = "分时低谷电价")
@Digits(integer = 5, fraction = 10, message = "validation.lowValleyPrice.digit.message")
private BigDecimal lowValleyPrice;
// 分时低谷电价区间
@ApiModelProperty(value = "分时低谷电价区间")
@Length(max = 200, message = "validation.lowValleyPriceInterval.length.message")
private String lowValleyPriceInterval;
// 分时深谷电价
@ApiModelProperty(value = "分时深谷电价")
@Digits(integer = 5, fraction = 10, message = "validation.deepValleyPrice.digit.message")
private BigDecimal deepValleyPrice;
// 分时深谷电价区间
@ApiModelProperty(value = "分时深谷电价区间")
@Length(max = 200, message = "validation.deepValleyPriceInterval.length.message")
private String deepValleyPriceInterval;
// 需量电价
@ApiModelProperty(value = "需量电价")
@Digits(integer = 5, fraction = 10, message = "validation.demandPrice.digit.message")
private BigDecimal demandPrice;
// 容量电价
@ApiModelProperty(value = "容量电价")
@Digits(integer = 5, fraction = 10, message = "validation.capacityPrice.digit.message")
private BigDecimal capacityPrice;
// 执行开始时间
@JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
@ApiModelProperty(value = "执行日期")
private String executionTime;
// 地区id
@ApiModelProperty(value = "地区id")
private Integer regionId;
@Transient
private String regionName;
@ApiModelProperty(value = "更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
}

View File

@ -0,0 +1,76 @@
package com.ho.business.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
//代理电价区域
@Data
public class IndustrialElecRegion implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id")
private Integer id;
//区域名称
@ApiModelProperty(value = "区域名称")
@NotNull(message = "区域名称不能为空")
@Length(max = 50, message = "validation.regionName.length.message")
private String regionName;
private String regionNameEn;
@ApiModelProperty(value = "更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date updateTime;
//区域峰谷平时间分布
@ApiModelProperty(value = "区域峰谷平时间分布")
@NotNull(message = "区域峰谷平时间分布不能为空")
@Length(max = 5000, message = "validation.interval.length.message")
private String interval;
@ApiModelProperty(value = "模型类型")
@Max(value = 1000,message = "validation.modelType.length.max.message")
@Min(value = 0,message = "validation.modelType.length.min.message")
private Integer type;
@ApiModelProperty(value = "电压等级")
@NotNull(message = "电压等级不能为空")
@Length(max = 5000, message = "validation.voltageLevel.length.message")
private String voltageLevel;
private String voltageLevelEn;
@ApiModelProperty(value = "客户类型")
@NotNull(message = "客户类型不能为空")
@Length(max = 500, message = "validation.customerType.length.message")
private String customerType;
private String customerTypeEn;
@ApiModelProperty(value = "用电部制、分类")
@NotNull(message = "用电部制、分类不能为空")
@Length(max = 5000, message = "validation.electricityType.length.message")
private String electricityType;
private String electricityTypeEn;
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date createTime;
}

View File

@ -0,0 +1,91 @@
package com.ho.business.entity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.math.BigDecimal;
/**
* @author gyan
* @desc: TODO
* @DateTime: 2022/11/29 10:45
* @TableName industry_commerce_value
*/
@Getter
@Setter
@ToString
public class IndustryCommerceValue {
/**
*
*/
private Integer id;
/**
*
*/
private String userId;
/**
*
*/
private Integer groupId;
/**
*
*/
private Integer deptId;
/**
* 峰值电价(元)
*/
private BigDecimal peakPrice;
/**
* 平值电价(元)
*/
private BigDecimal agePrice;
/**
* 峰谷差价(元)
*/
private BigDecimal differencePrice;
/**
* 峰平电价(元)
*/
private BigDecimal flatPrice;
/**
* 千瓦时成本(元/Wh)
*/
private BigDecimal kwhCost;
/**
* 储能定增容量(元/kWh)
*/
private BigDecimal increaseCapacity;
/**
* 储能额定输出功率(kw)
*/
private BigDecimal outputPower;
/**
* 初期投资成本
*/
private BigDecimal initialCost;
/**
* 年运行天数
*/
private BigDecimal yearRunDays;
/**
* 低值电价(元)
*/
private BigDecimal lowPrice;
}

View File

@ -0,0 +1,50 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author WP
= * @DateTime: 2024/09/12 16:40
* @TableName inspection_template
*/
@Data
public class InspectionTemplate {
@ApiModelProperty(value = "id")
public Integer id;
@ApiModelProperty(value = "巡检模板名称")
public String name;
@ApiModelProperty(value = "是否启用")
public Integer status;
@ApiModelProperty(value = "所属电站")
public Integer stationId;
@ApiModelProperty(value = "创建人")
public String createUser;
@ApiModelProperty(value = "创建人名称")
public String createUserName;
@ApiModelProperty(value = "创建时间")
public String createTime;
@ApiModelProperty(value = "更新时间")
public String updateTime;
@ApiModelProperty(value = "巡检时间")
public String inspectionTime;
@ApiModelProperty(value = "巡检频率")
public String inspectionFrequency;
@ApiModelProperty(value = "工单接收人")
public String orderReceiver;
@ApiModelProperty(value = "删除状态")
public Integer deleted;
}

View File

@ -0,0 +1,97 @@
package com.ho.business.entity;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
/**
*
* @TableName maintenance_data
*/
@Data
public class MaintenanceData implements Serializable {
/**
*
*/
private Integer id;
/**
* 电站id
*/
private Integer stationId;
/**
* 站点存储时状态
*/
private Integer alarmStatus;
/**
* 报警发生次数
*/
private String alarmNum;
/**
* 未解决数量
*/
private String alarmUnresolvedNum;
/**
* pcs交流侧转换率
*/
private String pcsConversion;
/**
* 失联离线时间
*/
private String time;
/**
* 总充
*/
private BigDecimal totalCharge;
/**
* 总放
*/
private BigDecimal totalDischarge;
/**
* 最低气温
*/
private BigDecimal minTemperature;
/**
* 最高气温
*/
private BigDecimal maxTemperature;
/**
* pcs散热器最高温度
*/
private String pcsMaxTemperature;
/**
* cpu占用率
*/
private BigDecimal cpuUseProportion;
/**
* 内存占用率
*/
private BigDecimal memUseProportion;
/**
* 硬盘占用率
*/
private BigDecimal hardUseProportion;
/**
* 创建时间
*/
private Date createTime;
}

View File

@ -0,0 +1,53 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class MesDevice implements Serializable {
/**
*主键id
*/
@ApiModelProperty(value = "id")
private Integer id;
/**
* 设备编码
*/
@ApiModelProperty(value = "设备编码")
private String srcId;
/**
* 父id
*/
@ApiModelProperty(value = "父id")
private String pid;
/**
* 设备名称
*/
@ApiModelProperty(value = "设备名称")
private String name;
/**
* 设备类型
*/
@ApiModelProperty(value = "设备类型")
private String deviceType;
/**
* 树id
*/
@ApiModelProperty(value = "树id")
private String treeId;
/**
* 质量状态
*/
@ApiModelProperty(value = "质量状态")
private String qualityStatus;
}

View File

@ -0,0 +1,59 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
@Data
public class MessageInfoVo implements Serializable {
@ApiModelProperty(value = "id")
Integer id;
@ApiModelProperty(value = "消息id")
String messageId;
@ApiModelProperty(value = "消息名称")
String messageName;
@ApiModelProperty(value = "消息内容")
String messageContent;
@ApiModelProperty(value = "消息类型")
Integer messageType;
@ApiModelProperty(value = "开始广播时间")
String startTime;
@ApiModelProperty(value = "结束广播时间")
String endTime;
@ApiModelProperty(value = "消息创建时间")
String createTime;
@ApiModelProperty(value = "消息创建人")
String createUser;
@ApiModelProperty(value = "消息创建人名称")
String createUserName;
@ApiModelProperty(value = "消息创建状态")
Integer createStatus;
@ApiModelProperty(value = "广播频次")
Integer messageFrequency;
@ApiModelProperty(value = "广播频次单位")
String frequencyUnit;
@ApiModelProperty(value = "需阅读时间")
Integer readTime;
@ApiModelProperty(value = "播放模式")
Integer sendType;
}

View File

@ -0,0 +1,31 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class MessageReceiverVo implements Serializable {
@ApiModelProperty(value = "主键")
Integer id;
@ApiModelProperty(value = "消息id")
String messageId;
@ApiModelProperty(value = "接收用户/电站id")
String receivingUser;
@ApiModelProperty(value = "接收用户名称/电站名称")
String receivingUserName;
@ApiModelProperty(value = "接收用户类型")
Integer receivingType;
@ApiModelProperty(value = "消息读取状态")
Integer readStatus;
@ApiModelProperty(value = "消息接收时间")
String receivingTime;
}

View File

@ -0,0 +1,25 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author gyan
* @desc: model_device 实体类
* @DateTime: 2023/3/10 16:38
*/
@Data
public class ModelDevice {
@ApiModelProperty(value = "id")
Integer id;
@ApiModelProperty(value = "模型类型")
String modelType;
@ApiModelProperty(value = "设备类型")
String deviceType;
@ApiModelProperty(value = "设备类型名称")
String deviceTypeName;
}

View File

@ -0,0 +1,43 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @TableName model_device_col
*/
@Data
public class ModelDeviceCol implements Serializable {
/**
*
*/
@ApiModelProperty(value = "id")
private Integer id;
/**
* 设备类型
*/
@ApiModelProperty(value = "设备类型")
private String deviceType;
/**
* 设备字段col的id
*/
@ApiModelProperty(value = "设备字段col的id")
private Integer deviceColId;
/**
* 模型类型
*/
@ApiModelProperty(value = "模型类型")
private String modelType;
/**
* 模型字段col的id
*/
@ApiModelProperty(value = "模型字段col的id")
private Integer modelColId;
}

View File

@ -0,0 +1,49 @@
package com.ho.business.entity;
import lombok.Data;
/**
* @TableName 平台模型和数据模型对应混合体
*/
@Data
public class ModelDeviceColComp extends ModelDeviceCol {
/**
*设备字段
*/
private String deviceCol;
/**
*设备字段名称
*/
private String deviceColName;
/**
* 模型字段
*/
private String modelCol;
/**
* 模型字段名称
*/
private String modelColName;
/**
* 字段单位
*/
private String unit;
/**
* 1遥信 2遥测
*/
private Integer sensType;
/**
* srcId 收益使用
*/
private Integer srcId;
private String beginTime;
private Integer unitType;
}

View File

@ -0,0 +1,15 @@
package com.ho.business.entity;
import lombok.Data;
/**
* @author gyan
* @desc: model_type
* @DateTime: 2023/3/8 11:31
*/
@Data
public class ModelType {
Integer id;
String modelType;
String modelName;
}

View File

@ -0,0 +1,57 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @TableName model_type_col
*/
@Data
public class ModelTypeCol implements Serializable {
/**
*
*/
@ApiModelProperty(value = "id")
private Integer id;
/**
* mode_type的Id
*/
@ApiModelProperty(value = "模型类别Id")
private Integer modelTypeId;
/**
* 冗余
*/
@ApiModelProperty(value = "模型类别")
private String modelType;
/**
* 冗余
*/
@ApiModelProperty(value = "模型类别名称")
private String modelTypeName;
/**
* 字段
*/
@ApiModelProperty(value = "字段英文名")
private String col;
/**
* 字段中文名
*/
@ApiModelProperty(value = "字段中文名")
private String colName;
/**
* INT BIGDECIMAL 等
*/
private String dataType;
@ApiModelProperty(value = "是否可以更改: true:可以更改false:不可以更改")
private boolean change;
}

View File

@ -0,0 +1,23 @@
package com.ho.business.entity;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author catkins
* @date 2023年10月27日 10:23
*/
@Data
public class MonFreezeTotal {
private Integer id;
private Integer stationId;
private BigDecimal totalCharge;
private BigDecimal totalDischarge;
private String month;
}

View File

@ -0,0 +1,45 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class OneClickSequentialControl {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "字段key")
private String col;
@ApiModelProperty(value = "字段中文名")
private String colName;
@ApiModelProperty(value = "最大值")
private BigDecimal maxValue;
@ApiModelProperty(value = "最小值")
private BigDecimal minValue;
@ApiModelProperty(value = "电站id")
private Integer stationId;
@ApiModelProperty(value = "src_id")
private Integer srcId;
@ApiModelProperty(value = "设定值")
private BigDecimal setValue;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "名称")
private String controlName;
@ApiModelProperty(value = "标志位")
private String flagId;
private Integer isLast;
}

View File

@ -0,0 +1,63 @@
package com.ho.business.entity;
import lombok.Data;
import java.io.Serializable;
/**
*
* @TableName page_config
*/
@Data
public class PageConfig implements Serializable {
/**
*
*/
private Integer id;
/**
* 电站id
*/
private Integer stationId;
/**
* 设备类型
*/
private String deviceType;
/**
* 设备col
*/
private String deviceCol;
/**
* 设备id
*/
private Integer deviceColId;
/**
* 设备中文名称
*/
private String deviceColIdName;
/**
* 模板col英文字段
*/
private String modelCol;
/**
* 模板id
*/
private Integer modelColId;
/**
* 模板中文名称
*/
private String modelColIdName;
/**
* 模板类型
*/
private String modelType;
}

View File

@ -0,0 +1,57 @@
package com.ho.business.entity;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author gyan
* @desc: park_value的实体类
* @DateTime: 2022/12/2 10:25
*/
@Data
public class ParkValue {
private Integer id;
/**
* 分组id
*/
private Integer groupId;
/**
* 部门id
*/
private Integer deptId;
/**
* 设备id
*/
private Integer srcId;
/**
* 电站id
*/
private Integer stationId;
/**
* 创建时间
*/
private Date createTime;
/**
* 类型 1日充电量 2日放电量3日收益 4年收益
*/
private Integer type;
/**
* 数值
*/
private BigDecimal digital;
/**
* 日期(yyyy-MM-dd)
*/
private String day;
}

View File

@ -0,0 +1,24 @@
package com.ho.business.entity;
import lombok.Data;
@Data
public class PeakShavingBean {
private Integer id;
private String name;
/**
* 用来区分是计划曲线还是方案模板 0:计划曲线 1:方案模板
*/
private Integer type;
private Integer month;
/**
* 唯一标识
*/
private String key;
}

View File

@ -0,0 +1,74 @@
package com.ho.business.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ho.common.tools.constant.CommonConstant;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
*
* @TableName picture
*/
@Data
public class Picture implements Serializable {
/**
*
*/
private Integer id;
/**
* 设备id
*/
private Integer srcId;
/**
* 文件名
*/
private String fileName;
/**
* 文件路径
*/
private String filePath;
/**
* 路径地址
*/
private String url;
/**
* 类型(1:电站 2:设备)
*/
private Integer type;
/**
* 创建时间
*/
@JsonFormat(pattern = CommonConstant.DATE)
private Date createTime;
//用于与flow模块workOrderPicture相连
private Long workOrderId;
/**
* 版本号
*/
private String version;
/**
* 所属用户
*/
private String ownerUser;
private String ownerOrg;
private String updateLog;
/**
* 桶名称(上传minio时使用)
*/
private String bucket;
}

View File

@ -0,0 +1,44 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class PlanCurveOperationRecordReq {
@ApiModelProperty(value = "id")
Integer id;
@ApiModelProperty(value = "操作用户id")
String userId;
@ApiModelProperty(value = "操作用户名称")
String userName;
@ApiModelProperty(value = "操作时间")
String operateTime;
@ApiModelProperty(value = "操作内容")
String operateContent;
@ApiModelProperty(value = "操作结果")
String operateResult;
@ApiModelProperty(value = "生效时间")
String effectiveTime;
@ApiModelProperty(value = "状态")
Integer status;
@ApiModelProperty(value = "上一份计划曲线内容id")
String previousPlanningCurve;
@ApiModelProperty(value = "最新计划曲线内容id")
String latestPlanningCurve;
@ApiModelProperty(value = "电站id")
Integer stationId;
}

View File

@ -0,0 +1,31 @@
package com.ho.business.entity;
import lombok.Data;
@Data
public class PlanningCurve {
/* 主键 */
private Integer id;
/* 计划曲线模板id */
private Integer planningTemplateId;
/* 开始时间 */
private String startTime;
/* 结束时间 */
private String endTime;
/* 有功功率(计划用电) 单位kw */
private Double p;
/* 无功功率 单位kw */
private Double q;
/* soc */
private Double soc;
private String templateName;
}

View File

@ -0,0 +1,18 @@
package com.ho.business.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
@Data
public class PlanningCurveExport {
/* 时段 */
@ExcelProperty(value = "时段",index =0)
private String time;
/* 计划功率 单位kw */
@ExcelProperty(value = "计划功率kW",index = 1)
private Double p;
}

View File

@ -0,0 +1,45 @@
package com.ho.business.entity;
import lombok.Data;
@Data
public class PlanningCurveHistory {
/* 主键 */
private Integer id;
/* 计划曲线模板id */
private Integer tempNo;
/* 开始时间 */
private String startTime;
/* 结束时间 */
private String endTime;
/* 有功功率(计划用电) 单位kw */
private Double p;
/* 无功功率 单位kw */
private Double q;
/* soc */
private Double soc;
private String templateName;
//操作记录id
private String operateNo;
/* soc上限% */
private Integer socUpper;
/* soc下限% */
private Integer socLower;
//生效时间
private String effectiveTime;
}

View File

@ -0,0 +1,85 @@
package com.ho.business.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
public class PlanningCurveTableTemplate {
@ApiModelProperty(value = "第几页")
private Integer pageNum;
@ApiModelProperty(value = "分页数量")
private Integer pageSize;
/* 主键 */
private Integer temId;
/* 模板编号 */
private String templateNo;
/* 模板名称 */
private String templateName;
/* 电价模板id */
//private Integer elecTemplateId;
/* 电站id */
private Integer stationId;
/* 集团id */
private Integer groupId;
/* 收益 */
private Double income;
/* 启用状态 0不启用 1启用 */
private Integer status;
/* 额定功率 单位kw */
private Double temP;
/* 额定容量 */
private Double capacity;
/* soc上限% */
private Integer socUpper;
/* soc下限% */
private Integer socLower;
/* 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date createTime;
/* 修改时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date updateTime;
/* 额定功率 */
private BigDecimal ratePower;
/* 计划曲线模板id */
private Integer planningTemplateId;
/* 开始时间 */
private String startTime;
/* 结束时间 */
private String endTime;
/* 有功功率(计划用电) 单位kw */
private Double p;
/* 无功功率 单位kw */
private Double q;
/* soc */
private Double soc;
}

View File

@ -0,0 +1,71 @@
package com.ho.business.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ho.common.tools.constant.CommonConstant;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @author catkins
* @date 2023/10/12 0012 17:37
*/
@Data
public class PlanningCurveTactics {
@ApiModelProperty(value = "第几页")
private Integer pageNum;
@ApiModelProperty(value = "分页数量")
private Integer pageSize;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "模板id")
private Integer temId;
@ApiModelProperty(value = "模板名称")
private String temName;
@ApiModelProperty(value = "开始时间")
@JsonFormat(pattern = CommonConstant.DATE_YMD)
private Date startDate;
@ApiModelProperty(value = "结束时间")
@JsonFormat(pattern = CommonConstant.DATE_YMD)
private Date endDate;
/** 类型 0:日常 1:节假日 2:周末 */
private Integer type;
private String typeName;
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = CommonConstant.DATE)
private Date createTime;
@ApiModelProperty(value = "创建者")
private String creator;
@ApiModelProperty(value = "修改时间")
@JsonFormat(pattern = CommonConstant.DATE)
private Date updateTime;
@ApiModelProperty(value = "修改者")
private String modifier;
private Integer stationId;
/** 计划曲线列表数据 */
private List<PlanningCurve> planningCurves;
/** 下拉框value (id) */
private Integer value;
/** 下拉框名称 (模板名称) */
private String title;
}

View File

@ -0,0 +1,72 @@
package com.ho.business.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
public class PlanningCurveTemplate {
@ApiModelProperty(value = "第几页")
private Integer pageNum;
@ApiModelProperty(value = "分页数量")
private Integer pageSize;
/* 主键 */
private Integer temId;
/* 模板编号 */
private String templateNo;
/* 模板名称 */
private String templateName;
/* 电价模板id */
//private Integer elecTemplateId;
/* 电站id */
private Integer stationId;
/* 集团id */
private Integer groupId;
/* 收益 */
private Double income;
/* 启用状态 0不启用 1启用 */
private Integer status;
/* 额定功率 单位kw */
private Double temP;
/* 额定容量 */
private Double capacity;
/* soc上限% */
private Integer socUpper;
/* soc下限% */
private Integer socLower;
/* 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date createTime;
/* 修改时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date updateTime;
/* 额定功率 */
private BigDecimal ratePower;
private Integer modelType;
/* 计划曲线列表数据 */
private List<PlanningCurve> planningCurves;
}

View File

@ -0,0 +1,30 @@
package com.ho.business.entity;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class PlanningIssueComm {
private String modelCol;
private String typeCol;
private Integer typeId;
private String maxValue;
private String minValue;
private String colName;
private BigDecimal specified_value;
private String srcId;
private Integer stationId;
private String deviceType;
}

View File

@ -0,0 +1,20 @@
package com.ho.business.entity;
import lombok.Data;
@Data
public class PlanningIssueCommDetail extends PlanningCurveTemplate{
private Integer id;
private Integer stationId;
private Integer planTemId;
private Integer deviceId;
private Integer issue;
private Integer operation;
}

View File

@ -0,0 +1,25 @@
package com.ho.business.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@Data
public class PlanningIssueDevice {
private Integer id;
private Integer stationId;
private Integer planTemId;
private Integer deviceId;
private Integer issue;
private Integer operation;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date operationDate;
}

View File

@ -0,0 +1,110 @@
package com.ho.business.entity;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ho.common.tools.constant.CommonConstant;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class PlanningPolicy {
@ApiModelProperty(value = "第几页")
@ExcelIgnore
private Integer pageNum;
@ApiModelProperty(value = "分页数量")
@ExcelIgnore
private Integer pageSize;
@ExcelIgnore
private Integer policyId;
@ApiModelProperty(value = "电站id")
@ExcelIgnore
private Integer stationId;
@ApiModelProperty(value = "策略类型id")
@ExcelIgnore
private Integer policyTypeId;
@ApiModelProperty(value = "策略类型名称")
@ExcelProperty(value = "策略类型",index = 0)
private String policyTypeName;
@ApiModelProperty(value = "策略名称")
@ExcelProperty(value = "策略名称",index = 1)
private String policyName;
@ApiModelProperty(value = "自定义策略名称")
@ExcelProperty(value = "自定义策略名称",index = 2)
private String customPolicyName;
@JsonFormat(pattern = CommonConstant.DATE_YMD)
@ApiModelProperty(value = "自定义开始时间")
@ExcelProperty(value = "自定义开始时间",index = 3)
private Date customPolicyStartDate;
@JsonFormat(pattern = CommonConstant.DATE_YMD)
@ApiModelProperty(value = "自定义结束时间")
@ExcelProperty(value = "自定义结束时间",index = 4)
private Date customPolicyEndDate;
@ApiModelProperty(value = "计划曲线模板id")
@ExcelIgnore
private Integer temId;
@ApiModelProperty(value = "计划曲线模板名称")
@ExcelProperty(value = "计划曲线模板",index = 5)
private String planningTemplateName;
@ApiModelProperty(value = "策略优先级id")
@ExcelIgnore
private Integer policyPriorityId;
@ApiModelProperty(value = "策略优先级名称")
@ExcelProperty(value = "策略优先级",index = 6)
private String policyPriorityName;
@ApiModelProperty(value = "生效类型 0永久生效 1时间段内生效")
@ExcelProperty(value = "生效类型",index = 7)
private Integer effectiveType;
@JsonFormat(pattern = CommonConstant.DATE_YMD)
@ApiModelProperty(value = "生效开始时间")
@ExcelProperty(value = "生效开始时间",index = 8)
private Date effectiveStartDate;
@JsonFormat(pattern = CommonConstant.DATE_YMD)
@ApiModelProperty(value = "生效结束时间")
@ExcelProperty(value = "生效结束时间",index = 9)
private Date effectiveEndDate;
@ApiModelProperty(value = "启用状态 0不启用 1启用")
@ExcelProperty(value = "启用状态",index = 10)
private Integer status;
@ApiModelProperty(value = "描述")
@ExcelProperty(value = "描述",index = 11)
private String context;
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ExcelIgnore
private Date createTime;
@ApiModelProperty(value = "修改时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ExcelIgnore
private Date modifyTime;
@ApiModelProperty(value = "计划曲线")
@ExcelIgnore
List<PlanningCurve> curves;
}

View File

@ -0,0 +1,54 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
*
* @TableName point_config
*/
@Data
public class PointConfig implements Serializable {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "点位名称")
private String name;
@ApiModelProperty(value = "点位名称(英文)")
private String nameEn;
@ApiModelProperty(value = "默认值")
private String defaultValue;
@ApiModelProperty(value = "配置点类型")
private Integer pointType;
@ApiModelProperty(value = "电站id")
private Integer stationId;
@ApiModelProperty(value = "菜单id")
private Integer permissionId;
@ApiModelProperty(value = "页面上的div块位置")
private String pageLocation;
@ApiModelProperty(value = "div块中具体位置")
private String divLocation;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "设备id(用以区分属于哪个设备页)")
private Integer deviceId;
@ApiModelProperty(value = "偏移量")
private BigDecimal offsetValue;
@ApiModelProperty(value = "系数")
private BigDecimal factor;
}

View File

@ -0,0 +1,23 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* 配置点关联关系
*/
@Data
public class PointConfigRelation implements Serializable {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "配置点表主键id")
private Integer pointId;
@ApiModelProperty(value = "设备集合配置表主键id")
private Integer dynamicConfigId;
}

View File

@ -0,0 +1,23 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* 配置点关联关系
*/
@Data
public class PointDisassembleConfig implements Serializable {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "配置点表主键id")
private Integer pointId;
@ApiModelProperty(value = "拆分值")
private Integer value;
}

View File

@ -0,0 +1,35 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 配置点关联关系
*/
@Data
public class PointPolysemyConfig implements Serializable {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "配置点表主键id")
private Integer pointId;
@ApiModelProperty(value = "")
private BigDecimal value;
@ApiModelProperty(value = "值对应的名称")
private String name;
@ApiModelProperty(value = "符号(字典)")
private String symbol;
@ApiModelProperty(value = "值对应的名称(中文)")
private String nameZh;
@ApiModelProperty(value = "值对应的名称(英文)")
private String nameEn;
}

View File

@ -0,0 +1,35 @@
package com.ho.business.entity;
import com.ho.business.vo.req.PolicyConfigData;
import lombok.Data;
import java.util.List;
@Data
public class PolicyConfig {
private Integer id;
/**
* 电站id
*/
private Integer stationId;
/**
* 方案id
*/
private Integer planId;
/**
* 计划曲线id
*/
private Integer temId;
/**
* 月份
*/
private Integer month;
/**
* 配置详细信息
*/
List<PolicyConfigData> data;
private String key;
}

View File

@ -0,0 +1,30 @@
package com.ho.business.entity;
import com.ho.business.vo.req.PolicyConfigData;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import java.util.Date;
import java.util.List;
/**
* 削峰填谷方案
*/
@Data
public class PolicyConfigPlan{
private Integer id;
@Length(max = 50, message = "方案名称不能超过20个字符")
private String planName;
private Date createTime;
private Integer stationId;
private Integer month;
private Integer type;
private List<PolicyConfigData> childs;
}

View File

@ -0,0 +1,44 @@
package com.ho.business.entity;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
public class RateTemplate implements Serializable {
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
private int templateType;
private String templateTypeName;
private String templateName;
private int rateNum;
private String context;
private String operatorId;
private String operatorName;
private Date createTime;
private String modifyId;
private String modifyName;
private Date modifyTime;
private int stationId;
private int open;
private List<IncomeRateMapping> rateMappings;
}

View File

@ -0,0 +1,21 @@
package com.ho.business.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class RepairFile {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "维修记录id")
private Integer repairId;
@ApiModelProperty(value = "文件名称")
private String fileName;
@ApiModelProperty(value = "文件路径")
private String url;
}

View File

@ -0,0 +1,144 @@
package com.ho.business.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ho.common.tools.constant.CommonConstant;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @TableName station
*/
@Data
public class Station implements Serializable {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "父id")
private Integer pId;
@ApiModelProperty(value = "分组id")
private Integer groupId;
@ApiModelProperty(value = "部门id")
private Integer deptId;
@ApiModelProperty(value = "电站名称")
private String name;
@ApiModelProperty(value = "电站名称(英文)")
private String nameEn;
@ApiModelProperty(value = "地址")
private String address;
@ApiModelProperty(value = "地址(英文)")
private String addressEn;
@ApiModelProperty(value = "经度")
private BigDecimal longitude;
@ApiModelProperty(value = "纬度")
private BigDecimal latitude;
@ApiModelProperty(value = "装机容量")
private BigDecimal capacity;
@ApiModelProperty(value = "额定功率")
private BigDecimal ratePower;
@ApiModelProperty(value = "sn编号列表")
private List<String> snList;
@ApiModelProperty(value = "状态")
private Integer status;
@ApiModelProperty(value = "电站类型")
private Integer type;
@ApiModelProperty(value = "联系人")
private String contact;
@ApiModelProperty(value = "联系方式")
private String contactDetails;
@JsonFormat(pattern = CommonConstant.DATE)
@ApiModelProperty(value = "并网时间")
private Date gridTime;
@JsonFormat(pattern = CommonConstant.DATE)
@ApiModelProperty(value = "创建时间")
private Date createTime;
@JsonFormat(pattern = CommonConstant.DATE)
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "删除标识1 未删除 0 已删除")
private Integer deleted;
@ApiModelProperty(value = "是否故障 0:否 1:是", hidden = true)
private Integer fault;
@ApiModelProperty(value = "启用标识 1启用 0未启用")
private Integer isEnable;
@ApiModelProperty(value = "舱体数量")
private Integer cabinNum;
@ApiModelProperty(value = "地区")
private String district;
@ApiModelProperty(value = "adCode码查天气会用到")
private String adCode;
@ApiModelProperty(value = "日常运维统计 1统计 0不统计")
private Integer isDailyCount;
@ApiModelProperty(value = "站首页拓扑类型")
private Integer topologyType;
@ApiModelProperty(value = "柜子类型")
private Integer cupboardType;
@ApiModelProperty(value = "方案版本号")
private String planVersion;
@ApiModelProperty(value = "短信发送时间",hidden = true)
@JsonFormat(pattern = CommonConstant.DATE)
private Date sendSmsTime;
@ApiModelProperty(value = "是否接入光伏0默认不接入 1接入")
private Integer inverterFlag;
@ApiModelProperty(value = "国家")
private String nation;
@ApiModelProperty(value = "")
private String province;
@ApiModelProperty(value = "")
private String city;
@ApiModelProperty(value = "用电分类 1:单一电价 2两部制电价")
private Integer electricityType;
@ApiModelProperty(value = "用户类型:一般工业用户")
private Integer customerType;
@ApiModelProperty(value = "电压等级【字典表】单一制1-5 两部制6-10")
private Integer voltageLevel;
@ApiModelProperty(value = "卡号")
private String iccId;
//发货批次号
@ApiModelProperty(value = "发货批次号")
String batchNumber;
}

View File

@ -0,0 +1,49 @@
package com.ho.business.entity;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ExcelIgnoreUnannotated
public class StationNotepad {
@ApiModelProperty(value = "id")
private Integer id;
@ExcelProperty(value = "信息名称" ,index = 0)
@ColumnWidth(50)
@ApiModelProperty(value = "信息标题")
private String title;
@ColumnWidth(100)
@ExcelProperty(value = "内容" ,index = 1)
@ApiModelProperty(value = "信息内容")
private String content;
@ApiModelProperty(value = "创建人")
private String createUser;
@ColumnWidth(30)
@ExcelProperty(value = "记录人" ,index = 3)
@ApiModelProperty(value = "创建人名称")
private String createUserName;
@ColumnWidth(30)
@ExcelProperty(value = "记录时间" ,index = 2)
@ApiModelProperty(value = "创建时间")
private String createTime;
@ApiModelProperty(value = "更新人")
private String updateUser;
@ApiModelProperty(value = "更新人名称")
private String updateUserName;
@ApiModelProperty(value = "更新时间")
private String updateTime;
@ApiModelProperty(value = "所属电站")
private Integer station;
}

Some files were not shown because too many files have changed in this diff Show More