Compare commits
36 Commits
prod
...
0c4b8b8ca9
| Author | SHA1 | Date | |
|---|---|---|---|
| 0c4b8b8ca9 | |||
| 7d641db749 | |||
| 605de0a6cd | |||
| 8d5f20d2e6 | |||
| 9d7c810fb5 | |||
| 9dea50103f | |||
| 93a15e497f | |||
| 8439ec5bdf | |||
| d8b1396b6f | |||
| 1295adb885 | |||
| a0841d75d7 | |||
| f417e661ce | |||
| 69a117105b | |||
| 0a56b84650 | |||
| d1b767593f | |||
| bbcea1bbee | |||
| c50a953d4a | |||
| c626e3256f | |||
| 41f0b72253 | |||
| 219caadd45 | |||
| 861155b2e5 | |||
| 6c23c4a9c4 | |||
| f870d4f41f | |||
| 6fb36de2c3 | |||
| 66e49673df | |||
| 83eff7d1ee | |||
| e6b6ccd804 | |||
| 4319f97a5c | |||
| c04c764ade | |||
| b0751a55cd | |||
| 046e4b2b43 | |||
| c12b165816 | |||
| 2a7c3d42c0 | |||
| 0a94f51e0d | |||
| af8f225384 | |||
| e1cfe7f911 |
@ -10,7 +10,7 @@ spring:
|
||||
username: nacos
|
||||
password: nacos
|
||||
discovery:
|
||||
server-addr: 192.168.0.142:8848
|
||||
server-addr: 172.31.9.103:8848
|
||||
#路由配置
|
||||
gateway:
|
||||
routes:
|
||||
|
||||
@ -71,6 +71,8 @@ public interface DeviceTypeConstant {
|
||||
//英博DC/DCMPPT
|
||||
String DCDC = "dcdc";
|
||||
|
||||
String MPPT ="mppt";
|
||||
|
||||
//柴油发电机_济宁微山湖
|
||||
String CF = "cf";
|
||||
|
||||
@ -371,6 +373,8 @@ public interface DeviceTypeConstant {
|
||||
String BMS_MIN_VOL = "bmsMinVol";
|
||||
}
|
||||
|
||||
//mppt 日发起始
|
||||
String PV_DAILY_CHARGE_START = "pvDailyReleaseStart";
|
||||
//日充起始
|
||||
String DAILY_CHARGE_START = "dailyChargeStart";
|
||||
//日放起始
|
||||
|
||||
@ -21,6 +21,21 @@ public class CurveConfig implements Serializable {
|
||||
@ApiModelProperty(value = "曲线名称(英文)")
|
||||
private String curveNameEn;
|
||||
|
||||
@ApiModelProperty(value = "曲线名称(法语)")
|
||||
private String curveNameFra;
|
||||
|
||||
@ApiModelProperty(value = "曲线名称(西班牙语)")
|
||||
private String curveNameSpa;
|
||||
|
||||
@ApiModelProperty(value = "曲线名称(德语)")
|
||||
private String curveNameDe;
|
||||
|
||||
@ApiModelProperty(value = "曲线名称(波兰语)")
|
||||
private String curveNamePl;
|
||||
|
||||
@ApiModelProperty(value = "曲线名称(阿拉伯语)")
|
||||
private String curveNameAra;
|
||||
|
||||
@ApiModelProperty(value = "曲线类型")
|
||||
private Integer curveType;
|
||||
|
||||
|
||||
@ -55,6 +55,26 @@ public class Device implements Serializable {
|
||||
@ApiModelProperty(value = "设备名字")
|
||||
private String deviceName;
|
||||
|
||||
/**
|
||||
* 设备名字-英文
|
||||
*/
|
||||
@ApiModelProperty(value = "设备名字-英文")
|
||||
private String deviceNameEn;
|
||||
|
||||
@ApiModelProperty(value = "设备名字-法语")
|
||||
private String deviceNameFra;
|
||||
|
||||
@ApiModelProperty(value = "设备名字-西班牙语")
|
||||
private String deviceNameSpa;
|
||||
|
||||
@ApiModelProperty(value = "设备名字-德语")
|
||||
private String deviceNameDe;
|
||||
|
||||
@ApiModelProperty(value = "设备名字-波兰语")
|
||||
private String deviceNamePl;
|
||||
|
||||
@ApiModelProperty(value = "设备名字-阿拉伯语")
|
||||
private String deviceNameAra;
|
||||
|
||||
@ApiModelProperty(value = "设备类型")
|
||||
private String deviceType;
|
||||
|
||||
@ -55,6 +55,18 @@ public class DeviceCall implements Serializable {
|
||||
@ApiModelProperty(value = "设备名字")
|
||||
private String deviceName;
|
||||
|
||||
@ApiModelProperty(value = "设备名字-英文")
|
||||
private String deviceNameEn;
|
||||
@ApiModelProperty(value = "设备名字-法语")
|
||||
private String deviceNameFra;
|
||||
@ApiModelProperty(value = "设备名字-西班牙语")
|
||||
private String deviceNameSpa;
|
||||
@ApiModelProperty(value = "设备名字-德语")
|
||||
private String deviceNameDe;
|
||||
@ApiModelProperty(value = "设备名字-波兰语")
|
||||
private String deviceNamePl;
|
||||
@ApiModelProperty(value = "设备名字-阿拉伯语")
|
||||
private String deviceNameAra;
|
||||
|
||||
@ApiModelProperty(value = "设备类型")
|
||||
private String deviceType;
|
||||
|
||||
@ -50,8 +50,18 @@ public class DeviceTypeCol implements Serializable {
|
||||
/**
|
||||
* 字段英文名
|
||||
*/
|
||||
@ApiModelProperty(value = "字段英文名")
|
||||
@ApiModelProperty(value = "字段(英语)")
|
||||
private String colEn;
|
||||
@ApiModelProperty(value = "字段(法语)")
|
||||
private String colFra;
|
||||
@ApiModelProperty(value = "字段(西班牙语)")
|
||||
private String colSpa;
|
||||
@ApiModelProperty(value = "字段(德语)")
|
||||
private String colDe;
|
||||
@ApiModelProperty(value = "字段(波兰语)")
|
||||
private String colPl;
|
||||
@ApiModelProperty(value = "字段(阿拉伯语)")
|
||||
private String colAra;
|
||||
|
||||
/**
|
||||
* INT BIGDECIMAL 等
|
||||
|
||||
@ -53,4 +53,19 @@ public class DynamicConfig implements Serializable {
|
||||
|
||||
@ApiModelProperty(value = "指标名称(英文)")
|
||||
private String colNameEn;
|
||||
|
||||
@ApiModelProperty(value = "指标名称(法语)")
|
||||
private String colNameFra;
|
||||
|
||||
@ApiModelProperty(value = "指标名称(西班牙语)")
|
||||
private String colNameSpa;
|
||||
|
||||
@ApiModelProperty(value = "指标名称(德语)")
|
||||
private String colNameDe;
|
||||
|
||||
@ApiModelProperty(value = "指标名称(波兰语)")
|
||||
private String colNamePl;
|
||||
|
||||
@ApiModelProperty(value = "指标名称(阿拉伯语)")
|
||||
private String colNameAra;
|
||||
}
|
||||
|
||||
@ -0,0 +1,101 @@
|
||||
package com.ho.business.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class EarningsCalculateMppt 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;
|
||||
}
|
||||
@ -42,6 +42,38 @@ public class HisCurveRelate implements Serializable {
|
||||
|
||||
private String modelName;
|
||||
|
||||
/**
|
||||
* 模板名称-英文
|
||||
*/
|
||||
|
||||
private String modelNameEn;
|
||||
/**
|
||||
* 模板名称-法语
|
||||
*/
|
||||
|
||||
private String modelNameFra;
|
||||
/**
|
||||
* 模板名称-西班牙语
|
||||
*/
|
||||
|
||||
private String modelNameSpa;
|
||||
/**
|
||||
* 模板名称-德语
|
||||
*/
|
||||
|
||||
private String modelNameDe;
|
||||
/**
|
||||
* 模板名称-波兰语
|
||||
*/
|
||||
|
||||
private String modelNamePl;
|
||||
/**
|
||||
* 模板名称-阿拉伯语
|
||||
*/
|
||||
|
||||
private String modelNameAra;
|
||||
|
||||
|
||||
/**
|
||||
* srcId
|
||||
*/
|
||||
@ -59,6 +91,31 @@ public class HisCurveRelate implements Serializable {
|
||||
*/
|
||||
private String colName;
|
||||
|
||||
/**
|
||||
* 字段名称-英文
|
||||
*/
|
||||
private String colNameEn;
|
||||
/**
|
||||
* 字段名称-法语
|
||||
*/
|
||||
private String colNameFra;
|
||||
/**
|
||||
* 字段名称-西班牙语
|
||||
*/
|
||||
private String colNameSpa;
|
||||
/**
|
||||
* 字段名称-德语
|
||||
*/
|
||||
private String colNameDe;
|
||||
/**
|
||||
* 字段名称-波兰语
|
||||
*/
|
||||
private String colNamePl;
|
||||
/**
|
||||
* 字段名称-阿拉伯语
|
||||
*/
|
||||
private String colNameAra;
|
||||
|
||||
/**
|
||||
* 设备类型
|
||||
*/
|
||||
@ -67,4 +124,7 @@ public class HisCurveRelate implements Serializable {
|
||||
|
||||
List<HisCurveRelate> list;
|
||||
|
||||
@ApiModelProperty(value = "多语言切换-查询字段")
|
||||
private String lang;
|
||||
|
||||
}
|
||||
@ -21,9 +21,35 @@ public class PlanCurveOperationRecordReq {
|
||||
@ApiModelProperty(value = "操作内容")
|
||||
String operateContent;
|
||||
|
||||
@ApiModelProperty(value = "操作内容-英文")
|
||||
String operateContentEn;
|
||||
@ApiModelProperty(value = "操作内容-法语")
|
||||
String operateContentFra;
|
||||
@ApiModelProperty(value = "操作内容-西班牙语")
|
||||
String operateContentSpa;
|
||||
@ApiModelProperty(value = "操作内容-德语")
|
||||
String operateContentDe;
|
||||
@ApiModelProperty(value = "操作内容-波兰语")
|
||||
String operateContentPl;
|
||||
@ApiModelProperty(value = "操作内容-阿拉伯语")
|
||||
String operateContentAra;
|
||||
|
||||
@ApiModelProperty(value = "操作结果")
|
||||
String operateResult;
|
||||
|
||||
@ApiModelProperty(value = "操作结果-英文")
|
||||
String operateResultEn;
|
||||
@ApiModelProperty(value = "操作结果-法语")
|
||||
String operateResultFra;
|
||||
@ApiModelProperty(value = "操作结果-西班牙语")
|
||||
String operateResultSpa;
|
||||
@ApiModelProperty(value = "操作结果-德语")
|
||||
String operateResultDe;
|
||||
@ApiModelProperty(value = "操作结果-波兰语")
|
||||
String operateResultPl;
|
||||
@ApiModelProperty(value = "操作结果-阿拉伯语")
|
||||
String operateResultAra;
|
||||
|
||||
@ApiModelProperty(value = "生效时间")
|
||||
String effectiveTime;
|
||||
|
||||
|
||||
@ -26,6 +26,19 @@ public class PlanningCurveTemplate {
|
||||
/* 模板名称 */
|
||||
private String templateName;
|
||||
|
||||
/* 模板名称-英文 */
|
||||
private String templateNameEn;
|
||||
/* 模板名称-法语 */
|
||||
private String templateNameFra;
|
||||
/* 模板名称-西班牙语 */
|
||||
private String templateNameSpa;
|
||||
/* 模板名称-德语 */
|
||||
private String templateNameDe;
|
||||
/* 模板名称-波兰语 */
|
||||
private String templateNamePl;
|
||||
/* 模板名称-阿拉伯语 */
|
||||
private String templateNameAra;
|
||||
|
||||
/* 电价模板id */
|
||||
//private Integer elecTemplateId;
|
||||
|
||||
@ -69,4 +82,7 @@ public class PlanningCurveTemplate {
|
||||
|
||||
/* 计划曲线列表数据 */
|
||||
private List<PlanningCurve> planningCurves;
|
||||
|
||||
@ApiModelProperty(value = "多语言切换-查询字段")
|
||||
private String lang;
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.ho.business.entity;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
@ -22,4 +23,6 @@ public class PlanningIssueDevice {
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
|
||||
private Date operationDate;
|
||||
|
||||
@ApiModelProperty(value = "多语言切换-查询字段")
|
||||
private String lang;
|
||||
}
|
||||
|
||||
@ -21,10 +21,33 @@ public class PointConfig implements Serializable {
|
||||
|
||||
@ApiModelProperty(value = "点位名称(英文)")
|
||||
private String nameEn;
|
||||
@ApiModelProperty(value = "点位名称(法语)")
|
||||
private String nameFra;
|
||||
@ApiModelProperty(value = "点位名称(西班牙语)")
|
||||
private String nameSpa;
|
||||
@ApiModelProperty(value = "点位名称(德语)")
|
||||
private String nameDe;
|
||||
@ApiModelProperty(value = "点位名称(波兰语)")
|
||||
private String namePl;
|
||||
@ApiModelProperty(value = "点位名称(阿拉伯语)")
|
||||
private String nameAra;
|
||||
|
||||
@ApiModelProperty(value = "默认值")
|
||||
private String defaultValue;
|
||||
|
||||
@ApiModelProperty(value = "默认值-英文")
|
||||
private String defaultValueEn;
|
||||
@ApiModelProperty(value = "默认值-法语")
|
||||
private String defaultValueFra;
|
||||
@ApiModelProperty(value = "默认值-西班牙语")
|
||||
private String defaultValueSpa;
|
||||
@ApiModelProperty(value = "默认值-德语")
|
||||
private String defaultValueDe;
|
||||
@ApiModelProperty(value = "默认值-波兰语")
|
||||
private String defaultValuePl;
|
||||
@ApiModelProperty(value = "默认值-阿拉伯语")
|
||||
private String defaultValueAra;
|
||||
|
||||
@ApiModelProperty(value = "配置点类型")
|
||||
private Integer pointType;
|
||||
|
||||
|
||||
@ -32,4 +32,14 @@ public class PointPolysemyConfig implements Serializable {
|
||||
|
||||
@ApiModelProperty(value = "值对应的名称(英文)")
|
||||
private String nameEn;
|
||||
@ApiModelProperty(value = "值对应的名称(法语)")
|
||||
private String nameFra;
|
||||
@ApiModelProperty(value = "值对应的名称(西班牙语)")
|
||||
private String nameSpa;
|
||||
@ApiModelProperty(value = "值对应的名称(德语)")
|
||||
private String nameDe;
|
||||
@ApiModelProperty(value = "值对应的名称(波兰语)")
|
||||
private String namePl;
|
||||
@ApiModelProperty(value = "值对应的名称(阿拉伯语)")
|
||||
private String nameAra;
|
||||
}
|
||||
|
||||
@ -33,6 +33,16 @@ public class Station implements Serializable {
|
||||
|
||||
@ApiModelProperty(value = "电站名称(英文)")
|
||||
private String nameEn;
|
||||
@ApiModelProperty(value = "电站名称(法语)")
|
||||
private String nameFra;
|
||||
@ApiModelProperty(value = "电站名称(西班牙语)")
|
||||
private String nameSpa;
|
||||
@ApiModelProperty(value = "电站名称(德语)")
|
||||
private String nameDe;
|
||||
@ApiModelProperty(value = "电站名称(波兰语)")
|
||||
private String namePl;
|
||||
@ApiModelProperty(value = "电站名称(阿拉伯语)")
|
||||
private String nameAra;
|
||||
|
||||
@ApiModelProperty(value = "地址")
|
||||
private String address;
|
||||
@ -52,6 +62,9 @@ public class Station implements Serializable {
|
||||
@ApiModelProperty(value = "额定功率")
|
||||
private BigDecimal ratePower;
|
||||
|
||||
@ApiModelProperty(value = "额定功率(光伏mppt)")
|
||||
private BigDecimal pvPower;
|
||||
|
||||
@ApiModelProperty(value = "sn编号列表")
|
||||
private List<String> snList;
|
||||
|
||||
@ -118,9 +131,34 @@ public class Station implements Serializable {
|
||||
|
||||
@ApiModelProperty(value = "国家")
|
||||
private String nation;
|
||||
@ApiModelProperty(value = "国家-英语")
|
||||
private String nationEn;
|
||||
@ApiModelProperty(value = "国家-法语")
|
||||
private String nationFra;
|
||||
@ApiModelProperty(value = "国家-西班牙语")
|
||||
private String nationSpa;
|
||||
@ApiModelProperty(value = "国家-德语")
|
||||
private String nationDe;
|
||||
@ApiModelProperty(value = "国家-波兰语")
|
||||
private String nationPl;
|
||||
@ApiModelProperty(value = "国家-阿拉伯语")
|
||||
private String nationAra;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "省")
|
||||
private String province;
|
||||
@ApiModelProperty(value = "省-英语")
|
||||
private String provinceEn;
|
||||
@ApiModelProperty(value = "省-法语")
|
||||
private String provinceFra;
|
||||
@ApiModelProperty(value = "省-西班牙语")
|
||||
private String provinceSpa;
|
||||
@ApiModelProperty(value = "省-德语")
|
||||
private String provinceDe;
|
||||
@ApiModelProperty(value = "省-波兰")
|
||||
private String provincePl;
|
||||
@ApiModelProperty(value = "省-阿拉伯语")
|
||||
private String provinceAra;
|
||||
|
||||
@ApiModelProperty(value = "市")
|
||||
private String city;
|
||||
|
||||
@ -0,0 +1,48 @@
|
||||
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 StationRemoteControl implements Serializable {
|
||||
|
||||
@ApiModelProperty(value = "id")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "电站id")
|
||||
private Integer stationId;
|
||||
|
||||
@ApiModelProperty(value = "电站名称")
|
||||
private String stationName;
|
||||
|
||||
@ApiModelProperty(value = "远程访问ip、也可以是域名")
|
||||
private String ip;
|
||||
|
||||
@ApiModelProperty(value = "端口")
|
||||
private String port;
|
||||
|
||||
@ApiModelProperty(value = "账号")
|
||||
private String userName;
|
||||
|
||||
@ApiModelProperty(value = "密码")
|
||||
private String password;
|
||||
|
||||
@ApiModelProperty(value = "内网ip")
|
||||
private String intranetIp;
|
||||
|
||||
@ApiModelProperty(value = "ems页面类型")
|
||||
private String type;
|
||||
|
||||
@JsonFormat(pattern = CommonConstant.DATE)
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@JsonFormat(pattern = CommonConstant.DATE)
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private Date updateTime;
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
package com.ho.business.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
/**
|
||||
* @author kerwin
|
||||
*/
|
||||
@Data
|
||||
public class TranslateName implements Serializable {
|
||||
|
||||
@ApiModelProperty(value = "id")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "名称(中文)")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "名称(英文)")
|
||||
private String nameEn;
|
||||
|
||||
@ApiModelProperty(value = "名称(法语)")
|
||||
private String nameFra;
|
||||
|
||||
@ApiModelProperty(value = "名称(西班牙语)")
|
||||
private String nameSpa;
|
||||
|
||||
@ApiModelProperty(value = "名称(德语)")
|
||||
private String nameDe;
|
||||
|
||||
@ApiModelProperty(value = "名称(波兰语)")
|
||||
private String namePl;
|
||||
|
||||
@ApiModelProperty(value = "名称(阿拉伯语)")
|
||||
private String nameAra;
|
||||
|
||||
}
|
||||
@ -1,22 +0,0 @@
|
||||
package com.ho.business.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @TableName translate_nation
|
||||
*/
|
||||
@Data
|
||||
public class TranslateNation implements Serializable {
|
||||
|
||||
@ApiModelProperty(value = "id")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "名称(英文)")
|
||||
private String nameEn;
|
||||
}
|
||||
@ -41,5 +41,8 @@ public class VirtualDeviceCol implements Serializable {
|
||||
private String name;
|
||||
|
||||
//查询条件,非数据库中列
|
||||
List<String> typeList;;
|
||||
List<String> typeList;
|
||||
|
||||
@ApiModelProperty(value = "多语言切换-查询字段")
|
||||
private String lang;
|
||||
}
|
||||
@ -77,4 +77,7 @@ public class DeviceReqVO {
|
||||
|
||||
@ApiModelProperty(hidden = true,value = "获取设备类型不为空的第一个设备")
|
||||
private Integer needDeviceTypeNotNull;
|
||||
|
||||
@ApiModelProperty(value = "多语言切换-查询字段")
|
||||
private String lang;
|
||||
}
|
||||
|
||||
@ -32,4 +32,7 @@ public class DeviceTypeColReqVO {
|
||||
* 遥信遥测 1遥信 2遥测 3遥控 默认送2
|
||||
*/
|
||||
Integer sensType;
|
||||
|
||||
@ApiModelProperty(value = "多语言切换-查询字段")
|
||||
private String lang;
|
||||
}
|
||||
|
||||
@ -124,6 +124,11 @@ public class StationPutReqVO {
|
||||
|
||||
@ApiModelProperty(value = "是否接入光伏:0代表不接,1代表接入")
|
||||
private Integer inverterFlag;
|
||||
|
||||
@ApiModelProperty(value = "额定功率(mppt)")
|
||||
@Range(max = 999999999, message = "额定功率过大")
|
||||
BigDecimal pvPower;
|
||||
|
||||
//图片地址
|
||||
@ApiModelProperty(value = "图片地址")
|
||||
Integer logoPictureId;
|
||||
|
||||
@ -0,0 +1,16 @@
|
||||
package com.ho.business.vo.req;
|
||||
|
||||
import com.ho.business.entity.StationRemoteControl;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class StationRemoteControlPageVo extends StationRemoteControl {
|
||||
|
||||
@ApiModelProperty(value = "第几页")
|
||||
private Integer pageNum=1;
|
||||
|
||||
@ApiModelProperty(value = "分页数量")
|
||||
private Integer pageSize=10;
|
||||
|
||||
}
|
||||
@ -29,4 +29,8 @@ public class StationReq implements Serializable {
|
||||
|
||||
@ApiModelProperty(value = "设备类型",hidden = true)
|
||||
String deviceType;
|
||||
|
||||
@ApiModelProperty(value = "多语言切换-查询字段")
|
||||
String lang;
|
||||
|
||||
}
|
||||
|
||||
@ -102,6 +102,10 @@ public class StationReqVO {
|
||||
@ApiModelProperty(value = "是否接入光伏(0默认不接入 1接入)")
|
||||
private Integer inverterFlag;
|
||||
|
||||
@ApiModelProperty(value = "额定功率(mppt)")
|
||||
@Range(max = 999999999, message = "额定功率过大")
|
||||
BigDecimal pvPower;
|
||||
|
||||
@ApiModelProperty(value = "卡号")
|
||||
private String iccId;
|
||||
|
||||
@ -128,4 +132,7 @@ public class StationReqVO {
|
||||
@ApiModelProperty(value = "电站id集合",hidden = true)
|
||||
private List<Integer> ids;
|
||||
|
||||
@ApiModelProperty(value = "多语言切换-查询字段")
|
||||
private String lang;
|
||||
|
||||
}
|
||||
|
||||
@ -34,6 +34,7 @@ public class EarningsCalculateReq {
|
||||
@ApiModelProperty(value = "结束时间",hidden = true)
|
||||
String endTime;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "多语言切换-查询字段")
|
||||
private String lang;
|
||||
|
||||
}
|
||||
|
||||
@ -17,4 +17,7 @@ public class DeviceTreeReq {
|
||||
@ApiModelProperty(value = "src_id")
|
||||
Integer srcId;
|
||||
|
||||
@ApiModelProperty(value = "多语言切换-查询字段")
|
||||
private String lang;
|
||||
|
||||
}
|
||||
|
||||
@ -49,6 +49,21 @@ public class CurveConfigAdd {
|
||||
@ApiModelProperty(value = "曲线名称(英文)")
|
||||
private String curveNameEn;
|
||||
|
||||
@ApiModelProperty(value = "曲线名称(法语)")
|
||||
private String curveNameFra;
|
||||
|
||||
@ApiModelProperty(value = "曲线名称(西班牙语)")
|
||||
private String curveNameSpa;
|
||||
|
||||
@ApiModelProperty(value = "曲线名称(德语)")
|
||||
private String curveNameDe;
|
||||
|
||||
@ApiModelProperty(value = "曲线名称(波兰语)")
|
||||
private String curveNamePl;
|
||||
|
||||
@ApiModelProperty(value = "曲线名称(阿拉伯语)")
|
||||
private String curveNameAra;
|
||||
|
||||
@ApiModelProperty(value = "动态配置集合")
|
||||
private List<DynamicConfig> list;
|
||||
}
|
||||
|
||||
@ -35,4 +35,7 @@ public class DynamicConfigQuery {
|
||||
|
||||
@ApiModelProperty(value = "是否隐藏(0否,1是,默认0)",hidden = true)
|
||||
private Integer isHide;
|
||||
|
||||
@ApiModelProperty(value = "多语言切换-查询字段")
|
||||
private String lang;
|
||||
}
|
||||
|
||||
@ -21,6 +21,19 @@ public class PointConfigAdd {
|
||||
@ApiModelProperty(value = "默认值")
|
||||
private String defaultValue;
|
||||
|
||||
@ApiModelProperty(value = "默认值-英文")
|
||||
private String defaultValueEn;
|
||||
@ApiModelProperty(value = "默认值-法语")
|
||||
private String defaultValueFra;
|
||||
@ApiModelProperty(value = "默认值-西班牙语")
|
||||
private String defaultValueSpa;
|
||||
@ApiModelProperty(value = "默认值-德语")
|
||||
private String defaultValueDe;
|
||||
@ApiModelProperty(value = "默认值-波兰语")
|
||||
private String defaultValuePl;
|
||||
@ApiModelProperty(value = "默认值-阿拉伯语")
|
||||
private String defaultValueAra;
|
||||
|
||||
@ApiModelProperty(value = "配置点类型")
|
||||
private Integer pointType;
|
||||
|
||||
@ -53,6 +66,17 @@ public class PointConfigAdd {
|
||||
|
||||
@ApiModelProperty(value = "点位名称(英文)")
|
||||
private String nameEn;
|
||||
@ApiModelProperty(value = "点位名称(法语)")
|
||||
private String nameFra;
|
||||
@ApiModelProperty(value = "点位名称(西班牙语)")
|
||||
private String nameSpa;
|
||||
@ApiModelProperty(value = "点位名称(德语)")
|
||||
private String nameDe;
|
||||
@ApiModelProperty(value = "点位名称(波兰语)")
|
||||
private String namePl;
|
||||
@ApiModelProperty(value = "点位名称(阿拉伯语)")
|
||||
private String nameAra;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "点位集合")
|
||||
List<DynamicConfig> list;
|
||||
|
||||
@ -20,4 +20,7 @@ public class PointConfigQuery {
|
||||
|
||||
@ApiModelProperty(value = "设备id(用以区分属于哪个设备页)")
|
||||
private Integer deviceId;
|
||||
|
||||
@ApiModelProperty(value = "多语言切换-查询字段")
|
||||
private String lang;
|
||||
}
|
||||
|
||||
@ -28,4 +28,7 @@ public class ModelTypeQueryReq {
|
||||
|
||||
@ApiModelProperty(value = "用户id",hidden = true)
|
||||
private String userId;
|
||||
|
||||
@ApiModelProperty(value = "多语言切换-查询字段")
|
||||
private String lang;
|
||||
}
|
||||
|
||||
@ -31,4 +31,7 @@ public class PcsStationReq extends StationReq {
|
||||
|
||||
@ApiModelProperty(value = "分段类型",hidden = true)
|
||||
String stationName;
|
||||
|
||||
@ApiModelProperty(value = "多语言切换-查询字段")
|
||||
private String lang;
|
||||
}
|
||||
|
||||
@ -49,4 +49,7 @@ public class PointCurveReq {
|
||||
|
||||
@ApiModelProperty(value = "是否为策略总览页面(1:是;0:否)")
|
||||
Integer isStrategy;
|
||||
|
||||
@ApiModelProperty(value = "多语言切换-查询字段")
|
||||
private String lang;
|
||||
}
|
||||
|
||||
@ -42,5 +42,8 @@ public class PointReq {
|
||||
@ApiModelProperty(value = "值2的定义 大于1 小于2 等于3 大于等于4 小于等于5")
|
||||
private BigDecimal Value2;
|
||||
|
||||
@ApiModelProperty(value = "多语言切换-查询字段")
|
||||
private String lang;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -24,6 +24,9 @@ public class PointVo {
|
||||
|
||||
@ApiModelProperty(value = "遥信遥测 1遥信 2遥测 默认送2")
|
||||
private Integer sensType;
|
||||
|
||||
@ApiModelProperty(value = "多语言切换-查询字段")
|
||||
private String lang;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1,47 +0,0 @@
|
||||
package com.ho.business.vo.resp;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 主监控汇总信息
|
||||
*/
|
||||
@Data
|
||||
public class ShipStationRespVO {
|
||||
|
||||
@ApiModelProperty(value = "储能系统累计收益,单位(元)")
|
||||
private Float incomeSum;
|
||||
@ApiModelProperty(value = "储能系统昨⽇收益")
|
||||
private Float incomeYesterday;
|
||||
@ApiModelProperty(value = "储能系统累计充电量,单位(kWh)")
|
||||
private Float positivePowerSum;
|
||||
@ApiModelProperty(value = "储能系统累计放电量,单位(kWh)")
|
||||
private Float reversePowerSum;
|
||||
@ApiModelProperty(value = "储能系统今⽇充电量,单位(kWh)")
|
||||
private Float positivePowerToday;
|
||||
@ApiModelProperty(value = "储能系统今⽇放电量,单位(kWh)")
|
||||
private Float reversePowerToday;
|
||||
@ApiModelProperty(value = "储能系统实时功率,单位(kw)")
|
||||
private Float realTimePower;
|
||||
@ApiModelProperty(value = "关⼝表电压,单位(v)")
|
||||
private Float voltage;
|
||||
@ApiModelProperty(value = "储能系统剩余电量,单位(kwh)")
|
||||
private Float surplus;
|
||||
@ApiModelProperty(value = "储能系统剩余SOC")
|
||||
private Float soc;
|
||||
@ApiModelProperty(value = "储能系统装机容量,单位(kWh)")
|
||||
private Integer capacity;
|
||||
@ApiModelProperty(value = "储能系统投运时⻓,单位(天)")
|
||||
private Integer operationTime;
|
||||
@ApiModelProperty(value = "储能系统能量链数量,单位(条)")
|
||||
private Integer eLinkNumber;
|
||||
@ApiModelProperty(value = "储能系统在线能量链数量,单位(条)")
|
||||
private Integer eLinkOnline;
|
||||
@ApiModelProperty(value = "储能系统能量块数量,单位(个)")
|
||||
private Integer eBLockNumber;
|
||||
@ApiModelProperty(value = "储能系统在线能量块数量,单位(个)")
|
||||
private Integer eBlockOnline;
|
||||
@ApiModelProperty(value = "储能系统今⽇功率和soc曲线")
|
||||
private JSONArray historyDataList;
|
||||
}
|
||||
@ -88,4 +88,16 @@ public class EarningsCalculateResp {
|
||||
*/
|
||||
private Integer finish;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "月发电量(mppt)")
|
||||
BigDecimal monthReleaseElec;
|
||||
@ApiModelProperty(value = "月收益(mppt)")
|
||||
BigDecimal monthIncone;
|
||||
@ApiModelProperty(value = "累计发电量(mppt)")
|
||||
BigDecimal totalReleaseElec;
|
||||
@ApiModelProperty(value = "累计收益(mppt)")
|
||||
BigDecimal totalIncome;
|
||||
@ApiModelProperty(value = "额定功率(mppt)")
|
||||
BigDecimal pvPower;
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,66 @@
|
||||
package com.ho.business.vo.resp.elecPriceCurve;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author kerwin
|
||||
*/
|
||||
public class ElecPriceTemplateExcelEn {
|
||||
|
||||
|
||||
// @ExcelProperty(value = "模板编号")
|
||||
@ExcelIgnore
|
||||
private String templateNo;
|
||||
|
||||
@ExcelProperty(value = "Time period starts", index = 1)
|
||||
private String beginTime;
|
||||
|
||||
@ExcelProperty(value = "End of time period", index = 2)
|
||||
private String endTime;
|
||||
|
||||
@ExcelProperty(value = "Electricity type", index = 3)
|
||||
private String type;
|
||||
|
||||
@ExcelProperty(value = "price", index = 4)
|
||||
private String price;
|
||||
|
||||
@ExcelProperty(value = "Template Name", index = 0)
|
||||
private String templateName;
|
||||
|
||||
@ExcelProperty(value = "Enable or not", index = 5)
|
||||
private String isEnable;
|
||||
|
||||
|
||||
//@ExcelProperty(value = "电价曲线类型", index = 6)
|
||||
//private String elecType;
|
||||
|
||||
@ExcelProperty(value = "Modification time", index = 9)
|
||||
private String updateTime;
|
||||
|
||||
//电站id
|
||||
@ExcelIgnore
|
||||
private Integer stationId;
|
||||
//集团id
|
||||
@ExcelIgnore
|
||||
private Integer groupId;
|
||||
|
||||
@ApiModelProperty(value="模板有效期开始时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
|
||||
@ExcelProperty(value = "Template validity period start time", index = 6)
|
||||
private Date validityStartTime;
|
||||
|
||||
@ApiModelProperty(value="模板有效期结束时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
|
||||
@ExcelProperty(value = "End time of template validity period", index = 7)
|
||||
private Date validityEndTime;
|
||||
|
||||
@ApiModelProperty(value="电价折扣(%)")
|
||||
@ExcelProperty(value = "Electricity price discount (%)", index = 8)
|
||||
private Double discount;
|
||||
|
||||
}
|
||||
@ -36,4 +36,6 @@ public class AnnualChartValue {
|
||||
@ApiModelProperty(value = "容量")
|
||||
BigDecimal stationCapacity;
|
||||
|
||||
@ApiModelProperty(value = "mppt发电量")
|
||||
BigDecimal release;
|
||||
}
|
||||
|
||||
@ -31,8 +31,6 @@ public class AnnualOverviewResp {
|
||||
@ApiModelProperty(value = "年总充")
|
||||
BigDecimal yearCharge;
|
||||
|
||||
@ApiModelProperty(value = "今日收益")
|
||||
BigDecimal todayProfit;
|
||||
|
||||
@ApiModelProperty(value = "昨日收益")
|
||||
BigDecimal yestProfit;
|
||||
|
||||
@ -0,0 +1,37 @@
|
||||
package com.ho.business.vo.resp.iargeScreen;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class AnnualPvOverviewResp {
|
||||
|
||||
//装机容量
|
||||
@ApiModelProperty(value = "装机容量")
|
||||
BigDecimal capacity;
|
||||
|
||||
//电站总数
|
||||
@ApiModelProperty(value = "电站总数")
|
||||
Integer stationNumber;
|
||||
|
||||
@ApiModelProperty(value = "日发电量(mppt)")
|
||||
BigDecimal dailyReleaseElec;
|
||||
|
||||
@ApiModelProperty(value = "年发电量(mppt)")
|
||||
BigDecimal yearReleaseElec;
|
||||
|
||||
@ApiModelProperty(value = "累计发电量(mppt)")
|
||||
BigDecimal totalReleaseElec;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "日收益(mppt)")
|
||||
BigDecimal todayIncone;
|
||||
|
||||
@ApiModelProperty(value = "年收益(mppt)")
|
||||
BigDecimal yearIncone;
|
||||
|
||||
@ApiModelProperty(value = "累计收益(mppt)")
|
||||
BigDecimal totalIncome;
|
||||
}
|
||||
@ -52,4 +52,7 @@ public class Subdata {
|
||||
//年总充()
|
||||
@ApiModelProperty(value = "总充")
|
||||
BigDecimal charge;
|
||||
|
||||
@ApiModelProperty(value = "mppt总发电量")
|
||||
BigDecimal release;
|
||||
}
|
||||
|
||||
@ -0,0 +1,20 @@
|
||||
package com.ho.business.vo.resp.mppt;
|
||||
|
||||
import com.ho.business.vo.DeviceTransfer;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class MpptActiveVo {
|
||||
|
||||
@ApiModelProperty(value = "mppt有功功率")
|
||||
BigDecimal pvActivePower;
|
||||
|
||||
@ApiModelProperty(value = "mppt总发电量")
|
||||
BigDecimal totalRelease;
|
||||
|
||||
@ApiModelProperty(value = "mppt日发电量")
|
||||
BigDecimal dailyReleaseElec;
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
package com.ho.business.vo.resp.mppt;
|
||||
|
||||
import com.ho.business.vo.DeviceTransfer;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class MpptVo {
|
||||
|
||||
@ApiModelProperty(value = "mppt有功功率")
|
||||
DeviceTransfer pvActivePower;
|
||||
@ApiModelProperty(value = "mppt总发电量")
|
||||
DeviceTransfer totalRelease;
|
||||
@ApiModelProperty(value = "mppt 日发电量-起始")
|
||||
DeviceTransfer pvDailyReleaseStart;
|
||||
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
package com.ho.business.vo.resp.pcsStation;
|
||||
|
||||
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 阿拉伯语
|
||||
*/
|
||||
@Data
|
||||
public class EarningsCalculateDataAra {
|
||||
|
||||
@ApiModelProperty(value = "日期/名称")
|
||||
@Excel(name = "التاريخ/الاسم")
|
||||
String date;
|
||||
|
||||
@ApiModelProperty(value = "充电量-尖(kWh)")
|
||||
@Excel(name = "كمية الشحن-نصيحة(kWh)")
|
||||
BigDecimal chargeTip;
|
||||
|
||||
@ApiModelProperty(value = "充电量-峰(kWh)")
|
||||
@Excel(name = "كمية الشحن-قمة(kWh)")
|
||||
BigDecimal chargePeak;
|
||||
|
||||
@ApiModelProperty(value = "充电量-平(kWh)")
|
||||
@Excel(name = "كمية الشحن-مسطح(kWh)")
|
||||
BigDecimal chargeFlat;
|
||||
|
||||
@ApiModelProperty(value = "充电量-谷(kWh)")
|
||||
@Excel(name = "كمية الشحن-وادي(kWh)")
|
||||
BigDecimal chargeValley;
|
||||
|
||||
@ApiModelProperty(value = "充电量-深谷(kWh)")
|
||||
@Excel(name = "كمية الشحن-وادي عميق(kWh)")
|
||||
BigDecimal chargeDeepValley;
|
||||
|
||||
@ApiModelProperty(value = "充电量-总(kWh)")
|
||||
@Excel(name = "كمية الشحن-المجموع(kWh)")
|
||||
BigDecimal chargeElec;
|
||||
|
||||
@ApiModelProperty(value = "放电量-尖(kWh)")
|
||||
@Excel(name = "التفريغ-نصيحة(kWh)")
|
||||
BigDecimal dischargeTip;
|
||||
|
||||
@ApiModelProperty(value = "放电量-峰(kWh)")
|
||||
@Excel(name = "التفريغ-قمة(kWh)")
|
||||
BigDecimal dischargePeak;
|
||||
|
||||
@ApiModelProperty(value = "放电量-平(kWh)")
|
||||
@Excel(name = "التفريغ-مسطح(kWh)")
|
||||
BigDecimal dischargeFlat;
|
||||
|
||||
@ApiModelProperty(value = "放电量-谷(kWh)")
|
||||
@Excel(name = "التفريغ-وادي(kWh)")
|
||||
BigDecimal dischargeValley;
|
||||
|
||||
@ApiModelProperty(value = "放电量-深谷(kWh)")
|
||||
@Excel(name = "التفريغ-وادي عميق(kWh)")
|
||||
BigDecimal dischargeDeepValley;
|
||||
|
||||
@ApiModelProperty(value = "放电量-总(kWh)")
|
||||
@Excel(name = "التفريغ-المجموع(kWh)")
|
||||
BigDecimal dischargeElec;
|
||||
|
||||
@ApiModelProperty(value = "电站名称")
|
||||
@ExcelIgnore
|
||||
String name;
|
||||
|
||||
@ApiModelProperty(value = "电站id")
|
||||
@ExcelIgnore
|
||||
Integer stationId;
|
||||
}
|
||||
@ -0,0 +1,76 @@
|
||||
package com.ho.business.vo.resp.pcsStation;
|
||||
|
||||
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 德语
|
||||
*/
|
||||
@Data
|
||||
public class EarningsCalculateDataDe {
|
||||
|
||||
@ApiModelProperty(value = "日期/名称")
|
||||
@Excel(name = "Datum/Name")
|
||||
String date;
|
||||
|
||||
@ApiModelProperty(value = "充电量-尖(kWh)")
|
||||
@Excel(name = "Ladefähigkeit-Spitze (kWh)")
|
||||
BigDecimal chargeTip;
|
||||
|
||||
@ApiModelProperty(value = "充电量-峰(kWh)")
|
||||
@Excel(name = "Ladefähigkeit-Gipfel(kWh)")
|
||||
BigDecimal chargePeak;
|
||||
|
||||
@ApiModelProperty(value = "充电量-平(kWh)")
|
||||
@Excel(name = "Ladefähigkeit-Flat(kWh)")
|
||||
BigDecimal chargeFlat;
|
||||
|
||||
@ApiModelProperty(value = "充电量-谷(kWh)")
|
||||
@Excel(name = "Ladefähigkeit-Valley(kWh)")
|
||||
BigDecimal chargeValley;
|
||||
|
||||
@ApiModelProperty(value = "充电量-深谷(kWh)")
|
||||
@Excel(name = "Ladefähigkeit-Deep Valley(kWh)")
|
||||
BigDecimal chargeDeepValley;
|
||||
|
||||
@ApiModelProperty(value = "充电量-总(kWh)")
|
||||
@Excel(name = "Ladefähigkeit-Total(kWh)")
|
||||
BigDecimal chargeElec;
|
||||
|
||||
@ApiModelProperty(value = "放电量-尖(kWh)")
|
||||
@Excel(name = "Entladung-Spitze(kWh)")
|
||||
BigDecimal dischargeTip;
|
||||
|
||||
@ApiModelProperty(value = "放电量-峰(kWh)")
|
||||
@Excel(name = "Entladung-Gipfel(kWh)")
|
||||
BigDecimal dischargePeak;
|
||||
|
||||
@ApiModelProperty(value = "放电量-平(kWh)")
|
||||
@Excel(name = "Entladung-Flat(kWh)")
|
||||
BigDecimal dischargeFlat;
|
||||
|
||||
@ApiModelProperty(value = "放电量-谷(kWh)")
|
||||
@Excel(name = "Entladung-Valley(kWh)")
|
||||
BigDecimal dischargeValley;
|
||||
|
||||
@ApiModelProperty(value = "放电量-深谷(kWh)")
|
||||
@Excel(name = "Entladung-Deep Valley(kWh)")
|
||||
BigDecimal dischargeDeepValley;
|
||||
|
||||
@ApiModelProperty(value = "放电量-总(kWh)")
|
||||
@Excel(name = "Entladung-Total(kWh)")
|
||||
BigDecimal dischargeElec;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "电站名称")
|
||||
@ExcelIgnore
|
||||
String name;
|
||||
|
||||
@ApiModelProperty(value = "电站id")
|
||||
@ExcelIgnore
|
||||
Integer stationId;
|
||||
}
|
||||
@ -7,10 +7,14 @@ import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 英语
|
||||
*/
|
||||
@Data
|
||||
public class EarningsCalculateDataEn {
|
||||
|
||||
@ApiModelProperty(value = "日期/名称")
|
||||
@Excel(name = "date/name")
|
||||
@Excel(name = "Date/Name")
|
||||
String date;
|
||||
|
||||
@ApiModelProperty(value = "充电量-尖(kWh)")
|
||||
@ -61,7 +65,6 @@ public class EarningsCalculateDataEn {
|
||||
@Excel(name = "Discharge-Total(kWh)")
|
||||
BigDecimal dischargeElec;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "电站名称")
|
||||
@ExcelIgnore
|
||||
String name;
|
||||
|
||||
@ -0,0 +1,73 @@
|
||||
package com.ho.business.vo.resp.pcsStation;
|
||||
|
||||
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
/**
|
||||
* 法语
|
||||
*/
|
||||
@Data
|
||||
public class EarningsCalculateDataFra {
|
||||
@ApiModelProperty(value = "日期/名称")
|
||||
@Excel(name = "Date/Name")
|
||||
String date;
|
||||
|
||||
@ApiModelProperty(value = "充电量-尖(kWh)")
|
||||
@Excel(name = "Quantité de charge-Pointe (kWh)")
|
||||
BigDecimal chargeTip;
|
||||
|
||||
@ApiModelProperty(value = "充电量-峰(kWh)")
|
||||
@Excel(name = "Quantité de charge-crête (kWh)")
|
||||
BigDecimal chargePeak;
|
||||
|
||||
@ApiModelProperty(value = "充电量-平(kWh)")
|
||||
@Excel(name = "Quantité de charge-plate (kWh)")
|
||||
BigDecimal chargeFlat;
|
||||
|
||||
@ApiModelProperty(value = "充电量-谷(kWh)")
|
||||
@Excel(name = "Quantité de charge-Vallée (kWh)")
|
||||
BigDecimal chargeValley;
|
||||
|
||||
@ApiModelProperty(value = "充电量-深谷(kWh)")
|
||||
@Excel(name = "Quantité de charge-Vallée profonde (kWh)")
|
||||
BigDecimal chargeDeepValley;
|
||||
|
||||
@ApiModelProperty(value = "充电量-总(kWh)")
|
||||
@Excel(name = "Quantité de charge-total (kWh)")
|
||||
BigDecimal chargeElec;
|
||||
|
||||
@ApiModelProperty(value = "放电量-尖(kWh)")
|
||||
@Excel(name = "Quantité de décharge-Pointe (kWh)")
|
||||
BigDecimal dischargeTip;
|
||||
|
||||
@ApiModelProperty(value = "放电量-峰(kWh)")
|
||||
@Excel(name = "Quantité de décharge-crête (kWh)")
|
||||
BigDecimal dischargePeak;
|
||||
|
||||
@ApiModelProperty(value = "放电量-平(kWh)")
|
||||
@Excel(name = "Quantité de décharge-plate (kWh)")
|
||||
BigDecimal dischargeFlat;
|
||||
|
||||
@ApiModelProperty(value = "放电量-谷(kWh)")
|
||||
@Excel(name = "Quantité de décharge-Vallée (kWh)")
|
||||
BigDecimal dischargeValley;
|
||||
|
||||
@ApiModelProperty(value = "放电量-深谷(kWh)")
|
||||
@Excel(name = "Quantité de décharge-Vallée profonde (kWh)")
|
||||
BigDecimal dischargeDeepValley;
|
||||
|
||||
@ApiModelProperty(value = "放电量-总(kWh)")
|
||||
@Excel(name = "Quantité de décharge-total (kWh)")
|
||||
BigDecimal dischargeElec;
|
||||
|
||||
@ApiModelProperty(value = "电站名称")
|
||||
@ExcelIgnore
|
||||
String name;
|
||||
|
||||
@ApiModelProperty(value = "电站id")
|
||||
@ExcelIgnore
|
||||
Integer stationId;
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
package com.ho.business.vo.resp.pcsStation;
|
||||
|
||||
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 波兰语
|
||||
*/
|
||||
@Data
|
||||
public class EarningsCalculateDataPl {
|
||||
|
||||
@ApiModelProperty(value = "日期/名称")
|
||||
@Excel(name = "Data/Nazwa")
|
||||
String date;
|
||||
|
||||
@ApiModelProperty(value = "充电量-尖(kWh)")
|
||||
@Excel(name = "Poładowanie-koniec(kWh)")
|
||||
BigDecimal chargeTip;
|
||||
|
||||
@ApiModelProperty(value = "充电量-峰(kWh)")
|
||||
@Excel(name = "Poładowanie-szczyt(kWh)")
|
||||
BigDecimal chargePeak;
|
||||
|
||||
@ApiModelProperty(value = "充电量-平(kWh)")
|
||||
@Excel(name = "Poładowanie-stałe(kWh)")
|
||||
BigDecimal chargeFlat;
|
||||
|
||||
@ApiModelProperty(value = "充电量-谷(kWh)")
|
||||
@Excel(name = "Poładowanie-dolina(kWh)")
|
||||
BigDecimal chargeValley;
|
||||
|
||||
@ApiModelProperty(value = "充电量-深谷(kWh)")
|
||||
@Excel(name = "Poładowanie-Deep Valley(kWh)")
|
||||
BigDecimal chargeDeepValley;
|
||||
|
||||
@ApiModelProperty(value = "充电量-总(kWh)")
|
||||
@Excel(name = "Poładowanie-Całkowita(kWh)")
|
||||
BigDecimal chargeElec;
|
||||
|
||||
@ApiModelProperty(value = "放电量-尖(kWh)")
|
||||
@Excel(name = "Wyładowanie-koniec(kWh)")
|
||||
BigDecimal dischargeTip;
|
||||
|
||||
@ApiModelProperty(value = "放电量-峰(kWh)")
|
||||
@Excel(name = "Wyładowanie-szczyt(kWh)")
|
||||
BigDecimal dischargePeak;
|
||||
|
||||
@ApiModelProperty(value = "放电量-平(kWh)")
|
||||
@Excel(name = "Wyładowanie-stałe(kWh)")
|
||||
BigDecimal dischargeFlat;
|
||||
|
||||
@ApiModelProperty(value = "放电量-谷(kWh)")
|
||||
@Excel(name = "Wyładowanie-dolina(kWh)")
|
||||
BigDecimal dischargeValley;
|
||||
|
||||
@ApiModelProperty(value = "放电量-深谷(kWh)")
|
||||
@Excel(name = "Wyładowanie-Deep Valley(kWh)")
|
||||
BigDecimal dischargeDeepValley;
|
||||
|
||||
@ApiModelProperty(value = "放电量-总(kWh)")
|
||||
@Excel(name = "Wyładowanie-Całkowita(kWh)")
|
||||
BigDecimal dischargeElec;
|
||||
|
||||
@ApiModelProperty(value = "电站名称")
|
||||
@ExcelIgnore
|
||||
String name;
|
||||
|
||||
@ApiModelProperty(value = "电站id")
|
||||
@ExcelIgnore
|
||||
Integer stationId;
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
package com.ho.business.vo.resp.pcsStation;
|
||||
|
||||
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 西班牙语
|
||||
*/
|
||||
@Data
|
||||
public class EarningsCalculateDataSpa {
|
||||
|
||||
@ApiModelProperty(value = "日期/名称")
|
||||
@Excel(name = "Fecha/Nombre")
|
||||
String date;
|
||||
|
||||
@ApiModelProperty(value = "充电量-尖(kWh)")
|
||||
@Excel(name = "Capacidad de carga-Punta (kwh)")
|
||||
BigDecimal chargeTip;
|
||||
|
||||
@ApiModelProperty(value = "充电量-峰(kWh)")
|
||||
@Excel(name = "Capacidad de carga-pico (kwh)")
|
||||
BigDecimal chargePeak;
|
||||
|
||||
@ApiModelProperty(value = "充电量-平(kWh)")
|
||||
@Excel(name = "Capacidad de carga-plana (kwh)")
|
||||
BigDecimal chargeFlat;
|
||||
|
||||
@ApiModelProperty(value = "充电量-谷(kWh)")
|
||||
@Excel(name = "Capacidad de carga-Valle (kwh)")
|
||||
BigDecimal chargeValley;
|
||||
|
||||
@ApiModelProperty(value = "充电量-深谷(kWh)")
|
||||
@Excel(name = "Capacidad de carga-Valle profundo (kwh)")
|
||||
BigDecimal chargeDeepValley;
|
||||
|
||||
@ApiModelProperty(value = "充电量-总(kWh)")
|
||||
@Excel(name = "Capacidad de carga-total (kwh)")
|
||||
BigDecimal chargeElec;
|
||||
|
||||
@ApiModelProperty(value = "放电量-尖(kWh)")
|
||||
@Excel(name = "Descarga-Punta (kwh)")
|
||||
BigDecimal dischargeTip;
|
||||
|
||||
@ApiModelProperty(value = "放电量-峰(kWh)")
|
||||
@Excel(name = "Descarga-pico (kwh)")
|
||||
BigDecimal dischargePeak;
|
||||
|
||||
@ApiModelProperty(value = "放电量-平(kWh)")
|
||||
@Excel(name = "Descarga-plano (kwh)")
|
||||
BigDecimal dischargeFlat;
|
||||
|
||||
@ApiModelProperty(value = "放电量-谷(kWh)")
|
||||
@Excel(name = "Descarga-Valle (kwh)")
|
||||
BigDecimal dischargeValley;
|
||||
|
||||
@ApiModelProperty(value = "放电量-深谷(kWh)")
|
||||
@Excel(name = "Descarga-Valle profundo (kwh)")
|
||||
BigDecimal dischargeDeepValley;
|
||||
|
||||
@ApiModelProperty(value = "放电量-总(kWh)")
|
||||
@Excel(name = "Descarga-total (kwh)")
|
||||
BigDecimal dischargeElec;
|
||||
|
||||
@ApiModelProperty(value = "电站名称")
|
||||
@ExcelIgnore
|
||||
String name;
|
||||
|
||||
@ApiModelProperty(value = "电站id")
|
||||
@ExcelIgnore
|
||||
Integer stationId;
|
||||
}
|
||||
@ -0,0 +1,42 @@
|
||||
package com.ho.business.vo.resp.pcsStation;
|
||||
|
||||
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 阿拉伯语
|
||||
*/
|
||||
@Data
|
||||
public class PcsElecDataAra {
|
||||
|
||||
@ApiModelProperty(value = "日期")
|
||||
@Excel(name = "اسم/تاريخ")
|
||||
String date;
|
||||
|
||||
@ApiModelProperty(value = "充电量(kWh)")
|
||||
@Excel(name = "(kWh)كمية الشحن")
|
||||
BigDecimal chargeElec;
|
||||
|
||||
@ApiModelProperty(value = "纵坐标 光伏充电量")
|
||||
BigDecimal PvChargeElec;
|
||||
|
||||
@ApiModelProperty(value = "放电量(kWh)")
|
||||
@Excel(name = "التفريغ الكهربائي(kWh)")
|
||||
BigDecimal dischargeElec;
|
||||
|
||||
@ApiModelProperty(value = "纵坐标 收益")
|
||||
@ExcelIgnore
|
||||
BigDecimal income;
|
||||
|
||||
@ApiModelProperty(value = "电站名称")
|
||||
@ExcelIgnore
|
||||
String name;
|
||||
|
||||
@ApiModelProperty(value = "电站id")
|
||||
@ExcelIgnore
|
||||
Integer stationId;
|
||||
}
|
||||
@ -0,0 +1,42 @@
|
||||
package com.ho.business.vo.resp.pcsStation;
|
||||
|
||||
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 德语
|
||||
*/
|
||||
@Data
|
||||
public class PcsElecDataDe {
|
||||
|
||||
@ApiModelProperty(value = "日期")
|
||||
@Excel(name = "Datum/Name")
|
||||
String date;
|
||||
|
||||
@ApiModelProperty(value = "充电量(kWh)")
|
||||
@Excel(name = "Ladefähigkeit (kWh)")
|
||||
BigDecimal chargeElec;
|
||||
|
||||
@ApiModelProperty(value = "纵坐标 光伏充电量")
|
||||
BigDecimal PvChargeElec;
|
||||
|
||||
@ApiModelProperty(value = "放电量(kWh)")
|
||||
@Excel(name = "Entladung (kWh)")
|
||||
BigDecimal dischargeElec;
|
||||
|
||||
@ApiModelProperty(value = "纵坐标 收益")
|
||||
@ExcelIgnore
|
||||
BigDecimal income;
|
||||
|
||||
@ApiModelProperty(value = "电站名称")
|
||||
@ExcelIgnore
|
||||
String name;
|
||||
|
||||
@ApiModelProperty(value = "电站id")
|
||||
@ExcelIgnore
|
||||
Integer stationId;
|
||||
}
|
||||
@ -8,19 +8,17 @@ import lombok.Data;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Description 上海一体柜首页 充放电量出参
|
||||
* Author yule
|
||||
* Date 2023/4/17 11:17
|
||||
* 英语
|
||||
*/
|
||||
@Data
|
||||
public class PcsElecDataEn {
|
||||
|
||||
@ApiModelProperty(value = "日期")
|
||||
@Excel(name = "date/name")
|
||||
@Excel(name = "Date/Name")
|
||||
String date;
|
||||
|
||||
@ApiModelProperty(value = "充电量(kWh)")
|
||||
@Excel(name = "Charge-Total(kWh)")
|
||||
@Excel(name = "Charging capacity(kWh)")
|
||||
BigDecimal chargeElec;
|
||||
|
||||
@ApiModelProperty(value = "纵坐标 光伏充电量")
|
||||
@ -28,7 +26,7 @@ public class PcsElecDataEn {
|
||||
|
||||
|
||||
@ApiModelProperty(value = "放电量(kWh)")
|
||||
@Excel(name = "Discharge-Total(kWh)")
|
||||
@Excel(name = "Discharge capacity(kWh)")
|
||||
BigDecimal dischargeElec;
|
||||
|
||||
@ApiModelProperty(value = "纵坐标 收益")
|
||||
|
||||
@ -0,0 +1,43 @@
|
||||
package com.ho.business.vo.resp.pcsStation;
|
||||
|
||||
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 法语
|
||||
*/
|
||||
@Data
|
||||
public class PcsElecDataFra {
|
||||
|
||||
@ApiModelProperty(value = "日期")
|
||||
@Excel(name = "Date/Nom")
|
||||
String date;
|
||||
|
||||
@ApiModelProperty(value = "充电量(kWh)")
|
||||
@Excel(name = "Quantité de charge(kWh)")
|
||||
BigDecimal chargeElec;
|
||||
|
||||
@ApiModelProperty(value = "纵坐标 光伏充电量")
|
||||
BigDecimal PvChargeElec;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "放电量(kWh)")
|
||||
@Excel(name = "Quantité de décharge(kWh)")
|
||||
BigDecimal dischargeElec;
|
||||
|
||||
@ApiModelProperty(value = "纵坐标 收益")
|
||||
@ExcelIgnore
|
||||
BigDecimal income;
|
||||
|
||||
@ApiModelProperty(value = "电站名称")
|
||||
@ExcelIgnore
|
||||
String name;
|
||||
|
||||
@ApiModelProperty(value = "电站id")
|
||||
@ExcelIgnore
|
||||
Integer stationId;
|
||||
}
|
||||
@ -0,0 +1,43 @@
|
||||
package com.ho.business.vo.resp.pcsStation;
|
||||
|
||||
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 波兰语
|
||||
*/
|
||||
@Data
|
||||
public class PcsElecDataPl {
|
||||
|
||||
@ApiModelProperty(value = "日期")
|
||||
@Excel(name = "Data/Nazwa")
|
||||
String date;
|
||||
|
||||
@ApiModelProperty(value = "充电量(kWh)")
|
||||
@Excel(name = "Pojemność ładowania (kWh)")
|
||||
BigDecimal chargeElec;
|
||||
|
||||
@ApiModelProperty(value = "纵坐标 光伏充电量")
|
||||
BigDecimal PvChargeElec;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "放电量(kWh)")
|
||||
@Excel(name = "Wyładowanie (kWh)")
|
||||
BigDecimal dischargeElec;
|
||||
|
||||
@ApiModelProperty(value = "纵坐标 收益")
|
||||
@ExcelIgnore
|
||||
BigDecimal income;
|
||||
|
||||
@ApiModelProperty(value = "电站名称")
|
||||
@ExcelIgnore
|
||||
String name;
|
||||
|
||||
@ApiModelProperty(value = "电站id")
|
||||
@ExcelIgnore
|
||||
Integer stationId;
|
||||
}
|
||||
@ -0,0 +1,43 @@
|
||||
package com.ho.business.vo.resp.pcsStation;
|
||||
|
||||
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 西班牙语
|
||||
*/
|
||||
@Data
|
||||
public class PcsElecDataSpa {
|
||||
|
||||
@ApiModelProperty(value = "日期")
|
||||
@Excel(name = "Fecha/Nombre")
|
||||
String date;
|
||||
|
||||
@ApiModelProperty(value = "充电量(kWh)")
|
||||
@Excel(name = "Capacidad de carga (kwh)")
|
||||
BigDecimal chargeElec;
|
||||
|
||||
@ApiModelProperty(value = "纵坐标 光伏充电量")
|
||||
BigDecimal PvChargeElec;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "放电量(kWh)")
|
||||
@Excel(name = "Descarga de energía (kwh)")
|
||||
BigDecimal dischargeElec;
|
||||
|
||||
@ApiModelProperty(value = "纵坐标 收益")
|
||||
@ExcelIgnore
|
||||
BigDecimal income;
|
||||
|
||||
@ApiModelProperty(value = "电站名称")
|
||||
@ExcelIgnore
|
||||
String name;
|
||||
|
||||
@ApiModelProperty(value = "电站id")
|
||||
@ExcelIgnore
|
||||
Integer stationId;
|
||||
}
|
||||
@ -43,4 +43,18 @@ public class PcsTotalData {
|
||||
@ApiModelProperty(value = "额定容量")
|
||||
BigDecimal rateCapacity;
|
||||
|
||||
//2025-11-13 储能加入mppt模块开发
|
||||
@ApiModelProperty(value = "当前功率(mppt)")
|
||||
BigDecimal pvCurrentPower;
|
||||
@ApiModelProperty(value = "日发电量(mppt)")
|
||||
BigDecimal dailyReleaseElec;
|
||||
@ApiModelProperty(value = "日收益(mppt)")
|
||||
BigDecimal todayIncone;
|
||||
@ApiModelProperty(value = "总发电量(mppt)")
|
||||
BigDecimal totalReleaseElec;
|
||||
@ApiModelProperty(value = "总收益(mppt)")
|
||||
BigDecimal totalIncome;
|
||||
@ApiModelProperty(value = "额定功率(mppt)")
|
||||
BigDecimal pvPower;
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,72 @@
|
||||
package com.ho.business.vo.resp.point;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
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.math.BigDecimal;
|
||||
/**
|
||||
* @author kerwin 阿拉伯语
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class PointRespAraVO {
|
||||
|
||||
@ApiModelProperty(value = "id")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "设备映射表的id")
|
||||
Integer deviceTypeColId;
|
||||
|
||||
@ApiModelProperty(value = "站点id")
|
||||
Integer stationId;
|
||||
|
||||
@ApiModelProperty(value = "设备id")
|
||||
Integer srcId;
|
||||
|
||||
@ApiModelProperty(value = "设备类型")
|
||||
@ExcelProperty(value = "نوع الجهاز",index = 3)
|
||||
String deviceType;
|
||||
|
||||
@ApiModelProperty(value = "1遥信 2遥测 3遥控")
|
||||
private Integer sensType;
|
||||
|
||||
@ApiModelProperty(value = "设备名")
|
||||
@ExcelProperty(value = "اسم الجهاز",index = 2)
|
||||
String deviceName;
|
||||
|
||||
@ApiModelProperty(value = "点表字段")
|
||||
@ExcelProperty(value = "حقل نقطة الجدول",index = 1)
|
||||
String col;
|
||||
|
||||
@ApiModelProperty(value = "点表字段名称")
|
||||
@ExcelProperty(value = "نقطة الجدول اسم الحقل",index = 0)
|
||||
String colName;
|
||||
|
||||
@ApiModelProperty(value = "当前值")
|
||||
@ExcelProperty(value = "القيمة الحالية",index = 7)
|
||||
BigDecimal value;
|
||||
|
||||
@ApiModelProperty(value = "单位")
|
||||
@ExcelProperty(value = "وحدة",index = 8)
|
||||
String unit;
|
||||
|
||||
@ApiModelProperty(value = "最大值")
|
||||
@ExcelProperty(value = "القيمة القصوى",index = 4)
|
||||
BigDecimal maxValue;
|
||||
|
||||
@ApiModelProperty(value = "最小值")
|
||||
@ExcelProperty(value = "قيمة الحد الأدنى",index = 5)
|
||||
BigDecimal minValue;
|
||||
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
@JsonFormat(pattern = CommonConstant.DATE)
|
||||
@ExcelProperty(value = "وقت التحديث",index = 6)
|
||||
String updateTime;
|
||||
|
||||
@ApiModelProperty(value = "是否具有品质位 1是 2否")
|
||||
private Integer qualityLevel;
|
||||
}
|
||||
@ -0,0 +1,72 @@
|
||||
package com.ho.business.vo.resp.point;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
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.math.BigDecimal;
|
||||
/**
|
||||
* @author kerwin 德语
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class PointRespDeVO {
|
||||
|
||||
@ApiModelProperty(value = "id")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "设备映射表的id")
|
||||
Integer deviceTypeColId;
|
||||
|
||||
@ApiModelProperty(value = "站点id")
|
||||
Integer stationId;
|
||||
|
||||
@ApiModelProperty(value = "设备id")
|
||||
Integer srcId;
|
||||
|
||||
@ApiModelProperty(value = "设备类型")
|
||||
@ExcelProperty(value = "Gerätetyp",index = 3)
|
||||
String deviceType;
|
||||
|
||||
@ApiModelProperty(value = "1遥信 2遥测 3遥控")
|
||||
private Integer sensType;
|
||||
|
||||
@ApiModelProperty(value = "设备名")
|
||||
@ExcelProperty(value = "Gerätenamen",index = 2)
|
||||
String deviceName;
|
||||
|
||||
@ApiModelProperty(value = "点表字段")
|
||||
@ExcelProperty(value = "Punkttabellenfeld",index = 1)
|
||||
String col;
|
||||
|
||||
@ApiModelProperty(value = "点表字段名称")
|
||||
@ExcelProperty(value = "Name des Punkttabellenfeldes",index = 0)
|
||||
String colName;
|
||||
|
||||
@ApiModelProperty(value = "当前值")
|
||||
@ExcelProperty(value = "Aktueller Wert",index = 7)
|
||||
BigDecimal value;
|
||||
|
||||
@ApiModelProperty(value = "单位")
|
||||
@ExcelProperty(value = "Einheit",index = 8)
|
||||
String unit;
|
||||
|
||||
@ApiModelProperty(value = "最大值")
|
||||
@ExcelProperty(value = "Maximalwert",index = 4)
|
||||
BigDecimal maxValue;
|
||||
|
||||
@ApiModelProperty(value = "最小值")
|
||||
@ExcelProperty(value = "Mindestwert",index = 5)
|
||||
BigDecimal minValue;
|
||||
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
@JsonFormat(pattern = CommonConstant.DATE)
|
||||
@ExcelProperty(value = "Aktualisierungszeit",index = 6)
|
||||
String updateTime;
|
||||
|
||||
@ApiModelProperty(value = "是否具有品质位 1是 2否")
|
||||
private Integer qualityLevel;
|
||||
}
|
||||
@ -0,0 +1,74 @@
|
||||
package com.ho.business.vo.resp.point;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
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.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @author kerwin 英语
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class PointRespEnVO {
|
||||
|
||||
@ApiModelProperty(value = "id")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "设备映射表的id")
|
||||
Integer deviceTypeColId;
|
||||
|
||||
@ApiModelProperty(value = "站点id")
|
||||
Integer stationId;
|
||||
|
||||
@ApiModelProperty(value = "设备id")
|
||||
Integer srcId;
|
||||
|
||||
@ApiModelProperty(value = "设备类型")
|
||||
@ExcelProperty(value = "Device type",index = 3)
|
||||
String deviceType;
|
||||
|
||||
@ApiModelProperty(value = "1遥信 2遥测 3遥控")
|
||||
private Integer sensType;
|
||||
|
||||
@ApiModelProperty(value = "设备名")
|
||||
@ExcelProperty(value = "Associated device",index = 2)
|
||||
String deviceName;
|
||||
|
||||
@ApiModelProperty(value = "点表字段")
|
||||
@ExcelProperty(value = "Code",index = 1)
|
||||
String col;
|
||||
|
||||
@ApiModelProperty(value = "点表字段名称")
|
||||
@ExcelProperty(value = "Name",index = 0)
|
||||
String colName;
|
||||
|
||||
@ApiModelProperty(value = "当前值")
|
||||
@ExcelProperty(value = "Current value",index = 7)
|
||||
BigDecimal value;
|
||||
|
||||
@ApiModelProperty(value = "单位")
|
||||
@ExcelProperty(value = "Unit",index = 8)
|
||||
String unit;
|
||||
|
||||
@ApiModelProperty(value = "最大值")
|
||||
@ExcelProperty(value = "Maximum",index = 4)
|
||||
BigDecimal maxValue;
|
||||
|
||||
@ApiModelProperty(value = "最小值")
|
||||
@ExcelProperty(value = "Minimum",index = 5)
|
||||
BigDecimal minValue;
|
||||
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
@JsonFormat(pattern = CommonConstant.DATE)
|
||||
@ExcelProperty(value = "Update time",index = 6)
|
||||
String updateTime;
|
||||
|
||||
@ApiModelProperty(value = "是否具有品质位 1是 2否")
|
||||
private Integer qualityLevel;
|
||||
|
||||
}
|
||||
@ -0,0 +1,72 @@
|
||||
package com.ho.business.vo.resp.point;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
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.math.BigDecimal;
|
||||
/**
|
||||
* @author kerwin 法语
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class PointRespFraVO {
|
||||
|
||||
@ApiModelProperty(value = "id")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "设备映射表的id")
|
||||
Integer deviceTypeColId;
|
||||
|
||||
@ApiModelProperty(value = "站点id")
|
||||
Integer stationId;
|
||||
|
||||
@ApiModelProperty(value = "设备id")
|
||||
Integer srcId;
|
||||
|
||||
@ApiModelProperty(value = "设备类型")
|
||||
@ExcelProperty(value = "Type d'équipement",index = 3)
|
||||
String deviceType;
|
||||
|
||||
@ApiModelProperty(value = "1遥信 2遥测 3遥控")
|
||||
private Integer sensType;
|
||||
|
||||
@ApiModelProperty(value = "设备名")
|
||||
@ExcelProperty(value = "Nom de l'équipement",index = 2)
|
||||
String deviceName;
|
||||
|
||||
@ApiModelProperty(value = "点表字段")
|
||||
@ExcelProperty(value = "Champ table de points",index = 1)
|
||||
String col;
|
||||
|
||||
@ApiModelProperty(value = "点表字段名称")
|
||||
@ExcelProperty(value = "Nom du champ table de points",index = 0)
|
||||
String colName;
|
||||
|
||||
@ApiModelProperty(value = "当前值")
|
||||
@ExcelProperty(value = "Valeur actuelle",index = 7)
|
||||
BigDecimal value;
|
||||
|
||||
@ApiModelProperty(value = "单位")
|
||||
@ExcelProperty(value = "Unité",index = 8)
|
||||
String unit;
|
||||
|
||||
@ApiModelProperty(value = "最大值")
|
||||
@ExcelProperty(value = "Valeur maximale",index = 4)
|
||||
BigDecimal maxValue;
|
||||
|
||||
@ApiModelProperty(value = "最小值")
|
||||
@ExcelProperty(value = "Valeur minimale",index = 5)
|
||||
BigDecimal minValue;
|
||||
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
@JsonFormat(pattern = CommonConstant.DATE)
|
||||
@ExcelProperty(value = "Temps de mise à jour",index = 6)
|
||||
String updateTime;
|
||||
|
||||
@ApiModelProperty(value = "是否具有品质位 1是 2否")
|
||||
private Integer qualityLevel;
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
package com.ho.business.vo.resp.point;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
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.math.BigDecimal;
|
||||
/**
|
||||
* @author kerwin 波兰语
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class PointRespPlVO {
|
||||
|
||||
@ApiModelProperty(value = "id")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "设备映射表的id")
|
||||
Integer deviceTypeColId;
|
||||
|
||||
@ApiModelProperty(value = "站点id")
|
||||
Integer stationId;
|
||||
|
||||
@ApiModelProperty(value = "设备id")
|
||||
Integer srcId;
|
||||
|
||||
@ApiModelProperty(value = "设备类型")
|
||||
@ExcelProperty(value = "Rodzaj urządzenia",index = 3)
|
||||
String deviceType;
|
||||
|
||||
@ApiModelProperty(value = "1遥信 2遥测 3遥控")
|
||||
private Integer sensType;
|
||||
|
||||
@ApiModelProperty(value = "设备名")
|
||||
@ExcelProperty(value = "Nazwa urządzenia",index = 2)
|
||||
String deviceName;
|
||||
|
||||
@ApiModelProperty(value = "点表字段")
|
||||
@ExcelProperty(value = "Pole tabeli punktów",index = 1)
|
||||
String col;
|
||||
|
||||
@ApiModelProperty(value = "点表字段名称")
|
||||
@ExcelProperty(value = "Nazwa pola tabeli punktów",index = 0)
|
||||
String colName;
|
||||
|
||||
@ApiModelProperty(value = "当前值")
|
||||
@ExcelProperty(value = "Bieżąca wartość",index = 7)
|
||||
BigDecimal value;
|
||||
|
||||
@ApiModelProperty(value = "单位")
|
||||
@ExcelProperty(value = "Jednostki",index = 8)
|
||||
String unit;
|
||||
|
||||
@ApiModelProperty(value = "最大值")
|
||||
@ExcelProperty(value = "Maksymalna wartość",index = 4)
|
||||
BigDecimal maxValue;
|
||||
|
||||
@ApiModelProperty(value = "最小值")
|
||||
@ExcelProperty(value = "Wartość minimalna",index = 5)
|
||||
BigDecimal minValue;
|
||||
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
@JsonFormat(pattern = CommonConstant.DATE)
|
||||
@ExcelProperty(value = "Czas aktualizacji",index = 6)
|
||||
String updateTime;
|
||||
|
||||
@ApiModelProperty(value = "是否具有品质位 1是 2否")
|
||||
private Integer qualityLevel;
|
||||
|
||||
}
|
||||
@ -0,0 +1,72 @@
|
||||
package com.ho.business.vo.resp.point;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
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.math.BigDecimal;
|
||||
/**
|
||||
* @author kerwin 西班牙语
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class PointRespSpaVO {
|
||||
|
||||
@ApiModelProperty(value = "id")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "设备映射表的id")
|
||||
Integer deviceTypeColId;
|
||||
|
||||
@ApiModelProperty(value = "站点id")
|
||||
Integer stationId;
|
||||
|
||||
@ApiModelProperty(value = "设备id")
|
||||
Integer srcId;
|
||||
|
||||
@ApiModelProperty(value = "设备类型")
|
||||
@ExcelProperty(value = "Tipo de dispositivo",index = 3)
|
||||
String deviceType;
|
||||
|
||||
@ApiModelProperty(value = "1遥信 2遥测 3遥控")
|
||||
private Integer sensType;
|
||||
|
||||
@ApiModelProperty(value = "设备名")
|
||||
@ExcelProperty(value = "Nombre del dispositivo",index = 2)
|
||||
String deviceName;
|
||||
|
||||
@ApiModelProperty(value = "点表字段")
|
||||
@ExcelProperty(value = "Campos de la tabla de puntos",index = 1)
|
||||
String col;
|
||||
|
||||
@ApiModelProperty(value = "点表字段名称")
|
||||
@ExcelProperty(value = "Nombre del campo de la tabla de puntos",index = 0)
|
||||
String colName;
|
||||
|
||||
@ApiModelProperty(value = "当前值")
|
||||
@ExcelProperty(value = "Valor actual",index = 7)
|
||||
BigDecimal value;
|
||||
|
||||
@ApiModelProperty(value = "单位")
|
||||
@ExcelProperty(value = "Unidad",index = 8)
|
||||
String unit;
|
||||
|
||||
@ApiModelProperty(value = "最大值")
|
||||
@ExcelProperty(value = "Valor máximo",index = 4)
|
||||
BigDecimal maxValue;
|
||||
|
||||
@ApiModelProperty(value = "最小值")
|
||||
@ExcelProperty(value = "Valor mínimo",index = 5)
|
||||
BigDecimal minValue;
|
||||
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
@JsonFormat(pattern = CommonConstant.DATE)
|
||||
@ExcelProperty(value = "Tiempo de actualización",index = 6)
|
||||
String updateTime;
|
||||
|
||||
@ApiModelProperty(value = "是否具有品质位 1是 2否")
|
||||
private Integer qualityLevel;
|
||||
}
|
||||
@ -99,6 +99,9 @@ public interface TdFeignClient {
|
||||
@PostMapping(value = ContextConstant.TD_CONTEXT + "device001/getToDayPVCharge")
|
||||
DataResult<StationHomeRespVo> getToDayPVCharge(TdBaseTimeQuery tdBaseTimeQuery);
|
||||
|
||||
@PostMapping(value = ContextConstant.TD_CONTEXT + "device001/getToDayPVMpptCharge")
|
||||
DataResult<StationHomeRespVo> getToDayPVMpptCharge(TdBaseTimeQuery tdBaseTimeQuery);
|
||||
|
||||
//查询遥信值五遥
|
||||
@PostMapping(value = ContextConstant.TD_CONTEXT + "device001/querySignal")
|
||||
DataResult<List<PointCurveResp>> querySignal(@RequestBody TdBaseTimeQuery tdBaseTimeQuery);
|
||||
|
||||
@ -168,6 +168,12 @@ public class TdFeignClientFallback implements TdFeignClient{
|
||||
throw new BusinessException(BaseResponseCode.FEIGN_CALL_FAIL);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataResult<StationHomeRespVo> getToDayPVMpptCharge(TdBaseTimeQuery tdBaseTimeQuery) {
|
||||
log.error("调用 [TdClient.getToDayPVCharge] 异常!");
|
||||
throw new BusinessException(BaseResponseCode.FEIGN_CALL_FAIL);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataResult modifyHistoryData(TdBaseTimeQuery tdBaseTimeQuery) {
|
||||
log.error("调用 [TdClient.modifyHistoryData] 异常!");
|
||||
|
||||
@ -54,7 +54,7 @@ public interface DeviceMapper {
|
||||
* @param needAccessPoint 是否需要接入点,不为空表示需要
|
||||
* @return
|
||||
*/
|
||||
List<DeviceRespVO> selectByIdAndSrcIdNotZero(Integer stationId,Integer needHide,Integer needAccessPoint);
|
||||
List<DeviceRespVO> selectByIdAndSrcIdNotZero(Integer stationId,Integer needHide,Integer needAccessPoint,String lang);
|
||||
|
||||
int insertBatch(@Param("list")List<Device> deviceList);
|
||||
|
||||
|
||||
@ -32,7 +32,7 @@ public interface DeviceTypeColMapper {
|
||||
|
||||
int updateList(@Param("deviceTypeColList")List<DeviceTypeCol> deviceTypeColList);
|
||||
//deviceType查询
|
||||
List<DeviceTypeCol> selectByDeviceType(String deviceType);
|
||||
List<DeviceTypeCol> selectByDeviceType(@Param("deviceType")String deviceType,@Param("lang") String lang);
|
||||
|
||||
List<DeviceTypeCol> selectByParam(@Param("deviceTypeCol") DeviceTypeCol deviceTypeCol);
|
||||
|
||||
@ -53,7 +53,7 @@ public interface DeviceTypeColMapper {
|
||||
List<ModelDeviceColComp> getCompListByType(@Param("type") String type, @Param("typeName") String typeName, @Param("modelCol") String modelCol);
|
||||
|
||||
|
||||
List<DeviceTypeCol> selectSameCol(@Param("deviceType") String deviceType, @Param("list") List<String> collect);
|
||||
List<DeviceTypeCol> selectSameCol(@Param("deviceType") String deviceType, @Param("list") List<String> collect,@Param("lang") String lang);
|
||||
|
||||
//批量新增设备表字段
|
||||
void addBatchDevice(@Param("list") List<DeviceTypeCol> deviceTypeColList);
|
||||
@ -65,7 +65,7 @@ public interface DeviceTypeColMapper {
|
||||
void deleteBatchModel(List<Integer> ids);
|
||||
|
||||
|
||||
DeviceTypeCol selectTypeAndCol(String col, String deviceType);
|
||||
DeviceTypeCol selectTypeAndCol(String col, String deviceType,String lang);
|
||||
|
||||
Integer selectCountByDeviceType(@Param("deviceTypeCol")DeviceTypeCol deviceTypeCol);
|
||||
|
||||
|
||||
@ -29,8 +29,6 @@ public interface EarningsCalculateMapper {
|
||||
|
||||
int deleteByDay(@Param("day") String day, @Param("typeList") List<Integer> typeList);
|
||||
|
||||
int deleteByStationAndDay(@Param("day") String day, @Param("typeList") List<Integer> typeList, @Param("stationId") Integer stationId);
|
||||
|
||||
int insertBatch(List<EarningsCalculate> list);
|
||||
// 类型是传入多个
|
||||
//List<EarningsCalculate> selectList(@Param("stationId") Integer stationId, @Param("typeList") List<Integer> typeList, @Param("beginTime") String beginTime, @Param("endTime") String endTime);
|
||||
@ -50,7 +48,7 @@ public interface EarningsCalculateMapper {
|
||||
*/
|
||||
List<EarningsCalculate> totalListByDay(@Param("ec") EarningsCalculateReq earningsCalculateReq);
|
||||
|
||||
public List<EarningsCalculateSub> queryElecTemplateSubByStationId(@Param("stationId")Integer stationId, @Param("templateType")Integer templateType,@Param("date")String date);
|
||||
public List<EarningsCalculateSub> queryElecTemplateSubByStationId(@Param("stationId")Integer stationId, @Param("templateType")Integer templateType,@Param("date")String date,@Param("elecType")Integer elecType);
|
||||
|
||||
public List<EarningsCalculateSub> queryElecRateTemplateSubByStationId(@Param("stationId")Integer stationId, @Param("templateType")Integer templateType,@Param("date")String date);
|
||||
|
||||
|
||||
@ -0,0 +1,30 @@
|
||||
package com.ho.business.mapper;
|
||||
|
||||
import com.ho.business.entity.EarningsCalculate;
|
||||
import com.ho.business.entity.EarningsCalculateMppt;
|
||||
import com.ho.business.vo.req.bigScreen.CommonBigScreenReq;
|
||||
import com.ho.business.vo.resp.InverterResp.PowerGenerateRespVO;
|
||||
import com.ho.business.vo.resp.profit.DayProfitType;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface EarningsCalculateMpptMapper {
|
||||
|
||||
int deleteByDay(@Param("day") String day, @Param("typeList") List<Integer> typeList);
|
||||
|
||||
int insertBatch(List<EarningsCalculateMppt> list);
|
||||
|
||||
List<PowerGenerateRespVO> countPvIncome(@Param("stationId") Integer stationId, @Param("beginTime")String beginTime, @Param("endTime")String endTime);
|
||||
|
||||
BigDecimal countAllPvIncome(@Param("stationId")Integer stationId,@Param("beginTime")String beginTime, @Param("endTime")String endTime);
|
||||
|
||||
List<DayProfitType> getProfit(@Param("beginTime")String begin, @Param("endTime")String end, @Param("groupId")Integer groupId);
|
||||
|
||||
String getFirstTime();
|
||||
|
||||
List<DayProfitType> getEarningsByParam(CommonBigScreenReq req);
|
||||
}
|
||||
@ -4,6 +4,7 @@ package com.ho.business.mapper;
|
||||
import com.ho.business.entity.ElecMeterValue;
|
||||
import com.ho.business.vo.req.bigScreen.CommonBigScreenReq;
|
||||
import com.ho.business.vo.req.carbin.ElecMeterReq;
|
||||
import com.ho.business.vo.resp.profit.DayProfitType;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
@ -54,4 +55,7 @@ public interface ElecMeterValueMapper {
|
||||
|
||||
List<ElecMeterValue> selectAllList(@Param("stationId") Integer stationId, @Param("typeList") List<Integer> typeList, @Param("beginTime") String beginTime, @Param("endTime") String endTime,
|
||||
@Param("deviceTypeList") List<Integer> deviceTypeList);
|
||||
|
||||
List<DayProfitType> getElec(@Param("beginTime") String beginTime,@Param("endTime")String endTime,
|
||||
@Param("groupId") Integer groupId, @Param("type")Integer type,List<Integer> stationIds);
|
||||
}
|
||||
|
||||
@ -33,7 +33,7 @@ public interface PlanningCurveIssueMapper {
|
||||
|
||||
void addPlanningCurveHistory(@Param("condition") List<PlanningCurveHistory> PlanningCurveHistory);
|
||||
|
||||
List<PlanCurveOperationRecordReq> getPlanCurveOperationList(@Param("stationId") String stationId);
|
||||
List<PlanCurveOperationRecordReq> getPlanCurveOperationList(@Param("stationId") String stationId,@Param("lang") String lang);
|
||||
|
||||
List<PlanningCurveHistory> getPlanningCurveHistory(@Param("planningCurveId") String planningCurveId);
|
||||
|
||||
|
||||
@ -62,5 +62,4 @@ public interface PointConfigMapper {
|
||||
* @return
|
||||
*/
|
||||
int updateList(List<PointConfig> list);
|
||||
|
||||
}
|
||||
|
||||
@ -38,7 +38,7 @@ public interface PointPolysemyConfigMapper {
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
List<PointPolysemyConfig> selectByPointIds(@Param("ids") List<Integer> ids);
|
||||
List<PointPolysemyConfig> selectByPointIds(@Param("ids") List<Integer> ids,@Param("lang") String lang);
|
||||
|
||||
/**
|
||||
* 根据id删除配置信息
|
||||
|
||||
@ -36,7 +36,7 @@ public interface StationMapper {
|
||||
|
||||
List<Station> selectByDimName(String name,Integer groupId);
|
||||
|
||||
List<Station> selectByIds(@Param("ids") List<Integer> ids,@Param("lang") String lang);
|
||||
List<Station> selectByIds(List<Integer> ids,String lang);
|
||||
|
||||
Station selectByNameAndId(@Param("name") String name, @Param("id") Integer id, @Param("deptId") Integer deptId);
|
||||
|
||||
|
||||
@ -0,0 +1,21 @@
|
||||
package com.ho.business.mapper;
|
||||
|
||||
import com.ho.business.entity.StationRemoteControl;
|
||||
import com.ho.business.vo.req.StationRemoteControlPageVo;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface StationRemoteControlMapper {
|
||||
void insert(@Param("entity") StationRemoteControl entity);
|
||||
|
||||
void update(@Param("entity") StationRemoteControl entity);
|
||||
|
||||
void delete(@Param("id") Integer id);
|
||||
|
||||
StationRemoteControl search(@Param("stationId") Integer stationId);
|
||||
|
||||
List<StationRemoteControl> selectList(@Param("vo") StationRemoteControlPageVo vo);
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
package com.ho.business.mapper;
|
||||
|
||||
import com.ho.business.entity.TranslateName;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author xwz
|
||||
* @description 针对表【Dict_Province】的数据库操作Mapper
|
||||
* @createDate 2024-12-18
|
||||
*/
|
||||
@Mapper
|
||||
public interface TranslateNameMapper {
|
||||
|
||||
List<TranslateName> getDictNation();
|
||||
|
||||
TranslateName selectNameLang(@Param("name")String name);
|
||||
|
||||
int insert(@Param("vo")TranslateName vo);
|
||||
|
||||
int updateById(@Param("vo") TranslateName vo);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,21 +0,0 @@
|
||||
package com.ho.business.mapper;
|
||||
|
||||
import com.ho.business.entity.TranslateNation;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author xwz
|
||||
* @description 针对表【Dict_Province】的数据库操作Mapper
|
||||
* @createDate 2024-12-18
|
||||
*/
|
||||
@Mapper
|
||||
public interface TranslateNationMapper {
|
||||
|
||||
List<TranslateNation> getDictNation();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,354 +0,0 @@
|
||||
package com.ho.business.service;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.ho.business.constant.DeviceTypeConstant;
|
||||
import com.ho.business.entity.EarningsCalculate;
|
||||
import com.ho.business.entity.ElecMeterValue;
|
||||
import com.ho.business.mapper.EarningsCalculateMapper;
|
||||
import com.ho.business.vo.req.carbin.EarningsCalculateReq;
|
||||
import com.ho.business.vo.resp.ShipStationRespVO;
|
||||
import com.ho.common.tools.constant.CommonConstant;
|
||||
import com.ho.common.tools.service.RedisService;
|
||||
import com.ho.common.tools.util.HttpUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* 成都巨石 能源 储能
|
||||
* 成都巨石能源 API 接口 服务
|
||||
*
|
||||
* @author kerwin
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class BoulderEnergyService {
|
||||
|
||||
/**
|
||||
* 获取token 参数 appAccount
|
||||
*/
|
||||
private static final String APP_ACCOUNT = "cdjs_app";
|
||||
/**
|
||||
* 获取token 参数 appSecretKey
|
||||
*/
|
||||
private static final String APP_SECRET_KEY = "cdjs@0108";
|
||||
/**
|
||||
* 中车- 获取电站id
|
||||
*/
|
||||
private static final Integer BOULDER_STATION_ID = 11006;
|
||||
|
||||
|
||||
/**
|
||||
* 中车- 获取token Url
|
||||
*/
|
||||
private static final String TOKEN_URL = "http://111.15.176.77:18082/gate-newpc/zhny-openapi/openapi/v1/authentication/getAccessToken";
|
||||
|
||||
/**
|
||||
* 中车- 统计数据 Url
|
||||
*/
|
||||
private static final String BOULDER_DATA_URL = "http://111.15.176.77:18082/gate-newpc/zhny-openapi/openapi/v1/statistics/station/qryIncDayBill";
|
||||
|
||||
@Autowired
|
||||
private RedisService redisService;
|
||||
|
||||
@Autowired
|
||||
ElecMeterValueService elecMeterValueService;
|
||||
|
||||
@Autowired
|
||||
EarningsCalculateMapper earningsCalculateMapper;
|
||||
|
||||
/**
|
||||
* 中车能源 - 获取token
|
||||
* @return token
|
||||
*/
|
||||
public String getToken(){
|
||||
String token = null;
|
||||
if(redisService.hasKey(CommonConstant.BOULDER_ENERGY_TOKEN_KEY)){
|
||||
token = (String)redisService.get(CommonConstant.BOULDER_ENERGY_TOKEN_KEY);
|
||||
return token;
|
||||
}
|
||||
Map<String, Object> params = Maps.newHashMap();
|
||||
params.put("appAccount",APP_ACCOUNT);
|
||||
params.put("appSecretKey",APP_SECRET_KEY);
|
||||
try {
|
||||
String json = HttpUtils.postWithJson(TOKEN_URL,params);
|
||||
log.info("json:" + TOKEN_URL);
|
||||
log.info("json:" + json);
|
||||
JSONObject jsonObject = JSONObject.parseObject(json);
|
||||
Integer code = jsonObject.getInteger("code");
|
||||
if(CommonConstant.HttpCode.SUCCESS_CODE.equals(code)){
|
||||
JSONObject data = jsonObject.getJSONObject("data");
|
||||
token = data.getString("accessToken");
|
||||
//redis 缓存
|
||||
redisService.set(CommonConstant.BOULDER_ENERGY_TOKEN_KEY,token,50, TimeUnit.SECONDS);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return token;
|
||||
}
|
||||
|
||||
/**
|
||||
* 中车能源 - 统计数据
|
||||
* @param beginTime 开始时间
|
||||
* @return
|
||||
*/
|
||||
public String getBoulderData(String beginTime){
|
||||
Map<String, String> headers = new HashMap<>();
|
||||
headers.put("Authorization", getToken());
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("stationCode","SC020075040001");
|
||||
params.put("time",beginTime);
|
||||
String contentType = "application/json; charset=utf-8";
|
||||
try {
|
||||
String json = HttpUtils.postWithHeaders(BOULDER_DATA_URL,HttpUtils.mapToJson(params),contentType,headers);
|
||||
log.info("MAIN_URL:" + BOULDER_DATA_URL);
|
||||
log.info("json:" + json);
|
||||
JSONObject jsonObject = JSONObject.parseObject(json);
|
||||
Integer code = jsonObject.getInteger("code");
|
||||
if(CommonConstant.HttpCode.SUCCESS_CODE.equals(code)){
|
||||
String data = jsonObject.getString("data");
|
||||
JSONObject dataJson = JSONObject.parseObject(data);
|
||||
return dataJson.getString("records");
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/*****************************************业务处理******************************************************/
|
||||
|
||||
/**
|
||||
* 中车 - 获取电站历史收益、充放电数据并存储
|
||||
*/
|
||||
public void getBoulderEleIncome(String beginTime){
|
||||
DateTime yesterday = DateUtil.yesterday();
|
||||
String yesterdayStr = DateUtil.formatDate(yesterday);
|
||||
if(beginTime==null){
|
||||
beginTime = yesterdayStr;
|
||||
}
|
||||
long timestamp = dateStringToTimestamp(beginTime);
|
||||
String records = getBoulderData(String.valueOf(timestamp));
|
||||
JSONArray data = JSON.parseArray(records);
|
||||
String finalBeginTime = beginTime;
|
||||
data.forEach(i->{
|
||||
List<EarningsCalculate> list = new ArrayList<>();
|
||||
List<ElecMeterValue> elecList = new ArrayList<>();
|
||||
JSONObject obj = (JSONObject) i;
|
||||
String date = timestampToDateString(obj.getLong("balanceDate"));
|
||||
if(finalBeginTime.equals(date)){
|
||||
//收益-充-尖
|
||||
EarningsCalculate sharpCharge = new EarningsCalculate();
|
||||
BigDecimal sharpChargeEle = obj.getBigDecimal("sharpChargeElectricity");
|
||||
sharpCharge.setElec(sharpChargeEle);
|
||||
sharpCharge.setType(0);
|
||||
sharpCharge.setRateType(CommonConstant.RateType.TIP);
|
||||
sharpCharge.setPrice(BigDecimal.ZERO);
|
||||
sharpCharge.setDigital(BigDecimal.ZERO);
|
||||
sharpCharge.setTotal(BigDecimal.ZERO);
|
||||
list.add(sharpCharge);
|
||||
//收益-充-峰
|
||||
EarningsCalculate peakCharge = new EarningsCalculate();
|
||||
BigDecimal peakChargeEle = obj.getBigDecimal("peakChargeElectricity");
|
||||
peakCharge.setElec(peakChargeEle);
|
||||
peakCharge.setType(0);
|
||||
peakCharge.setRateType(CommonConstant.RateType.PEAK);
|
||||
peakCharge.setPrice(BigDecimal.ZERO);
|
||||
peakCharge.setDigital(BigDecimal.ZERO);
|
||||
peakCharge.setTotal(BigDecimal.ZERO);
|
||||
list.add(peakCharge);
|
||||
//收益-充-平
|
||||
EarningsCalculate flatCharge = new EarningsCalculate();
|
||||
BigDecimal flatChargeEle = obj.getBigDecimal("flatChargeElectricity");
|
||||
flatCharge.setElec(flatChargeEle);
|
||||
flatCharge.setType(0);
|
||||
flatCharge.setRateType(CommonConstant.RateType.FLAT);
|
||||
flatCharge.setPrice(BigDecimal.ZERO);
|
||||
flatCharge.setDigital(BigDecimal.ZERO);
|
||||
flatCharge.setTotal(BigDecimal.ZERO);
|
||||
list.add(flatCharge);
|
||||
//收益-充-谷
|
||||
EarningsCalculate valleyCharge = new EarningsCalculate();
|
||||
BigDecimal valleyChargeEle = obj.getBigDecimal("valleyChargeElectricity");
|
||||
valleyCharge.setElec(valleyChargeEle);
|
||||
valleyCharge.setType(0);
|
||||
valleyCharge.setRateType(CommonConstant.RateType.VALLEY);
|
||||
valleyCharge.setPrice(BigDecimal.ZERO);
|
||||
valleyCharge.setDigital(BigDecimal.ZERO);
|
||||
valleyCharge.setTotal(BigDecimal.ZERO);
|
||||
list.add(valleyCharge);
|
||||
//收益-充-深谷
|
||||
EarningsCalculate deepValleyCharge = new EarningsCalculate();
|
||||
BigDecimal deepValleyChargeEle = obj.getBigDecimal("deepValleyChargeElectricity");
|
||||
deepValleyCharge.setElec(deepValleyChargeEle);
|
||||
deepValleyCharge.setType(0);
|
||||
deepValleyCharge.setRateType(CommonConstant.RateType.DEEP_VALLEY);
|
||||
deepValleyCharge.setPrice(BigDecimal.ZERO);
|
||||
deepValleyCharge.setDigital(BigDecimal.ZERO);
|
||||
deepValleyCharge.setTotal(BigDecimal.ZERO);
|
||||
list.add(deepValleyCharge);
|
||||
//收益-放-尖
|
||||
EarningsCalculate sharpDischarge = new EarningsCalculate();
|
||||
BigDecimal reverseSharp = obj.getBigDecimal("sharpDischargeElectricity");
|
||||
sharpDischarge.setElec(reverseSharp);
|
||||
sharpDischarge.setType(1);
|
||||
sharpDischarge.setRateType(CommonConstant.RateType.TIP);
|
||||
sharpDischarge.setPrice(BigDecimal.ZERO);
|
||||
sharpDischarge.setDigital(BigDecimal.ZERO);
|
||||
sharpDischarge.setTotal(BigDecimal.ZERO);
|
||||
list.add(sharpDischarge);
|
||||
//收益-放-峰
|
||||
EarningsCalculate peakDischarge = new EarningsCalculate();
|
||||
BigDecimal peakDischargeEle = obj.getBigDecimal("peakDischargeElectricity");
|
||||
peakDischarge.setElec(peakDischargeEle);
|
||||
peakDischarge.setType(1);
|
||||
peakDischarge.setRateType(CommonConstant.RateType.PEAK);
|
||||
peakDischarge.setPrice(BigDecimal.ZERO);
|
||||
peakDischarge.setDigital(BigDecimal.ZERO);
|
||||
peakDischarge.setTotal(BigDecimal.ZERO);
|
||||
list.add(peakDischarge);
|
||||
//收益-放-平
|
||||
EarningsCalculate flatDischarge = new EarningsCalculate();
|
||||
BigDecimal flatDischargeEle = obj.getBigDecimal("flatDischargeElectricity");
|
||||
flatDischarge.setElec(flatDischargeEle);
|
||||
flatDischarge.setType(1);
|
||||
flatDischarge.setRateType(CommonConstant.RateType.FLAT);
|
||||
flatDischarge.setPrice(BigDecimal.ZERO);
|
||||
flatDischarge.setDigital(BigDecimal.ZERO);
|
||||
flatDischarge.setTotal(BigDecimal.ZERO);
|
||||
list.add(flatDischarge);
|
||||
//收益-放-谷
|
||||
EarningsCalculate valleyDischarge = new EarningsCalculate();
|
||||
BigDecimal valleyDischargeEle = obj.getBigDecimal("valleyDischargeElectricity");
|
||||
valleyDischarge.setElec(valleyDischargeEle);
|
||||
valleyDischarge.setType(1);
|
||||
valleyDischarge.setRateType(CommonConstant.RateType.VALLEY);
|
||||
valleyDischarge.setPrice(BigDecimal.ZERO);
|
||||
valleyDischarge.setDigital(BigDecimal.ZERO);
|
||||
valleyDischarge.setTotal(BigDecimal.ZERO);
|
||||
list.add(valleyDischarge);
|
||||
//收益-放-深谷
|
||||
EarningsCalculate deepValleyDischarge = new EarningsCalculate();
|
||||
BigDecimal deepValleyDischargeEle = obj.getBigDecimal("deepValleyDischargeElectricity");
|
||||
BigDecimal income = obj.getBigDecimal("income");
|
||||
deepValleyDischarge.setElec(deepValleyDischargeEle);
|
||||
deepValleyDischarge.setType(1);
|
||||
deepValleyDischarge.setRateType(CommonConstant.RateType.DEEP_VALLEY);
|
||||
deepValleyDischarge.setPrice(BigDecimal.ZERO);
|
||||
deepValleyDischarge.setDigital(income);
|
||||
deepValleyDischarge.setTotal(income);
|
||||
list.add(deepValleyDischarge);
|
||||
// 充电
|
||||
ElecMeterValue charge = new ElecMeterValue();
|
||||
BigDecimal chargeEle = obj.getBigDecimal("chargeElectricity");
|
||||
charge.setDigital(chargeEle);
|
||||
charge.setType(DeviceTypeConstant.ELEC_METER_VALUE_TYPE.CHARGE);
|
||||
charge.setStatus(CommonConstant.STATUS_FLAG);
|
||||
elecList.add(charge);
|
||||
// 放电
|
||||
ElecMeterValue disCharge = new ElecMeterValue();
|
||||
BigDecimal dischargeEle = obj.getBigDecimal("dischargeElectricity");
|
||||
disCharge.setDigital(dischargeEle);
|
||||
disCharge.setType(DeviceTypeConstant.ELEC_METER_VALUE_TYPE.DISCHARGE);
|
||||
disCharge.setStatus(CommonConstant.STATUS_FLAG);
|
||||
elecList.add(disCharge);
|
||||
|
||||
if(elecList.size()>0){
|
||||
//删除
|
||||
elecMeterValueService.deleteByStationAndDay(BOULDER_STATION_ID,date,null);
|
||||
elecList.forEach(eleMeter -> {
|
||||
eleMeter.setGroupId(155);
|
||||
eleMeter.setStationId(BOULDER_STATION_ID);
|
||||
eleMeter.setCreateTime(new Date());
|
||||
eleMeter.setDay(date);
|
||||
//新增
|
||||
elecMeterValueService.insert(eleMeter);
|
||||
});
|
||||
}
|
||||
if(list.size()>0){
|
||||
//删除
|
||||
earningsCalculateMapper.deleteByStationAndDay(date,null,BOULDER_STATION_ID);
|
||||
list.forEach(a->{
|
||||
a.setGroupId(155);
|
||||
a.setStationId(BOULDER_STATION_ID);
|
||||
a.setCreateTime(new Date());
|
||||
a.setDay(date);
|
||||
a.setDiscount(BigDecimal.ONE);
|
||||
//新增
|
||||
earningsCalculateMapper.insertSelective(a);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
public void getCacheBoulderData(){
|
||||
ShipStationRespVO vo = new ShipStationRespVO();
|
||||
//查询电站收益数据
|
||||
EarningsCalculateReq ec = new EarningsCalculateReq();
|
||||
//昨日
|
||||
DateTime yesterday = DateUtil.yesterday();
|
||||
String yesterdayStr = DateUtil.formatDate(yesterday);
|
||||
//今日
|
||||
DateTime nowDay = DateUtil.date();
|
||||
String nowDayStr = DateUtil.formatDate(nowDay);
|
||||
//查询电站所有收益数据-组装参数
|
||||
ec.setStationId(BOULDER_STATION_ID);
|
||||
ec.setBeginTime(earningsCalculateMapper.getFirstTime());
|
||||
ec.setEndTime(nowDayStr);
|
||||
List<EarningsCalculate> earnList = earningsCalculateMapper.selectList(ec);
|
||||
// 累计充电、放电、收益
|
||||
BigDecimal incomeSum = earnList.stream().map(EarningsCalculate::getDigital).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
BigDecimal positivePowerSum = earnList.stream().filter(i->i.getType().equals(CommonConstant.ZERO)).map(EarningsCalculate::getElec).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
BigDecimal reversePowerSum = earnList.stream().filter(i->i.getType().equals(CommonConstant.ONE)).map(EarningsCalculate::getElec).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
vo.setIncomeSum(incomeSum.floatValue());
|
||||
vo.setPositivePowerSum(positivePowerSum.floatValue());
|
||||
vo.setReversePowerSum(reversePowerSum.floatValue());
|
||||
// 昨日收益
|
||||
BigDecimal incomeYesterday = earnList.stream().filter(i->i.getDay().equals(yesterdayStr)).map(EarningsCalculate::getDigital).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
vo.setIncomeYesterday(incomeYesterday.floatValue());
|
||||
// 今日充、放电
|
||||
BigDecimal positivePowerToday = earnList.stream().filter(i->i.getDay().equals(nowDayStr)&&i.getType().equals(CommonConstant.ZERO)).map(EarningsCalculate::getElec).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
vo.setPositivePowerToday(positivePowerToday.floatValue());
|
||||
BigDecimal reversePowerToday = earnList.stream().filter(i->i.getDay().equals(nowDayStr)&&i.getType().equals(CommonConstant.ONE)).map(EarningsCalculate::getElec).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
vo.setReversePowerToday(reversePowerToday.floatValue());
|
||||
String mainKey = CommonConstant.SHIP_ENERGY_MAIN + BOULDER_STATION_ID;
|
||||
redisService.set(mainKey,JSONObject.toJSONString(vo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 时间日期 转换为时间戳
|
||||
* @param dateStr yyyy-MM-dd
|
||||
* @return long 时间戳
|
||||
*/
|
||||
public static long dateStringToTimestamp(String dateStr) {
|
||||
LocalDate localDate = LocalDate.parse(dateStr, DateTimeFormatter.ISO_LOCAL_DATE);
|
||||
return localDate.atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli();
|
||||
}
|
||||
|
||||
/**
|
||||
* 毫秒级时间戳 转换为日期 yyyy-MM-dd
|
||||
* @param timestamp long 时间戳
|
||||
* @return yyyy-MM-dd
|
||||
*/
|
||||
public static String timestampToDateString(long timestamp) {
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(CommonConstant.DATE_YMD);
|
||||
return Instant.ofEpochMilli(timestamp)
|
||||
.atZone(ZoneId.systemDefault())
|
||||
.format(formatter);
|
||||
}
|
||||
}
|
||||
@ -89,11 +89,14 @@ public interface DeviceService {
|
||||
//根据电站id和srcId查询
|
||||
Device selectByStationIdAndSrcId(Integer stationId, Integer srcId);
|
||||
|
||||
Device selectByStationIdAndSrcIdAndLng(Integer stationId, Integer srcId,String lang);
|
||||
|
||||
|
||||
List<DeviceRespVO> selectByGroup(Integer groupId);
|
||||
|
||||
List<String> selectDistinctDeviceTypeByStationId(Integer stationId);
|
||||
|
||||
List<DeviceRespVO> getDeviceByStationId(Integer stationId);
|
||||
List<DeviceRespVO> getDeviceByStationId(Integer stationId,String lang);
|
||||
|
||||
List<DeviceRespVO> getDeviceByStationIds(List<Integer> stationIds);
|
||||
|
||||
@ -138,7 +141,7 @@ public interface DeviceService {
|
||||
* @param stationId
|
||||
* @return
|
||||
*/
|
||||
List<DeviceRespVO> selectByIdAndSrcIdNotZero(Integer stationId);
|
||||
List<DeviceRespVO> selectByIdAndSrcIdNotZero(Integer stationId,String lang);
|
||||
|
||||
/**
|
||||
* 查询设备需要设备接入点
|
||||
@ -146,7 +149,7 @@ public interface DeviceService {
|
||||
* @param stationId
|
||||
* @return
|
||||
*/
|
||||
List<DeviceRespVO> selectDeviceByStationId(Integer stationId);
|
||||
List<DeviceRespVO> selectDeviceByStationId(Integer stationId,String lang);
|
||||
|
||||
/**
|
||||
* 查询所有设备,不包含接入点
|
||||
@ -154,7 +157,7 @@ public interface DeviceService {
|
||||
* @param stationId
|
||||
* @return
|
||||
*/
|
||||
List<DeviceRespVO> selectAllDeviceAndSrcIdNotZero(Integer stationId);
|
||||
List<DeviceRespVO> selectAllDeviceAndSrcIdNotZero(Integer stationId,String lang);
|
||||
|
||||
/**
|
||||
* 获取单个设备电压电流正太分布数据
|
||||
|
||||
@ -19,14 +19,14 @@ public interface DeviceTypeColService {
|
||||
|
||||
int insertList(List<DeviceTypeColImportVO> list,Integer GroupId);
|
||||
|
||||
List<DeviceTypeCol> selectByDeviceType(String deviceType);
|
||||
List<DeviceTypeCol> selectByDeviceType(String deviceType,String lang);
|
||||
|
||||
DeviceTypeCol selectById(Integer id);
|
||||
|
||||
|
||||
DeviceTypeCol selectTypeAndCol(String col, String deviceType);
|
||||
DeviceTypeCol selectTypeAndCol(String col, String deviceType,String lang);
|
||||
|
||||
List<DeviceTypeCol> selectDeviceTypeColList(String deviceType,List<String> collect);
|
||||
List<DeviceTypeCol> selectDeviceTypeColList(String deviceType,List<String> collect,String lang);
|
||||
|
||||
Integer selectCountByDeviceType(DeviceTypeCol deviceTypeCol);
|
||||
|
||||
|
||||
@ -2,6 +2,7 @@ package com.ho.business.service;
|
||||
|
||||
import com.ho.business.entity.DynamicConfig;
|
||||
import com.ho.business.entity.DynamicConfigTitle;
|
||||
import com.ho.business.entity.TranslateName;
|
||||
import com.ho.business.vo.req.dynamicConfig.*;
|
||||
import com.ho.business.vo.resp.DeviceRespVO;
|
||||
import com.ho.business.vo.resp.dynamicConfig.CurveConfigQueryResp;
|
||||
@ -119,4 +120,20 @@ public interface DynamicConfigService {
|
||||
* @return
|
||||
*/
|
||||
int delDynamicConfigTitle(DynamicConfigTitle vo);
|
||||
|
||||
/**
|
||||
* 已知 name 参数是中文
|
||||
* @param name 中文名称
|
||||
* @return 返回得到中文翻译的结果(翻译结果为:英语、法语、西班牙语、德语、波兰语、阿拉伯语)
|
||||
*/
|
||||
TranslateName getNameLanguage(String name);
|
||||
|
||||
/**
|
||||
* 已知 name 参数是中文 根据lang参数 得到翻译的结果
|
||||
* @param name 中文名称
|
||||
* @param lang 翻译语种(英语、法语、西班牙语、德语、波兰语、阿拉伯语)
|
||||
* @return 返回的翻译语音结果
|
||||
*/
|
||||
String getNameByLang(String name,String lang);
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,34 @@
|
||||
package com.ho.business.service;
|
||||
|
||||
import com.ho.business.entity.Station;
|
||||
import com.ho.business.vo.req.bigScreen.CommonBigScreenReq;
|
||||
import com.ho.business.vo.resp.InverterResp.PowerGenerateRespVO;
|
||||
import com.ho.business.vo.resp.profit.DayProfitType;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description Mppt 尖峰平谷电量收益计算
|
||||
* @Author zjl
|
||||
* @Date 2025/11/19
|
||||
*/
|
||||
public interface EarningsCalculateMpptService {
|
||||
|
||||
int deleteByDay(String transDayStr, List<Integer> typeList);
|
||||
|
||||
public void allMpptIncome(List<Station> stations, String beginTime);
|
||||
|
||||
void todayMpptIncome(List<Station> stations, String beginTime);
|
||||
|
||||
List<PowerGenerateRespVO> countPvIncome(Integer stationId, String beginTime, String endTime);
|
||||
|
||||
BigDecimal countAllPvIncome(Integer id,String beginTime, String endTime);
|
||||
|
||||
List<DayProfitType> getProfit(String begin, String end, Integer groupId);
|
||||
|
||||
Date getFirstTime();
|
||||
|
||||
List<DayProfitType> getEarningsByParam(CommonBigScreenReq req);
|
||||
}
|
||||
@ -7,6 +7,7 @@ import com.ho.business.vo.req.bigScreen.CommonBigScreenReq;
|
||||
import com.ho.business.vo.req.carbin.EarningsCalculateReq;
|
||||
import com.ho.business.vo.req.pcsStation.PcsStationReq;
|
||||
import com.ho.business.vo.req.report.ReportReqVO;
|
||||
import com.ho.business.vo.resp.InverterResp.PowerGenerateRespVO;
|
||||
import com.ho.business.vo.resp.cabin.EarningsCalculateCountResp;
|
||||
import com.ho.business.vo.resp.cabin.EarningsCalculateResp;
|
||||
import com.ho.business.vo.resp.income.RevenueOverview;
|
||||
@ -137,4 +138,5 @@ public interface EarningsCalculateService {
|
||||
|
||||
List<DayProfitType> getEarningsByParam(CommonBigScreenReq req);
|
||||
|
||||
List<PowerGenerateRespVO> getPvMonthData(EarningsCalculateReq req);
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package com.ho.business.service;
|
||||
import com.ho.business.entity.ElecMeterValue;
|
||||
import com.ho.business.vo.req.bigScreen.CommonBigScreenReq;
|
||||
import com.ho.business.vo.req.carbin.ElecMeterReq;
|
||||
import com.ho.business.vo.resp.profit.DayProfitType;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
@ -50,4 +51,6 @@ public interface ElecMeterValueService {
|
||||
* @return
|
||||
*/
|
||||
List<ElecMeterValue> selectGroupByDay(CommonBigScreenReq req);
|
||||
|
||||
List<DayProfitType> getElec(String begin, String end, Integer groupId, Integer type,List<Integer> stationIds);
|
||||
}
|
||||
|
||||
@ -62,7 +62,7 @@ public interface IargeScreenShowService {
|
||||
* @param stationIds
|
||||
* @return
|
||||
*/
|
||||
List<Subdata> getCommonRegionList(List<Integer> stationIds,String lang);
|
||||
List<Subdata> getCommonRegionList(List<Integer> stationIds);
|
||||
|
||||
/**
|
||||
* 获取节能减排数据
|
||||
@ -118,4 +118,18 @@ public interface IargeScreenShowService {
|
||||
*/
|
||||
List<EventDayNum> getCommonEventCount(SimpleUser user);
|
||||
/**************************************************************/
|
||||
|
||||
List<Subdata> getCommonPvRegionList(List<Integer> byDeptId);
|
||||
|
||||
AnnualPvOverviewResp getPvOverviewData(List<Integer> stationIds);
|
||||
|
||||
EnergySavingRespVo getPvEnergySaving(List<Integer> stationIds);
|
||||
|
||||
List<AnnualChartValue> getPVCommonProfitCurve(CockpitReqVO vo,List<Integer> stationIds);
|
||||
|
||||
List<Subdata> getPvCommonProfit(String beginString, String endString,List<Integer> stationIds);
|
||||
|
||||
List<Subdata> getPvCommonElec(String beginString, String endString, List<Integer> stationIds);
|
||||
|
||||
List<AnnualChartValue> getCommonPvRelease(List<Integer> stationIds);
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@ import com.ho.business.vo.req.StationReq;
|
||||
import com.ho.business.vo.req.pcsStation.PcsStationReq;
|
||||
import com.ho.business.vo.resp.DeviceRespVO;
|
||||
import com.ho.business.vo.resp.cabin.CircleCtrlResp;
|
||||
import com.ho.business.vo.resp.mppt.MpptActiveVo;
|
||||
import com.ho.business.vo.resp.pcsStation.HomePageStationDataResp;
|
||||
import com.ho.business.vo.resp.station.ActiveReactivePower;
|
||||
import com.ho.common.tools.util.PageResult;
|
||||
@ -24,6 +25,8 @@ public interface OpenStationService {
|
||||
|
||||
ActiveReactivePower getAcPower(Integer stationId);
|
||||
|
||||
MpptActiveVo getPvActivePower(Integer stationId);
|
||||
|
||||
//环控
|
||||
List<CircleCtrlResp> getCircle(List<DeviceRespVO> deviceList );
|
||||
|
||||
@ -42,7 +45,7 @@ public interface OpenStationService {
|
||||
* @param req
|
||||
* @param response
|
||||
*/
|
||||
void exportEleData(PcsStationReq req, HttpServletResponse response);
|
||||
void exportEleData(PcsStationReq req, HttpServletResponse response,String lang);
|
||||
|
||||
/**
|
||||
* 查询日冻结数据
|
||||
|
||||
@ -25,6 +25,8 @@ public interface OutApiService {
|
||||
|
||||
void dayPVCharge(MonitorQuery monitorQuery);
|
||||
|
||||
void dayPVMpptCharge(MonitorQuery monitorQuery);
|
||||
|
||||
//天小时的充放电量
|
||||
void hourChargeDeal(MonitorQuery monitorQuery) throws ParseException;
|
||||
|
||||
|
||||
@ -28,7 +28,7 @@ public interface PlanningCurveIssueService {
|
||||
|
||||
public void planCurveOperationRecord(PlanCurveOperationRecordReq planCurveOperationRecordReq);
|
||||
|
||||
List<PlanCurveOperationRecordReq> getPlanCurveOperationList(String stationId);
|
||||
List<PlanCurveOperationRecordReq> getPlanCurveOperationList(String stationId,String lang);
|
||||
|
||||
Map<String,Object> getPlanningCurveHistory(List<String> planningCurveIds);
|
||||
}
|
||||
|
||||
@ -1,446 +0,0 @@
|
||||
package com.ho.business.service;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.ho.business.constant.DeviceTypeConstant;
|
||||
import com.ho.business.entity.EarningsCalculate;
|
||||
import com.ho.business.entity.ElecMeterValue;
|
||||
import com.ho.business.entity.Station;
|
||||
import com.ho.business.mapper.EarningsCalculateMapper;
|
||||
import com.ho.business.vo.req.StationReqVO;
|
||||
import com.ho.business.vo.resp.ShipStationRespVO;
|
||||
import com.ho.common.tools.constant.CommonConstant;
|
||||
import com.ho.common.tools.exception.BaseResponseCode;
|
||||
import com.ho.common.tools.exception.BusinessException;
|
||||
import com.ho.common.tools.service.RedisService;
|
||||
import com.ho.common.tools.util.HttpUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.jsf.FacesContextUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* 西安寄点能源股份有限公司
|
||||
* 西安寄点能源 API 接口 服务
|
||||
*
|
||||
* @author kerwin
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ShipEnergyService {
|
||||
|
||||
|
||||
/**
|
||||
* 获取token 参数 platform
|
||||
*/
|
||||
private static final String PLATFORM = "f9599b6c79a5efbfc6ddce5fed1bbed5";
|
||||
|
||||
/**
|
||||
* 获取token 参数 platformsecret
|
||||
*/
|
||||
private static final String PLATFORM_SECRET = "2928b16f9cb8e85199a4caa6ba3b6620";
|
||||
|
||||
/**
|
||||
* 寄点能源- 获取token Url
|
||||
*/
|
||||
private static final String TOKEN_URL = "https://www.emind2000.cloud/rest-api/gettoken";
|
||||
|
||||
/**
|
||||
* 寄点能源- 获取项目列表 Url
|
||||
*/
|
||||
private static final String STATION_URL = "https://www.emind2000.cloud/rest-api/getStations";
|
||||
|
||||
/**
|
||||
* 寄点能源- 主监控汇总 Url
|
||||
*/
|
||||
private static final String MAIN_URL = "https://www.emind2000.cloud/rest-api/getMainTotal";
|
||||
/**
|
||||
* 寄点能源- 历史收益 Url
|
||||
*/
|
||||
private static final String INCOME_HIS_URL = "https://www.emind2000.cloud/rest-api/getIncomeHis";
|
||||
|
||||
@Autowired
|
||||
private RedisService redisService;
|
||||
|
||||
@Autowired
|
||||
private StationService stationService;
|
||||
|
||||
@Autowired
|
||||
ElecMeterValueService elecMeterValueService;
|
||||
|
||||
@Autowired
|
||||
EarningsCalculateMapper earningsCalculateMapper;
|
||||
|
||||
/**
|
||||
* 寄点能源 - 获取token
|
||||
* @return token
|
||||
*/
|
||||
public String getToken(){
|
||||
String token = null;
|
||||
if(redisService.hasKey(CommonConstant.SHIP_ENERGY_TOKEN_KEY)){
|
||||
token = (String)redisService.get(CommonConstant.SHIP_ENERGY_TOKEN_KEY);
|
||||
return token;
|
||||
}
|
||||
Map<String, String> params = Maps.newHashMap();
|
||||
params.put("platform",PLATFORM);
|
||||
params.put("platformsecret",PLATFORM_SECRET);
|
||||
try {
|
||||
String json = HttpUtils.getWithForm(TOKEN_URL,params);
|
||||
log.info("json:" + TOKEN_URL);
|
||||
log.info("json:" + json);
|
||||
JSONObject jsonObject = JSONObject.parseObject(json);
|
||||
Integer code = jsonObject.getInteger("code");
|
||||
if(CommonConstant.HttpCode.SUCCESS_CODE.equals(code)){
|
||||
JSONObject data = jsonObject.getJSONObject("data");
|
||||
token = data.getString("access_token");
|
||||
//redis 缓存
|
||||
redisService.set(CommonConstant.SHIP_ENERGY_TOKEN_KEY,token,10, TimeUnit.HOURS);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return token;
|
||||
}
|
||||
|
||||
/**
|
||||
* 寄点能源 - 获取 项目列表
|
||||
* @return 项目列表 json 字符串
|
||||
*/
|
||||
public String getStations(){
|
||||
Map<String, String> headers = new HashMap<>();
|
||||
headers.put("Authorization", getToken());
|
||||
try {
|
||||
String json = HttpUtils.getWithHeaders(STATION_URL,null,headers);
|
||||
log.info("json:" + STATION_URL);
|
||||
log.info("json:" + json);
|
||||
JSONObject jsonObject = JSONObject.parseObject(json);
|
||||
Integer code = jsonObject.getInteger("code");
|
||||
if(CommonConstant.HttpCode.SUCCESS_CODE.equals(code)){
|
||||
JSONObject data = jsonObject.getJSONObject("data");
|
||||
return data.getString("rows");
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* 寄点能源 - 获取 主监控汇总信息
|
||||
* @param stationId 电站id
|
||||
* @return 返回对应电站汇总信息
|
||||
*/
|
||||
public String getMainTotal(Integer stationId){
|
||||
Map<String, String> headers = new HashMap<>();
|
||||
headers.put("Authorization", getToken());
|
||||
Map<String, String> params = new HashMap<>();
|
||||
params.put("stationId",stationId.toString());
|
||||
try {
|
||||
Thread.sleep(2000);
|
||||
String json = HttpUtils.getWithHeaders(MAIN_URL,params,headers);
|
||||
log.info("MAIN_URL:" + MAIN_URL);
|
||||
log.info("json:" + json);
|
||||
JSONObject jsonObject = JSONObject.parseObject(json);
|
||||
Integer code = jsonObject.getInteger("code");
|
||||
if(CommonConstant.HttpCode.SUCCESS_CODE.equals(code)){
|
||||
return jsonObject.getString("data");
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
} catch (InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* 寄点能源 - 获取 历史收益查询
|
||||
*/
|
||||
public String getIncomeHis(Integer stationId,String beginTime){
|
||||
Map<String, String> headers = new HashMap<>();
|
||||
headers.put("Authorization", getToken());
|
||||
Map<String, String> params = new HashMap<>();
|
||||
params.put("stationId",stationId.toString());
|
||||
params.put("startTime",beginTime+CommonConstant.START_SUFFIX_TIMESTAMP);
|
||||
params.put("endTime",beginTime+CommonConstant.END_SUFFIX_TIMESTAMP);
|
||||
try {
|
||||
String json = HttpUtils.getWithHeaders(INCOME_HIS_URL,params,headers);
|
||||
log.info("INCOME_HIS_URL:" + INCOME_HIS_URL);
|
||||
log.info("json:" + json);
|
||||
JSONObject jsonObject = JSONObject.parseObject(json);
|
||||
Integer code = jsonObject.getInteger("code");
|
||||
if(CommonConstant.HttpCode.SUCCESS_CODE.equals(code)){
|
||||
return jsonObject.getString("data");
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/*****************************************业务处理******************************************************/
|
||||
|
||||
/**
|
||||
* 寄点能源 - 电站信息融合储能平台处理
|
||||
*/
|
||||
public void addShipEnergyStation(){
|
||||
String json = getStations();
|
||||
JSONArray jsonStation = JSON.parseArray(json);
|
||||
jsonStation.forEach(i->{
|
||||
JSONObject jsonObj = (JSONObject) i;
|
||||
Integer stationId = jsonObj.getInteger("stationId");
|
||||
String name = jsonObj.getString("name");
|
||||
String address = jsonObj.getString("address");
|
||||
String province = jsonObj.getString("province");
|
||||
String city = jsonObj.getString("city");
|
||||
BigDecimal longitude = jsonObj.getBigDecimal("longitude");
|
||||
BigDecimal latitude = jsonObj.getBigDecimal("latitude");
|
||||
BigDecimal maxPower = jsonObj.getBigDecimal("maxPower");
|
||||
BigDecimal capacity = jsonObj.getBigDecimal("capacity");
|
||||
Date commossioningTime = jsonObj.getDate("commossioningTime");
|
||||
StationReqVO vo = new StationReqVO();
|
||||
vo.setId(stationId+10000);
|
||||
vo.setName(name);
|
||||
vo.setAddress(address);
|
||||
vo.setLongitude(longitude);
|
||||
vo.setLatitude(latitude);
|
||||
vo.setCapacity(capacity);
|
||||
vo.setRatePower(maxPower);
|
||||
vo.setGridTime(commossioningTime);
|
||||
vo.setGroupId(155);
|
||||
vo.setDeptId(592);
|
||||
vo.setStatus(1);
|
||||
vo.setType(7);
|
||||
vo.setPId(0);
|
||||
vo.setIsDailyCount(0);
|
||||
vo.setTopologyType(1);
|
||||
vo.setCupboardType(2);
|
||||
Station station = stationService.selectByName(vo.getName());
|
||||
if (station != null) {
|
||||
throw new BusinessException(BaseResponseCode.STATION_ALREADY_EXISTS);
|
||||
}
|
||||
stationService.insertStation(vo);
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 寄点能源 - 缓存电站监控信息
|
||||
*/
|
||||
public void getShipEnergyTotal(){
|
||||
String stations = getStations();
|
||||
JSONArray jsonStation = JSON.parseArray(stations);
|
||||
jsonStation.forEach(i->{
|
||||
JSONObject jsonObj = (JSONObject) i;
|
||||
Integer stationId = jsonObj.getInteger("stationId");
|
||||
String json = getMainTotal(stationId);
|
||||
Integer finalStationId = stationId +10000;
|
||||
String mainKey = CommonConstant.SHIP_ENERGY_MAIN + finalStationId;
|
||||
redisService.set(mainKey,json);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 寄点能源 - 获取寄点电站历史收益 并存储
|
||||
*/
|
||||
public void getStationIncomeHis(String beginTime){
|
||||
DateTime yesterday = DateUtil.yesterday();
|
||||
String yesterdayStr = DateUtil.formatDate(yesterday);
|
||||
if(beginTime==null){
|
||||
beginTime = yesterdayStr;
|
||||
}
|
||||
String stations = getStations();
|
||||
JSONArray jsonStation = JSON.parseArray(stations);
|
||||
String finalBeginTime = beginTime;
|
||||
log.info("传入参数-统计时间:{}",beginTime);
|
||||
jsonStation.forEach(i->{
|
||||
JSONObject jsonObj = (JSONObject) i;
|
||||
Integer stationId = jsonObj.getInteger("stationId");
|
||||
String incomeHis = getIncomeHis(stationId, finalBeginTime);
|
||||
JSONArray incomes = JSON.parseArray(incomeHis);
|
||||
log.info("远程查询-历史收益数据:{}",incomes);
|
||||
incomes.forEach(j->{
|
||||
JSONObject income = (JSONObject) j;
|
||||
String date = income.getString("date");
|
||||
String price = income.getString("price");
|
||||
JsonObject jsonPrice = JsonParser.parseString(price).getAsJsonObject();
|
||||
List<EarningsCalculate> list = new ArrayList<>();
|
||||
List<ElecMeterValue> elecList = new ArrayList<>();
|
||||
BigDecimal inTotalIncome = BigDecimal.ZERO;
|
||||
BigDecimal outTotalIncome = BigDecimal.ZERO;
|
||||
log.info("远程查询-统计日期:{}",date);
|
||||
if(finalBeginTime.equals(date)){
|
||||
//收益-充-尖
|
||||
EarningsCalculate inSharp = new EarningsCalculate();
|
||||
BigDecimal positiveSharp = income.getBigDecimal("sum_e_positive_sharp");
|
||||
inSharp.setElec(positiveSharp);
|
||||
inSharp.setType(0);
|
||||
inSharp.setRateType(CommonConstant.RateType.TIP);
|
||||
BigDecimal inSharpPrice = jsonPrice.get("in_sharp_price").getAsBigDecimal();
|
||||
inSharp.setPrice(inSharpPrice);
|
||||
inSharp.setDigital(positiveSharp.multiply(inSharpPrice));
|
||||
inTotalIncome = inTotalIncome.add(inSharp.getDigital());
|
||||
inSharp.setTotal(BigDecimal.ZERO);
|
||||
list.add(inSharp);
|
||||
//收益-充-峰
|
||||
EarningsCalculate inPeak = new EarningsCalculate();
|
||||
BigDecimal positivePeak = income.getBigDecimal("sum_e_positive_peak");
|
||||
inPeak.setElec(positivePeak);
|
||||
inPeak.setType(0);
|
||||
inPeak.setRateType(CommonConstant.RateType.PEAK);
|
||||
BigDecimal inPeakPrice = jsonPrice.get("in_peak_price").getAsBigDecimal();
|
||||
inPeak.setPrice(inPeakPrice);
|
||||
inPeak.setDigital(positivePeak.multiply(inPeakPrice));
|
||||
inTotalIncome = inTotalIncome.add(inPeak.getDigital());
|
||||
inPeak.setTotal(BigDecimal.ZERO);
|
||||
list.add(inPeak);
|
||||
//收益-充-平
|
||||
EarningsCalculate inFlat = new EarningsCalculate();
|
||||
BigDecimal positiveFlat = income.getBigDecimal("sum_e_positive_flat");
|
||||
inFlat.setElec(positiveFlat);
|
||||
inFlat.setType(0);
|
||||
inFlat.setRateType(CommonConstant.RateType.FLAT);
|
||||
BigDecimal inFlatPrice = jsonPrice.get("in_flat_price").getAsBigDecimal();
|
||||
inFlat.setPrice(inFlatPrice);
|
||||
inFlat.setDigital(positiveFlat.multiply(inFlatPrice));
|
||||
inTotalIncome = inTotalIncome.add(inFlat.getDigital());
|
||||
inFlat.setTotal(BigDecimal.ZERO);
|
||||
list.add(inFlat);
|
||||
//收益-充-谷
|
||||
EarningsCalculate inValley = new EarningsCalculate();
|
||||
BigDecimal positiveValley = income.getBigDecimal("sum_e_positive_valley");
|
||||
inValley.setElec(positiveValley);
|
||||
inValley.setType(0);
|
||||
inValley.setRateType(CommonConstant.RateType.VALLEY);
|
||||
BigDecimal inValleyPrice = jsonPrice.get("in_valley_price").getAsBigDecimal();
|
||||
inValley.setPrice(inValleyPrice);
|
||||
inValley.setDigital(positiveValley.multiply(inValleyPrice));
|
||||
inTotalIncome = inTotalIncome.add(inValley.getDigital());
|
||||
inValley.setTotal(BigDecimal.ZERO);
|
||||
list.add(inValley);
|
||||
//收益-充-深谷
|
||||
EarningsCalculate inDeepValley = new EarningsCalculate();
|
||||
BigDecimal positiveDeepValley = income.getBigDecimal("sum_e_positive_deep_valley");
|
||||
inDeepValley.setElec(positiveDeepValley);
|
||||
inDeepValley.setType(0);
|
||||
inDeepValley.setRateType(CommonConstant.RateType.DEEP_VALLEY);
|
||||
BigDecimal inDeepValleyPrice = jsonPrice.get("in_deep_valley_price").getAsBigDecimal();
|
||||
inDeepValley.setPrice(inDeepValleyPrice);
|
||||
inDeepValley.setDigital(positiveDeepValley.multiply(inDeepValleyPrice));
|
||||
inTotalIncome = inTotalIncome.add(inValley.getDigital());
|
||||
inDeepValley.setTotal(inTotalIncome);
|
||||
list.add(inDeepValley);
|
||||
//收益-放-尖
|
||||
EarningsCalculate outSharp = new EarningsCalculate();
|
||||
BigDecimal reverseSharp = income.getBigDecimal("sum_e_reverse_sharp");
|
||||
outSharp.setElec(reverseSharp);
|
||||
outSharp.setType(1);
|
||||
outSharp.setRateType(CommonConstant.RateType.TIP);
|
||||
BigDecimal outSharpPrice = jsonPrice.get("out_sharp_price").getAsBigDecimal();
|
||||
outSharp.setPrice(outSharpPrice);
|
||||
outSharp.setDigital(reverseSharp.multiply(outSharpPrice));
|
||||
outTotalIncome = outTotalIncome.add(outSharp.getDigital());
|
||||
outSharp.setTotal(BigDecimal.ZERO);
|
||||
list.add(outSharp);
|
||||
//收益-放-峰
|
||||
EarningsCalculate outPeak = new EarningsCalculate();
|
||||
BigDecimal reversePeak = income.getBigDecimal("sum_e_reverse_peak");
|
||||
outPeak.setElec(reversePeak);
|
||||
outPeak.setType(1);
|
||||
outPeak.setRateType(CommonConstant.RateType.PEAK);
|
||||
BigDecimal outPeakPrice = jsonPrice.get("out_peak_price").getAsBigDecimal();
|
||||
outPeak.setPrice(outPeakPrice);
|
||||
outPeak.setDigital(reversePeak.multiply(outPeakPrice));
|
||||
outTotalIncome = outTotalIncome.add(outPeak.getDigital());
|
||||
outPeak.setTotal(BigDecimal.ZERO);
|
||||
list.add(outPeak);
|
||||
//收益-放-平
|
||||
EarningsCalculate outFlat = new EarningsCalculate();
|
||||
BigDecimal reverseFlat = income.getBigDecimal("sum_e_reverse_flat");
|
||||
outFlat.setElec(reverseFlat);
|
||||
outFlat.setType(1);
|
||||
outFlat.setRateType(CommonConstant.RateType.FLAT);
|
||||
BigDecimal outFlatPrice = jsonPrice.get("out_flat_price").getAsBigDecimal();
|
||||
outFlat.setPrice(outFlatPrice);
|
||||
outFlat.setDigital(reverseFlat.multiply(outFlatPrice));
|
||||
outTotalIncome = outTotalIncome.add(outFlat.getDigital());
|
||||
outFlat.setTotal(BigDecimal.ZERO);
|
||||
list.add(outFlat);
|
||||
//收益-放-谷
|
||||
EarningsCalculate outValley = new EarningsCalculate();
|
||||
BigDecimal reverseValley = income.getBigDecimal("sum_e_reverse_valley");
|
||||
outValley.setElec(reverseValley);
|
||||
outValley.setType(1);
|
||||
outValley.setRateType(CommonConstant.RateType.VALLEY);
|
||||
BigDecimal outValleyPrice = jsonPrice.get("out_valley_price").getAsBigDecimal();
|
||||
outValley.setPrice(outValleyPrice);
|
||||
outValley.setDigital(reverseValley.multiply(outValleyPrice));
|
||||
outTotalIncome = outTotalIncome.add(outValley.getDigital());
|
||||
outValley.setTotal(BigDecimal.ZERO);
|
||||
list.add(outValley);
|
||||
//收益-放-深谷
|
||||
EarningsCalculate outDeepValley = new EarningsCalculate();
|
||||
BigDecimal reverseDeepValley = income.getBigDecimal("sum_e_reverse_deep_valley");
|
||||
outDeepValley.setElec(reverseDeepValley);
|
||||
outDeepValley.setType(1);
|
||||
outDeepValley.setRateType(CommonConstant.RateType.DEEP_VALLEY);
|
||||
BigDecimal outDeepValleyPrice = jsonPrice.get("out_deep_valley_price").getAsBigDecimal();
|
||||
outDeepValley.setPrice(outDeepValleyPrice);
|
||||
outDeepValley.setDigital(reverseDeepValley.multiply(outDeepValleyPrice));
|
||||
outTotalIncome = outTotalIncome.add(outDeepValley.getDigital());
|
||||
outDeepValley.setTotal(outTotalIncome);
|
||||
list.add(outDeepValley);
|
||||
// 充电
|
||||
ElecMeterValue charge = new ElecMeterValue();
|
||||
BigDecimal sumEPositive = income.getBigDecimal("sum_e_positive");
|
||||
charge.setDigital(sumEPositive);
|
||||
charge.setType(DeviceTypeConstant.ELEC_METER_VALUE_TYPE.CHARGE);
|
||||
charge.setStatus(CommonConstant.STATUS_FLAG);
|
||||
elecList.add(charge);
|
||||
// 放电
|
||||
ElecMeterValue disCharge = new ElecMeterValue();
|
||||
BigDecimal sumEReverse = income.getBigDecimal("sum_e_reverse");
|
||||
disCharge.setDigital(sumEReverse);
|
||||
disCharge.setType(DeviceTypeConstant.ELEC_METER_VALUE_TYPE.DISCHARGE);
|
||||
disCharge.setStatus(CommonConstant.STATUS_FLAG);
|
||||
elecList.add(disCharge);
|
||||
}
|
||||
if(elecList.size()>0){
|
||||
//删除
|
||||
elecMeterValueService.deleteByStationAndDay(stationId+10000,date,null);
|
||||
elecList.forEach(eleMeter -> {
|
||||
eleMeter.setGroupId(155);
|
||||
eleMeter.setStationId(stationId+10000);
|
||||
eleMeter.setCreateTime(new Date());
|
||||
eleMeter.setDay(date);
|
||||
//新增
|
||||
elecMeterValueService.insert(eleMeter);
|
||||
});
|
||||
}
|
||||
if(list.size()>0){
|
||||
//删除
|
||||
earningsCalculateMapper.deleteByStationAndDay(date,null,stationId+10000);
|
||||
list.forEach(a->{
|
||||
a.setGroupId(155);
|
||||
a.setStationId(stationId+10000);
|
||||
a.setCreateTime(new Date());
|
||||
a.setDay(date);
|
||||
a.setDiscount(BigDecimal.ONE);
|
||||
//新增
|
||||
earningsCalculateMapper.insertSelective(a);
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@ import com.ho.business.vo.resp.AppRealTimeCurveRespVo;
|
||||
import com.ho.business.vo.resp.CountEleData;
|
||||
import com.ho.business.vo.resp.DeviceColData;
|
||||
import com.ho.business.vo.resp.DeviceRespVO;
|
||||
import com.ho.business.vo.resp.InverterResp.PowerGenerateRespVO;
|
||||
import com.ho.business.vo.resp.cabin.TemperatureHumidityResp;
|
||||
import com.ho.business.vo.resp.pcsStation.OutStationData;
|
||||
import com.ho.business.vo.resp.pcsStation.PcsElecData;
|
||||
@ -35,7 +36,7 @@ public interface StationHomeService {
|
||||
* @param stationId 电站id
|
||||
* @return
|
||||
*/
|
||||
PcsStationData getPcsStationData(Integer stationId);
|
||||
PcsStationData getPcsStationData(Integer stationId,String lang);
|
||||
|
||||
/**
|
||||
* 根据电站id查询数据总览
|
||||
@ -72,6 +73,8 @@ public interface StationHomeService {
|
||||
*/
|
||||
List<AppRealTimeCurveRespVo> getOpticalStorageCurve(MonitorQuery monitorQuery);
|
||||
|
||||
List<AppRealTimeCurveRespVo> pvCurve(MonitorQuery monitorQuery);
|
||||
|
||||
List<TemperatureHumidityResp> getTemperatureHumidityCurve(MonitorQuery monitorQuery);
|
||||
|
||||
CountEleData getCountEleData(StationReq req);
|
||||
@ -96,6 +99,6 @@ public interface StationHomeService {
|
||||
*/
|
||||
OutStationData getStationData(StationReq req);
|
||||
|
||||
List<PcsElecData> getPvChargeElec(PcsStationReq req);
|
||||
List<PowerGenerateRespVO> getPvData(PcsStationReq req);
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,17 @@
|
||||
package com.ho.business.service;
|
||||
|
||||
import com.ho.business.entity.StationRemoteControl;
|
||||
import com.ho.business.vo.req.StationRemoteControlPageVo;
|
||||
import com.ho.common.tools.util.PageResult;
|
||||
|
||||
public interface StationRemoteControlService {
|
||||
void insert(StationRemoteControl entity);
|
||||
|
||||
void update(StationRemoteControl entity);
|
||||
|
||||
void delete(Integer id);
|
||||
|
||||
StationRemoteControl search(Integer stationId);
|
||||
|
||||
PageResult<StationRemoteControl> selectPageList(StationRemoteControlPageVo vo);
|
||||
}
|
||||
@ -25,7 +25,7 @@ public interface StationService {
|
||||
|
||||
Station selectById(Integer id);
|
||||
|
||||
List<StationRespVO> selectByIds(List<Integer> ids);
|
||||
List<StationRespVO> selectByIds(List<Integer> ids,String lang);
|
||||
|
||||
List<Station> selectStationsByIds(List<Integer> ids,String lang);
|
||||
|
||||
|
||||
@ -89,7 +89,7 @@ public class DeviceModelServiceImpl implements DeviceModelService {
|
||||
List<String> addCollect = addColList.stream().map(DeviceCol::getCol)
|
||||
.collect(Collectors.toList());
|
||||
if (!addCollect.isEmpty()) {
|
||||
List<DeviceTypeCol> deviceTypeCols = deviceTypeColMapper.selectSameCol(vo.getDeviceType(), addCollect);
|
||||
List<DeviceTypeCol> deviceTypeCols = deviceTypeColMapper.selectSameCol(vo.getDeviceType(), addCollect,null);
|
||||
if (!deviceTypeCols.isEmpty()) {
|
||||
throw new BusinessException(BaseResponseCode.THE_SAME_DATA_EXISTS_DATABASE_PLEASE_CHECK);
|
||||
}
|
||||
@ -158,7 +158,7 @@ public class DeviceModelServiceImpl implements DeviceModelService {
|
||||
|
||||
@Override
|
||||
public void addDeviceTypeCol(DeviceTypeColAddReq vo) {
|
||||
DeviceTypeCol deviceCol = deviceTypeColMapper.selectTypeAndCol(vo.getCol(), vo.getDeviceType());
|
||||
DeviceTypeCol deviceCol = deviceTypeColMapper.selectTypeAndCol(vo.getCol(), vo.getDeviceType(),null);
|
||||
if (deviceCol != null && vo.getId() == null) {
|
||||
throw new BusinessException(BaseResponseCode.THE_SAME_DATA_EXISTS_DATABASE_PLEASE_CHECK);
|
||||
}
|
||||
|
||||
@ -106,6 +106,10 @@ public class DeviceServiceImpl implements DeviceService {
|
||||
@Autowired
|
||||
Snowflake snowflake;
|
||||
|
||||
@Autowired
|
||||
DynamicConfigService dynamicConfigService;
|
||||
|
||||
|
||||
@Override
|
||||
public PageResult<DeviceRespVO> getPageListByInfo(DeviceReqVO deviceReqVO) {
|
||||
//是否是多个电站
|
||||
@ -391,6 +395,13 @@ public class DeviceServiceImpl implements DeviceService {
|
||||
String dName = adddevice.getDeviceName() + (i + 1);
|
||||
newSrcIdList.add(newSrcId);
|
||||
device.setDeviceName(dName);
|
||||
TranslateName translate = dynamicConfigService.getNameLanguage(dName);
|
||||
device.setDeviceNameEn(translate.getNameEn());
|
||||
device.setDeviceNameDe(translate.getNameDe());
|
||||
device.setDeviceNamePl(translate.getNamePl());
|
||||
device.setDeviceNameAra(translate.getNameAra());
|
||||
device.setDeviceNameFra(translate.getNameFra());
|
||||
device.setDeviceNameSpa(translate.getNameSpa());
|
||||
device.setSrcId(newSrcId);
|
||||
device.setDeptId(adddevice.getDeptId());
|
||||
device.setDeviceType(adddevice.getDeviceType());
|
||||
@ -517,6 +528,21 @@ public class DeviceServiceImpl implements DeviceService {
|
||||
return device;
|
||||
}
|
||||
|
||||
@Override
|
||||
// @Cacheable(value = "device", sync = true)
|
||||
public Device selectByStationIdAndSrcIdAndLng(Integer stationId, Integer srcId,String lang) {
|
||||
Device device = new Device();
|
||||
DeviceReqVO deviceReqVO = new DeviceReqVO();
|
||||
deviceReqVO.setStationId(stationId);
|
||||
deviceReqVO.setSrcId(srcId);
|
||||
deviceReqVO.setLang(lang);
|
||||
List<DeviceRespVO> deviceRespVOList = getList(deviceReqVO);
|
||||
if(deviceRespVOList!=null && !deviceRespVOList.isEmpty()){
|
||||
device = deviceRespVOList.get(0);
|
||||
}
|
||||
return device;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DeviceRespVO> selectByGroup(Integer groupId) {
|
||||
Device device = new Device();
|
||||
@ -532,9 +558,10 @@ public class DeviceServiceImpl implements DeviceService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DeviceRespVO> getDeviceByStationId(Integer stationId) {
|
||||
public List<DeviceRespVO> getDeviceByStationId(Integer stationId,String lang) {
|
||||
DeviceReqVO reqVO = new DeviceReqVO();
|
||||
reqVO.setStationId(stationId);
|
||||
reqVO.setLang(lang);
|
||||
List<DeviceRespVO> deviceRespVOS = deviceMapper.selectByCondition(reqVO);
|
||||
deviceRespVOS = getDeviceRespVOS(deviceRespVOS);
|
||||
return deviceRespVOS;
|
||||
@ -814,26 +841,26 @@ public class DeviceServiceImpl implements DeviceService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DeviceRespVO> selectByIdAndSrcIdNotZero(Integer stationId) {
|
||||
List<DeviceRespVO> list = deviceMapper.selectByIdAndSrcIdNotZero(stationId, null, null);
|
||||
public List<DeviceRespVO> selectByIdAndSrcIdNotZero(Integer stationId,String lang) {
|
||||
List<DeviceRespVO> list = deviceMapper.selectByIdAndSrcIdNotZero(stationId, null, null,lang);
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DeviceRespVO> selectDeviceByStationId(Integer stationId) {
|
||||
List<DeviceRespVO> list = deviceMapper.selectByIdAndSrcIdNotZero(stationId, null, CommonConstant.ONE);
|
||||
public List<DeviceRespVO> selectDeviceByStationId(Integer stationId,String lang) {
|
||||
List<DeviceRespVO> list = deviceMapper.selectByIdAndSrcIdNotZero(stationId, null, CommonConstant.ONE,lang);
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DeviceRespVO> selectAllDeviceAndSrcIdNotZero(Integer stationId) {
|
||||
List<DeviceRespVO> list = deviceMapper.selectByIdAndSrcIdNotZero(stationId, CommonConstant.ONE, null);
|
||||
public List<DeviceRespVO> selectAllDeviceAndSrcIdNotZero(Integer stationId,String lang) {
|
||||
List<DeviceRespVO> list = deviceMapper.selectByIdAndSrcIdNotZero(stationId, CommonConstant.ONE, null,lang);
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TemperatureVoltageResp getTemperatureVoltageData(DeviceTreeReq vo) {
|
||||
List<DeviceRespVO> deviceRespVOS = selectByIdAndSrcIdNotZero(vo.getStationId());
|
||||
List<DeviceRespVO> deviceRespVOS = selectByIdAndSrcIdNotZero(vo.getStationId(),vo.getLang());
|
||||
List<DevicePointResp> treeDevices = new ArrayList<>();
|
||||
if (!deviceRespVOS.isEmpty()) {
|
||||
treeDevices = deviceTypeConfigService.getTreeDevices(deviceRespVOS, vo.getSrcId());
|
||||
@ -1030,6 +1057,12 @@ public class DeviceServiceImpl implements DeviceService {
|
||||
deviceValue.setCategory(device.getCategory());
|
||||
deviceValue.setStationId(vo.getStationId());
|
||||
deviceValue.setDeviceName(device.getDeviceName());
|
||||
deviceValue.setDeviceNameEn(device.getDeviceNameEn());
|
||||
deviceValue.setDeviceNameFra(device.getDeviceNameFra());
|
||||
deviceValue.setDeviceNameSpa(device.getDeviceNameSpa());
|
||||
deviceValue.setDeviceNameDe(device.getDeviceNameDe());
|
||||
deviceValue.setDeviceNamePl(device.getDeviceNamePl());
|
||||
deviceValue.setDeviceNameAra(device.getDeviceNameAra());
|
||||
deviceValue.setStatus(device.getStatus());
|
||||
deviceValue.setCreateTime(new Date());
|
||||
deviceValue.setFromId(device.getFromId());
|
||||
@ -1118,7 +1151,7 @@ public class DeviceServiceImpl implements DeviceService {
|
||||
List<DeviceRespVO> deviceRespVOS = deviceMapper.selectByCondition(deviceReqVO);
|
||||
List<Integer> srcIdList = deviceRespVOS.stream().map(s -> s.getSrcId()).collect(Collectors.toList());
|
||||
//查询对应的设备
|
||||
List<DeviceRespVO> deviceStation = selectByIdAndSrcIdNotZero(vo.getStationId());
|
||||
List<DeviceRespVO> deviceStation = selectByIdAndSrcIdNotZero(vo.getStationId(),vo.getLang());
|
||||
List<DevicePointResp> treeDevices = new ArrayList<>();
|
||||
if (!deviceRespVOS.isEmpty()) {
|
||||
for (Integer srcId : srcIdList) {
|
||||
@ -1140,7 +1173,7 @@ public class DeviceServiceImpl implements DeviceService {
|
||||
List<DeviceRespVO> deviceRespVOS = deviceMapper.selectByCondition(deviceReqVO);
|
||||
List<Integer> srcIdList = deviceRespVOS.stream().map(s -> s.getSrcId()).collect(Collectors.toList());
|
||||
//查询对应的设备
|
||||
List<DeviceRespVO> deviceStation = selectByIdAndSrcIdNotZero(vo.getStationId());
|
||||
List<DeviceRespVO> deviceStation = selectByIdAndSrcIdNotZero(vo.getStationId(),vo.getLang());
|
||||
List<DevicePointResp> treeDevices = new ArrayList<>();
|
||||
if (!deviceRespVOS.isEmpty()) {
|
||||
for (Integer srcId : srcIdList) {
|
||||
|
||||
@ -50,7 +50,7 @@ public class DeviceTypeColServiceImpl implements DeviceTypeColService {
|
||||
DeviceTypeCol deviceTypeCol = null;
|
||||
for (Map.Entry<String, List<DeviceTypeColImportVO>> src : mapList.entrySet()) {
|
||||
//已经存在的
|
||||
List<DeviceTypeCol> isSaveList = deviceTypeColMapper.selectByDeviceType(src.getKey());
|
||||
List<DeviceTypeCol> isSaveList = deviceTypeColMapper.selectByDeviceType(src.getKey(),null);
|
||||
Map<String, DeviceTypeCol> isSaveMap = isSaveList.stream().collect(Collectors.toMap(k -> k.getDeviceType() + "_" + k.getCol(), DeviceTypeCol -> DeviceTypeCol));
|
||||
|
||||
Map<Integer, List<DeviceTypeCol>> addMap = new HashMap<>();
|
||||
@ -118,8 +118,8 @@ public class DeviceTypeColServiceImpl implements DeviceTypeColService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DeviceTypeCol> selectByDeviceType(String deviceType) {
|
||||
List<DeviceTypeCol> deviceTypeColList = deviceTypeColMapper.selectByDeviceType(deviceType);
|
||||
public List<DeviceTypeCol> selectByDeviceType(String deviceType,String lang) {
|
||||
List<DeviceTypeCol> deviceTypeColList = deviceTypeColMapper.selectByDeviceType(deviceType,lang);
|
||||
return deviceTypeColList;
|
||||
}
|
||||
|
||||
@ -130,14 +130,14 @@ public class DeviceTypeColServiceImpl implements DeviceTypeColService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public DeviceTypeCol selectTypeAndCol(String col, String deviceType) {
|
||||
DeviceTypeCol deviceTypeCol = deviceTypeColMapper.selectTypeAndCol(col, deviceType);
|
||||
public DeviceTypeCol selectTypeAndCol(String col, String deviceType,String lang) {
|
||||
DeviceTypeCol deviceTypeCol = deviceTypeColMapper.selectTypeAndCol(col, deviceType,lang);
|
||||
return deviceTypeCol;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DeviceTypeCol> selectDeviceTypeColList(String deviceType, List<String> collect) {
|
||||
List<DeviceTypeCol> deviceTypeCols = deviceTypeColMapper.selectSameCol(deviceType, collect);
|
||||
public List<DeviceTypeCol> selectDeviceTypeColList(String deviceType, List<String> collect,String lang) {
|
||||
List<DeviceTypeCol> deviceTypeCols = deviceTypeColMapper.selectSameCol(deviceType, collect,lang);
|
||||
return deviceTypeCols;
|
||||
}
|
||||
|
||||
|
||||
@ -18,7 +18,9 @@ import com.ho.business.vo.resp.DeviceRespVO;
|
||||
import com.ho.business.vo.resp.dynamicConfig.*;
|
||||
import com.ho.common.tools.constant.CommonConstant;
|
||||
import com.ho.common.tools.service.RedisService;
|
||||
import com.ho.common.tools.util.TranslateUtils;
|
||||
import com.ho.datacollect.api.constant.DataCollectConstant;
|
||||
import jodd.util.StringUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
@ -27,6 +29,7 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -70,6 +73,9 @@ public class DynamicConfigServiceImpl implements DynamicConfigService {
|
||||
@Autowired
|
||||
DynamicConfigTitleMapper configTitleMapper;
|
||||
|
||||
@Autowired
|
||||
TranslateNameMapper translateNameMapper;
|
||||
|
||||
@Override
|
||||
public int insertList(List<DynamicConfig> list) {
|
||||
List<DynamicConfig> insertList = list.stream().filter(i -> i.getId() == null).collect(Collectors.toList());
|
||||
@ -153,6 +159,14 @@ public class DynamicConfigServiceImpl implements DynamicConfigService {
|
||||
List<CurveConfig> insertList = new ArrayList<>();
|
||||
CurveConfig config = null;
|
||||
for (CurveConfigAdd c:list) {
|
||||
//curveName 设置多语言翻译 20250821
|
||||
TranslateName translate = getNameLanguage(c.getCurveName());
|
||||
c.setCurveNameEn(translate.getNameEn());
|
||||
c.setCurveNameFra(translate.getNameFra());
|
||||
c.setCurveNameSpa(translate.getNameSpa());
|
||||
c.setCurveNameDe(translate.getNameDe());
|
||||
c.setCurveNamePl(translate.getNamePl());
|
||||
c.setCurveNameAra(translate.getNameAra());
|
||||
config = new CurveConfig();
|
||||
BeanUtils.copyProperties(c,config);
|
||||
if(c.getId() == null){
|
||||
@ -180,6 +194,15 @@ public class DynamicConfigServiceImpl implements DynamicConfigService {
|
||||
list.get(i).setId(id);
|
||||
List<DynamicConfig> dList = list.get(i).getList();
|
||||
if(null != dList && !dList.isEmpty()){
|
||||
dList.stream().forEach(s->{
|
||||
TranslateName translate = getNameLanguage(s.getColName());
|
||||
s.setColNameEn(translate.getNameEn());
|
||||
s.setColNameFra(translate.getNameFra());
|
||||
s.setColNameSpa(translate.getNameSpa());
|
||||
s.setColNameDe(translate.getNameDe());
|
||||
s.setColNamePl(translate.getNamePl());
|
||||
s.setColNameAra(translate.getNameAra());
|
||||
});
|
||||
//动态配置点国际化
|
||||
result = dynamicConfigMapper.insertList(dList);
|
||||
log.info("插入动态配置结果,{}",result);
|
||||
@ -293,6 +316,23 @@ public class DynamicConfigServiceImpl implements DynamicConfigService {
|
||||
if(srcPoint.getSort()==null){
|
||||
srcPoint.setSort(i);
|
||||
}
|
||||
//name defaultValue 设置多语言翻译 20250821
|
||||
TranslateName translate = getNameLanguage(srcPoint.getName());
|
||||
srcPoint.setNameEn(translate.getNameEn());
|
||||
srcPoint.setNameFra(translate.getNameFra());
|
||||
srcPoint.setNameSpa(translate.getNameSpa());
|
||||
srcPoint.setNameDe(translate.getNameDe());
|
||||
srcPoint.setNamePl(translate.getNamePl());
|
||||
srcPoint.setNameAra(translate.getNameAra());
|
||||
if(StringUtil.isNotBlank(srcPoint.getDefaultValue())){
|
||||
TranslateName translateDe = getNameLanguage(srcPoint.getDefaultValue());
|
||||
srcPoint.setDefaultValueEn(translateDe.getNameEn());
|
||||
srcPoint.setDefaultValueFra(translateDe.getNameFra());
|
||||
srcPoint.setDefaultValueSpa(translateDe.getNameSpa());
|
||||
srcPoint.setDefaultValueDe(translateDe.getNameDe());
|
||||
srcPoint.setDefaultValuePl(translateDe.getNamePl());
|
||||
srcPoint.setDefaultValueAra(translateDe.getNameAra());
|
||||
}
|
||||
pointConfig = new PointConfig();
|
||||
BeanUtils.copyProperties(srcPoint,pointConfig);
|
||||
if(srcPoint.getId()==null){
|
||||
@ -337,6 +377,15 @@ public class DynamicConfigServiceImpl implements DynamicConfigService {
|
||||
List<DynamicConfig> dynamicConfigs = list.get(i).getList();
|
||||
//插入动态配置点
|
||||
if(!dynamicConfigs.isEmpty()){
|
||||
dynamicConfigs.stream().forEach(s->{
|
||||
TranslateName translate = getNameLanguage(s.getColName());
|
||||
s.setColNameEn(translate.getNameEn());
|
||||
s.setColNameFra(translate.getNameFra());
|
||||
s.setColNameSpa(translate.getNameSpa());
|
||||
s.setColNameDe(translate.getNameDe());
|
||||
s.setColNamePl(translate.getNamePl());
|
||||
s.setColNameAra(translate.getNameAra());
|
||||
});
|
||||
result = dynamicConfigMapper.insertList(dynamicConfigs);
|
||||
for (DynamicConfig d:dynamicConfigs) {
|
||||
relation = new PointConfigRelation();
|
||||
@ -359,6 +408,16 @@ public class DynamicConfigServiceImpl implements DynamicConfigService {
|
||||
p.getPolysemyList().forEach(i->i.setPointId(p.getId()));
|
||||
pList.addAll(p.getPolysemyList());
|
||||
}
|
||||
//name 设置多语言翻译 20250821
|
||||
pList.stream().forEach(i->{
|
||||
TranslateName translate = getNameLanguage(i.getName());
|
||||
i.setNameEn(translate.getNameEn());
|
||||
i.setNameFra(translate.getNameFra());
|
||||
i.setNameSpa(translate.getNameSpa());
|
||||
i.setNameDe(translate.getNameDe());
|
||||
i.setNamePl(translate.getNamePl());
|
||||
i.setNameAra(translate.getNameAra());
|
||||
});
|
||||
result = polysemyMapper.insertList(pList);
|
||||
log.info("插入一点多义表结果:{}",result);
|
||||
}
|
||||
@ -386,7 +445,7 @@ public class DynamicConfigServiceImpl implements DynamicConfigService {
|
||||
List<Integer> polysemyList = pointConfigResultList.stream().filter(i -> CommonConstant.TWO.equals(i.getPointType()) || CommonConstant.ELEVEN.equals(i.getPointType())).map(PointConfigResultResp::getId).distinct().collect(Collectors.toList());
|
||||
Map<Integer, List<PointPolysemyConfig>> vMap = new HashMap<>();
|
||||
if(!polysemyList.isEmpty()){
|
||||
List<PointPolysemyConfig> list = polysemyMapper.selectByPointIds(polysemyList);
|
||||
List<PointPolysemyConfig> list = polysemyMapper.selectByPointIds(polysemyList,vo.getLang());
|
||||
vMap = list.stream().collect(Collectors.groupingBy(PointPolysemyConfig::getPointId));
|
||||
}
|
||||
//拆电芯
|
||||
@ -445,14 +504,14 @@ public class DynamicConfigServiceImpl implements DynamicConfigService {
|
||||
List<Integer> polysemyList = pointConfigResultList.stream().filter(i -> CommonConstant.TWO.equals(i.getPointType())).map(PointConfigResultResp::getId).distinct().collect(Collectors.toList());
|
||||
Map<String, String> vMap = new HashMap<>();
|
||||
if(!polysemyList.isEmpty()){
|
||||
List<PointPolysemyConfig> list = polysemyMapper.selectByPointIds(polysemyList);
|
||||
List<PointPolysemyConfig> list = polysemyMapper.selectByPointIds(polysemyList,vo.getLang());
|
||||
vMap = list.stream().filter(s->s.getValue()!=null&&s.getName()!=null).collect(Collectors.toMap(s -> s.getPointId() + "," + s.getValue().intValue(), s -> s.getName(), (k1, k2) -> k1));
|
||||
}
|
||||
//范围内的一点多义
|
||||
List<Integer> rangePolysemyList = pointConfigResultList.stream().filter(i -> CommonConstant.ELEVEN.equals(i.getPointType())).map(PointConfigResultResp::getId).distinct().collect(Collectors.toList());
|
||||
Map<Integer, List<PointPolysemyConfig>> rMap = new HashMap<>();
|
||||
if(!rangePolysemyList.isEmpty()){
|
||||
List<PointPolysemyConfig> list = polysemyMapper.selectByPointIds(rangePolysemyList);
|
||||
List<PointPolysemyConfig> list = polysemyMapper.selectByPointIds(rangePolysemyList,vo.getLang());
|
||||
rMap = list.stream().filter(s -> s.getValue() != null && s.getName() != null && s.getSymbol() != null).collect(Collectors.groupingBy(PointPolysemyConfig::getPointId));
|
||||
}
|
||||
//拆电芯
|
||||
@ -762,6 +821,101 @@ public class DynamicConfigServiceImpl implements DynamicConfigService {
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNameByLang(String name,String lang){
|
||||
TranslateName translate = getNameLanguage(name);
|
||||
switch (lang){
|
||||
case CommonConstant.langTemp.EN_US:
|
||||
return translate.getNameEn();
|
||||
case CommonConstant.langTemp.DE_DE:
|
||||
return translate.getNameDe();
|
||||
case CommonConstant.langTemp.ES_ES:
|
||||
return translate.getNameSpa();
|
||||
case CommonConstant.langTemp.AR_EG:
|
||||
return translate.getNameAra();
|
||||
case CommonConstant.langTemp.PL_PL:
|
||||
return translate.getNamePl();
|
||||
case CommonConstant.langTemp.FR_FR:
|
||||
return translate.getNameFra();
|
||||
case CommonConstant.langTemp.ZH_CN:
|
||||
return translate.getName();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public TranslateName getNameLanguage(String name) {
|
||||
// 英语
|
||||
String nameEn = null;
|
||||
// 法语
|
||||
String nameFra = null;
|
||||
// 西班牙语
|
||||
String nameSpa = null;
|
||||
// 德语
|
||||
String nameDe = null;
|
||||
// 波兰语
|
||||
String namePl = null;
|
||||
// 阿拉伯语
|
||||
String nameAra = null;
|
||||
// 查询数据库中 预先翻译的中文字段 语言
|
||||
TranslateName vo = translateNameMapper.selectNameLang(name);
|
||||
TranslateName translate = new TranslateName();
|
||||
boolean flag = false;
|
||||
if(vo == null){
|
||||
nameEn = TranslateUtils.translate(name,CommonConstant.lang.EN);
|
||||
nameFra = TranslateUtils.translate(name,CommonConstant.lang.FRA);
|
||||
nameSpa = TranslateUtils.translate(name,CommonConstant.lang.SPA);
|
||||
nameDe = TranslateUtils.translate(name,CommonConstant.lang.DE);
|
||||
namePl = TranslateUtils.translate(name,CommonConstant.lang.PL);
|
||||
nameAra = TranslateUtils.translate(name,CommonConstant.lang.ARA);
|
||||
// 插入中文预翻译表
|
||||
translate.setName(name);
|
||||
translate.setNameEn(nameEn);
|
||||
translate.setNameFra(nameFra);
|
||||
translate.setNameSpa(nameSpa);
|
||||
translate.setNameDe(nameDe);
|
||||
translate.setNamePl(namePl);
|
||||
translate.setNameAra(nameAra);
|
||||
CompletableFuture.runAsync(()->{
|
||||
translateNameMapper.insert(translate);
|
||||
});
|
||||
return translate;
|
||||
}else{
|
||||
if(StringUtil.isEmpty(vo.getNameEn())){
|
||||
vo.setNameEn(TranslateUtils.translate(name,CommonConstant.lang.EN));
|
||||
flag = true;
|
||||
}
|
||||
if(StringUtil.isEmpty(vo.getNameFra())){
|
||||
vo.setNameFra(TranslateUtils.translate(name,CommonConstant.lang.FRA));
|
||||
flag = true;
|
||||
}
|
||||
if(StringUtil.isEmpty(vo.getNameSpa())){
|
||||
vo.setNameSpa(TranslateUtils.translate(name,CommonConstant.lang.SPA));
|
||||
flag = true;
|
||||
}
|
||||
if(StringUtil.isEmpty(vo.getNameDe())){
|
||||
vo.setNameDe(TranslateUtils.translate(name,CommonConstant.lang.DE));
|
||||
flag = true;
|
||||
}
|
||||
if(StringUtil.isEmpty(vo.getNamePl())){
|
||||
vo.setNamePl(TranslateUtils.translate(name,CommonConstant.lang.PL));
|
||||
flag = true;
|
||||
}
|
||||
if(StringUtil.isEmpty(vo.getNameAra())){
|
||||
vo.setNameAra(TranslateUtils.translate(name,CommonConstant.lang.ARA));
|
||||
flag = true;
|
||||
}
|
||||
if(flag){
|
||||
CompletableFuture.runAsync(()->{
|
||||
translateNameMapper.updateById(vo);
|
||||
});
|
||||
}
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
|
||||
private void getConfigAddList(SyncDynamicConfigParam vo, List<PointConfigResultResp> pointList, List<PointConfigAdd> pointAddList,Integer deviceId,Map<Integer, SyncDynamicDeviceMapping> map) {
|
||||
PointConfigAdd configAdd = null;
|
||||
for (PointConfigResultResp p: pointList) {
|
||||
|
||||
@ -0,0 +1,212 @@
|
||||
package com.ho.business.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.ho.business.constant.DeviceTypeConstant;
|
||||
import com.ho.business.entity.*;
|
||||
import com.ho.business.feignclient.TdFeignClient;
|
||||
import com.ho.business.mapper.EarningsCalculateMapper;
|
||||
import com.ho.business.mapper.EarningsCalculateMpptMapper;
|
||||
import com.ho.business.service.*;
|
||||
import com.ho.business.util.QueuesUtil;
|
||||
import com.ho.business.vo.req.bigScreen.CommonBigScreenReq;
|
||||
import com.ho.business.vo.req.device.DeviceTypeQuery;
|
||||
import com.ho.business.vo.resp.DeviceRespVO;
|
||||
import com.ho.business.vo.resp.InverterResp.PowerGenerateRespVO;
|
||||
import com.ho.business.vo.resp.profit.DayProfitType;
|
||||
import com.ho.common.tools.constant.CommonConstant;
|
||||
import com.ho.common.tools.constant.RedisKeyConstant;
|
||||
import com.ho.common.tools.exception.DataResult;
|
||||
import com.ho.common.tools.service.RedisService;
|
||||
import com.ho.common.tools.vo.req.StationHomeRespVo;
|
||||
import com.ho.td.api.entity.query.TdBaseTimeQuery;
|
||||
import jodd.util.CollectionUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class EarningsCalculateMpptServiceImpl implements EarningsCalculateMpptService {
|
||||
|
||||
|
||||
@Autowired
|
||||
EarningsCalculateMpptMapper earningsCalculateMpptMapper;
|
||||
|
||||
@Autowired
|
||||
private DeviceService deviceService;
|
||||
|
||||
@Autowired
|
||||
private ModelDeviceService modelDeviceService;
|
||||
|
||||
@Autowired
|
||||
private DeviceTypeConfigService deviceTypeConfigService;
|
||||
|
||||
public static final String TOTAL_RELEASE = "totalRelease";
|
||||
|
||||
@Autowired
|
||||
RedisService redisService;
|
||||
|
||||
@Autowired
|
||||
EarningsCalculateMapper earningsCalculateMapper;
|
||||
|
||||
@Autowired
|
||||
private TdFeignClient tdFeignClient;
|
||||
@Override
|
||||
public int deleteByDay(String day, List<Integer> typeList) {
|
||||
int i = earningsCalculateMpptMapper.deleteByDay(day, typeList);
|
||||
return i;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算光伏收益
|
||||
* @return
|
||||
*/
|
||||
private List<EarningsCalculateMppt> countMpptIncome(Station station,String beginTime){
|
||||
List<EarningsCalculateMppt> list =new ArrayList<>();
|
||||
Integer stationId = station.getId();
|
||||
// 总发
|
||||
List<DeviceRespVO> deviceRespVOS = deviceService.getListByDeviceType(stationId, DeviceTypeConstant.MPPT);
|
||||
if (deviceRespVOS.isEmpty()) {
|
||||
deviceRespVOS = deviceService.getListByFuzzyDeviceType(stationId, DeviceTypeConstant.MPPT);
|
||||
}
|
||||
for (DeviceRespVO vo : deviceRespVOS) {
|
||||
// 查询光伏Mppt 放电量关联字段 如果没关联,则不计算
|
||||
List<ModelDeviceColComp> deviceCp = modelDeviceService.getCompListByType("device", vo.getDeviceType(), TOTAL_RELEASE);
|
||||
if(deviceCp == null ){
|
||||
break;
|
||||
}
|
||||
// 查询设备模型,没查询到则返回,不计算
|
||||
DeviceTypeQuery deviceTypeQuery = new DeviceTypeQuery();
|
||||
deviceTypeQuery.setGroupId(station.getGroupId());
|
||||
deviceTypeQuery.setDeviceType(deviceCp.get(0).getDeviceType());
|
||||
List<DeviceTypeConfig> deviceTypeConfigs = deviceTypeConfigService.queryListByCondition(deviceTypeQuery);
|
||||
if (deviceTypeConfigs == null){
|
||||
break;
|
||||
}
|
||||
//开始计算
|
||||
//1:组装时序数据库查询参数
|
||||
DateTime beginDate = DateUtil.beginOfDay(DateUtil.parse(beginTime));
|
||||
DateTime endDate = DateUtil.endOfDay(beginDate);
|
||||
TdBaseTimeQuery tdBaseQuery = new TdBaseTimeQuery();
|
||||
tdBaseQuery.setBeginTime(beginDate.toMsStr());
|
||||
tdBaseQuery.setEndTime(endDate.toMsStr());
|
||||
tdBaseQuery.setTime("1m");
|
||||
tdBaseQuery.setStationId(station.getId());
|
||||
tdBaseQuery.setGroupId(station.getGroupId());
|
||||
tdBaseQuery.setModelName((deviceTypeConfigs.get(0)).getModelName());
|
||||
tdBaseQuery.setCol(deviceCp.get(0).getDeviceCol());
|
||||
tdBaseQuery.setSrcId(vo.getSrcId());
|
||||
// 查询设备时序数据,如果为空则不计算
|
||||
DataResult<List<StationHomeRespVo>> listDataResult = tdFeignClient.queryPointTableList(tdBaseQuery);
|
||||
List<StationHomeRespVo> datas = listDataResult.getData();
|
||||
if(datas ==null){
|
||||
break;
|
||||
}
|
||||
// 获取电价分时段计算收益
|
||||
List<EarningsCalculateSub> elecTemplateSubs = earningsCalculateMapper.queryElecTemplateSubByStationId(station.getId(), 0, beginTime,2);
|
||||
BigDecimal lastelec = BigDecimal.ZERO;
|
||||
BigDecimal elec = BigDecimal.ZERO;
|
||||
int num = 0 ;
|
||||
for (EarningsCalculateSub sub : elecTemplateSubs ){
|
||||
String earnBegin = sub.getBeginTime();
|
||||
String earnEnd = sub.getEndTime();
|
||||
DateTime earnBeginDate = DateUtil.parse(beginTime + " " + earnBegin + ":00");
|
||||
DateTime earnEndate = DateUtil.parse(beginTime + " " + earnEnd + ":59");
|
||||
List<StationHomeRespVo> subData = datas.stream().filter(i->DateUtil.isIn(DateUtil.parse(i.getDate()),earnBeginDate,earnEndate)).collect(Collectors.toList());
|
||||
if(subData.size()>0){
|
||||
if(num==0){
|
||||
elec = subData.get(subData.size()-1).getDigital().subtract(subData.get(0).getDigital());
|
||||
}else {
|
||||
elec = subData.get(subData.size() - 1).getDigital().subtract(lastelec);
|
||||
}
|
||||
lastelec = subData.get(subData.size()-1).getDigital();
|
||||
num++;
|
||||
EarningsCalculateMppt earn =new EarningsCalculateMppt();
|
||||
earn.setDay(beginTime);
|
||||
earn.setGroupId(station.getGroupId());
|
||||
earn.setStationId(station.getId());
|
||||
earn.setSrcId(tdBaseQuery.getSrcId());
|
||||
earn.setPrice(sub.getPrice());
|
||||
earn.setRateType(sub.getType());
|
||||
earn.setType(1);
|
||||
earn.setCreateTime(new Date());
|
||||
BigDecimal discount = sub.getDiscount() == null ? BigDecimal.ONE : sub.getDiscount();
|
||||
earn.setTotal(BigDecimal.ZERO);
|
||||
earn.setElec(elec);
|
||||
earn.setDiscount(discount);
|
||||
earn.setDigital(new BigDecimal(String.format("%.4f",elec.multiply(sub.getPrice()))));
|
||||
list.add(earn);
|
||||
}
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void todayMpptIncome(List<Station> stations,String beginTime){
|
||||
if(stations != null && stations.size() > 0){
|
||||
for (Station station:stations){
|
||||
List<EarningsCalculateMppt> list = countMpptIncome(station,beginTime);
|
||||
// 缓存今日收益
|
||||
if(list.size()>0){
|
||||
String key = RedisKeyConstant.PV.STATION_PV_TODAY_PROFIT + station.getId();
|
||||
BigDecimal todayIncone = list.stream().map(EarningsCalculateMppt::getDigital).reduce(BigDecimal.ZERO,BigDecimal::add);
|
||||
redisService.set(key, todayIncone);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PowerGenerateRespVO> countPvIncome(Integer stationId, String beginTime, String endTime) {
|
||||
return earningsCalculateMpptMapper.countPvIncome(stationId,beginTime,endTime);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigDecimal countAllPvIncome(Integer stationId,String beginTime, String endTime) {
|
||||
BigDecimal data = earningsCalculateMpptMapper.countAllPvIncome(stationId,beginTime,endTime);
|
||||
return data==null?BigDecimal.ZERO:data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DayProfitType> getProfit(String begin, String end, Integer groupId) {
|
||||
return earningsCalculateMpptMapper.getProfit(begin, end, groupId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Date getFirstTime() {
|
||||
String day = earningsCalculateMpptMapper.getFirstTime();
|
||||
DateTime date = null;
|
||||
if(day!=null){
|
||||
date = DateUtil.parse(day, CommonConstant.DATE_YMD);
|
||||
}
|
||||
return date;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DayProfitType> getEarningsByParam(CommonBigScreenReq req) {
|
||||
return earningsCalculateMpptMapper.getEarningsByParam(req);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void allMpptIncome(List<Station> stations,String beginTime) {
|
||||
if(stations != null && stations.size() > 0){
|
||||
for (Station station:stations){
|
||||
List<EarningsCalculateMppt> list = countMpptIncome(station,beginTime);
|
||||
// 数据插入
|
||||
if(list.size()>0){
|
||||
int a = this.earningsCalculateMpptMapper.insertBatch(list);
|
||||
System.err.println("修改的行数:" + a);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -6,7 +6,6 @@ import cn.hutool.core.date.DateUnit;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.excel.util.DateUtils;
|
||||
import com.alibaba.excel.util.StringUtils;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.ho.business.constant.DeviceTypeConstant;
|
||||
import com.ho.business.entity.*;
|
||||
import com.ho.business.feignclient.UserFeignClient;
|
||||
@ -25,12 +24,13 @@ import com.ho.business.vo.req.pcsStation.PcsStationReq;
|
||||
import com.ho.business.vo.req.report.ReportReqVO;
|
||||
import com.ho.business.vo.resp.CountEleData;
|
||||
import com.ho.business.vo.resp.DeviceRespVO;
|
||||
import com.ho.business.vo.resp.ShipStationRespVO;
|
||||
import com.ho.business.vo.resp.InverterResp.PowerGenerateRespVO;
|
||||
import com.ho.business.vo.resp.cabin.EarningsCalculateCountResp;
|
||||
import com.ho.business.vo.resp.cabin.EarningsCalculateResp;
|
||||
import com.ho.business.vo.resp.colCount.ColCountResp;
|
||||
import com.ho.business.vo.resp.income.RevenueOverview;
|
||||
import com.ho.business.vo.resp.income.RevenueOverviewData;
|
||||
import com.ho.business.vo.resp.mppt.MpptActiveVo;
|
||||
import com.ho.business.vo.resp.pcsStation.EarningsCalculateData;
|
||||
import com.ho.business.vo.resp.pcsStation.PcsElecData;
|
||||
import com.ho.business.vo.resp.profit.DayProfitType;
|
||||
@ -43,6 +43,7 @@ import com.ho.common.tools.exception.BusinessException;
|
||||
import com.ho.common.tools.service.RedisService;
|
||||
import com.ho.datacollect.api.constant.DataCollectConstant;
|
||||
import com.ho.user.api.vo.req.SysSubDictVO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
@ -103,6 +104,12 @@ public class EarningsCalculateServiceImpl implements EarningsCalculateService {
|
||||
@Autowired
|
||||
UserFeignClient userFeignClient;
|
||||
|
||||
@Autowired
|
||||
OpenStationService openStationService;
|
||||
|
||||
@Autowired
|
||||
EarningsCalculateMpptService earningsCalculateMpptService;
|
||||
|
||||
public static final String DICT_TYPE = "electrovalence_type";
|
||||
|
||||
/** start */
|
||||
@ -162,6 +169,10 @@ public class EarningsCalculateServiceImpl implements EarningsCalculateService {
|
||||
if (station == null || station.getId() == null) {
|
||||
return ec;
|
||||
}
|
||||
boolean flag = false;
|
||||
if(DataCollectConstant.ONE.equals(station.getInverterFlag())){
|
||||
flag = true;
|
||||
}
|
||||
Integer stationId = station.getId();
|
||||
String deviceType = colCountService.getDeviceType(stationId);
|
||||
List<DeviceRespVO> deviceRespVOS = deviceService.getListByDeviceType(stationId, deviceType);
|
||||
@ -196,11 +207,44 @@ public class EarningsCalculateServiceImpl implements EarningsCalculateService {
|
||||
|
||||
String time = earningsCalculateReq.getTime();
|
||||
ec.setMonth(time.substring(time.length() - 2, time.length()));
|
||||
String reportName = CommonConstant.REPORT_NAME;
|
||||
String billName = CommonConstant.BILL_NAME;
|
||||
String name = station.getName();
|
||||
if(CommonConstant.langTemp.EN_US.equals(earningsCalculateReq.getLang())){
|
||||
reportName = CommonConstant.REPORT_NAME_EN;
|
||||
billName = CommonConstant.BILL_NAME_EN;
|
||||
name = station.getNameEn();
|
||||
}
|
||||
if(CommonConstant.langTemp.FR_FR.equals(earningsCalculateReq.getLang())){
|
||||
reportName = CommonConstant.REPORT_NAME_FRA;
|
||||
billName = CommonConstant.BILL_NAME_FRA;
|
||||
name = station.getNameFra();
|
||||
}
|
||||
if(CommonConstant.langTemp.ES_ES.equals(earningsCalculateReq.getLang())){
|
||||
reportName = CommonConstant.REPORT_NAME_SPA;
|
||||
billName = CommonConstant.BILL_NAME_SPA;
|
||||
name = station.getNameSpa();
|
||||
}
|
||||
if(CommonConstant.langTemp.DE_DE.equals(earningsCalculateReq.getLang())){
|
||||
reportName = CommonConstant.REPORT_NAME_DE;
|
||||
billName = CommonConstant.BILL_NAME_DE;
|
||||
name = station.getNameDe();
|
||||
}
|
||||
if(CommonConstant.langTemp.PL_PL.equals(earningsCalculateReq.getLang())){
|
||||
reportName = CommonConstant.REPORT_NAME_PL;
|
||||
billName = CommonConstant.BILL_NAME_PL;
|
||||
name = station.getNamePl();
|
||||
}
|
||||
if(CommonConstant.langTemp.AR_EG.equals(earningsCalculateReq.getLang())){
|
||||
reportName = CommonConstant.REPORT_NAME_ARA;
|
||||
billName = CommonConstant.BILL_NAME_ARA;
|
||||
name = station.getNameAra();
|
||||
}
|
||||
// 电站名称(报表标题)
|
||||
if (type == 0) {
|
||||
ec.setStationName(station.getName() + "( " + time + " ) 月度报表");
|
||||
ec.setStationName(name + "( " + time + " ) "+reportName);
|
||||
} else {
|
||||
ec.setStationName(station.getName() + "( " + time + " ) 月度账单");
|
||||
ec.setStationName(name + "( " + time + " ) "+billName);
|
||||
}
|
||||
ec.setList(list);
|
||||
//充电收益
|
||||
@ -222,6 +266,10 @@ public class EarningsCalculateServiceImpl implements EarningsCalculateService {
|
||||
BigDecimal dailyChargeElec = BigDecimal.ZERO;
|
||||
//日放电量
|
||||
BigDecimal dailyDischargeElec = BigDecimal.ZERO;
|
||||
//今日收益(mppt)
|
||||
BigDecimal todayIncone = BigDecimal.ZERO;
|
||||
//今日发电量(mppt)
|
||||
BigDecimal dailyReleaseElec = BigDecimal.ZERO;
|
||||
//当月则叠加当日,否则不叠加
|
||||
if (sameMonth) {
|
||||
//将当日的日充日放叠加到日冻结中
|
||||
@ -236,8 +284,26 @@ public class EarningsCalculateServiceImpl implements EarningsCalculateService {
|
||||
dailyChargeElec = countEleData.getDailyChargeElec();
|
||||
//日放电量
|
||||
dailyDischargeElec = countEleData.getDailyDischargeElec();
|
||||
if(flag){
|
||||
//今日收益(mppt)
|
||||
String key = RedisKeyConstant.PV.STATION_PV_TODAY_PROFIT + station.getId();
|
||||
todayIncone = (BigDecimal)redisService.get(key)==null?BigDecimal.ZERO:(BigDecimal)redisService.get(key);
|
||||
//今日发电量(mppt)
|
||||
MpptActiveVo pv = openStationService.getPvActivePower(stationId);
|
||||
dailyReleaseElec = pv.getDailyReleaseElec();
|
||||
}
|
||||
}
|
||||
if(flag){
|
||||
BigDecimal monthIncone = earningsCalculateMpptService.countAllPvIncome(station.getId(),earningsCalculateReq.getBeginTime(),earningsCalculateReq.getEndTime());
|
||||
ec.setMonthIncone(monthIncone.add(todayIncone));
|
||||
BigDecimal monthReleaseElec = elecMeterValueService.selectSumByType(station.getId(),DeviceTypeConstant.ELEC_METER_VALUE_TYPE.PV_CHARGE,earningsCalculateReq.getBeginTime(),earningsCalculateReq.getEndTime(),null);
|
||||
ec.setMonthReleaseElec(monthReleaseElec.add(dailyReleaseElec));
|
||||
BigDecimal totalIncome = earningsCalculateMpptService.countAllPvIncome(station.getId(),null,null);
|
||||
ec.setTotalIncome(totalIncome.add(todayIncone));
|
||||
BigDecimal totalReleaseElec = elecMeterValueService.selectSumValue(station.getId(),DeviceTypeConstant.ELEC_METER_VALUE_TYPE.PV_CHARGE,null);
|
||||
ec.setTotalReleaseElec(totalReleaseElec.add(dailyReleaseElec));
|
||||
ec.setPvPower(station.getPvPower());
|
||||
}
|
||||
|
||||
ec.setTotalChargeElec(pcsElecData.stream().map(PcsElecData::getChargeElec).reduce(BigDecimal.ZERO, BigDecimal::add).add(dailyChargeElec));
|
||||
ec.setTotalDischargeElec(pcsElecData.stream().map(PcsElecData::getDischargeElec).reduce(BigDecimal.ZERO, BigDecimal::add).add(dailyDischargeElec));
|
||||
|
||||
@ -651,7 +717,8 @@ public class EarningsCalculateServiceImpl implements EarningsCalculateService {
|
||||
if (dateStr != null && !"".equals(dateStr)) {
|
||||
date = dateStr.substring(0, 7);
|
||||
}
|
||||
earningsCalculateSubs = earningsCalculateMapper.queryElecTemplateSubByStationId(stationId, templateType, dateStr);
|
||||
Integer elecType = 1;
|
||||
earningsCalculateSubs = earningsCalculateMapper.queryElecTemplateSubByStationId(stationId, templateType, dateStr,elecType);
|
||||
if (earningsCalculateSubs != null && earningsCalculateSubs.size() > 0) {
|
||||
return earningsCalculateSubs;
|
||||
}
|
||||
@ -1405,16 +1472,6 @@ public class EarningsCalculateServiceImpl implements EarningsCalculateService {
|
||||
revenueOverview.setStationName(station.getName());
|
||||
revenueOverview.setCapacity(station.getCapacity());
|
||||
revenueOverview.setOperationDays((int) operationDays);
|
||||
if(station.getId()==11003 || station.getId()==10942 ||station.getId()==11006){
|
||||
// 寄点电站数据
|
||||
String mainKey = CommonConstant.SHIP_ENERGY_MAIN + station.getId();
|
||||
String json = (String)redisService.get(mainKey);
|
||||
ShipStationRespVO respVO = JSON.parseObject(json,ShipStationRespVO.class);
|
||||
revenueOverview.setCharging(respVO.getPositivePowerSum()==null?BigDecimal.ZERO:BigDecimal.valueOf(respVO.getPositivePowerSum()));
|
||||
revenueOverview.setDischarging(respVO.getReversePowerSum()==null?BigDecimal.ZERO:BigDecimal.valueOf(respVO.getReversePowerSum()));
|
||||
revenueOverview.setTotalRevenue(respVO.getIncomeSum()==null?BigDecimal.ZERO:BigDecimal.valueOf(respVO.getIncomeSum()));
|
||||
return revenueOverview;
|
||||
}
|
||||
|
||||
List<RevenueOverviewData> list = getRevenueOverviewData(vo);
|
||||
|
||||
@ -1546,6 +1603,55 @@ public class EarningsCalculateServiceImpl implements EarningsCalculateService {
|
||||
return earningsCalculateMapper.getEarningsByParam(req);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PowerGenerateRespVO> getPvMonthData(EarningsCalculateReq req) {
|
||||
List<PowerGenerateRespVO> list = new ArrayList<>();
|
||||
LocalDateTime mDate = DateUtil.parse(req.getTime(), CommonConstant.DATE_YM).toLocalDateTime();
|
||||
LocalDateTime begin = mDate.with(TemporalAdjusters.firstDayOfMonth());
|
||||
LocalDateTime end = mDate.with(TemporalAdjusters.lastDayOfMonth());
|
||||
String beginTime= DateUtil.format(begin, CommonConstant.DATE_YMD);
|
||||
String endTime = DateUtil.format(end, CommonConstant.DATE_YMD);
|
||||
//光伏收益
|
||||
List<PowerGenerateRespVO> pvIncome = earningsCalculateMpptService.countPvIncome(req.getStationId(),beginTime, endTime);
|
||||
Map<String,List<PowerGenerateRespVO>> mapIncome = pvIncome.stream().collect(Collectors.groupingBy(i ->i.getDate()));
|
||||
//光伏放电
|
||||
List<Integer> types = new ArrayList<>();
|
||||
types.add(DeviceTypeConstant.ELEC_METER_VALUE_TYPE.PV_CHARGE);
|
||||
List<ElecMeterValue> elecMeterValues = elecMeterValueService.selectList(req.getStationId(), types, beginTime, endTime);
|
||||
Map<String, List<ElecMeterValue>> mapMeter = elecMeterValues.stream().collect(Collectors.groupingBy(i ->i.getDay()));
|
||||
|
||||
//根据天获取时间段
|
||||
List<DateTime> dateTimes = DateUtil.rangeToList(DateUtil.parse(beginTime), DateUtil.parse(endTime), DateField.DAY_OF_MONTH);
|
||||
for (DateTime dateTime : dateTimes){
|
||||
String date = DateUtil.format(dateTime, CommonConstant.DATE_YMD);
|
||||
PowerGenerateRespVO pv = new PowerGenerateRespVO();
|
||||
pv.setDate(date);
|
||||
List<PowerGenerateRespVO> pvIn = mapIncome.get(date);
|
||||
//收益
|
||||
if(pvIn != null){
|
||||
pv.setProfit(pvIn.get(0).getProfit());
|
||||
}
|
||||
//放电
|
||||
List<ElecMeterValue> elecs = mapMeter.get(date);
|
||||
if(elecs != null){
|
||||
pv.setPowerGenerate(elecs.stream().map(ElecMeterValue::getDigital).reduce(BigDecimal.ZERO,BigDecimal::add));
|
||||
}
|
||||
if(date.equals(endTime)){
|
||||
String key = RedisKeyConstant.PV.STATION_PV_TODAY_PROFIT + req.getStationId();
|
||||
//获取今日收益
|
||||
BigDecimal todayIncone = (BigDecimal)redisService.get(key);
|
||||
pv.setProfit(todayIncone);
|
||||
//获取今日发电
|
||||
//当前功率(光伏)、总发电量、日发电量
|
||||
MpptActiveVo todayPv = openStationService.getPvActivePower(req.getStationId());
|
||||
pv.setPowerGenerate(todayPv.getDailyReleaseElec());
|
||||
|
||||
}
|
||||
list.add(pv);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public static ArrayList<BigDecimal> list(EarningsCalculateSub earningsCalculateSub) {
|
||||
BigDecimal[] bigDecimal = new BigDecimal[49];
|
||||
ArrayList<BigDecimal> list = new ArrayList<BigDecimal>(Arrays.asList(bigDecimal));
|
||||
|
||||
@ -5,6 +5,7 @@ import com.ho.business.mapper.ElecMeterValueMapper;
|
||||
import com.ho.business.service.ElecMeterValueService;
|
||||
import com.ho.business.vo.req.bigScreen.CommonBigScreenReq;
|
||||
import com.ho.business.vo.req.carbin.ElecMeterReq;
|
||||
import com.ho.business.vo.resp.profit.DayProfitType;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@ -26,7 +27,7 @@ public class ElecMeterValueServiceImpl implements ElecMeterValueService {
|
||||
@Override
|
||||
public BigDecimal selectSumByType(Integer stationId, Integer type, String beginTime, String endTime,Integer srcId) {
|
||||
BigDecimal sum = elecMeterValueMapper.selectSumByType(stationId, type, beginTime, endTime,srcId);
|
||||
return sum;
|
||||
return sum == null ? BigDecimal.ZERO:sum;
|
||||
}
|
||||
|
||||
//按日期和类型删除
|
||||
@ -77,7 +78,7 @@ public class ElecMeterValueServiceImpl implements ElecMeterValueService {
|
||||
@Override
|
||||
public BigDecimal selectSumValue(Integer stationId, Integer type,Integer srcId) {
|
||||
BigDecimal sum = elecMeterValueMapper.selectSumValue(stationId, type,srcId);
|
||||
return sum;
|
||||
return sum == null ? BigDecimal.ZERO:sum;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -96,4 +97,9 @@ public class ElecMeterValueServiceImpl implements ElecMeterValueService {
|
||||
public List<ElecMeterValue> selectGroupByDay(CommonBigScreenReq req) {
|
||||
return elecMeterValueMapper.selectGroupByDay(req);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DayProfitType> getElec(String begin, String end, Integer groupId, Integer type,List<Integer> stationIds) {
|
||||
return elecMeterValueMapper.getElec(begin,end,groupId,type,stationIds);
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user