4 Commits
dev ... prod

Author SHA1 Message Date
41cd594c13 统一登陆接口修改 2026-04-16 10:56:49 +08:00
c63b92481b 中车、寄点站点融合 2026-04-14 17:33:01 +08:00
21a3c2f9cf 添加英文大屏接口修改 2026-03-07 11:14:02 +08:00
b8a3f9e0f9 天气同步问题bug处理 2025-11-20 17:19:14 +08:00
72 changed files with 564 additions and 2741 deletions

View File

@ -71,8 +71,6 @@ public interface DeviceTypeConstant {
//英博DC/DCMPPT
String DCDC = "dcdc";
String MPPT ="mppt";
//柴油发电机_济宁微山湖
String CF = "cf";
@ -373,8 +371,6 @@ public interface DeviceTypeConstant {
String BMS_MIN_VOL = "bmsMinVol";
}
//mppt 日发起始
String PV_DAILY_CHARGE_START = "pvDailyReleaseStart";
//日充起始
String DAILY_CHARGE_START = "dailyChargeStart";
//日放起始

View File

@ -1,101 +0,0 @@
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;
}

View File

@ -52,9 +52,6 @@ public class Station implements Serializable {
@ApiModelProperty(value = "额定功率")
private BigDecimal ratePower;
@ApiModelProperty(value = "额定功率(光伏mppt)")
private BigDecimal pvPower;
@ApiModelProperty(value = "sn编号列表")
private List<String> snList;

View File

@ -1,48 +0,0 @@
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;
}

View File

@ -124,11 +124,6 @@ public class StationPutReqVO {
@ApiModelProperty(value = "是否接入光伏0代表不接,1代表接入")
private Integer inverterFlag;
@ApiModelProperty(value = "额定功率(mppt)")
@Range(max = 999999999, message = "额定功率过大")
BigDecimal pvPower;
//图片地址
@ApiModelProperty(value = "图片地址")
Integer logoPictureId;

View File

@ -1,16 +0,0 @@
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;
}

View File

@ -102,10 +102,6 @@ public class StationReqVO {
@ApiModelProperty(value = "是否接入光伏0默认不接入 1接入")
private Integer inverterFlag;
@ApiModelProperty(value = "额定功率(mppt)")
@Range(max = 999999999, message = "额定功率过大")
BigDecimal pvPower;
@ApiModelProperty(value = "卡号")
private String iccId;

View File

@ -34,7 +34,6 @@ public class EarningsCalculateReq {
@ApiModelProperty(value = "结束时间",hidden = true)
String endTime;
@ApiModelProperty(value = "多语言切换-查询字段")
private String lang;
}

View File

@ -31,7 +31,4 @@ public class PcsStationReq extends StationReq {
@ApiModelProperty(value = "分段类型",hidden = true)
String stationName;
@ApiModelProperty(value = "多语言切换-查询字段")
private String lang;
}

View File

@ -88,16 +88,4 @@ 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;
}

View File

@ -36,6 +36,4 @@ public class AnnualChartValue {
@ApiModelProperty(value = "容量")
BigDecimal stationCapacity;
@ApiModelProperty(value = "mppt发电量")
BigDecimal release;
}

View File

@ -1,37 +0,0 @@
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;
}

View File

@ -52,7 +52,4 @@ public class Subdata {
//年总充()
@ApiModelProperty(value = "总充")
BigDecimal charge;
@ApiModelProperty(value = "mppt总发电量")
BigDecimal release;
}

View File

@ -1,20 +0,0 @@
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;
}

View File

@ -1,17 +0,0 @@
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;
}

View File

@ -43,18 +43,4 @@ 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;
}

View File

@ -85,7 +85,7 @@ public interface TdFeignClient {
Integer getCountData(@RequestBody TdBase tdBase);
@PostMapping(value = ContextConstant.TD_CONTEXT + "device001/selectMaxValue")
DataResult<PointData> selectMaxValue(@RequestBody TdBaseTimeQuery query);
DataResult<PointData> selectMaxValue(@RequestBody TdBaseTimeQuery query);
@PostMapping(value = ContextConstant.TD_CONTEXT + "device001/queryPointTableList")
DataResult<List<StationHomeRespVo>> queryPointTableList(@RequestBody TdBaseTimeQuery query);
@ -99,9 +99,6 @@ 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);

View File

@ -168,12 +168,6 @@ 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] 异常!");

View File

@ -17,18 +17,20 @@ import java.math.BigDecimal;
import java.util.List;
/**
* @author xwz
* @description 针对表【earnings_calculate】的数据库操作Mapper
* @createDate 2023-09-26
* @Entity com.ho.business.entity.EarningsCalculate
*/
* @author xwz
* @description 针对表【earnings_calculate】的数据库操作Mapper
* @createDate 2023-09-26
* @Entity com.ho.business.entity.EarningsCalculate
*/
@Mapper
public interface EarningsCalculateMapper {
int insertSelective(EarningsCalculate record);
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);
@ -48,7 +50,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,@Param("elecType")Integer elecType);
public List<EarningsCalculateSub> queryElecTemplateSubByStationId(@Param("stationId")Integer stationId, @Param("templateType")Integer templateType,@Param("date")String date);
public List<EarningsCalculateSub> queryElecRateTemplateSubByStationId(@Param("stationId")Integer stationId, @Param("templateType")Integer templateType,@Param("date")String date);

View File

@ -1,30 +0,0 @@
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);
}

View File

@ -4,7 +4,6 @@ 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;
@ -55,7 +54,4 @@ 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);
}

View File

@ -36,7 +36,7 @@ public interface StationMapper {
List<Station> selectByDimName(String name,Integer groupId);
List<Station> selectByIds(List<Integer> ids);
List<Station> selectByIds(@Param("ids") List<Integer> ids,@Param("lang") String lang);
Station selectByNameAndId(@Param("name") String name, @Param("id") Integer id, @Param("deptId") Integer deptId);

View File

@ -1,21 +0,0 @@
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);
}

View File

@ -1,34 +0,0 @@
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);
}

View File

@ -7,7 +7,6 @@ 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;
@ -138,5 +137,4 @@ public interface EarningsCalculateService {
List<DayProfitType> getEarningsByParam(CommonBigScreenReq req);
List<PowerGenerateRespVO> getPvMonthData(EarningsCalculateReq req);
}

View File

@ -3,7 +3,6 @@ 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;
@ -51,6 +50,4 @@ public interface ElecMeterValueService {
* @return
*/
List<ElecMeterValue> selectGroupByDay(CommonBigScreenReq req);
List<DayProfitType> getElec(String begin, String end, Integer groupId, Integer type,List<Integer> stationIds);
}

View File

@ -62,7 +62,7 @@ public interface IargeScreenShowService {
* @param stationIds
* @return
*/
List<Subdata> getCommonRegionList(List<Integer> stationIds);
List<Subdata> getCommonRegionList(List<Integer> stationIds,String lang);
/**
* 获取节能减排数据
@ -90,27 +90,27 @@ public interface IargeScreenShowService {
* 查询收益按电站分组
* @return
*/
List<Subdata> getCommonProfit(String beginString, String endString,List<Integer> stationIds);
List<Subdata> getCommonProfit(String beginString, String endString,List<Integer> stationIds,String lang);
/**
* 通用系统转换率
* @param stationIds
* @return
*/
List<Subdata> getCommonEfficiencyDate(List<Integer> stationIds);
List<Subdata> getCommonEfficiencyDate(List<Integer> stationIds,String lang);
/**
* 获取统计电站信息
* @param stationIds
* @return
*/
List<Station> getCountStations(List<Integer> stationIds);
List<Station> getCountStations(List<Integer> stationIds,String lang);
/**
* 通用装机容量倒排
* @return
*/
List<Subdata> getCommonCapacity(List<Integer> stationIds);
List<Subdata> getCommonCapacity(List<Integer> stationIds,String lang);
/**
* 通用根据天获取告警数目曲线
@ -118,18 +118,4 @@ 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);
}

View File

@ -4,7 +4,6 @@ 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;
@ -25,8 +24,6 @@ public interface OpenStationService {
ActiveReactivePower getAcPower(Integer stationId);
MpptActiveVo getPvActivePower(Integer stationId);
//环控
List<CircleCtrlResp> getCircle(List<DeviceRespVO> deviceList );
@ -45,7 +42,7 @@ public interface OpenStationService {
* @param req
* @param response
*/
void exportEleData(PcsStationReq req, HttpServletResponse response,String lang);
void exportEleData(PcsStationReq req, HttpServletResponse response);
/**
* 查询日冻结数据

View File

@ -25,8 +25,6 @@ public interface OutApiService {
void dayPVCharge(MonitorQuery monitorQuery);
void dayPVMpptCharge(MonitorQuery monitorQuery);
//天小时的充放电量
void hourChargeDeal(MonitorQuery monitorQuery) throws ParseException;

View File

@ -8,7 +8,6 @@ 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;
@ -73,8 +72,6 @@ public interface StationHomeService {
*/
List<AppRealTimeCurveRespVo> getOpticalStorageCurve(MonitorQuery monitorQuery);
List<AppRealTimeCurveRespVo> pvCurve(MonitorQuery monitorQuery);
List<TemperatureHumidityResp> getTemperatureHumidityCurve(MonitorQuery monitorQuery);
CountEleData getCountEleData(StationReq req);
@ -99,6 +96,6 @@ public interface StationHomeService {
*/
OutStationData getStationData(StationReq req);
List<PowerGenerateRespVO> getPvData(PcsStationReq req);
List<PcsElecData> getPvChargeElec(PcsStationReq req);
}

View File

@ -1,17 +0,0 @@
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);
}

View File

@ -27,7 +27,7 @@ public interface StationService {
List<StationRespVO> selectByIds(List<Integer> ids);
List<Station> selectStationsByIds(List<Integer> ids);
List<Station> selectStationsByIds(List<Integer> ids,String lang);
Station insertStation(StationReqVO vo);

View File

@ -1623,7 +1623,7 @@ public class DeviceServiceImpl implements DeviceService {
}
}else if(CommonConstant.THREE.equals(vo.getType())){
//导出电站数据
List<Station> list = stationService.selectStationsByIds(vo.getStationIds());
List<Station> list = stationService.selectStationsByIds(vo.getStationIds(),null);
String fileName = "station";
String sheetName = "data";
try {

View File

@ -1,212 +0,0 @@
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);
}
}
}
}
}

View File

@ -25,14 +25,12 @@ 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.InverterResp.PowerGenerateRespVO;
import com.ho.business.vo.resp.ShipStationRespVO;
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;
@ -45,7 +43,6 @@ 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;
@ -106,12 +103,6 @@ public class EarningsCalculateServiceImpl implements EarningsCalculateService {
@Autowired
UserFeignClient userFeignClient;
@Autowired
OpenStationService openStationService;
@Autowired
EarningsCalculateMpptService earningsCalculateMpptService;
public static final String DICT_TYPE = "electrovalence_type";
/** start */
@ -171,10 +162,6 @@ 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);
@ -209,17 +196,11 @@ 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;
if(CommonConstant.langTemp.EN_US.equals(earningsCalculateReq.getLang())){
reportName = CommonConstant.REPORT_NAME_EN;
billName = CommonConstant.BILL_NAME_EN;
}
// 电站名称(报表标题)
if (type == 0) {
ec.setStationName(station.getName() + "( " + time + " ) "+reportName);
ec.setStationName(station.getName() + "( " + time + " ) 月度报表");
} else {
ec.setStationName(station.getName() + "( " + time + " ) "+billName);
ec.setStationName(station.getName() + "( " + time + " ) 月度账单");
}
ec.setList(list);
//充电收益
@ -241,10 +222,6 @@ 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) {
//将当日的日充日放叠加到日冻结中
@ -259,26 +236,8 @@ 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));
@ -692,8 +651,7 @@ public class EarningsCalculateServiceImpl implements EarningsCalculateService {
if (dateStr != null && !"".equals(dateStr)) {
date = dateStr.substring(0, 7);
}
Integer elecType = 1;
earningsCalculateSubs = earningsCalculateMapper.queryElecTemplateSubByStationId(stationId, templateType, dateStr,elecType);
earningsCalculateSubs = earningsCalculateMapper.queryElecTemplateSubByStationId(stationId, templateType, dateStr);
if (earningsCalculateSubs != null && earningsCalculateSubs.size() > 0) {
return earningsCalculateSubs;
}
@ -1588,56 +1546,6 @@ 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);
String nowTime = DateUtil.format(new Date(), 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(nowTime)){
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));

View File

@ -5,7 +5,6 @@ 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;
@ -27,7 +26,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 == null ? BigDecimal.ZERO:sum;
return sum;
}
//按日期和类型删除
@ -78,7 +77,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 == null ? BigDecimal.ZERO:sum;
return sum;
}
@Override
@ -97,9 +96,4 @@ 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);
}
}

View File

@ -21,10 +21,8 @@ import com.ho.business.vo.resp.ProvinceStation;
import com.ho.business.vo.resp.ShipStationRespVO;
import com.ho.business.vo.resp.colCount.ColCountResp;
import com.ho.business.vo.resp.iargeScreen.*;
import com.ho.business.vo.resp.mppt.MpptActiveVo;
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.entity.SimpleUser;
import com.ho.common.tools.service.RedisService;
import com.ho.common.tools.util.BigDecimalUtil;
@ -81,12 +79,6 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
@Autowired
TranslateProvinceMapper translateProvinceMapper;
@Autowired
OpenStationService openStationService;
@Autowired
EarningsCalculateMpptService earningsCalculateMpptService;
private final static BigDecimal value = new BigDecimal("0.475");
private final static BigDecimal parameter = new BigDecimal("18.3");
@ -211,62 +203,6 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
return annualOverviewResp;
}*/
private AnnualPvOverviewResp getPvOverviewDatas(List<Station> list){
AnnualPvOverviewResp annualOverviewResp = new AnnualPvOverviewResp();
//装机容量
BigDecimal capacity = BigDecimal.ZERO;
//电站总数
Integer stationNumber = list.size();
BigDecimal todayIncone = BigDecimal.ZERO;
BigDecimal dailyReleaseElec = BigDecimal.ZERO;
BigDecimal yearIncone = BigDecimal.ZERO;
BigDecimal totalIncome = BigDecimal.ZERO;
BigDecimal yearReleaseElec = BigDecimal.ZERO;
BigDecimal totalReleaseElec = BigDecimal.ZERO;
//今年开始时间、结束时间
DateTime begin = DateUtil.beginOfYear(new Date());
String beginString = DateUtil.format(begin, CommonConstant.DATE_YMD);
String endString = DateUtil.format(DateUtil.endOfYear(new Date()), CommonConstant.DATE_YMD);
for (Station station : list) {
//装机容量进行累加
BigDecimal capacityStation = station.getCapacity();
if (capacityStation != null) {
capacity = capacity.add(capacityStation);
}
String key = RedisKeyConstant.PV.STATION_PV_TODAY_PROFIT + station.getId();
// 今日收益
BigDecimal tIncone = (BigDecimal)redisService.get(key);
todayIncone = todayIncone.add(tIncone==null?BigDecimal.ZERO:tIncone);
// 年收益
BigDecimal yIncone = earningsCalculateMpptService.countAllPvIncome(station.getId(),beginString,endString);
yearIncone = yearIncone.add(yIncone);
// 累计收益
BigDecimal allIncone = earningsCalculateMpptService.countAllPvIncome(station.getId(),null,null);
totalIncome = totalIncome.add(allIncone);
// 日发电
MpptActiveVo todayPv = openStationService.getPvActivePower(station.getId());
dailyReleaseElec = dailyReleaseElec.add(todayPv.getDailyReleaseElec());
// 年发电
BigDecimal yReleaseElec = elecMeterValueService.selectSumByType(station.getId(),DeviceTypeConstant.ELEC_METER_VALUE_TYPE.PV_CHARGE,beginString,endString,null);
yearReleaseElec = yearReleaseElec.add(yReleaseElec);
// 累计发电
BigDecimal allReleaseElec = elecMeterValueService.selectSumValue(station.getId(),DeviceTypeConstant.ELEC_METER_VALUE_TYPE.PV_CHARGE,null);
totalReleaseElec = totalReleaseElec.add(allReleaseElec);
}
//装机容量、电站数量
annualOverviewResp.setCapacity(capacity);
annualOverviewResp.setStationNumber(stationNumber);
// 今日收益、年收益、累计收益
annualOverviewResp.setTodayIncone(todayIncone);
annualOverviewResp.setYearIncone(yearIncone.add(todayIncone));
annualOverviewResp.setTotalIncome(totalIncome.add(todayIncone));
//今日发电量、年发电量、累计发电量
annualOverviewResp.setDailyReleaseElec(dailyReleaseElec);
annualOverviewResp.setYearReleaseElec(yearReleaseElec.add(dailyReleaseElec));
annualOverviewResp.setTotalReleaseElec(totalReleaseElec.add(dailyReleaseElec));
return annualOverviewResp;
}
private AnnualOverviewResp getOverviewDatas(List<Station> list) {
AnnualOverviewResp annualOverviewResp = new AnnualOverviewResp();
List<Station> stations = new ArrayList<>();
@ -289,10 +225,22 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
BigDecimal dayCharge = BigDecimal.ZERO;
BigDecimal dayDischarge = BigDecimal.ZERO;
StringBuffer stationDayLog = new StringBuffer();
// ColCountReq colCountReq = new ColCountReq();
// colCountReq.setCol(DataCollectConstant.Elec_Meter.TOTAL_CHARGE);
// List<Integer> ids = stations.stream().map(Station::getId).collect(Collectors.toList());
// colCountReq.setIds(ids);
// List<ColCountResp> colCountResps = colCountService.selectByParam(colCountReq);
// Map<Integer, String> stationMapAndType = new HashMap<>();
// if (colCountResps != null) {
// stationMapAndType = colCountResps.stream().collect(Collectors.toMap(ColCountResp::getStationId, ColCountResp::getDeviceType, (k1, k2) -> k1));
// }
for (Station station : stations) {
// StationReq req = new StationReq();
// req.setStationId(station.getId());
// req.setDeviceType(stationMapAndType.get(req.getStationId()));
BigDecimal dailyChargeElec = BigDecimal.ZERO;
BigDecimal dailyDischargeElec = BigDecimal.ZERO;
// CountEleData countEleData = stationHomeService.getCountEleData(req);
CountEleData countEleData = getByRedisData(station.getId());
if (null == countEleData || null == countEleData.getDailyChargeElec() || null == countEleData.getDailyDischargeElec()) {
dailyChargeElec = BigDecimal.ZERO;
@ -336,6 +284,7 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
annualOverviewResp.setYestProfit(overviewProfit.getYestProfit()==null?null:overviewProfit.getYestProfit().multiply(new BigDecimal("10000")));
annualOverviewResp.setYearProfit(overviewProfit.getYearProfit()==null?null:overviewProfit.getYearProfit().multiply(new BigDecimal("10000")));
annualOverviewResp.setTotalProfit(overviewProfit.getTotalProfit()==null?null:overviewProfit.getTotalProfit().multiply(new BigDecimal("10000")));
annualOverviewResp.setTodayProfit(overviewProfit.getTodayProfit()==null?null:overviewProfit.getTodayProfit().multiply(new BigDecimal("10000")));
//时间当年
DateTime begin = DateUtil.beginOfYear(new Date());
String beginString = DateUtil.format(begin, CommonConstant.DATE_YMD);
@ -534,23 +483,7 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
List<Station> list = stationService.selectAll();
return getEnergySavingRespVo(list);
}
private EnergySavingRespVo getPvEnergySavingRespVo(List<Station> list){
EnergySavingRespVo energySavingRespVo = new EnergySavingRespVo();
AnnualPvOverviewResp vo = getPvOverviewDatas(list);
BigDecimal totalReleaseElec = vo.getTotalReleaseElec();
BigDecimal reductionCO2 = totalReleaseElec.multiply(value);
energySavingRespVo.setReductionCO2(reductionCO2);
//等效植树量 等效植树量=等效减排CO2/183/40
BigDecimal treePlanting = reductionCO2.divide(parameter, 6, BigDecimal.ROUND_HALF_UP).divide(fours, 6, BigDecimal.ROUND_HALF_UP);
energySavingRespVo.setTreePlanting(treePlanting);
//等效节约煤 等效节约煤=所有电站总充*节约标准煤转换系数(04)
BigDecimal equivalentCoal = totalReleaseElec.multiply(four);
energySavingRespVo.setEquivalentCoal(equivalentCoal);
//等效经济收入 等效经济收入=等效节约煤*煤价 (600元/吨) 等效节约煤此处单位为kg,故而单价调整为0.6元/kg
energySavingRespVo.setIncome(equivalentCoal.multiply(coalPrice));
return energySavingRespVo;
}
private EnergySavingRespVo getEnergySavingRespVo(List<Station> list) {
EnergySavingRespVo energySavingRespVo = new EnergySavingRespVo();
List<Station> stations = new ArrayList<>();
@ -601,56 +534,6 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
return subdataList;
}
private List<Subdata> getPvElec(String beginString, String endString, List<Station> stations){
Map<Integer, Station> stationMap = stations.stream().collect(Collectors.toMap(Station::getId, Function.identity()));
Integer groupId = null;
for (Station station : stations) {
groupId = station.getGroupId();
}
List<DayProfitType> stationElec = elecMeterValueService.getElec(beginString, endString, groupId,DeviceTypeConstant.ELEC_METER_VALUE_TYPE.PV_CHARGE,null);
Map<Integer, List<DayProfitType>> profitMap = stationElec.stream().collect(Collectors.groupingBy(DayProfitType::getStationId));
//创建返回对象
List<Subdata> subdataList = new ArrayList<>();
profitMap.forEach((k, v) -> {
Subdata subdata = new Subdata();
//收益
BigDecimal result = v.stream().map(DayProfitType::getDigital).reduce(BigDecimal.ZERO,BigDecimal::add);
if (stationMap.containsKey(k)) {
Station station = stationMap.get(k);
subdata.setStationId(k);
subdata.setStationName(station.getName());
subdata.setRelease(result);
subdataList.add(subdata);
}
});
subdataList.sort(Comparator.comparing((Subdata::getIncomeValue)).reversed());
return subdataList;
}
private List<Subdata> getPvSubdata(String beginString, String endString, List<Station> stations){
Map<Integer, Station> stationMap = stations.stream().collect(Collectors.toMap(Station::getId, Function.identity()));
Integer groupId = null;
for (Station station : stations) {
groupId = station.getGroupId();
}
List<DayProfitType> stationProfit = earningsCalculateMpptService.getProfit(beginString, endString, groupId);
Map<Integer, List<DayProfitType>> profitMap = stationProfit.stream().collect(Collectors.groupingBy(DayProfitType::getStationId));
//创建返回对象
List<Subdata> subdataList = new ArrayList<>();
profitMap.forEach((k, v) -> {
Subdata subdata = new Subdata();
//收益
BigDecimal result = v.stream().map(DayProfitType::getDigital).reduce(BigDecimal.ZERO,BigDecimal::add);
if (stationMap.containsKey(k)) {
Station station = stationMap.get(k);
subdata.setStationId(k);
subdata.setStationName(station.getName());
subdata.setIncomeValue(result);
subdataList.add(subdata);
}
});
subdataList.sort(Comparator.comparing((Subdata::getIncomeValue)).reversed());
return subdataList;
}
@NotNull
private List<Subdata> getSubdata(String beginString, String endString, List<Station> stations) {
Map<Integer, Station> stationMap = stations.stream().collect(Collectors.toMap(Station::getId, Function.identity()));
@ -704,76 +587,6 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
return subdataList;
}
private List<Subdata> getPvElecByDay(String beginString, String endString, List<Station> stations){
Map<Integer, Station> stationMap = stations.stream().collect(Collectors.toMap(Station::getId, Function.identity()));
Integer groupId = null;
List<Integer> ids = new ArrayList<>();
for (Station station : stations) {
groupId = station.getGroupId();
ids.add(station.getId());
}
CommonBigScreenReq req = new CommonBigScreenReq();
req.setBeginTime(beginString);
req.setEndTime(endString);
req.setStationIds(ids);
req.setGroupId(groupId);
List<DayProfitType> stationElec = elecMeterValueService.getElec(beginString, endString, groupId,DeviceTypeConstant.ELEC_METER_VALUE_TYPE.PV_CHARGE,ids);
Map<String, List<DayProfitType>> elecMap = stationElec.stream().collect(Collectors.groupingBy(s -> s.getStationId() + "," + s.getDay()));
//创建返回对象
List<Subdata> subdataList = new ArrayList<>();
elecMap.forEach((k, v) -> {
Subdata subdata = new Subdata();
// 收益
BigDecimal result = v.stream().map(DayProfitType::getDigital).reduce(BigDecimal.ZERO,BigDecimal::add);
String[] split = k.split(",");
Integer stationId = Integer.parseInt(split[0]);
if (stationMap.containsKey(stationId)) {
Station station = stationMap.get(stationId);
subdata.setStationId(stationId);
subdata.setStationName(split[1] + station.getName());
subdata.setRelease(result);
subdataList.add(subdata);
}
});
subdataList.sort(Comparator.comparing((Subdata::getIncomeValue)).reversed());
return subdataList;
}
private List<Subdata> getPvSubdataByDay(String beginString, String endString, List<Station> stations){
Map<Integer, Station> stationMap = stations.stream().collect(Collectors.toMap(Station::getId, Function.identity()));
Integer groupId = null;
List<Integer> ids = new ArrayList<>();
for (Station station : stations) {
groupId = station.getGroupId();
ids.add(station.getId());
}
CommonBigScreenReq req = new CommonBigScreenReq();
req.setBeginTime(beginString);
req.setEndTime(endString);
req.setStationIds(ids);
req.setGroupId(groupId);
List<DayProfitType> stationProfit = earningsCalculateMpptService.getEarningsByParam(req);
Map<String, List<DayProfitType>> profitMap = stationProfit.stream().collect(Collectors.groupingBy(s -> s.getStationId() + "," + s.getDay()));
//创建返回对象
List<Subdata> subdataList = new ArrayList<>();
profitMap.forEach((k, v) -> {
Subdata subdata = new Subdata();
// 收益
BigDecimal result = v.stream().map(DayProfitType::getDigital).reduce(BigDecimal.ZERO,BigDecimal::add);
String[] split = k.split(",");
Integer stationId = Integer.parseInt(split[0]);
if (stationMap.containsKey(stationId)) {
Station station = stationMap.get(stationId);
subdata.setStationId(stationId);
subdata.setStationName(split[1] + station.getName());
subdata.setIncomeValue(result);
subdataList.add(subdata);
}
});
subdataList.sort(Comparator.comparing((Subdata::getIncomeValue)).reversed());
return subdataList;
}
private List<Subdata> getSubdataByDay(String beginString, String endString, List<Station> stations) {
Map<Integer, Station> stationMap = stations.stream().collect(Collectors.toMap(Station::getId, Function.identity()));
@ -1170,15 +983,48 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
}
private List<ProvinceStation> getProvince(List<Station> stations) {
Map<String, List<Station>> natioMap = stations.stream().filter(s->s.getProvince()!=null).collect(Collectors.groupingBy(Station::getNation));
List<ProvinceStation> list = new ArrayList<>();
natioMap.forEach((k, v) -> {
//地址选取前三个字
// Map<String, List<Station>> provincesMap = stations.stream().sorted(Comparator.comparing(Station::getName)).collect(Collectors.groupingBy(s -> {
// return s.getAddress().substring(0, 3);
// }));
// //创建返回值集合
// List<ProvinceStation> provinceList = new ArrayList<>();
// provincesMap.forEach((k, v) -> {
// ProvinceStation provinceStation = new ProvinceStation();
// if (k.contains("省")) {
// provinceStation.setName(k.replace("省", ""));
// } else if (k.contains("广西")) {
// provinceStation.setName(CommonConstant.ChineseProvinces.guangxi);
// } else if (k.contains("宁夏")) {
// provinceStation.setName(CommonConstant.ChineseProvinces.ningxia);
// } else if (k.contains("内蒙古")) {
// provinceStation.setName(CommonConstant.ChineseProvinces.neimenggu);
// } else if (k.contains("新疆")) {
// provinceStation.setName(CommonConstant.ChineseProvinces.xinjiang);
// } else if (k.contains("西藏")) {
// provinceStation.setName(CommonConstant.ChineseProvinces.xizang);
// } else if (k.contains("香港")) {
// provinceStation.setName(CommonConstant.ChineseProvinces.xianggang);
// } else if (k.contains("澳门")) {
// provinceStation.setName(CommonConstant.ChineseProvinces.aomen);
// } else {
// provinceStation.setName(k.replaceFirst("市", ""));
// }
// provinceStation.setList(v);
// provinceList.add(provinceStation);
// });
List<TranslateProvince> dictProvince = translateProvinceMapper.getDictProvince();
Map<String, String> provinceMap = dictProvince.stream().collect(Collectors.toMap(s -> s.getName(), s -> s.getNameEn(), (k1, k2) -> k1));
Map<String, List<Station>> provincesMap = stations.stream().filter(s->s.getProvince()!=null).collect(Collectors.groupingBy(Station::getProvince));
List<ProvinceStation> provinceList = new ArrayList<>();
provincesMap.forEach((k, v) -> {
ProvinceStation provinceStation = new ProvinceStation();
provinceStation.setName(k);
provinceStation.setNameEn(provinceMap.get(k));
provinceStation.setList(v);
list.add(provinceStation);
provinceList.add(provinceStation);
});
return list;
return provinceList;
}
@Override
@ -1234,36 +1080,6 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
return getAnnualChartValues(stations);
}
private List<AnnualChartValue> getAnnualReleaseValues(List<Station> stations){
Integer groupId = null;
for (Station station : stations) {
groupId = station.getGroupId();
}
//时间近30天
Date date = DateUtil.yesterday();
Date startDate = DateUtils.addDays(date, -maxSize);
Date endDate = DateUtil.endOfDay(date);
List<DateTime> dateTimes = DateUtil.rangeToList(startDate, endDate, DateField.DAY_OF_MONTH);
String beginTime = DateUtil.format(startDate, CommonConstant.DATE_YMD);
String endTime = DateUtil.format(endDate, CommonConstant.DATE_YMD);
List<DayProfitType> stationElec = elecMeterValueService.getElec(beginTime, endTime, groupId,DeviceTypeConstant.ELEC_METER_VALUE_TYPE.PV_CHARGE,null);
Map<String, List<DayProfitType>> elecMap = stationElec.stream().collect(Collectors.groupingBy(s -> s.getDay()));
List<AnnualChartValue> resultList = new ArrayList<>();
for (DateTime dateTime:dateTimes){
AnnualChartValue annualChartValue = new AnnualChartValue();
BigDecimal release = BigDecimal.ZERO;
String time = DateUtil.format(dateTime, CommonConstant.DATE_YMD);
List<DayProfitType> elecList = elecMap.get(time);
if(elecList != null && elecList.size()>0){
release = elecList.stream().map(DayProfitType::getDigital).reduce(BigDecimal.ZERO,BigDecimal::add);
}
annualChartValue.setTime(time);
annualChartValue.setRelease(release);
resultList.add(annualChartValue);
}
return resultList;
}
private List<AnnualChartValue> getAnnualChartValues(List<Station> stations) {
//时间近30天
Date date = DateUtil.yesterday();
@ -1333,6 +1149,47 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
annualChartValue.setDayDischarge(totalDischarge);
resultList.add(annualChartValue);
}
/*********************************************************/
// List<AnnualChartValue> annualChartList = new ArrayList<>();
// annualChartList = dateTimes.stream().map(s -> {
// AnnualChartValue annualChartValue = new AnnualChartValue();
// String dateString = s + "";
// String substring = dateString.substring(0, 10);
// annualChartValue.setTime(substring);
// annualChartValue.setDayCharge(BigDecimal.ZERO);
// annualChartValue.setDayDischarge(BigDecimal.ZERO);
// return annualChartValue;
// }).collect(Collectors.toList());
// for (AnnualChartValue annualChartValue : annualChartList) {
// String time = annualChartValue.getTime();
// //年总充/年总放(日冻结表计算)或者总充/总放
// BigDecimal yearCharge = BigDecimal.ZERO;
// BigDecimal yearDischarge = BigDecimal.ZERO;
// List<ElecMeterValue> byTimeList = getByTimeList(stations, time, time);
// List<ElecMeterValue> chargeList = new ArrayList<>();
// byTimeList.stream().filter(i -> DeviceTypeConstant.ELEC_METER_VALUE_TYPE.CHARGE.equals(i.getType())).forEach(s -> chargeList.add(s));
// List<ElecMeterValue> disList = new ArrayList<>();
// byTimeList.stream().filter(i -> DeviceTypeConstant.ELEC_METER_VALUE_TYPE.DISCHARGE.equals(i.getType())).forEach(s -> disList.add(s));
// for (ElecMeterValue elecMeterValue : chargeList) {
// if (FENGStationId == elecMeterValue.getStationId()) {
// yearCharge = yearCharge.add(elecMeterValue.getDigital().multiply(new BigDecimal("1000")));
// } else {
// yearCharge = yearCharge.add(elecMeterValue.getDigital());
// }
//
// }
// for (ElecMeterValue elecMeterValue : disList) {
// if (FENGStationId == elecMeterValue.getStationId()) {
// yearDischarge = yearDischarge.add(elecMeterValue.getDigital().multiply(new BigDecimal("1000")));
// } else {
// yearDischarge = yearDischarge.add(elecMeterValue.getDigital());
// }
//
// }
//
// annualChartValue.setDayCharge(yearCharge);
// annualChartValue.setDayDischarge(yearDischarge);
// }
return resultList;
}
@ -1453,79 +1310,28 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
if (stationIds == null) {
return new AnnualOverviewResp();
}
List<Station> list = stationService.selectStationsByIds(stationIds);
List<Station> list = stationService.selectStationsByIds(stationIds,null);
AnnualOverviewResp annualOverviewResp = getOverviewDatas(list);
return annualOverviewResp;
}
@Override
public AnnualPvOverviewResp getPvOverviewData(List<Integer> stationIds) {
if (stationIds == null) {
return new AnnualPvOverviewResp();
}
List<Station> list = getCountPvStations(stationIds);
AnnualPvOverviewResp annualOverviewResp = getPvOverviewDatas(list);
return annualOverviewResp;
}
@Override
public EnergySavingRespVo getPvEnergySaving(List<Integer> stationIds) {
if (stationIds == null) {
return new EnergySavingRespVo();
}
List<Station> list = getCountPvStations(stationIds);
return getPvEnergySavingRespVo(list);
}
@Override
public List<AnnualChartValue> getPVCommonProfitCurve(CockpitReqVO vo, List<Integer> stationIds) {
public List<Subdata> getCommonRegionList(List<Integer> stationIds,String lang) {
if (stationIds == null) {
return new ArrayList<>();
}
List<Station> list = getCountPvStations(stationIds);
return getPvProfitCurve(vo, list);
}
@Override
public List<Subdata> getCommonRegionList(List<Integer> stationIds) {
if (stationIds == null) {
return new ArrayList<>();
}
List<Station> list = getCountStations(stationIds);
List<Station> list = getCountStations(stationIds,lang);
List<Subdata> regionList = new ArrayList<>();
Map<String, List<Station>> nationMap = list.stream().filter(i -> i.getProvince() != null).collect(Collectors.groupingBy(Station::getNation));
if (nationMap.size() > CommonConstant.ONE) {
regionList = getListSubdata(nationMap);
Map<String, List<Station>> provinceMap = list.stream().filter(i -> i.getProvince() != null).collect(Collectors.groupingBy(Station::getProvince));
if (provinceMap.size() > CommonConstant.ONE) {
regionList = getListSubdata(provinceMap);
} else {
Map<String, List<Station>> provinceMap = list.stream().filter(i -> i.getCity() != null).collect(Collectors.groupingBy(Station::getProvince));
if (provinceMap.size() > CommonConstant.ONE) {
regionList = getListSubdata(provinceMap);
} else {
Map<String, List<Station>> cityMap = list.stream().filter(i -> i.getDistrict() != null).collect(Collectors.groupingBy(Station::getCity));
Map<String, List<Station>> cityMap = list.stream().filter(i -> i.getCity() != null).collect(Collectors.groupingBy(Station::getCity));
if (cityMap.size() > CommonConstant.ONE) {
regionList = getListSubdata(cityMap);
}
}
return regionList;
}
@Override
public List<Subdata> getCommonPvRegionList(List<Integer> stationIds) {
if (stationIds == null) {
return new ArrayList<>();
}
List<Station> list = getCountPvStations(stationIds);
List<Subdata> regionList = new ArrayList<>();
Map<String, List<Station>> nationMap = list.stream().filter(i -> i.getProvince() != null).collect(Collectors.groupingBy(Station::getNation));
if (nationMap.size() > CommonConstant.ONE) {
regionList = getListSubdata(nationMap);
} else {
Map<String, List<Station>> provinceMap = list.stream().filter(i -> i.getCity() != null).collect(Collectors.groupingBy(Station::getProvince));
if (provinceMap.size() > CommonConstant.ONE) {
regionList = getListSubdata(provinceMap);
} else {
Map<String, List<Station>> cityMap = list.stream().filter(i -> i.getDistrict() != null).collect(Collectors.groupingBy(Station::getCity));
regionList = getListSubdata(cityMap);
Map<String, List<Station>> districtMap = list.stream().filter(i -> i.getDistrict() != null).collect(Collectors.groupingBy(Station::getDistrict));
regionList = getListSubdata(districtMap);
}
}
return regionList;
@ -1542,22 +1348,7 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
}
return regionList;
}
public List<AnnualChartValue> getPvProfitCurve(CockpitReqVO vo, List<Station> stations){
List<AnnualChartValue> curveResult = new ArrayList<>();
Integer groupId = null;
for (Station station : stations) {
groupId = station.getGroupId();
}
if (CommonConstant.DAY.equals(vo.getType())) {
setDayPvCurveResult(curveResult, groupId, stations);
} else if (CommonConstant.YEAR.equals(vo.getType())) {
setYearPVCurveResult(curveResult, groupId, stations);
} else {
setMonthPvCurveResult(curveResult, groupId, stations);
}
return curveResult;
}
public List<AnnualChartValue> getProfitCurve(CockpitReqVO vo, List<Station> stations) {
List<AnnualChartValue> curveResult = new ArrayList<>();
Integer groupId = null;
@ -1580,7 +1371,7 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
if (stationIds == null) {
return new EnergySavingRespVo();
}
List<Station> list = getCountStations(stationIds);
List<Station> list = getCountStations(stationIds,null);
return getEnergySavingRespVo(list);
}
@ -1589,7 +1380,7 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
if (stationIds == null) {
return new ArrayList<>();
}
List<Station> list = getCountStations(stationIds);
List<Station> list = getCountStations(stationIds,null);
return getProfitCurve(vo, list);
}
@ -1598,69 +1389,16 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
if (stationIds == null) {
return new ArrayList<>();
}
return getAnnualChartValues(getCountStations(stationIds));
return getAnnualChartValues(getCountStations(stationIds,null));
}
@Override
public List<AnnualChartValue> getCommonPvRelease(List<Integer> stationIds){
if (stationIds == null) {
return new ArrayList<>();
}
return getAnnualReleaseValues(getCountPvStations(stationIds));
}
@Override
public List<Subdata> getPvCommonElec(String beginString, String endString,List<Integer> stationIds){
public List<Subdata> getCommonProfit(String beginString, String endString, List<Integer> stationIds,String lang) {
List<Subdata> subdata = new ArrayList<>();
if (stationIds == null) {
return subdata;
}
List<Station> countStations = getCountPvStations(stationIds);
if (countStations != null && !countStations.isEmpty()) {
if (countStations.size() >= CommonConstant.FIVE) {
subdata = getPvElec(beginString,endString,countStations);
} else {
//电站数目小于5个
Date date = DateUtil.yesterday();
Date startDate = DateUtils.addDays(date, -CommonConstant.FIVE);
Date endDate = DateUtil.endOfDay(date);
beginString = DateUtil.format(startDate, CommonConstant.DATE_YMD);
endString = DateUtil.format(endDate, CommonConstant.DATE_YMD);
subdata = getPvElecByDay(beginString, endString, countStations);
}
}
return subdata;
}
@Override
public List<Subdata> getPvCommonProfit(String beginString, String endString,List<Integer> stationIds){
List<Subdata> subdata = new ArrayList<>();
if (stationIds == null) {
return subdata;
}
List<Station> countStations = getCountPvStations(stationIds);
if (countStations != null && !countStations.isEmpty()) {
if (countStations.size() >= CommonConstant.FIVE) {
subdata = getPvSubdata(beginString,endString,countStations);
} else {
//电站数目小于5个
Date date = DateUtil.yesterday();
Date startDate = DateUtils.addDays(date, -CommonConstant.FIVE);
Date endDate = DateUtil.endOfDay(date);
beginString = DateUtil.format(startDate, CommonConstant.DATE_YMD);
endString = DateUtil.format(endDate, CommonConstant.DATE_YMD);
subdata = getPvSubdataByDay(beginString, endString, countStations);
}
}
return subdata;
}
@Override
public List<Subdata> getCommonProfit(String beginString, String endString, List<Integer> stationIds) {
List<Subdata> subdata = new ArrayList<>();
if (stationIds == null) {
return subdata;
}
List<Station> countStations = getCountStations(stationIds);
List<Station> countStations = getCountStations(stationIds,lang);
if (countStations != null && !countStations.isEmpty()) {
if (countStations.size() >= CommonConstant.FIVE) {
subdata = getSubdata(beginString, endString, countStations);
@ -1678,12 +1416,12 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
}
@Override
public List<Subdata> getCommonEfficiencyDate(List<Integer> stationIds) {
public List<Subdata> getCommonEfficiencyDate(List<Integer> stationIds,String lang) {
List<Subdata> subdata = new ArrayList<>();
if (stationIds == null) {
return subdata;
}
List<Station> countStations = getCountStations(stationIds);
List<Station> countStations = getCountStations(stationIds,lang);
if (countStations != null && !countStations.isEmpty()) {
subdata = getEfficiencyDate(countStations);
// if (countStations.size() >= CommonConstant.FIVE) {
@ -1705,16 +1443,6 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
return subdata;
}
private void setMonthPvCurveResult(List<AnnualChartValue> curveResult, Integer groupId, List<Station> stations) {
Date date = DateUtil.yesterday();
Date startDate = DateUtil.beginOfYear(date);
Date endDate = DateUtil.endOfDay(date);
String begin = DateUtil.format(startDate, CommonConstant.DATE_YMD);
String end = DateUtil.format(endDate, CommonConstant.DATE_YMD);
List<DateTime> dateTime = DateUtil.rangeToList(startDate, endDate, DateField.MONTH);
setPvProfitByDayFormat(curveResult, groupId, dateTime, begin, end, CommonConstant.DATE_YM, stations);
}
private void setMonthCurveResult(List<AnnualChartValue> curveResult, Integer groupId, List<Station> stations) {
Date date = DateUtil.yesterday();
Date startDate = DateUtil.beginOfYear(date);
@ -1725,19 +1453,6 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
setProfitByDayFormat(curveResult, groupId, dateTime, begin, end, CommonConstant.DATE_YM, stations);
}
private void setYearPVCurveResult(List<AnnualChartValue> curveResult, Integer groupId, List<Station> stations) {
//查询数据的最小日期
Date beginDate = earningsCalculateMpptService.getFirstTime();
if(beginDate != null){
Date date = DateUtil.yesterday();
Date startDate = DateUtil.beginOfYear(beginDate);
Date endDate = DateUtil.endOfDay(date);
String begin = DateUtil.format(startDate, CommonConstant.DATE_YMD);
String end = DateUtil.format(endDate, CommonConstant.DATE_YMD);
List<DateTime> dateTime = DateUtil.rangeToList(startDate, endDate, DateField.YEAR);
setPvProfitByDayFormat(curveResult, groupId, dateTime, begin, end, CommonConstant.DATE_Y, stations);
}
}
private void setYearCurveResult(List<AnnualChartValue> curveResult, Integer groupId, List<Station> stations) {
//查询数据的最小日期
Date beginDate = earningsCalculateService.getFirstTime();
@ -1751,16 +1466,6 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
setProfitByDayFormat(curveResult, groupId, dateTime, begin, end, CommonConstant.DATE_Y, stations);
}
}
private void setDayPvCurveResult(List<AnnualChartValue> curveResult, Integer groupId, List<Station> stations) {
//开始结束时间为30天
Date date = DateUtil.yesterday();
Date startDate = DateUtils.addDays(date, -maxSize);
Date endDate = DateUtil.endOfDay(date);
String begin = DateUtil.format(startDate, CommonConstant.DATE_YMD);
String end = DateUtil.format(endDate, CommonConstant.DATE_YMD);
List<DateTime> dateTime = DateUtil.rangeToList(startDate, endDate, DateField.DAY_OF_MONTH);
setPvProfitByDayFormat(curveResult, groupId, dateTime, begin, end, CommonConstant.DATE_YMD, stations);
}
private void setDayCurveResult(List<AnnualChartValue> curveResult, Integer groupId, List<Station> stations) {
//开始结束时间为30天
@ -1773,37 +1478,6 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
setProfitByDayFormat(curveResult, groupId, dateTime, begin, end, CommonConstant.DATE_YMD, stations);
}
private void setPvProfitByDayFormat(List<AnnualChartValue> curveResult, Integer groupId, List<DateTime> dateTimes, String begin, String end, String type, List<Station> stations) {
Map<Integer, List<Station>> stationMap = stations.stream().collect(Collectors.groupingBy(Station::getId));
//查询收益
List<DayProfitType> dayProfit = earningsCalculateMpptService.getProfit(begin, end, groupId);
//在使用之前将不要的电站过滤
List<DayProfitType> profitList = new ArrayList<>();
for (DayProfitType dayProfitType : dayProfit) {
if (stationMap.containsKey(dayProfitType.getStationId())) {
profitList.add(dayProfitType);
}
}
Map<String, List<DayProfitType>> dayMap = profitList.stream().collect(Collectors.groupingBy(DayProfitType::getDay));
for (DateTime dateTime : dateTimes) {
AnnualChartValue annualChartValue = new AnnualChartValue();
String day = DateUtil.format(dateTime, type);
List<DayProfitType> dayProfitTypes = new ArrayList<>();
Set<String> dayList = dayMap.keySet();
for (String key : dayList) {
if (key.contains(day)) {
dayProfitTypes.addAll(dayMap.get(key));
}
}
//收益
BigDecimal profit = dayProfitTypes.stream().map(DayProfitType::getDigital).reduce(BigDecimal.ZERO,BigDecimal::add);
// BigDecimal result = profit.divide(new BigDecimal("10000"));
annualChartValue.setProfit(profit);
annualChartValue.setTime(day);
curveResult.add(annualChartValue);
}
}
private void setProfitByDayFormat(List<AnnualChartValue> curveResult, Integer groupId, List<DateTime> dateTimes, String begin, String end, String type, List<Station> stations) {
//直接查询需要的电站
// List<Station> list = stationService.selectAll();
@ -1874,7 +1548,7 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
if(beginDate == null){
return annualOverviewResp;
}
Date date = DateUtil.yesterday();
Date date = DateUtil.date();
Date startDate = DateUtil.beginOfYear(beginDate);
Date endDate = DateUtil.endOfDay(date);
String begin = DateUtil.format(startDate, CommonConstant.DATE_YMD);
@ -1888,6 +1562,7 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
profitList.add(dayProfitType);
}
}
//计算总收益
Map<String, List<DayProfitType>> dayMap = profitList.stream().collect(Collectors.groupingBy(DayProfitType::getDay));
List<AnnualChartValue> yearProfitCurve = new ArrayList<>();
getAnnualOverviewResp(yearProfitCurve, dateTimes, CommonConstant.DATE_Y, dayMap);
@ -1896,6 +1571,7 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
yearProfit = yearProfit.add(chartValue.getProfit());
}
annualOverviewResp.setTotalProfit(yearProfit);
//计算年收益
startDate = DateUtil.beginOfYear(date);
List<DateTime> nowDateTime = DateUtil.rangeToList(startDate, endDate, DateField.MONTH);
List<AnnualChartValue> monthProfitCurve = new ArrayList<>();
@ -1905,6 +1581,18 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
monthProfit = monthProfit.add(chartValue.getProfit());
}
annualOverviewResp.setYearProfit(monthProfit);
// 计算今日收益
List<DateTime> todayDateTime = DateUtil.rangeToList(endDate, endDate, DateField.DAY_OF_MONTH);
List<AnnualChartValue> todayProfitCurve = new ArrayList<>();
getAnnualOverviewResp(todayProfitCurve, todayDateTime, CommonConstant.DATE_YMD, dayMap);
BigDecimal todayProfit = BigDecimal.ZERO;
for (AnnualChartValue chartValue : todayProfitCurve) {
todayProfit = todayProfit.add(chartValue.getProfit());
}
annualOverviewResp.setTodayProfit(todayProfit);
// 计算昨日收益
date = DateUtil.yesterday();
endDate = DateUtil.endOfDay(date);
List<DateTime> dayDateTime = DateUtil.rangeToList(endDate, endDate, DateField.DAY_OF_MONTH);
List<AnnualChartValue> dayProfitCurve = new ArrayList<>();
getAnnualOverviewResp(dayProfitCurve, dayDateTime, CommonConstant.DATE_YMD, dayMap);
@ -1948,12 +1636,13 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
}
}
BigDecimal result = dischargeProfit.subtract(chargeProfit).divide(new BigDecimal("10000"));
if (result.doubleValue() > 0.0) {
annualChartValue.setProfit(result);
} else {
log.info("{},大屏计算收益,放电收益小于充电收益",day);
annualChartValue.setProfit(BigDecimal.ZERO);
}
// if (result.doubleValue() > 0.0) {
// annualChartValue.setProfit(result);
// } else {
// log.info("{},大屏计算收益,放电收益小于充电收益",day);
// annualChartValue.setProfit(BigDecimal.ZERO);
// }
annualChartValue.setProfit(result);
annualChartValue.setTime(day);
curveResult.add(annualChartValue);
}
@ -2044,24 +1733,17 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService {
* @return
*/
@Override
public List<Station> getCountStations(List<Integer> stationIds) {
List<Station> list = stationService.selectStationsByIds(stationIds);
public List<Station> getCountStations(List<Integer> stationIds,String lang) {
List<Station> list = stationService.selectStationsByIds(stationIds,lang);
List<Station> oneList = list.stream().filter(i -> CommonConstant.ONE.equals(i.getStatus())).collect(Collectors.toList());
return oneList;
}
public List<Station> getCountPvStations(List<Integer> stationIds) {
List<Station> list = stationService.selectStationsByIds(stationIds);
List<Station> oneList = list.stream().filter(i -> CommonConstant.ONE.equals(i.getStatus()) && CommonConstant.ONE.equals(i.getInverterFlag())).collect(Collectors.toList());
return oneList;
}
@Override
public List<Subdata> getCommonCapacity(List<Integer> stationIds) {
public List<Subdata> getCommonCapacity(List<Integer> stationIds,String lang) {
List<Subdata> subDataList = new ArrayList<>();
if (stationIds != null) {
List<Station> stations = getCountStations(stationIds);
List<Station> stations = getCountStations(stationIds,lang);
subDataList = getSubdataList(stations);
}
return subDataList;

View File

@ -4,7 +4,6 @@ import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import com.alibaba.fastjson.JSON;
import com.github.pagehelper.PageInfo;
import com.ho.business.constant.DeviceTypeConstant;
@ -23,14 +22,11 @@ import com.ho.business.vo.resp.DeviceRespVO;
import com.ho.business.vo.resp.VirtualDeviceColResp;
import com.ho.business.vo.resp.cabin.CircleCtrlResp;
import com.ho.business.vo.resp.colCount.ColCountResp;
import com.ho.business.vo.resp.mppt.MpptActiveVo;
import com.ho.business.vo.resp.mppt.MpptVo;
import com.ho.business.vo.resp.openStationHome.OpenStationMiddleOrig;
import com.ho.business.vo.resp.pcsStation.*;
import com.ho.business.vo.resp.station.ActiveReactivePower;
import com.ho.common.tools.constant.CommonConstant;
import com.ho.common.tools.constant.DefineConstant;
import com.ho.common.tools.constant.RedisKeyConstant;
import com.ho.common.tools.entity.PointCurveSrcCol;
import com.ho.common.tools.exception.BaseResponseCode;
import com.ho.common.tools.exception.BusinessException;
@ -135,71 +131,6 @@ public class OpenStationServiceImpl implements OpenStationService {
}
return acList;
}
public MpptActiveVo getPvActivePower(Integer stationId){
DeviceReqVO deviceReqVO = new DeviceReqVO();
deviceReqVO.setStationId(stationId);
List<DeviceRespVO> pcsList = deviceService.getListByDeviceType(stationId, DeviceTypeConstant.MPPT);
if(pcsList.isEmpty()){
pcsList = deviceService.getListByFuzzyDeviceType(stationId, DeviceTypeConstant.MPPT);
}
MpptActiveVo mpptActiveVo =new MpptActiveVo();
BigDecimal pvActivePower = new BigDecimal(CommonConstant.ZERO);
BigDecimal totalRelease = new BigDecimal(CommonConstant.ZERO);
BigDecimal dailyReleaseElec = new BigDecimal(CommonConstant.ZERO);
String nowDay = DateUtil.format(new Date(), CommonConstant.DATE_YMD);
if (!pcsList.isEmpty()) {
for (DeviceRespVO deviceRespVO : pcsList) {
//在缓存里拿映射字段
String key = deviceRespVO.getDeviceType() + ":" + stationId + ":" + deviceRespVO.getSrcId();
if (redisService.hasKey(key)) {
Map<Object, Object> mpptMap = redisService.hgetall(key);
if (mpptMap != null) {
MpptVo vo = JSON.parseObject(JSON.toJSONString(mpptMap), MpptVo.class);
if (vo != null) {
// 今日功率
BigDecimal pvActivePowerMppt = BigDecimal.ZERO;
if(vo.getPvActivePower() != null){
if(nowDay.equals(DateUtil.format(vo.getPvActivePower().getUpdateTime(), CommonConstant.DATE_YMD))){
pvActivePowerMppt = vo.getPvActivePower().getValue();
}
}
// 累计发电量
BigDecimal totalReleaseMppt = vo.getTotalRelease() == null ? BigDecimal.ZERO : vo.getTotalRelease().getValue();
// 今日发电起始值
BigDecimal pvDailyReleaseStart = BigDecimal.ZERO;
if(vo.getPvDailyReleaseStart() != null){
if(nowDay.equals(DateUtil.format(vo.getPvDailyReleaseStart().getUpdateTime(), CommonConstant.DATE_YMD))){
pvDailyReleaseStart = vo.getPvDailyReleaseStart().getValue();
}
}
// 今日更新的累计发电量
BigDecimal totalReleaseMppt1 = BigDecimal.ZERO;
if(vo.getTotalRelease() != null){
if(nowDay.equals(DateUtil.format(vo.getTotalRelease().getUpdateTime(), CommonConstant.DATE_YMD))){
totalReleaseMppt1 = vo.getTotalRelease().getValue();
}
}
// 计算今日发电量 = 今日更新的累计发电量 - 今日发电起始值
BigDecimal dailyReleaseElecMppt = BigDecimal.ZERO;
if(totalReleaseMppt1.compareTo(BigDecimal.ZERO)>0&&pvDailyReleaseStart.compareTo(BigDecimal.ZERO)>0){
dailyReleaseElecMppt = totalReleaseMppt1.subtract(pvDailyReleaseStart);
}
// 如果计算到的今日发电量小于0 则设置为0
dailyReleaseElecMppt = dailyReleaseElecMppt.compareTo(BigDecimal.ZERO)<0?BigDecimal.ZERO:dailyReleaseElecMppt;
// 最后组装值
pvActivePower = pvActivePower.add(pvActivePowerMppt);
totalRelease = totalRelease.add(totalReleaseMppt);
dailyReleaseElec = dailyReleaseElec.add(dailyReleaseElecMppt);
}
}
}
}
}
mpptActiveVo.setPvActivePower(pvActivePower);
mpptActiveVo.setTotalRelease(totalRelease);
mpptActiveVo.setDailyReleaseElec(dailyReleaseElec);
return mpptActiveVo;
}
@Override
public ActiveReactivePower getAcPower(Integer stationId) {
@ -623,10 +554,10 @@ public class OpenStationServiceImpl implements OpenStationService {
}
@Override
public void exportEleData(PcsStationReq req, HttpServletResponse response,String lang) {
public void exportEleData(PcsStationReq req, HttpServletResponse response) {
try {
List<Integer> stationIds = req.getStationIds();
List<Station> stations = stationService.selectStationsByIds(stationIds);
List<Station> stations = stationService.selectStationsByIds(stationIds,null);
Map<Integer, String> idNameMap = getStationMap(stations);
List<Map<String, Object>> sheetsList = new ArrayList<>();
//汇总
@ -636,10 +567,6 @@ public class OpenStationServiceImpl implements OpenStationService {
String name = "";
String summary = DefineConstant.SUMMARY;
String summaryData = DefineConstant.SUMMARY_DATA_STATION;
if(CommonConstant.langTemp.EN_US.equals(lang)){
summary = DefineConstant.SUMMARY_EN;
summaryData = DefineConstant.SUMMARY_DATA_STATION_EN;
}
if("segment".equals(segmentType)){
List<EarningsCalculateData> totalList = new ArrayList<>();
BigDecimal chargeTip = BigDecimal.ZERO;
@ -668,7 +595,7 @@ public class OpenStationServiceImpl implements OpenStationService {
name = idNameMap.get(stationId);
if(dataList.size()>0){
dataList.add(calculateData);
setSheetEarningsData(sheetsList, name==null?"":name.replaceAll("/", " "), dataList,lang);
setSheetEarningsData(sheetsList, name==null?"":name.replaceAll("/", " "), dataList);
}
charge = charge.add(calculateData.getChargeElec());
discharge = discharge.add(calculateData.getDischargeElec());
@ -699,7 +626,7 @@ public class OpenStationServiceImpl implements OpenStationService {
calculateData.setDischargeElec(discharge);
calculateData.setDate(summary);
totalList.add(calculateData);
setSheetEarningsData(sheetsList, summaryData, totalList,lang);
setSheetEarningsData(sheetsList, summaryData, totalList);
}
ExcelUtil.exportExcel(sheetsList,response);
}else{
@ -722,7 +649,7 @@ public class OpenStationServiceImpl implements OpenStationService {
name = idNameMap.get(stationId);
if(dataList.size()>0){
dataList.add(pcsElecData);
setSheetElecData(sheetsList, name==null?"":name.replaceAll("/", " "), dataList,lang);
setSheetElecData(sheetsList, name==null?"":name.replaceAll("/", " "), dataList);
}
charge = charge.add(pcsElecData.getChargeElec());
discharge = discharge.add(pcsElecData.getDischargeElec());
@ -737,7 +664,7 @@ public class OpenStationServiceImpl implements OpenStationService {
pcsElecData.setDischargeElec(discharge);
pcsElecData.setDate(summary);
totalList.add(pcsElecData);
setSheetElecData(sheetsList, summaryData, totalList,lang);
setSheetElecData(sheetsList, summaryData, totalList);
}
ExcelUtil.exportExcel(sheetsList,response);
}
@ -758,7 +685,7 @@ public class OpenStationServiceImpl implements OpenStationService {
PageResult pageResult = new PageResult<>();
try {
List<Integer> stationIds = req.getStationIds();
List<Station> stations = stationService.selectStationsByIds(stationIds);
List<Station> stations = stationService.selectStationsByIds(stationIds,null);
Map<Integer, String> idNameMap = stations.stream().collect(Collectors.toMap(Station::getId, Station::getName));
List<PcsElecData> result = new ArrayList<>();
String name = null;
@ -793,7 +720,7 @@ public class OpenStationServiceImpl implements OpenStationService {
Object obj = new Object();
try {
List<Integer> stationIds = req.getStationIds();
List<Station> stations = stationService.selectStationsByIds(stationIds);
List<Station> stations = stationService.selectStationsByIds(stationIds,null);
Map<Integer, String> idNameMap = getStationMap(stations);
//汇总
BigDecimal charge = BigDecimal.ZERO;
@ -801,9 +728,6 @@ public class OpenStationServiceImpl implements OpenStationService {
String segmentType = req.getSegmentType();
String name = "";
String summary = DefineConstant.SUMMARY;
if(CommonConstant.langTemp.EN_US.equals(req.getLang())){
summary = DefineConstant.SUMMARY_EN;
}
if(CommonConstant.SEGMENT.equals(segmentType)){
List<EarningsCalculateData> resultList = new ArrayList<>();
BigDecimal chargeTip = BigDecimal.ZERO;
@ -933,7 +857,7 @@ public class OpenStationServiceImpl implements OpenStationService {
Object obj = new Object();
try {
List<Integer> stationIds = req.getStationIds();
List<Station> stations = stationService.selectStationsByIds(stationIds);
List<Station> stations = stationService.selectStationsByIds(stationIds,null);
Map<Integer, String> idNameMap = getStationMap(stations);
//汇总
String segmentType = req.getSegmentType();
@ -1100,7 +1024,7 @@ public class OpenStationServiceImpl implements OpenStationService {
return data;
}
private void setSheetElecData(List<Map<String, Object>> sheetsList, String name, List<PcsElecData> dataList,String lang) {
private void setSheetElecData(List<Map<String, Object>> sheetsList, String name, List<PcsElecData> dataList) {
// 创建参数对象用来设定excel的sheet1内容等信息
ExportParams userExportParams = new ExportParams();
// 设置sheet得名称
@ -1110,25 +1034,13 @@ public class OpenStationServiceImpl implements OpenStationService {
// title的参数为ExportParams类型目前仅仅在ExportParams中设置了sheetName
userExportMap.put("title", userExportParams);
// 模版导出对应得实体类型
if(CommonConstant.langTemp.EN_US.equals(lang)){
userExportMap.put("entity", PcsElecDataEn.class);
List<PcsElecDataEn> enList=new ArrayList<>();
dataList.stream().forEach(s->{
PcsElecDataEn en = new PcsElecDataEn();
BeanUtils.copyProperties(s, en);
enList.add(en);
});
// sheet1中要填充得数据
userExportMap.put("data", enList);
}else{
userExportMap.put("entity", PcsElecData.class);
// sheet1中要填充得数据
userExportMap.put("data", dataList);
}
userExportMap.put("entity", PcsElecData.class);
// sheet1中要填充得数据
userExportMap.put("data", dataList);
sheetsList.add(userExportMap);
}
private void setSheetEarningsData(List<Map<String, Object>> sheetsList, String name, List<EarningsCalculateData> dataList,String lang) {
private void setSheetEarningsData(List<Map<String, Object>> sheetsList, String name, List<EarningsCalculateData> dataList) {
// 创建参数对象用来设定excel的sheet1内容等信息
ExportParams userExportParams = new ExportParams();
// 设置sheet得名称
@ -1138,21 +1050,9 @@ public class OpenStationServiceImpl implements OpenStationService {
// title的参数为ExportParams类型目前仅仅在ExportParams中设置了sheetName
userExportMap.put("title", userExportParams);
// 模版导出对应得实体类型
if(CommonConstant.langTemp.EN_US.equals(lang)){
userExportMap.put("entity", EarningsCalculateDataEn.class);
List<EarningsCalculateDataEn> enList=new ArrayList<>();
dataList.stream().forEach(s->{
EarningsCalculateDataEn en = new EarningsCalculateDataEn();
BeanUtils.copyProperties(s, en);
enList.add(en);
});
// sheet1中要填充得数据
userExportMap.put("data", enList);
}else{
userExportMap.put("entity", EarningsCalculateData.class);
// sheet1中要填充得数据
userExportMap.put("data", dataList);
}
userExportMap.put("entity", EarningsCalculateData.class);
// sheet1中要填充得数据
userExportMap.put("data", dataList);
sheetsList.add(userExportMap);
}
}

View File

@ -174,9 +174,30 @@ public class OutApiServiceImpl implements OutApiService {
stations.add(station);
}
}
List<Integer> groupIds = new ArrayList<>();
Map<Integer, List<Station>> groupMap = new HashMap<>();
groupIds = stations.stream().map(s -> {
return s.getGroupId();
}).distinct().collect(Collectors.toList());
if (EnvConstant.EXP.equals(env) || EnvConstant.DEV.equals(env)) {
//只增加集团为1的
//groupIds = new ArrayList<>();
//groupIds.add(1);
}
//groupMap = stations.stream().collect(Collectors.groupingBy(Station::getGroupId));
log.info("dayChargeDeal groupMap:" + groupMap);
//todo 先用349来跑
/* List<Station> stations = new ArrayList<>();
Station s349 = stationService.selectById(monitorQuery.getStationId());
stations.add(s349);*/
String deviceType = DeviceTypeConstant.BMS;
log.info("stations.size:" + stations.size());
stations = stations.stream().filter(i->i.getId()!=11003 && i.getId()!=10942 && i.getId()!=11006).collect(Collectors.toList());
//查询柴发冻结
SysSubDictVO sysSubDictVO = new SysSubDictVO();
sysSubDictVO.setType(CommonConstant.CF_FROZEN);
Map<String, String> cfMap = userFeignClient.getSysSubDict(sysSubDictVO);
stations = stations.stream().filter(i->i.getId()!=11003 && i.getId()!=10942 && i.getId()!=11006).collect(Collectors.toList());
for (Station station : stations) {
try {
//先删除站的当日数据
@ -239,6 +260,15 @@ public class OutApiServiceImpl implements OutApiService {
//当日的零点时间
tdBaseTimeQuery.setBegin(beginOfDay);
tdBaseTimeQuery.setEnd(endOfDay);
// if (station.getId() == 349) {
// deviceType = deviceRespVO.getDeviceType().split("_")[0];
// if (!DeviceTypeConstant.BMS.equals(deviceType)) {
// //日充电量
// dailyChargeElec = new BigDecimal(CommonConstant.ZERO);
// //日放电量
// dailyDischargeElec = new BigDecimal(CommonConstant.ZERO);
// }
// }
//查询模型表
DeviceTypeConfig deviceTypeConfig = deviceTypeConfigService.selectByDeviceType(deviceRespVO.getDeviceType(), deviceRespVO.getGroupId());
if (deviceTypeConfig == null) {
@ -295,6 +325,16 @@ public class OutApiServiceImpl implements OutApiService {
elecMeterValueService.insert(elecMeterValues);
log.info("dayChargeDeal elecMeterValueService.insert OK");
}
if(cfMap!=null && cfMap.size()>0){
Integer stationId = station.getId();
if(cfMap.get(String.valueOf(stationId))!=null){
deviceRespVOS = deviceService.getListByDeviceType(station.getId(), DeviceTypeConstant.CF);
if (deviceRespVOS.isEmpty()) {
deviceRespVOS = deviceService.getListByFuzzyDeviceType(station.getId(), DeviceTypeConstant.CF);
}
cfInsert(beginOfDay, endOfDay, dataProcessReqVO, station, deviceRespVOS);
}
}
} catch (Exception e) {
e.printStackTrace();
}
@ -425,7 +465,7 @@ public class OutApiServiceImpl implements OutApiService {
ids.add(418);//新凤鸣电站
ids.add(551);//江苏暨阳电力科技发展有限公司1号柜
ids.add(564);//江苏暨阳电力科技发展有限公司2号柜
List<Station> stations = stationService.selectStationsByIds(ids);
List<Station> stations = stationService.selectStationsByIds(ids,null);
String deviceType = DeviceTypeConstant.PCS;
for (Station station : stations) {
//先删除站的当日数据
@ -1235,110 +1275,7 @@ public class OutApiServiceImpl implements OutApiService {
}
}
@Override
public void dayPVMpptCharge(MonitorQuery monitorQuery){
//根据参数计算 beginTime 这天的起止时间
SimpleDateFormat sdfDay = new SimpleDateFormat(CommonConstant.DATE_YMD);
SimpleDateFormat sdfDateTime = new SimpleDateFormat(CommonConstant.DATE);
//转成Date格式
String transDayStr = null;
//时间格式的交易日期
Date transDay = null;
if (monitorQuery != null) {
if (monitorQuery.getBeginTime() != null) {
transDayStr = monitorQuery.getBeginTime();
try {
transDay = sdfDay.parse(monitorQuery.getBeginTime());
} catch (ParseException e) {
e.printStackTrace();
}
} else {
DateTime yesterdayTime = DateUtil.yesterday();
transDayStr = sdfDay.format(yesterdayTime);
transDay = yesterdayTime;
}
} else {
DateTime yesterdayTime = DateUtil.yesterday();
transDayStr = sdfDay.format(yesterdayTime);
transDay = yesterdayTime;
}
log.info("dayChargeDeal transDay:" + transDay);
//昨天的开始时间,昨天的结束时间
DateTime beginOfDay = DateUtil.beginOfDay(transDay);
DateTime endOfDay = DateUtil.endOfDay(transDay);
String beginTime = sdfDateTime.format(beginOfDay);
String endTime = sdfDateTime.format(endOfDay);
DataProcessReqVO dataProcessReqVO = new DataProcessReqVO();
dataProcessReqVO.setStartDayTime(beginTime);
dataProcessReqVO.setEndDayTime(endTime);
//业务发生日期
dataProcessReqVO.setDay(transDayStr);
List<Station> stations = stationService.selectAll();
stations = stations.stream().filter(i->CommonConstant.ONE.equals(i.getInverterFlag())).collect(Collectors.toList());
for (Station station :stations){
//先删除站的当日数据
List<Integer> typeList = Arrays.asList(
DeviceTypeConstant.ELEC_METER_VALUE_TYPE.PV_CHARGE
);
//使用elecMeterValue
elecMeterValueService.deleteByStationAndDay(station.getId(), transDayStr, typeList);
//光伏总发电量
List<DeviceRespVO> deviceRespVOS = deviceService.getListByDeviceType(station.getId(), DeviceTypeConstant.MPPT);
if (deviceRespVOS.isEmpty()) {
deviceRespVOS = deviceService.getListByFuzzyDeviceType(station.getId(), DeviceTypeConstant.MPPT);
}
//判断是否存在电表设备
if (deviceRespVOS.isEmpty()) {
continue;
}
log.info("deviceRespVOS.size():" + deviceRespVOS.size());
for (DeviceRespVO deviceRespVO : deviceRespVOS) {
//创建远程调用的查询参数
TdBaseTimeQuery tdBaseTimeQuery = new TdBaseTimeQuery();
//由于mppt没有日发总电量走计算 昨日最晚总发-昨日做早总发=昨日总发
List<ModelDeviceColComp> totalRelease = modelDeviceService.getCompListByType("device", deviceRespVO.getDeviceType(), DataCollectConstant.PV_CHARGE_POINT.TOTAL_RELEASE);
Map<Integer, String> colNameMap = new HashMap<>();
if (!totalRelease.isEmpty()) {
colNameMap.put(deviceRespVO.getSrcId(), totalRelease.get(0).getDeviceCol());
}
tdBaseTimeQuery.setBeginTime(beginTime);
tdBaseTimeQuery.setEndTime(endTime);
tdBaseTimeQuery.setSrcId(deviceRespVO.getSrcId());
tdBaseTimeQuery.setMap(colNameMap);
tdBaseTimeQuery.setGroupId(deviceRespVO.getGroupId());
tdBaseTimeQuery.setStationId(deviceRespVO.getStationId());
tdBaseTimeQuery.setDeviceType(deviceRespVO.getDeviceType());
//当日的零点时间
tdBaseTimeQuery.setBegin(beginOfDay);
tdBaseTimeQuery.setEnd(endOfDay);
//查询模型表
DeviceTypeConfig deviceTypeConfig = deviceTypeConfigService.selectByDeviceType(deviceRespVO.getDeviceType(), deviceRespVO.getGroupId());
if (deviceTypeConfig == null) {
log.info("电站{}未匹配到模型{}", deviceRespVO.getStationId(), deviceRespVO.getDeviceType());
continue;
}
tdBaseTimeQuery.setModelName(deviceTypeConfig.getModelName());
//远程调用查询
log.info("查设备数据: start :" + new Date());
DataResult<StationHomeRespVo> result = tdFeignClient.getToDayPVMpptCharge(tdBaseTimeQuery);
log.info("dayChargeDeal tdFeignClient.getTodayPowerGeneration, result: {}", result);
StationHomeRespVo data = result.getData();
ElecMeterValue elecMeterValue = new ElecMeterValue();
elecMeterValue.setDigital(data.getDigital());
elecMeterValue.setSrcId(deviceRespVO.getSrcId());
elecMeterValue.setDeptId(station.getDeptId());
elecMeterValue.setStationId(station.getId());
elecMeterValue.setGroupId(station.getGroupId());
elecMeterValue.setDay(dataProcessReqVO.getDay());
elecMeterValue.setCreateTime(new Date());
elecMeterValue.setType(DeviceTypeConstant.ELEC_METER_VALUE_TYPE.PV_CHARGE);
elecMeterValue.setStatus(CommonConstant.STATUS_FLAG);
elecMeterValueService.insert(elecMeterValue);
log.info("dayChargeDeal elecMeterValueService.insert OK");
}
}
}
//加工昨天光伏充放电量
@Override
public void dayPVCharge(MonitorQuery monitorQuery) {

View File

@ -22,12 +22,10 @@ import com.ho.business.vo.req.device.DeviceTypeQuery;
import com.ho.business.vo.req.dynamicConfig.DynamicConfigQuery;
import com.ho.business.vo.req.pcsStation.PcsStationReq;
import com.ho.business.vo.resp.*;
import com.ho.business.vo.resp.InverterResp.PowerGenerateRespVO;
import com.ho.business.vo.resp.cabin.TemperatureHumidityResp;
import com.ho.business.vo.resp.cabin.TemperatureValue;
import com.ho.business.vo.resp.colCount.ColCountResp;
import com.ho.business.vo.resp.dynamicConfig.CurveConfigResp;
import com.ho.business.vo.resp.mppt.MpptActiveVo;
import com.ho.business.vo.resp.pcsStation.OutStationData;
import com.ho.business.vo.resp.pcsStation.PcsElecData;
import com.ho.business.vo.resp.pcsStation.PcsStationData;
@ -36,7 +34,6 @@ import com.ho.business.vo.resp.station.ActiveReactivePower;
import com.ho.business.vo.resp.station.NewRealTimeCurveVo;
import com.ho.common.tools.constant.CommonConstant;
import com.ho.common.tools.constant.DefineConstant;
import com.ho.common.tools.constant.RedisKeyConstant;
import com.ho.common.tools.entity.PointCurveSrcCol;
import com.ho.common.tools.exception.BaseResponseCode;
import com.ho.common.tools.exception.BusinessException;
@ -133,10 +130,6 @@ public class StationHomeServiceImpl implements StationHomeService {
private List<AppRealTimeCurveRespVo> list;
@Autowired
EarningsCalculateMpptService earningsCalculateMpptService;
@Override
public List<NewRealTimeCurveVo> getRealtimeCurve(StationReq stationReq) {
Station station = stationService.selectById(stationReq.getStationId());
@ -659,6 +652,24 @@ public class StationHomeServiceImpl implements StationHomeService {
//计算系统转化效率
BigDecimal systemEfficiency = BigDecimal.ZERO;
// List<DeviceRespVO> deviceRespVOList = deviceService.getListByDeviceType(stationId, DeviceTypeConstant.OUTSIDE_ELE);
// if (!deviceRespVOList.isEmpty()) {
// DeviceRespVO deviceRespVO = deviceRespVOList.get(0);
// //拼接rediskey
// String redisKey = deviceRespVO.getDeviceType() + ":" + stationId + ":" + deviceRespVO.getSrcId();
// if (redisService.hasKey(redisKey)) {
// Map<Object, Object> map = redisService.hgetall(redisKey);
// DeviceTransfer charge = (DeviceTransfer) map.get(DeviceTypeConstant.TOTAL_CHARGE);
// DeviceTransfer discharge = (DeviceTransfer) map.get(DeviceTypeConstant.TOTAL_DISCHARGE);
//
// BigDecimal totalCharge = charge != null ? charge.getValue() : BigDecimal.ZERO;
// BigDecimal totalDisCharge = discharge != null ? discharge.getValue() : BigDecimal.ZERO;
//
// if (!totalCharge.equals(BigDecimal.ZERO)) {
// systemEfficiency = totalDisCharge.divide(totalCharge, 4, BigDecimal.ROUND_HALF_UP);
// }
// }
// }
CountEleData countEleData = getCountEleData(req);
//总充电量
BigDecimal totalChargeElec = countEleData.getTotalChargeElec();
@ -668,6 +679,98 @@ public class StationHomeServiceImpl implements StationHomeService {
BigDecimal dailyChargeElec = countEleData.getDailyChargeElec();
//日放电量
BigDecimal dailyDischargeElec = countEleData.getDailyDischargeElec();
// //总充电量
// BigDecimal totalChargeElec = BigDecimal.ZERO;
// //总放电量
// BigDecimal totalDischargeElec = BigDecimal.ZERO;
// //日充电量 来自于PCS
// BigDecimal dailyChargeElec = BigDecimal.ZERO;
// //日放电量
// BigDecimal dailyDischargeElec = BigDecimal.ZERO;
//总充,总放默认来自于 BMS
// String deviceType = req.getDeviceType() == null ? DeviceTypeConstant.BMS : req.getDeviceType();
// //日充电量开始
// BigDecimal dailyChargeStartElec = BigDecimal.ZERO;
// //日放电量开始
// BigDecimal dailyDischargeStartElec = BigDecimal.ZERO;
// boolean hasStart = false;
// //总充,总放来自于BMS ,日充, 日放也来自于BMS
// List<DeviceRespVO> deviceRespVOS = deviceService.getListByDeviceType(stationId, deviceType);
// if(deviceRespVOS.isEmpty()){
// deviceRespVOS = deviceService.getListByFuzzyDeviceType(stationId, deviceType);
// }
// //从缓存中获取累计充电量与放电量
// boolean flag = true;
// for (DeviceRespVO deviceRespVO : deviceRespVOS) {
// //拼接电表缓存key
// String redisKey = deviceRespVO.getDeviceType() + ":" + deviceRespVO.getStationId() + ":" + deviceRespVO.getSrcId();
// //判断电表换是否存在
// if (redisService.hasKey(redisKey)) {
// Map<Object, Object> map = redisService.hgetall(redisKey);
// if (map != null) {
// //总充, 总放
// Object objTotalCharge = map.get(DataCollectConstant.Elec_Meter.TOTAL_CHARGE);
// if (objTotalCharge instanceof DeviceTransfer) {
// DeviceTransfer totalCharge = (DeviceTransfer) map.get(DataCollectConstant.Elec_Meter.TOTAL_CHARGE);
// totalChargeElec = totalCharge.getValue() != null ? totalChargeElec.add(totalCharge.getValue()) : totalChargeElec;
// }
// Object objTotalDischarge = map.get(DataCollectConstant.Elec_Meter.TOTAL_DISCHARGE);
// if (objTotalDischarge instanceof DeviceTransfer) {
// DeviceTransfer totalDischarge = (DeviceTransfer) map.get(DataCollectConstant.Elec_Meter.TOTAL_DISCHARGE);
// totalDischargeElec = totalDischarge.getValue() != null ? totalDischargeElec.add(totalDischarge.getValue()) : totalDischargeElec;
// }
// //日充
// DeviceTransfer dailyChargeObj = (DeviceTransfer) map.get(DataCollectConstant.PCS_POINT.dailyCharge);
// log.info("dailyChargeObj{},stationId:{}", dailyChargeObj, stationId);
// if (null != dailyChargeObj) {
// DeviceTransfer dailyChargeTransfer = (DeviceTransfer) map.get(DataCollectConstant.PCS_POINT.dailyCharge);
// dailyChargeElec = dailyChargeTransfer.getValue() != null ? dailyChargeElec.add(dailyChargeTransfer.getValue()) : dailyChargeElec;
// flag = false;
// }
// //日放
// Object dailyDischargeObj = map.get(DataCollectConstant.PCS_POINT.dailyDischarge);
// if (dailyDischargeObj instanceof DeviceTransfer) {
// DeviceTransfer dailyDischargeTransfer = (DeviceTransfer) map.get(DataCollectConstant.PCS_POINT.dailyDischarge);
// dailyDischargeElec = dailyDischargeTransfer.getValue() != null ? dailyDischargeElec.add(dailyDischargeTransfer.getValue()) : dailyDischargeElec;
// }
// //日充电量开始
// DeviceTransfer dailyChargeStart = (DeviceTransfer) map.get(DataCollectConstant.PCS_POINT.DAILY_CHARGE_START);
// if(dailyChargeStart!=null){
// Date updateTime = dailyChargeStart.getUpdateTime();
// DateTime beginOfDay = DateUtil.beginOfDay(new Date());
// if(updateTime.getTime()==beginOfDay.getTime()){
// dailyChargeStartElec = dailyChargeStart.getValue() != null ? dailyChargeStartElec.add(dailyChargeStart.getValue()) : dailyChargeStartElec;
// hasStart = true;
// }
// }
// //日放电量开始
// DeviceTransfer dailyDischargeStart = (DeviceTransfer) map.get(DataCollectConstant.PCS_POINT.DAILY_DISCHARGE_START);
// if(dailyDischargeStart!=null){
// Date updateTime = dailyDischargeStart.getUpdateTime();
// DateTime beginOfDay = DateUtil.beginOfDay(new Date());
// if(updateTime.getTime()==beginOfDay.getTime()){
// dailyDischargeStartElec = dailyDischargeStart.getValue() != null ? dailyDischargeStartElec.add(dailyDischargeStart.getValue()) : dailyDischargeStartElec;
// }
// }
// }
// }
// }
// //若查不到,走计算
// if (flag) {
// if(hasStart){
// dailyChargeElec = totalChargeElec.subtract(dailyChargeStartElec);
// dailyDischargeElec = totalDischargeElec.subtract(dailyDischargeStartElec);
// }else{
// MonitorQuery monitorQuery = new MonitorQuery();
// monitorQuery.setStationId(stationId);
// monitorQuery.setEndTime(req.getEndTime());
// JSONObject info = outApiService.getDayChargeDeal(monitorQuery, deviceType);
// DeviceTransfer dailyChargeTransfer = (DeviceTransfer) info.get(DataCollectConstant.PCS_POINT.dailyCharge);
// dailyChargeElec = dailyChargeTransfer.getValue();
// DeviceTransfer dailyDischargeTransfer = (DeviceTransfer) info.get(DataCollectConstant.PCS_POINT.dailyDischarge);
// dailyDischargeElec = dailyDischargeTransfer.getValue();
// }
// }
ColCountReq colCountReq = new ColCountReq();
colCountReq.setStationId(station.getId());
colCountReq.setCol(DataCollectConstant.Elec_Meter.TOTAL_CHARGE);
@ -741,26 +844,6 @@ public class StationHomeServiceImpl implements StationHomeService {
data.setSystemEfficiency(systemEfficiency);
//当前功率
ActiveReactivePower acPower = openStationService.getAcPower(stationId);
//2025-11-13 start 储能加入mppt模块开发
//如果接入光伏mppt模块-则统计光伏模块监控数据
if(DataCollectConstant.ONE.equals(station.getInverterFlag())){
//当前功率(光伏)、总发电量、日发电量
MpptActiveVo pv = openStationService.getPvActivePower(stationId);
data.setPvCurrentPower(pv.getPvActivePower());
data.setDailyReleaseElec(pv.getDailyReleaseElec());
//计算累计发电量
BigDecimal totalReleaseElec = elecMeterValueService.selectSumValue(station.getId(),DeviceTypeConstant.ELEC_METER_VALUE_TYPE.PV_CHARGE,null);
data.setTotalReleaseElec(totalReleaseElec);
//今日收益
String key = RedisKeyConstant.PV.STATION_PV_TODAY_PROFIT + station.getId();
BigDecimal todayIncone = (BigDecimal)redisService.get(key);
data.setTodayIncone(todayIncone);
//累计收益
BigDecimal totalIncome = earningsCalculateMpptService.countAllPvIncome(station.getId(),null,null);
data.setTotalIncome(totalIncome);
//额定功率(光伏)
data.setPvPower(station.getPvPower());
}
if (acPower != null) {
data.setCurrentPower(acPower.getActivePowerPCS());
}
@ -977,58 +1060,141 @@ public class StationHomeServiceImpl implements StationHomeService {
@Override
public List<PowerGenerateRespVO> getPvData(PcsStationReq req) {
// 获取今日光伏收益
String type = req.getType();
public List<PcsElecData> getPvChargeElec(PcsStationReq req) {
req.setDeviceType(DeviceTypeConstant.PLANCURVE);
DeviceTransfer countPvData = getCountPvData(req);
//创建返回值
List<PcsElecData> list = new ArrayList<>();
//查询冻结值
List<Integer> types = new ArrayList<>();
//光伏充
types.add(DeviceTypeConstant.ELEC_METER_VALUE_TYPE.PV_CHARGE);
//根据传入类型判断
//当前时间
Date end = new Date();
String endTime = DateUtil.format(end, CommonConstant.DATE_YMD);
List<PowerGenerateRespVO> list = new ArrayList<>();
DateTime begin;
if (CommonConstant.DAY.equals(type)){
begin = DateUtil.offsetDay(end, -6);
}else if(CommonConstant.MONTH.equals(type)){
begin = DateUtil.offsetDay(end, -29);
}else{
String type = req.getType();
boolean isToday = true;
if (CommonConstant.HOUR.equals(type)) {
return list;
} else if (CommonConstant.DAY.equals(type)) {
//查询最近七天
//七天前的时间
DateTime begin = DateUtil.offsetDay(end, -6);
String beginTime = DateUtil.format(begin, CommonConstant.DATE_YMD);
List<ElecMeterValue> elecMeterValues = elecMeterValueService.selectList(req.getStationId(), types, beginTime, endTime);
elecMeterValues = getMeterValues(req, elecMeterValues);
//根据天获取时间段
List<DateTime> dateTimes = DateUtil.rangeToList(begin, end, DateField.DAY_OF_MONTH);
setDataByTime(dateTimes, elecMeterValues, list);
//根据类型进行分组
// Map<Integer, List<ElecMeterValue>> map = elecMeterValues.stream().collect(Collectors.groupingBy(ElecMeterValue::getType));
// setDataByTime(dateTimes, map, list);
} else if (CommonConstant.RANGE_TIME.equals(type)) {
list = new ArrayList<>();
//查询时间范围数据
List<Integer> typeHourList = new ArrayList<>();
typeHourList.add(DeviceTypeConstant.ELEC_METER_VALUE_TYPE.HOUR_CHARGE);
typeHourList.add(DeviceTypeConstant.ELEC_METER_VALUE_TYPE.HOUR_DISCHARGE);
DateTime begin = new DateTime(DateUtils.addDays(new DateTime(req.getBeginTime()), -1));
DateTime dateTime = new DateTime(req.getEndTime());
String beginTime = DateUtil.format(begin, CommonConstant.DATE);
List<ElecMeterValue> elecMeterValues = elecMeterValueService.selectList(req.getStationId(), typeHourList, beginTime, req.getEndTime());
Map<Integer, List<ElecMeterValue>> map = elecMeterValues.stream().collect(Collectors.groupingBy(ElecMeterValue::getType));
List<DateTime> days = DateUtil.rangeToList(begin, dateTime, DateField.DAY_OF_MONTH);
setRangeTime(days, map, list);
} else if (CommonConstant.MONTH.equals(type)) {
//七天前的时间
DateTime begin = DateUtil.offsetDay(end, -29);
String beginTime = DateUtil.format(begin, CommonConstant.DATE_YMD);
List<ElecMeterValue> elecMeterValues = elecMeterValueService.selectList(req.getStationId(), types, beginTime, endTime);
elecMeterValues = getMeterValues(req, elecMeterValues);
//根据天获取时间段
List<DateTime> dateTimes = DateUtil.rangeToList(begin, end, DateField.DAY_OF_MONTH);
setDataByTime(dateTimes, elecMeterValues, list);
//根据类型进行分组
// Map<Integer, List<ElecMeterValue>> map = elecMeterValues.stream().collect(Collectors.groupingBy(ElecMeterValue::getType));
// setDataByTime(dateTimes, map, list);
} else if (CommonConstant.YEAR.equals(type)) {
DateTime begin = DateUtil.offsetDay(end, -364);
String beginTime = DateUtil.format(begin, CommonConstant.DATE_YMD);
List<ElecMeterValue> elecMeterValues = elecMeterValueService.selectList(req.getStationId(), types, beginTime, endTime);
elecMeterValues = getMeterValues(req, elecMeterValues);
//根据类型进行分组
Map<Integer, List<ElecMeterValue>> map = elecMeterValues.stream().collect(Collectors.groupingBy(ElecMeterValue::getType));
//充电量
List<ElecMeterValue> chargeList = map.get(DeviceTypeConstant.ELEC_METER_VALUE_TYPE.CHARGE);
Map<String, List<ElecMeterValue>> monthChargeList = new HashMap<>();
if (chargeList != null) {
monthChargeList = chargeList.stream().collect(Collectors.groupingBy(s -> {
String month = s.getDay().substring(0, 7);
return month;
}));
}
//放电量
List<ElecMeterValue> dischargeList = map.get(DeviceTypeConstant.ELEC_METER_VALUE_TYPE.DISCHARGE);
Map<String, List<ElecMeterValue>> monthDischargeList = new HashMap<>();
if (dischargeList != null) {
monthDischargeList = dischargeList.stream().collect(Collectors.groupingBy(s -> {
String month = s.getDay().substring(0, 7);
return month;
}));
}
//根据天获取时间段
List<DateTime> dateTimes = DateUtil.rangeToList(begin, end, DateField.MONTH);
for (DateTime dateTime : dateTimes) {
String yearMonth = DateUtil.format(dateTime, CommonConstant.DATE_YM);
PcsElecData pcsElecData = new PcsElecData();
pcsElecData.setDate(yearMonth);
BigDecimal charge = BigDecimal.ZERO;
BigDecimal disCharge = BigDecimal.ZERO;
//按yyyy-MM分组
//分别计算充电,放电
if (monthChargeList.containsKey(yearMonth)) {
List<ElecMeterValue> elecMeterValues1 = monthChargeList.get(yearMonth);
for (ElecMeterValue elecMeterValue : elecMeterValues1) {
charge = charge.add(elecMeterValue.getDigital());
}
pcsElecData.setChargeElec(charge);
}
if (monthDischargeList.containsKey(yearMonth)) {
List<ElecMeterValue> elecMeterValues1 = monthDischargeList.get(yearMonth);
for (ElecMeterValue elecMeterValue : elecMeterValues1) {
disCharge = disCharge.add(elecMeterValue.getDigital());
}
pcsElecData.setDischargeElec(disCharge);
}
list.add(pcsElecData);
}
}
//根据时间排序
list.stream().
sorted((s1, s2) ->
{
return s1.getDate().compareTo(s2.getDate());
}).
collect(Collectors.toList());
if (!isToday) {
return list;
}
String beginTime = DateUtil.format(begin, 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(begin, end, 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());
//查询今天的数据set到返回值中
String nowDay = DateUtil.format(new Date(), CommonConstant.DATE_YMD);
String format = DateUtil.format(countPvData.getUpdateTime(), CommonConstant.DATE_YMD);
if (nowDay.equals(format)) {
for (PcsElecData pcsElecData : list) {
if (nowDay.equals(pcsElecData.getDate())) {
pcsElecData.setPvChargeElec(countPvData.getValue());
}
}
//放电
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;
}
@ -1837,13 +2003,6 @@ public class StationHomeServiceImpl implements StationHomeService {
return pcsCurveCurveList;
}
@Override
public List<AppRealTimeCurveRespVo> pvCurve(MonitorQuery monitorQuery) {
//mppt总发电量、有功功率
List<AppRealTimeCurveRespVo> appRealTimeCurveRespVos = getAppRealTimeCurveRespVos(monitorQuery, "totalRelease", "pvActivePower");
return appRealTimeCurveRespVos;
}
@Override
public List<AppRealTimeCurveRespVo> getOpticalStorageCurve(MonitorQuery monitorQuery) {
//逆变有功功率、PV输出功率

View File

@ -1,50 +0,0 @@
package com.ho.business.service.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ho.business.entity.StationRemoteControl;
import com.ho.business.mapper.StationRemoteControlMapper;
import com.ho.business.service.StationRemoteControlService;
import com.ho.business.vo.req.StationRemoteControlPageVo;
import com.ho.common.tools.util.PageResult;
import com.ho.common.tools.util.PageUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@Slf4j
public class StationRemoteControlServiceImpl implements StationRemoteControlService {
@Autowired
StationRemoteControlMapper stationRemoteControlMapper;
@Override
public void insert(StationRemoteControl entity) {
stationRemoteControlMapper.insert(entity);
}
@Override
public void update(StationRemoteControl entity) {
stationRemoteControlMapper.update(entity);
}
@Override
public void delete(Integer id) {
stationRemoteControlMapper.delete(id);
}
@Override
public StationRemoteControl search(Integer stationId) {
return stationRemoteControlMapper.search(stationId);
}
@Override
public PageResult<StationRemoteControl> selectPageList(StationRemoteControlPageVo vo) {
PageHelper.startPage(vo.getPageNum(), vo.getPageSize());
List<StationRemoteControl> list = stationRemoteControlMapper.selectList(vo);
return PageUtils.getPageResult(new PageInfo<>(list));
}
}

View File

@ -213,7 +213,7 @@ public class StationServiceImpl implements StationService {
@Override
public List<StationRespVO> selectByIds(List<Integer> ids) {
List<Station> stations = stationMapper.selectByIds(ids);
List<Station> stations = stationMapper.selectByIds(ids,null);
List<StationRespVO> stationRespVOS = getStationRespVOS(stations);
if (stationRespVOS != null) {
for (StationRespVO stationRespVO : stationRespVOS) {
@ -235,8 +235,8 @@ public class StationServiceImpl implements StationService {
}
@Override
public List<Station> selectStationsByIds(List<Integer> ids) {
List<Station> stations = stationMapper.selectByIds(ids);
public List<Station> selectStationsByIds(List<Integer> ids,String lang) {
List<Station> stations = stationMapper.selectByIds(ids,lang);
return stations;
}

View File

@ -147,9 +147,9 @@
and date_format(#{date},'%Y-%m-%d') >= tem.validity_start_time and date_format(#{date},'%Y-%m-%d') &lt;=
tem.validity_end_time
</if>
<if test="elecType != null">
and tem.elec_type = #{elecType}
</if>
<!-- <if test="templateType != null">-->
<!-- and template_type = #{templateType}-->
<!-- </if>-->
order by begin_time
</select>

View File

@ -1,104 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ho.business.mapper.EarningsCalculateMpptMapper">
<delete id="deleteByDay">
delete
from earnings_calculate_mppt
<where>
and day = #{day}
<if test="typeList !=null and typeList.size() !=0">
and type in
<foreach collection="typeList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</where>
</delete>
<insert id="insertBatch">
INSERT INTO earnings_calculate_mppt
(group_id, pid, station_id, src_id, dept_id, create_time, day, type,
digital,elec,rate_type,price,total,discount)
VALUES
<foreach item="item" collection="list" index="index" separator=",">
(
#{item.groupId},#{item.pid},#{item.stationId},#{item.srcId},#{item.deptId}, now(),
#{item.day},#{item.type},#{item.digital},#{item.elec},#{item.rateType},#{item.price},#{item.total},#{item.discount}
)
</foreach>
</insert>
<select id="countPvIncome" resultType="com.ho.business.vo.resp.InverterResp.PowerGenerateRespVO">
SELECT DAY date,sum( digital ) profit
FROM
earnings_calculate_mppt
WHERE
station_id = #{stationId}
AND DAY BETWEEN #{beginTime}
AND #{endTime}
GROUP BY DAY
</select>
<select id="countAllPvIncome" resultType="java.math.BigDecimal">
SELECT sum( digital )
FROM
earnings_calculate_mppt
WHERE
station_id = #{stationId}
<if test="beginTime != null">
and day &gt;= #{beginTime}
</if>
<if test="endTime != null">
and day &lt;= #{endTime}
</if>
</select>
<select id="getProfit" resultType="com.ho.business.vo.resp.profit.DayProfitType">
select
station_id,day,type,sum(digital) as digital
from earnings_calculate_mppt
<where>
digital > 0
<if test="groupId != null">
and group_id = #{groupId}
</if>
<if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
and day BETWEEN #{beginTime}
AND #{endTime}
</if>
</where>
group by station_id, day,type
</select>
<select id="getFirstTime" resultType="java.lang.String">
SELECT min(day) day
FROM earnings_calculate_mppt;
</select>
<select id="getEarningsByParam" resultType="com.ho.business.vo.resp.profit.DayProfitType">
select
station_id,day,type,sum(digital) as digital
from earnings_calculate_mppt
<where>
digital > 0
<if test="groupId != null">
and group_id = #{groupId}
</if>
<if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
and day BETWEEN #{beginTime}
AND #{endTime}
</if>
<if test="stationIds != null and stationIds.size() != 0">
and station_id in
<foreach collection="stationIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</where>
group by station_id, day,type
</select>
</mapper>

View File

@ -201,31 +201,6 @@
group by type,station_id,day
</where>
</select>
<select id="getElec" resultType="com.ho.business.vo.resp.profit.DayProfitType">
select
station_id,day,type,sum(digital) as digital
from elec_meter_value
<where>
digital > 0
<if test="type != null">
and type = #{type}
</if>
<if test="groupId != null">
and group_id = #{groupId}
</if>
<if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
and day BETWEEN #{beginTime}
AND #{endTime}
</if>
<if test="stationIds != null and stationIds.size() != 0">
and station_id in
<foreach collection="stationIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</where>
group by station_id, day,type;
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete

View File

@ -12,7 +12,19 @@
latitude,capacity,rate_power,
status,type,create_time,
contact,contact_details,grid_time,
update_time,deleted,is_enable,cabin_num,district,ad_code,is_daily_count,topology_type,cupboard_type,plan_version,inverter_flag,pv_power,icc_id,province,city,
update_time,deleted,is_enable,cabin_num,district,ad_code,is_daily_count,topology_type,cupboard_type,plan_version,inverter_flag,icc_id,province,city,
electricity_type,customer_type,voltage_level,batch_number,nation
</sql>
<sql id="Base_Column_List1">
id
,pid,group_id,dept_id,
name_en `name`,name_en,address,address_en,longitude,
latitude,capacity,rate_power,
status,type,create_time,
contact,contact_details,grid_time,
update_time,deleted,is_enable,cabin_num,district,ad_code,is_daily_count,
topology_type,cupboard_type,plan_version,inverter_flag,icc_id,province_en province,city,
electricity_type,customer_type,voltage_level,batch_number,nation
</sql>
@ -50,7 +62,14 @@
<select id="selectByIds" resultType="com.ho.business.entity.Station">
select
<include refid="Base_Column_List"/>
<choose>
<when test="lang != null and lang=='en_US' ">
<include refid="Base_Column_List1"></include>
</when>
<otherwise>
<include refid="Base_Column_List"></include>
</otherwise>
</choose>
from station
<where>
<if test="ids != null and ids.size() != 0">
@ -217,7 +236,6 @@
<if test="record.cupboardType != null">cupboard_type,</if>
<if test="record.planVersion != null">plan_version,</if>
<if test="record.inverterFlag != null">inverter_flag,</if>
<if test="record.pvPower != null">pv_power,</if>
<if test="record.iccId != null">icc_id,</if>
<if test="record.province != null">province,</if>
<if test="record.city != null">city,</if>
@ -255,7 +273,6 @@
<if test="record.cupboardType != null">#{record.cupboardType},</if>
<if test="record.planVersion != null">#{record.planVersion},</if>
<if test="record.inverterFlag != null">#{record.inverterFlag},</if>
<if test="record.pvPower != null">#{record.pvPower},</if>
<if test="record.iccId != null">#{record.iccId},</if>
<if test="record.province != null">#{record.province},</if>
<if test="record.city != null">#{record.city},</if>
@ -345,9 +362,6 @@
<if test="record.inverterFlag != null">
inverter_flag = #{record.inverterFlag},
</if>
<if test="record.pvPower != null">
pv_power = #{record.pvPower,jdbcType=DECIMAL},
</if>
<if test="record.iccId != null">
icc_id = #{record.iccId},
</if>

View File

@ -1,99 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ho.business.mapper.StationRemoteControlMapper">
<insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.ho.business.entity.StationRemoteControl"
useGeneratedKeys="true">
insert into station_remote_control
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="entity.id != null">id,</if>
<if test="entity.stationId != null">station_id,</if>
<if test="entity.ip != null">ip,</if>
<if test="entity.port != null">port,</if>
<if test="entity.userName != null">user_name,</if>
<if test="entity.password != null">password,</if>
<if test="entity.intranetIp != null">intranet_ip,</if>
<if test="entity.type != null">type,</if>
<if test="entity.createTime != null">create_time,</if>
<if test="entity.updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="entity.id != null">#{entity.id,jdbcType=INTEGER},</if>
<if test="entity.stationId != null">#{entity.stationId,jdbcType=INTEGER},</if>
<if test="entity.ip != null">#{entity.ip,jdbcType=VARCHAR},</if>
<if test="entity.port != null">#{entity.port,jdbcType=VARCHAR},</if>
<if test="entity.userName != null">#{entity.userName,jdbcType=VARCHAR},</if>
<if test="entity.password != null">#{entity.password,jdbcType=VARCHAR},</if>
<if test="entity.intranetIp != null">#{entity.intranetIp,jdbcType=VARCHAR},</if>
<if test="entity.type != null">#{entity.type,jdbcType=VARCHAR},</if>
<if test="entity.createTime != null">#{entity.createTime,jdbcType=TIMESTAMP},</if>
<if test="entity.updateTime != null">#{entity.updateTime,jdbcType=TIMESTAMP},</if>
</trim>
</insert>
<update id="update" parameterType="com.ho.business.entity.StationRemoteControl">
update station_remote_control
<set>
<if test="entity.ip != null">
ip = #{entity.ip,jdbcType=VARCHAR},
</if>
<if test="entity.port != null">
port = #{entity.port,jdbcType=VARCHAR},
</if>
<if test="entity.userName != null">
user_name = #{entity.userName,jdbcType=VARCHAR},
</if>
<if test="entity.password != null">
password = #{entity.password,jdbcType=VARCHAR},
</if>
<if test="entity.intranetIp != null">
intranet_ip = #{entity.intranetIp,jdbcType=VARCHAR},
</if>
<if test="entity.type != null">
type = #{entity.type,jdbcType=VARCHAR},
</if>
<if test="entity.updateTime != null">
update_time = #{entity.updateTime,jdbcType=VARCHAR},
</if>
</set>
where id = #{entity.id,jdbcType=INTEGER}
</update>
<delete id="delete">
delete from station_remote_control where id = #{id,jdbcType=INTEGER}
</delete>
<select id="search" resultType="com.ho.business.entity.StationRemoteControl">
select s.*,t.name stationName from station_remote_control s
left join station t on s.station_id = t.id
<where>
<if test="stationId != null and stationId !=''">
and s.station_id = #{stationId}
</if>
</where>
</select>
<select id="selectList" resultType="com.ho.business.entity.StationRemoteControl">
select s.*,t.name stationName from station_remote_control s
left join station t on s.station_id = t.id
<where>
<if test="vo.stationId != null and vo.stationId !=''">
and s.station_id = #{vo.stationId}
</if>
<if test="vo.stationName != null and vo.stationName !=''">
and t.name like concat('%',#{vo.stationName},'%')
</if>
<if test="vo.intranetIp != null and vo.intranetIp !=''">
and s.intranet_ip like concat('%',#{vo.intranetIp},'%')
</if>
<if test="vo.ip != null and vo.ip !=''">
and s.ip like concat('%',#{vo.ip},'%')
</if>
<if test="vo.type != null and vo.type !=''">
and s.type = #{vo.type}
</if>
</where>
order by s.create_time desc
</select>
</mapper>

View File

@ -8,13 +8,11 @@ import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.fill.FillConfig;
import com.alibaba.excel.write.metadata.fill.FillWrapper;
import com.ho.business.entity.*;
import com.ho.business.service.EarningsCalculateMpptService;
import com.ho.business.service.EarningsCalculateService;
import com.ho.business.service.StationService;
import com.ho.business.util.QueuesUtil;
import com.ho.business.vo.OneKeyComputationVo;
import com.ho.business.vo.req.carbin.EarningsCalculateReq;
import com.ho.business.vo.resp.InverterResp.PowerGenerateRespVO;
import com.ho.business.vo.resp.cabin.EarningsCalculateResp;
import com.ho.common.tools.annotation.HzPermission;
import com.ho.common.tools.annotation.TokenIgnore;
@ -25,7 +23,6 @@ import com.ho.common.tools.exception.BaseResponseCode;
import com.ho.common.tools.exception.BusinessException;
import com.ho.common.tools.exception.DataResult;
import com.ho.common.tools.service.RedisService;
import com.ho.common.tools.util.BigDecimalUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@ -62,15 +59,9 @@ public class EarningsCalculateController {
@Autowired
EarningsCalculateService earningsCalculateService;
@Autowired
EarningsCalculateMpptService earningsCalculateMpptService;
@Autowired
private StationService stationService;
@Autowired
BigDecimalUtil bigDecimalUtil;
@PostMapping("/getTotal")
@ApiOperation(value = "获取月发电量报表")
@TokenIgnore
@ -94,17 +85,6 @@ public class EarningsCalculateController {
return DataResult.success(total);
}
@PostMapping("/getPvMonthData")
@ApiOperation(value = "mppt月发电、收益(使用mppt计算)")
public DataResult<List<PowerGenerateRespVO>> getPvMonthData(@RequestBody EarningsCalculateReq req) {
//获取光伏放电、收益
List<PowerGenerateRespVO> pvList = earningsCalculateService.getPvMonthData(req);
for (PowerGenerateRespVO pcsElecData : pvList) {
bigDecimalUtil.keepTwoDecimalPlaces(pcsElecData);
bigDecimalUtil.ifIsNUll(pcsElecData);
}
return DataResult.success(pvList);
}
@TokenIgnore
@PostMapping("/all")
@ApiOperation(value = "查询所有电站接口")
@ -131,48 +111,6 @@ public class EarningsCalculateController {
stations = stations.stream().filter(i -> CommonConstant.ONE.equals(i.getStatus())).collect(Collectors.toList());
earningsCalculateService.queryDeviceByStationId(stations,null,beginTime);
}
@TokenIgnore
@PostMapping("/allMpptIncome")
@ApiOperation(value = "计算所有电站Mppt电价收益")
public void allMpptIncome(@RequestBody(required = false) String beginTime) {
try {
/*
* 定时任务 如果没有时间参数 就每天跑昨日数据
* 如果有 beginTime 参数不为空则先清除beginTime 时间的收益数据重新计算
*/
DateTime yesterday = DateUtil.yesterday();
String yesterdayStr = DateUtil.formatDate(yesterday);
if ( beginTime != null ) {
int i = earningsCalculateMpptService.deleteByDay(beginTime, null);
} else {
beginTime = yesterdayStr;
int i = earningsCalculateMpptService.deleteByDay(yesterdayStr, null);
}
} catch (Exception e) {
log.error("删除昨日数据失败:{}",e.getMessage());
}
List<Station> stations = stationService.selectAll();
//批量算的时候只计算电站是在投的且是接入光伏mppt的
stations = stations.stream().filter(i -> CommonConstant.ONE.equals(i.getStatus())
&&CommonConstant.ONE.equals(i.getInverterFlag())).collect(Collectors.toList());
earningsCalculateMpptService.allMpptIncome(stations,beginTime);
}
@TokenIgnore
@PostMapping("/allTodayMpptIncome")
@ApiOperation(value = "计算所有电站Mppt-今日收益")
public void allTodayMpptIncome(@RequestBody(required = false) String beginTime) {
DateTime nowDay = DateUtil.date();
String nowDayStr = DateUtil.formatDate(nowDay);
if ( beginTime == null ) {
beginTime = nowDayStr;
}
List<Station> stations = stationService.selectAll();
//批量算的时候只计算电站是在投的且是接入光伏mppt的
stations = stations.stream().filter(i -> CommonConstant.ONE.equals(i.getStatus())
&&CommonConstant.ONE.equals(i.getInverterFlag())).collect(Collectors.toList());
earningsCalculateMpptService.todayMpptIncome(stations,beginTime);
}
private List<String> getBetweenDate(String begin,String end){
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
@ -196,43 +134,7 @@ public class EarningsCalculateController {
}
return betweenList;
}
@TokenIgnore
@PostMapping("/exportPv")
@ApiOperation(value = "pv导出")
public void exportPv(HttpServletRequest req, HttpServletResponse response, @RequestBody EarningsCalculateReq earningsCalculateReq){
String lang = req.getHeader(CommonConstant.LANG);
earningsCalculateReq.setLang(lang);
EarningsCalculateResp total = earningsCalculateService.getTotal(earningsCalculateReq,PAGE_LIST_TYPE);
ServletOutputStream out = null;
try {
out = response.getOutputStream();
response.setContentType("multipart/form-data");
response.setCharacterEncoding("UTF-8");
//文件名字
String fileName = "demo.xlsx";
response.setHeader("Content-disposition", "attachment;filename=" +fileName);
String path="template/earningsPvTemplate.xlsx";
//文件模板输入流
InputStream inputStream = new ClassPathResource(path).getInputStream();
ExcelWriter writer = EasyExcel.write(out).withTemplate(inputStream).build();
WriteSheet sheet = EasyExcel.writerSheet().build();
FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();
List<PowerGenerateRespVO> pvList = earningsCalculateService.getPvMonthData(earningsCalculateReq);
for (PowerGenerateRespVO pcsElecData : pvList) {
bigDecimalUtil.keepTwoDecimalPlaces(pcsElecData);
bigDecimalUtil.ifIsNUll(pcsElecData);
}
writer.fill(new FillWrapper("vo", pvList), fillConfig, sheet);
//填充数据
writer.fill(total,fillConfig,sheet);
//填充完成
writer.finish();
out.flush();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@TokenIgnore
@PostMapping("/export")
@ApiOperation(value = "导出")

View File

@ -7,9 +7,13 @@ import com.ho.business.service.IargeScreenShowService;
import com.ho.business.service.StationService;
import com.ho.business.vo.req.cockpit.CockpitReqVO;
import com.ho.business.vo.resp.DeviceRespVO;
import com.ho.business.vo.resp.iargeScreen.*;
import com.ho.business.vo.resp.iargeScreen.AnnualChartValue;
import com.ho.business.vo.resp.iargeScreen.AnnualOverviewResp;
import com.ho.business.vo.resp.iargeScreen.EnergySavingRespVo;
import com.ho.business.vo.resp.iargeScreen.Subdata;
import com.ho.common.tools.annotation.CommonLargeScreenToken;
import com.ho.common.tools.annotation.TokenIgnore;
import com.ho.common.tools.constant.CommonConstant;
import com.ho.common.tools.constant.ContextConstant;
import com.ho.common.tools.constant.RedisKeyConstant;
import com.ho.common.tools.entity.SimpleUser;
@ -17,6 +21,7 @@ import com.ho.common.tools.entity.WeatherRespVo;
import com.ho.common.tools.exception.DataResult;
import com.ho.common.tools.service.RedisService;
import com.ho.common.tools.util.BigDecimalUtil;
import com.ho.common.tools.util.TranslateUtils;
import com.ho.flow.vo.resp.event.EventDayNum;
import com.ho.user.api.entity.SysDept;
import com.ho.user.api.vo.req.QueryDeptReqVO;
@ -30,6 +35,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
@ -171,9 +177,17 @@ public class IargeScreenShowController {
@PostMapping("/newWeather")
@ApiOperation(value = "新大屏天气接口")
@TokenIgnore
public DataResult<WeatherRespVo> newWeather() {
public DataResult<WeatherRespVo> newWeather(HttpServletRequest request) {
String lang =request.getHeader(RedisKeyConstant.User.LANG);
String key = RedisKeyConstant.WEATHER_PROVINCE_CITY + adCode;
WeatherRespVo info = (WeatherRespVo) redisService.get(key);
if(CommonConstant.EN_US.equals(lang)){
try {
info.setSkyCon(TranslateUtils.translate(info.getSkyCon()));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
return DataResult.success(info);
}
@ -196,7 +210,8 @@ public class IargeScreenShowController {
@TokenIgnore
@CommonLargeScreenToken
public DataResult<List<Subdata>> getCommonRegionalDistribution(HttpServletRequest request) {
List<Subdata> regionList = iargeScreenShowService.getCommonRegionList(getSimpleUser(request));
String lang =request.getHeader(RedisKeyConstant.User.LANG);
List<Subdata> regionList = iargeScreenShowService.getCommonRegionList(getSimpleUser(request),lang);
regionList.sort(Comparator.comparing((Subdata::getRegionValue)).reversed());
return DataResult.success(regionList);
}
@ -240,7 +255,8 @@ public class IargeScreenShowController {
@TokenIgnore
@CommonLargeScreenToken
public DataResult<List<Subdata>> getCommonIncomeList(HttpServletRequest request) {
List<Subdata> regionList = iargeScreenShowService.getCommonProfit(null, null, getSimpleUser(request));
String lang =request.getHeader(RedisKeyConstant.User.LANG);
List<Subdata> regionList = iargeScreenShowService.getCommonProfit(null, null, getSimpleUser(request),lang);
if (regionList.size() > maxSize) {
regionList = regionList.subList(0, maxSize);
}
@ -256,7 +272,8 @@ public class IargeScreenShowController {
@TokenIgnore
@CommonLargeScreenToken
public DataResult<List<Subdata>> getCommonEfficiencyDate(HttpServletRequest request) {
List<Subdata> efficiencyList = iargeScreenShowService.getCommonEfficiencyDate(getSimpleUser(request));
String lang =request.getHeader(RedisKeyConstant.User.LANG);
List<Subdata> efficiencyList = iargeScreenShowService.getCommonEfficiencyDate(getSimpleUser(request),lang);
return DataResult.success(efficiencyList);
}
@ -268,7 +285,7 @@ public class IargeScreenShowController {
List<Integer> ids = getSimpleUser(request);
List<Station> stations = new ArrayList<>();
if (ids != null) {
stations = iargeScreenShowService.getCountStations(ids);
stations = iargeScreenShowService.getCountStations(ids,null);
}
return DataResult.success(stations);
}
@ -278,7 +295,8 @@ public class IargeScreenShowController {
@TokenIgnore
@CommonLargeScreenToken
public DataResult<List<Subdata>> getCommonCapacity(HttpServletRequest request) {
List<Subdata> regionList = iargeScreenShowService.getCommonCapacity(getSimpleUser(request));
String lang =request.getHeader(RedisKeyConstant.User.LANG);
List<Subdata> regionList = iargeScreenShowService.getCommonCapacity(getSimpleUser(request),lang);
return DataResult.success(regionList);
}
@ -336,8 +354,9 @@ public class IargeScreenShowController {
@PostMapping("getZhongZiDistribution")
@ApiOperation(value = "中自电站区域分布")
@TokenIgnore
public DataResult<List<Subdata>> getZhongZiDistribution(@RequestBody CockpitReqVO vo) {
List<Subdata> regionList = iargeScreenShowService.getCommonRegionList((getByDeptId(vo.getDeptId())));
public DataResult<List<Subdata>> getZhongZiDistribution(@RequestBody CockpitReqVO vo,HttpServletRequest request) {
String lang =request.getHeader(RedisKeyConstant.User.LANG);
List<Subdata> regionList = iargeScreenShowService.getCommonRegionList((getByDeptId(vo.getDeptId())),lang);
regionList.sort(Comparator.comparing((Subdata::getRegionValue)).reversed());
return DataResult.success(regionList);
}
@ -376,8 +395,9 @@ public class IargeScreenShowController {
@PostMapping("getZhongZiIncomeList")
@ApiOperation(value = "中自电站收益排名")
@TokenIgnore
public DataResult<List<Subdata>> getZhongZiIncomeList(@RequestBody CockpitReqVO vo) {
List<Subdata> regionList = iargeScreenShowService.getCommonProfit(null, null, getByDeptId(vo.getDeptId()));
public DataResult<List<Subdata>> getZhongZiIncomeList(@RequestBody CockpitReqVO vo,HttpServletRequest request) {
String lang =request.getHeader(RedisKeyConstant.User.LANG);
List<Subdata> regionList = iargeScreenShowService.getCommonProfit(null, null, getByDeptId(vo.getDeptId()),lang);
if (regionList.size() > maxSize) {
regionList = regionList.subList(0, maxSize);
}
@ -391,8 +411,9 @@ public class IargeScreenShowController {
@PostMapping("getZhongZiEfficiencyDate")
@ApiOperation(value = "中自系统转换率")
@TokenIgnore
public DataResult<List<Subdata>> getZhongZiEfficiencyDate(@RequestBody CockpitReqVO vo) {
List<Subdata> efficiencyList = iargeScreenShowService.getCommonEfficiencyDate(getByDeptId(vo.getDeptId()));
public DataResult<List<Subdata>> getZhongZiEfficiencyDate(@RequestBody CockpitReqVO vo,HttpServletRequest request) {
String lang =request.getHeader(RedisKeyConstant.User.LANG);
List<Subdata> efficiencyList = iargeScreenShowService.getCommonEfficiencyDate(getByDeptId(vo.getDeptId()),lang);
return DataResult.success(efficiencyList);
}
@ -403,7 +424,7 @@ public class IargeScreenShowController {
List<Integer> ids = getByDeptId(vo.getDeptId());
List<Station> stations = new ArrayList<>();
if (ids != null) {
stations = iargeScreenShowService.getCountStations(ids);
stations = iargeScreenShowService.getCountStations(ids,null);
}
return DataResult.success(stations);
}
@ -411,93 +432,11 @@ public class IargeScreenShowController {
@PostMapping("getZhongZiCapacity")
@ApiOperation(value = "中自装机容量倒排")
@TokenIgnore
public DataResult<List<Subdata>> getZhongZiCapacity(@RequestBody CockpitReqVO vo) {
List<Subdata> regionList = iargeScreenShowService.getCommonCapacity(getByDeptId(vo.getDeptId()));
public DataResult<List<Subdata>> getZhongZiCapacity(@RequestBody CockpitReqVO vo,HttpServletRequest request) {
String lang =request.getHeader(RedisKeyConstant.User.LANG);
List<Subdata> regionList = iargeScreenShowService.getCommonCapacity(getByDeptId(vo.getDeptId()),lang);
return DataResult.success(regionList);
}
/*********************************以下为中自-光伏大屏接口***************************************/
@PostMapping("getZhongZiPvDistribution")
@ApiOperation(value = "中自-光伏电站区域分布")
@TokenIgnore
public DataResult<List<Subdata>> getZhongZiPvDistribution(@RequestBody CockpitReqVO vo) {
List<Subdata> regionList = iargeScreenShowService.getCommonPvRegionList((getByDeptId(vo.getDeptId())));
regionList.sort(Comparator.comparing((Subdata::getRegionValue)).reversed());
return DataResult.success(regionList);
}
@PostMapping("getZhongZiPvOverviewData")
@ApiOperation(value = "中自储能-光伏年度概览/年度收益概览接口返回")
@TokenIgnore
public DataResult<AnnualPvOverviewResp> getZhongZiPvOverviewData(@RequestBody CockpitReqVO vo) {
AnnualPvOverviewResp annualOverviewResp = iargeScreenShowService.getPvOverviewData(getByDeptId(vo.getDeptId()));
bigDecimalUtil.keepTwoDecimalPlaces(annualOverviewResp);
bigDecimalUtil.ifIsNUll(annualOverviewResp);
return DataResult.success(annualOverviewResp);
}
@PostMapping("getZhongZiPvEnergySaving")
@ApiOperation(value = "中自-光伏节能减排")
@TokenIgnore
public DataResult<EnergySavingRespVo> getZhongZiPvEnergySaving(@RequestBody CockpitReqVO vo) {
EnergySavingRespVo energySaving = iargeScreenShowService.getPvEnergySaving(getByDeptId(vo.getDeptId()));
bigDecimalUtil.keepTwoDecimalPlaces(energySaving);
bigDecimalUtil.ifIsNUll(energySaving);
return DataResult.success(energySaving);
}
@PostMapping("getZhongZiPvIncomeCurve")
@ApiOperation(value = "中自光伏收益曲线")
@TokenIgnore
public DataResult<List<AnnualChartValue>> getZhongZiPvIncomeCurve(@RequestBody CockpitReqVO vo) {
List<AnnualChartValue> list = iargeScreenShowService.getPVCommonProfitCurve(vo, getByDeptId(vo.getDeptId()));
for (AnnualChartValue annualChartValue : list) {
bigDecimalUtil.keepTwoDecimalPlaces(annualChartValue);
bigDecimalUtil.ifIsNUll(annualChartValue);
}
return DataResult.success(list);
}
@PostMapping("getZhongZiPvIncomeList")
@ApiOperation(value = "中自-光伏电站收益排名")
@TokenIgnore
public DataResult<List<Subdata>> getZhongZiPvIncomeList(@RequestBody CockpitReqVO vo) {
List<Subdata> regionList = iargeScreenShowService.getPvCommonProfit(null,null,getByDeptId(vo.getDeptId()));
if (regionList.size() > maxSize) {
regionList = regionList.subList(0, maxSize);
}
for (Subdata subdata : regionList) {
bigDecimalUtil.keepTwoDecimalPlaces(subdata);
bigDecimalUtil.ifIsNUll(subdata);
}
return DataResult.success(regionList);
}
@PostMapping("getZhongZiPvElecList")
@ApiOperation(value = "中自-光伏电站发电量排名")
@TokenIgnore
public DataResult<List<Subdata>> getZhongZiPvElecList(@RequestBody CockpitReqVO vo) {
List<Subdata> regionList = iargeScreenShowService.getPvCommonElec(null,null,getByDeptId(vo.getDeptId()));
if (regionList.size() > maxSize) {
regionList = regionList.subList(0, maxSize);
}
for (Subdata subdata : regionList) {
bigDecimalUtil.keepTwoDecimalPlaces(subdata);
bigDecimalUtil.ifIsNUll(subdata);
}
return DataResult.success(regionList);
}
@PostMapping("getZhongZiPvRelease")
@ApiOperation(value = "中自pv日发电量")
@TokenIgnore
public DataResult<List<AnnualChartValue>> getZhongZiPvRelease(@RequestBody CockpitReqVO vo) {
List<AnnualChartValue> list = iargeScreenShowService.getCommonPvRelease(getByDeptId(vo.getDeptId()));
for (AnnualChartValue subdata : list) {
bigDecimalUtil.keepTwoDecimalPlaces(subdata);
bigDecimalUtil.ifIsNUll(subdata);
}
return DataResult.success(list);
}
/************************************************************************/
}

View File

@ -12,7 +12,6 @@ import com.ho.business.vo.req.StationReq;
import com.ho.business.vo.req.dynamicConfig.DynamicConfigQuery;
import com.ho.business.vo.req.pcsStation.PcsStationReq;
import com.ho.business.vo.resp.DeviceRespVO;
import com.ho.business.vo.resp.InverterResp.PowerGenerateRespVO;
import com.ho.business.vo.resp.ShipStationRespVO;
import com.ho.business.vo.resp.cabin.CircleCtrlResp;
import com.ho.business.vo.resp.cabin.EarningsCalculateCountResp;
@ -29,7 +28,6 @@ import com.ho.business.vo.resp.station.NewRealTimeCurveVo;
import com.ho.common.tools.annotation.TokenIgnore;
import com.ho.common.tools.constant.CommonConstant;
import com.ho.common.tools.constant.ContextConstant;
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.util.BigDecimalUtil;
@ -45,7 +43,6 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.math.BigDecimal;
@ -97,9 +94,6 @@ public class OpenStationController {
@Autowired
EarningsCalculateService earningsCalculateService;
@Autowired
ShipEnergyService shipEnergyService;
@PostMapping("statusMonitor")
@ApiOperation(value = "状态监控")
public DataResult<StatusMonitorVo> statusMonitor(@RequestBody StationReq stationReq) {
@ -113,7 +107,6 @@ public class OpenStationController {
@PostMapping("/realtimeCurve")
@ApiOperation(value = "实时曲线")
@TokenIgnore
//@Cacheable(cacheManager = "towMinuteCacheManager", value = "stationRealtimeCurve", key = "#stationReq.stationId", sync = true)
public DataResult<List<NewRealTimeCurveVo>> realtimeCurve(@RequestBody StationReq stationReq) {
log.info("realtimeCurve.stationRealtimeCurve:" + stationReq);
@ -328,7 +321,19 @@ public class OpenStationController {
req.setDeviceType(deviceType);
}
List<PcsElecData> list = stationHomeService.getPcsElecData(req);
//获取光伏充电
List<PcsElecData> pvList = stationHomeService.getPvChargeElec(req);
Map<String, List<PcsElecData>> dataMap = pvList.stream().collect(Collectors.groupingBy(PcsElecData::getDate));
for (PcsElecData pcsElecData : list) {
if (dataMap.containsKey(pcsElecData.getDate())) {
List<PcsElecData> pcsElecData1 = dataMap.get(pcsElecData.getDate());
if (pcsElecData1.get(CommonConstant.ZERO).getPvChargeElec() != null) {
pcsElecData.setPvChargeElec(pcsElecData1.get(CommonConstant.ZERO).getPvChargeElec());
}
}
}
for (PcsElecData pcsElecData : list) {
bigDecimalUtil.keepTwoDecimalPlaces(pcsElecData);
bigDecimalUtil.ifIsNUll(pcsElecData);
@ -336,18 +341,6 @@ public class OpenStationController {
return DataResult.success(list);
}
@PostMapping("/getPvData")
@ApiOperation(value = "mppt放电、收益(使用mppt计算)")
public DataResult<List<PowerGenerateRespVO>> getPvData(@RequestBody PcsStationReq req) throws ParseException {
//获取光伏放电、收益
List<PowerGenerateRespVO> pvList = stationHomeService.getPvData(req);
for (PowerGenerateRespVO pcsElecData : pvList) {
bigDecimalUtil.keepTwoDecimalPlaces(pcsElecData);
bigDecimalUtil.ifIsNUll(pcsElecData);
}
return DataResult.success(pvList);
}
/**
* 导出累计充放电量数据
*
@ -357,10 +350,9 @@ public class OpenStationController {
@ApiOperation(value = "多电站导出累计充放电量数据")
//@LogAnnotation(title = "累计充放电量", action = "导出累计充放电量数据")
//@HzPermission(value = {PermissionConstant.REMOTECONTROL_COMMAND_EXPORT,PermissionConstant.DATA_SHOW_EXPORT,PermissionConstant.REMOTECONTROL_COMMAND_EXPORT})
public void exportExcel(@RequestBody @Valid PcsStationReq req, HttpServletResponse response, HttpServletRequest request) {
String lang = request.getHeader(RedisKeyConstant.User.LANG);
public void exportExcel(@RequestBody @Valid PcsStationReq req, HttpServletResponse response) {
//功能描述把同一个表格多个sheet测试结果重新输出
openStationService.exportEleData(req, response,lang);
openStationService.exportEleData(req, response);
}

View File

@ -219,7 +219,7 @@ public class OuterApiController {
@PostMapping("selectByStationIds")
@TokenIgnore
public DataResult<List<Station>> selectByStationIds(@RequestBody List<Integer> ids) {
List<Station> stations = stationService.selectStationsByIds(ids);
List<Station> stations = stationService.selectStationsByIds(ids,null);
return DataResult.success(stations);
}
@ -420,10 +420,8 @@ public class OuterApiController {
public DataResult jobIntegratedCabinet(@RequestBody MonitorQuery monitorQuery) {
log.info("jobIntegratedCabinet, {}", monitorQuery);
outApiService.dayChargeDeal(monitorQuery);
// outApiService.currentMonthYearDeal(monitorQuery);
// outApiService.dayPVCharge(monitorQuery);
outApiService.dayPVMpptCharge(monitorQuery);
outApiService.currentMonthYearDeal(monitorQuery);
outApiService.dayPVCharge(monitorQuery);
return DataResult.success();
}

View File

@ -77,18 +77,6 @@ public class PcsController {
return DataResult.success(resList);
}
@PostMapping("/pvCurve")
@ApiOperation(value = "mppt曲线")
public DataResult<List<AppRealTimeCurveRespVo>> pvCurve(@RequestBody MonitorQuery monitorQuery) {
List<AppRealTimeCurveRespVo> resList = stationHomeService.pvCurve(monitorQuery);
//返回值的BigDecimal类型保留两位小数
for (AppRealTimeCurveRespVo realTimeCurveRespVo : resList) {
bigDecimalUtil.keepTwoDecimalPlaces(realTimeCurveRespVo);
bigDecimalUtil.ifIsNUll(realTimeCurveRespVo);
}
return DataResult.success(resList);
}
@PostMapping("/opticalStorageCurve")
@ApiOperation(value = "光储逆变器曲线")

View File

@ -1,7 +1,6 @@
package com.ho.business.controller;
import com.ho.business.service.ShipEnergyService;
import com.ho.business.vo.resp.ShipStationRespVO;
import com.ho.common.tools.annotation.TokenIgnore;
import com.ho.common.tools.constant.ContextConstant;
import com.ho.common.tools.exception.DataResult;

View File

@ -1,72 +0,0 @@
package com.ho.business.controller;
import com.ho.business.entity.StationRemoteControl;
import com.ho.business.service.StationRemoteControlService;
import com.ho.business.vo.req.StationRemoteControlPageVo;
import com.ho.common.tools.annotation.LogAnnotation;
import com.ho.common.tools.constant.ContextConstant;
import com.ho.common.tools.exception.BaseResponseCode;
import com.ho.common.tools.exception.BusinessException;
import com.ho.common.tools.exception.DataResult;
import com.ho.common.tools.util.PageResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.Date;
@RequestMapping(ContextConstant.BUSINESS + "stationRemote")
@RestController
@Api(tags = "业务模块-电站远控管理")
public class StationRemoteController {
@Autowired
private StationRemoteControlService stationRemoteControlService;
@PostMapping("saveOrUpdate")
@ApiOperation(value = "新增/修改远控电站信息")
@LogAnnotation(title = "电站远控管理", action = "新增/修改新增远控电站信息")
public DataResult saveOrUpdate(@RequestBody @Valid StationRemoteControl entity) {
if(entity==null){
throw new BusinessException(BaseResponseCode.DATA_NOT_EXISTS);
}
if(entity.getId()==null){
//新增
StationRemoteControl stationRemoteControl = stationRemoteControlService.search(entity.getStationId());
if (stationRemoteControl != null) {
throw new BusinessException(BaseResponseCode.STATION_ALREADY_EXISTS);
}
entity.setCreateTime(new Date());
stationRemoteControlService.insert(entity);
}else{
//修改
entity.setUpdateTime(new Date());
stationRemoteControlService.update(entity);
}
return DataResult.success();
}
@DeleteMapping("delete")
@ApiOperation(value = "删除远控电站信息")
@LogAnnotation(title = "电站远控管理", action = "删除远控电站信息")
public DataResult delete(@RequestBody Integer id) {
stationRemoteControlService.delete(id);
return DataResult.success();
}
@PostMapping("search")
@ApiOperation(value = "查询远控电站信息")
public DataResult<StationRemoteControl> search(@RequestBody StationRemoteControlPageVo vo) {
StationRemoteControl stationRemoteControl=stationRemoteControlService.search(vo.getStationId());
return DataResult.success(stationRemoteControl);
}
@PostMapping("pageList")
@ApiOperation(value = "查询远控电站信息")
public DataResult<PageResult<StationRemoteControl>> pageList(@RequestBody StationRemoteControlPageVo vo) {
PageResult<StationRemoteControl> page = stationRemoteControlService.selectPageList(vo);
return DataResult.success(page);
}
}

View File

@ -1,58 +0,0 @@
server:
port: 8011
servlet:
context-path: /api
#swagger2配置
swagger2:
enable: true #开启swagger
projectName: 云平台--business-前端接口
controllerPath: com.ho.business.controller
spring:
jackson:
time-zone: GMT+8
application:
name: business-service
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.0.139:3306/business_db?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
username: business_db
password: zzkj@688737
druid:
initialSize: 5
minIdle: 5
maxActive: 5
keepAlive: true #保持长连接
connection-error-retry-attempts: 3
#Redis
redis:
port: 6379 #端口
timeout: 50000ms #连接超时
host: 192.168.0.139 #单机
password: 123456
database: 0
lettuce:
pool:
max-active: 8 #连接池最大连接 默认8
max-idle: 8 #连接池中最大空闲连接 默认8
min-idle: 1 #连接池中最小空闲连接 默认0
max-wait: 2000ms #连接池最大阻塞等待时间 使用负值表示没有限制
boot:
admin:
client:
url: http://localhost:8019/boot
minio:
accessKey: minioadmin
secretKey: minioadmin
endpoint: http://1.95.170.86:9000
prefixUrl: http://1.95.170.86:9000
formula:
fieldmap:
RT_FIELD_BEAN: RT_FIELD_BEAN

View File

@ -79,7 +79,7 @@ inverter:
largeScreen:
#收益系数
income: 0.6
weatherCode: 510105
weatherCode: 510117
#线上环境redis密码
openRedis:

View File

@ -995,47 +995,7 @@ public interface CommonConstant {
//将数据库统配符合“_”变成普通字符
String JOIN_STATION_ID = "\\_";
String REPORT_NAME="月度报表";
String REPORT_NAME_EN="Monthly report";
String BILL_NAME="月度账单";
String BILL_NAME_EN="Monthly bill";
// 语言切换
String LANG = "lang";
interface lang{
// 中文
String ZH = "zh";
// 英语
String EN = "en";
// 法语
String FRA = "fra";
// 西班牙
String SPA = "spa";
// 德语
String DE = "de";
// 波兰
String PL = "pl";
// 阿拉伯语
String ARA = "ara";
}
interface langTemp{
// 简体中文
String ZH_CN="zh_CN";
// 美式英语
String EN_US="en_US";
// 法语
String FR_FR="fr_FR";
// 西班牙语
String ES_ES="es_ES";
// 德语
String DE_DE="de_DE";
// 波兰语
String PL_PL="pl_PL";
// 阿拉伯语
String AR_EG="ar_EG";
}
String EN_US="en_US";
interface HttpCode {
// 调用成功code

View File

@ -26,12 +26,9 @@ public interface DefineConstant {
String SHARP = "";
String SUMMARY = "汇总";
String SUMMARY_EN = "Summary";
String SUMMARY_DATA_STATION = "电站汇总数据";
String SUMMARY_DATA_STATION_EN = "Summary data of power station";
interface PeakShaving {
String ADD_TEMPLATE_SUCCESS = "新增计划曲线模板成功";
String TEMPLATE_CHECK_SIZE = "至少有一个时段和一个计划用电,请确认后重试!";

View File

@ -35,7 +35,7 @@ public class AddressUntils {
}
public static JSONObject getLocationInfo(String lat, String lng) throws IOException {
String urlString = "http://apis.map.qq.com/ws/geocoder/v1/?location=" + lat + "," + lng + "&key=" + secretKey;
String urlString = "https://apis.map.qq.com/ws/geocoder/v1/?location=" + lat + "," + lng + "&key=" + secretKey;
System.out.println("请求经纬度url:" + urlString);
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();

View File

@ -215,8 +215,6 @@ public interface DataCollectConstant {
interface PV_CHARGE_POINT {
//光伏
String PV_DAILY_CHARGING_ENERGY = "pvDailyChargingEnergy";
// Mppt 总发
String TOTAL_RELEASE = "totalRelease";
}
interface BMS_POINT {

View File

@ -1,81 +0,0 @@
server:
port: 8010
servlet:
context-path: /api
#swagger2配置
swagger2:
enable: true #开启swagger
projectName: 云平台--business-前端接口
controllerPath: com.ho.datacollect.controller
#mqtt
mqtt:
url: tcp://1.95.170.86:1883
userName: admin
passWord: zzkj688737
timeout: 5000
keepAlive: 60
#密钥
secret:
loginSecret: 6131231@#42a765#
#topic
topic:
edgeLoginRequest: +/device/+/login/request
cloudLoginResponse: +/cloud/+/login/response
cloudReadRequest: +/cloud/+/read/request
edgeReadResponse: +/device/+/read/response
cloudWriteRequest: +/cloud/+/write/request
edgeWriteResponse: +/device/+/write/response
cloudReportPush: +/cloud/+/report/push
edgeReportPush: +/device/+/report/push
cloudControlRequest: +/cloud/+/control/request
edgeControlResponse: +/device/+/control/response
spring:
jackson:
time-zone: GMT+8
application:
name: datacollect-service
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.0.139:3306/business_db?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: business_db
password: zzkj@688737
druid:
initialSize: 5
minIdle: 5
maxActive: 5
keepAlive: true #保持长连接
connection-error-retry-attempts: 3
#Redis
redis:
port: 6379 #端口
timeout: 3000ms #连接超时
host: 192.168.0.139 #单机
password: 123456
database: 0
lettuce:
pool:
max-active: 8 #连接池最大连接 默认8
max-idle: 8 #连接池中最大空闲连接 默认8
min-idle: 1 #连接池中最小空闲连接 默认0
max-wait: 2000ms #连接池最大阻塞等待时间 使用负值表示没有限制
minio:
accessKey: minioadmin
secretKey: minioadmin
endpoint: http://1.95.170.86:9000
prefixUrl: http://1.95.170.86:9000
#跳过登录true ,不跳过false
skipLogin: false

View File

@ -203,7 +203,7 @@ public class WeatherController {
//每天的站级天气信息
@PostMapping("jobStationWeathers")
@TokenIgnore
public DataResult jobStationWeathers() {
public DataResult jobStationWeathers() throws InterruptedException {
log.info("jobStationWeathers ,start");
//先查所有电站
DataResult<List<Station>> listDataResult = businessFeignClient.selectAllStation();
@ -213,23 +213,9 @@ public class WeatherController {
}
List<Station> stations = listDataResult.getData();
if (!stations.isEmpty()) {
//得到不重复的电站
// List<Station> stationList = weatherStationService.dealStation(stations);
//生成按省市为key的缓存
long updateTime = System.currentTimeMillis();
Map<String, String> map = new HashMap<>();
for (Station station : stations) {
//循环调用
// String pinyin = PinyinUtil.getPinyin(station.getAddress());
// log.info("pinyin:" + pinyin);
// String longitude = String.valueOf(station.getLongitude());
// String latitude = String.valueOf(station.getLatitude());
// WeatherRespVo weather = weatherService.getWeatherFromApi(longitude, latitude);
// weather.setUpdateTime(updateTime);
// weather.setCityzh(station.getName());
// //
// String key = "weatherProvinceCity:" + pinyin;
// redisService.set(key,weather );
String adCode = station.getAdCode();
if (null == adCode) {
MyAddress address = AddressUntils.getAddress(String.valueOf(station.getLatitude()),String.valueOf(station.getLongitude()));
@ -241,9 +227,15 @@ public class WeatherController {
continue;
}
String key = RedisKeyConstant.WEATHER_PROVINCE_CITY + adCode;
Thread.sleep(200);
WeatherRespVo weatherRespVo = WeatherUntils.getWeatherRespVo(station.getAdCode());
weatherRespVo.setUpdateTime(updateTime);
redisService.set(key, weatherRespVo);
if(weatherRespVo!=null){
weatherRespVo.setUpdateTime(updateTime);
redisService.set(key, weatherRespVo);
log.info("更新天气站点名称:{},weatherRespVo:{}",station.getName(),weatherRespVo);
}else{
log.info("报错的站id:{},报错的adCode:{}",station.getId(),adCode);
}
map.put(adCode, adCode);
}
}

View File

@ -1,99 +0,0 @@
#文件中心
server:
port: 8017
servlet:
#上下文统一使用api,屏蔽前端路径差异
context-path: /api
#mqtt
mqtt:
url: tcp://1.95.170.86:1883
userName: admin
passWord: zzkj688737
timeout: 5000
keepAlive: 60
#主题 todo
topic:
cloudFileRequest: +/cloud/+/file/request
cloudFileResponse: +/cloud/+/file/response
edgeFileResponse: +/device/+/file/response
edgeFileRequest: +/device/+/file/request
cloudControlRequest: +/cloud/+/control/request
edgeControlResponse: +/device/+/control/response
#路径 todo 先再本地
path:
local: /opt/file_center
#下发文件路径
copy: /opt/file_copy
#天气ip2region.db路径
weather: /opt/ip2region.db
chartPath: /opt/image/
#指定字节大小
size:
byteSize: 102400
#通用文件
files:
upload:
path: D:\upload
format: .jpg,.png,.doc,.docx,.xlsx,.xls,.pdf
maxByte: 10485760
#swagger2配置
swagger2:
enable: true #开启标志 生产环境要关闭
projectName: 云平台-文件中心-接口
controllerPath: com.ho.filecenter.controller
spring:
jackson:
time-zone: GMT+8
application:
name: file-center
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.0.139:3306/file_center_db?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
username: file_center_db
password: zzkj@688737
druid:
initialSize: 5
minIdle: 5
maxActive: 5
keepAlive: true #保持长连接
connection-error-retry-attempts: 3
#设备文件上传大小
servlet:
multipart:
max-file-size: 500MB
max-request-size: 500MB
enabled: true
#Redis
redis:
port: 6379 #端口
timeout: 3000ms #连接超时
host: 192.168.0.139 #单机
password: 123456
database: 0
lettuce:
pool:
max-active: 8 #连接池最大连接 默认8
max-idle: 8 #连接池中最大空闲连接 默认8
min-idle: 1 #连接池中最小空闲连接 默认0
max-wait: 2000ms #连接池最大阻塞等待时间 使用负值表示没有限制
minio:
accessKey: minioadmin
secretKey: minioadmin
endpoint: http://1.95.170.86:9000
prefixUrl: http://1.95.170.86:9000

View File

@ -1,84 +0,0 @@
#文件中心
server:
port: 8021
servlet:
#上下文统一使用api,屏蔽前端路径差异
context-path: /api
tomcat:
min-spare-threads: 30
spring:
jackson:
time-zone: GMT+8
application:
name: flowable-center
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.0.139:3306/flow_db?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowMultiQueries=true
username: flow_db
password: zzkj@688737
druid:
initialSize: 5
minIdle: 5
maxActive: 5
keepAlive: true #保持长连接
connection-error-retry-attempts: 3
#Redis
redis:
port: 6379 #端口
timeout: 300000ms #连接超时
host: 192.168.0.139 #单机
password: 123456
database: 0
lettuce:
pool:
max-active: 8 #连接池最大连接 默认8
max-idle: 8 #连接池中最大空闲连接 默认8
min-idle: 1 #连接池中最小空闲连接 默认0
max-wait: 2000ms #连接池最大阻塞等待时间 使用负值表示没有限制
#工作流
activiti:
# 自动部署,验证设置true-开启默认、false-关闭
check-process-definitions: false
# 保存历史数据
history-level: full
# 检测历史表是否存在
db-history-used: true
# 关闭自动部署
deployment-mode: never-fail
# 对数据库中所有表进行更新操作,如果表不存在,则自动创建
# create_drop启动时创建表在关闭时删除表必须手动关闭引擎才能删除表
# drop-create启动时删除原来的旧表然后在创建新表不需要手动关闭引擎
database-schema-update: true
# 解决频繁查询SQL问题
async-executor-activate: false
use-strong-uuids: false
initialDelay: 5
flag: 0
#自定义工作量变量
flow:
#工单流程配置
workOrder:
#流程定义的key ,根据实际的名称来
procDefKey: workOrder
#处理工单的岗位 ,后续可能是多个
doing: tro,worker
#验收工单的岗位
check: tro,worker
#评价工单的岗位
appraise: ceo
#swagger2配置
swagger2:
enable: true #开启swagger
projectName: 云平台--flow-前端接口
controllerPath: com.ho.flow.controller

View File

@ -1597,47 +1597,7 @@ public class Device001ApiController {
}
return DataResult.success(list);
}
/**
* 冻结光伏-Mppt日发电量
* @param query
* @return
*/
@PostMapping("getToDayPVMpptCharge")
public DataResult<StationHomeRespVo> getToDayPVMpptCharge(@RequestBody TdBaseTimeQuery query){
//拼接后缀表名
Map<Integer, String> colNameMap = query.getMap();
String modelName = query.getModelName();
StationHomeRespVo stationHomeRespVo = new StationHomeRespVo();
if (colNameMap != null) {
//查询发电量
String charge = colNameMap.get(query.getSrcId());
if (charge != null) {
query.setBeginLong(query.getBegin().getTime());
query.setEndLong(query.getEnd().getTime());
query.setCol(charge);
String tableName = getTableName(query);
log.info("charge != null");
//计算昨日发电量
BigDecimal ele = getPvBigDecimal(query, tableName, modelName, charge, DeviceTypeConstant.PV_DAILY_CHARGE_START);
stationHomeRespVo.setDigital(ele);
// 缓存今日发电量起始值
query.setBeginLong(DateUtil.beginOfDay(DateUtil.date()).getTime());
query.setEndLong(DateUtil.endOfDay(DateUtil.date()).getTime());
List<StationHomeRespVo> stationHomeRespVos = null;
if (DeviceTypeConstant.DEVICE_SIMPLE.equals(modelName)) {
stationHomeRespVos = deviceSimpleMapper.selectAll(query, tableName);
} else if (DeviceTypeConstant.DEVICE_COMPLEX.equals(modelName)) {
stationHomeRespVos = deviceComplexMapper.selectAll(query, tableName);
}
if (stationHomeRespVos != null && stationHomeRespVos.size() > 0) {
BigDecimal startEle = stationHomeRespVos.get(0).getDigital();
query.setBegin(DateUtil.beginOfDay(new Date()));
cacheObj(query, DeviceTypeConstant.PV_DAILY_CHARGE_START, startEle);
}
}
}
return DataResult.success(stationHomeRespVo);
}
/**
* 光伏累计充
*/
@ -1820,31 +1780,6 @@ public class Device001ApiController {
return ele;
}
@NotNull
private BigDecimal getPvBigDecimal(TdBaseTimeQuery query, String tableName, String modelName, String col, String dayCol) {
long start = System.currentTimeMillis();
List<StationHomeRespVo> stationHomeRespVos = null;
if (DeviceTypeConstant.DEVICE_SIMPLE.equals(modelName)) {
stationHomeRespVos = deviceSimpleMapper.selectAll(query, tableName);
} else if (DeviceTypeConstant.DEVICE_COMPLEX.equals(modelName)) {
stationHomeRespVos = deviceComplexMapper.selectAll(query, tableName);
}
BigDecimal ele = BigDecimal.ZERO;
if (stationHomeRespVos != null && stationHomeRespVos.size() > 0) {
int len = stationHomeRespVos.size();
BigDecimal startEle = stationHomeRespVos.get(0).getDigital();
BigDecimal endEle = stationHomeRespVos.get(len - 1).getDigital();
ele = endEle.subtract(startEle);
//处理异常值
ele = handleEle(ele, startEle, endEle, stationHomeRespVos);
} else {
log.info("getDayPowerGeneration get stationHomeRespVos is empty,col:{},tableName:{},time:{}", col, tableName, new Date());
}
long end = System.currentTimeMillis();
log.info("getBigDecimal used1:" + (end - start));
return ele;
}
/**
* 异常值处理
*

View File

@ -1,39 +0,0 @@
server:
port: 8013
servlet:
context-path: /td
spring:
jackson:
time-zone: GMT+8
application:
name: td-service
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.taosdata.jdbc.rs.RestfulDriver
url: jdbc:TAOS-RS://192.168.0.139:6041/test_td_db?user=root&password=taosdata&charset=UTF-8&locale=zh_CN.UTF-8&timezone=UTC-8
username: root
password: taosdata
druid:
initial-size: 6
min-idle: 6
max-active: 12
max-wait: 10000
time-between-eviction-runs-millis: 60000
validation-query: SELECT 1 as nums
#Redis
redis:
port: 6379 #端口
timeout: 3000ms #连接超时
host: 192.168.0.139 #单机
password: 123456
database: 0
boot:
admin:
client:
url: http://localhost:8019/boot

View File

@ -5,7 +5,6 @@ import cn.hutool.crypto.digest.BCrypt;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ho.business.vo.resp.ShipStationRespVO;
import com.ho.common.tools.annotation.HzPermission;
import com.ho.common.tools.annotation.LogAnnotation;
import com.ho.common.tools.annotation.TokenIgnore;
@ -557,7 +556,7 @@ public class UserController {
ObjectMapper mapper = new ObjectMapper();
try {
//储能登陆
String enUrl = "http://localhost:8012/api/sys/user/login";
String enUrl = "http://192.168.0.142:8012/api/sys/user/login";
String enJson = HttpUtils.postWithJson(enUrl,mapper.writeValueAsString(loginReqVO));
JSONObject en = JSONObject.parseObject(enJson);
Integer codeEn = en.getInteger("code");
@ -567,7 +566,7 @@ public class UserController {
unifiedLoginVo.setEnergy(enVo);
}
//光伏登陆
String pvUrl = "http://1.95.112.231:18012/api/sys/user/login";
String pvUrl = "http://192.168.0.183:18012/api/sys/user/login";
String pvJson = HttpUtils.postWithJson(pvUrl,mapper.writeValueAsString(loginReqVO));
JSONObject pv = JSONObject.parseObject(pvJson);
Integer codePv = pv.getInteger("code");
@ -582,7 +581,7 @@ public class UserController {
throw new BusinessException(BaseResponseCode.NOT_ACCOUNT);
}
if (BaseResponseCode.PASSWORD_ERROR.getCode()==codeEn
||BaseResponseCode.PASSWORD_ERROR.getCode()==codePv ){
||BaseResponseCode.PASSWORD_ERROR.getCode()==codePv ){
throw new BusinessException(BaseResponseCode.PASSWORD_ERROR);
}
if (BaseResponseCode.USER_LOCK.getCode()==codeEn
@ -603,4 +602,6 @@ public class UserController {
}
return DataResult.success(unifiedLoginVo);
}
}

View File

@ -1,66 +0,0 @@
#用户中心
server:
port: 8012
servlet:
context-path: /api
#swagger2配置
swagger2:
enable: true #开启标志 生产环境要关闭
projectName: 云平台-用户中心-接口
controllerPath: com.ho.user.controller
spring:
jackson:
time-zone: GMT+8
application:
name: user-center
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.0.139:3306/user_center_db?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: user_center_db
password: zzkj@688737
druid:
initialSize: 5
minIdle: 5
maxActive: 5
keepAlive: true #保持长连接
connection-error-retry-attempts: 3
boot:
admin:
client:
url: http://localhost:8019/boot
#Redis
redis:
port: 6379 #端口
timeout: 3000ms #连接超时
host: 192.168.0.139 #单机
password: 123456
database: 0
lettuce:
pool:
max-active: 8 #连接池最大连接 默认8
max-idle: 8 #连接池中最大空闲连接 默认8
min-idle: 1 #连接池中最小空闲连接 默认0
max-wait: 2000ms #连接池最大阻塞等待时间 使用负值表示没有限制
#jwt配置
jwt:
secretKey: 78944878877848fg)
accessTokenExpireTime: PT2H
refreshTokenExpireTime: PT8H
refreshTokenExpireAppTime: P30D
issuer: hocloudSystem
#加解密
rsa:
pubKey: 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCuG6ZABNgLQCI9iVPDuJEb7xb5zR9UGKyKXshLuJFZxyNtaEzfpjSMqsshUYA1QpwUvkmZE0lcRE4F4QtZO9rDnH2PoW1FWRbjgg0+MKWOmZr9hSPKM/BIE+knTtTaj4/0TK7QwDd9q/QAIduC1hIyxIIkxfWx0gFuTnxui0waCwIDAQAB'
privateKey: 'MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAK4bpkAE2AtAIj2JU8O4kRvvFvnNH1QYrIpeyEu4kVnHI21oTN+mNIyqyyFRgDVCnBS+SZkTSVxETgXhC1k72sOcfY+hbUVZFuOCDT4wpY6Zmv2FI8oz8EgT6SdO1NqPj/RMrtDAN32r9AAh24LWEjLEgiTF9bHSAW5OfG6LTBoLAgMBAAECgYA614NfXYO6galQzMmvewAnxa0pLYbqABDIDvJ4jN8qzV+OyVI5v81AwTQ3hXjkBygC5rCu+FKxyS/pUr5oIQ90vbKvy+kozg9l0qWHfa8XrfC+E36CVuDrZYdZzl0C6J6BoNB9osJJ6HCnMA7kWLRRwU5VJBsK8CmgcJlfHNH60QJBAPz4rZgqgor69SonHG4xjRz+u4QkXIP8I+lorBSFEuUF03u22Kcxz7mcOq63m8K+oc22ql0g8QNrq6YPrEgpAPMCQQCwMUQcdZLWJrRbHp1ZA3jbt4vYg7xb1LklAM6Qmz1R9xVY0itDMtFRSTlVnrbTPZ+rldrkLUOzLJwKLHniIQiJAkEAmfeBMKwu6Af2T8GePDNMf+lKmBLJfEtqUBW1JogYB+yT2yhelORsWbwMu2plExKTyHD1H9l812ghAOFpKkJKoQJBAJ7lz2dbIXHAtib3FTCR0Q1WGujI5bZrwg19DM2dM1AYZUgVQq73xY5pWyu8V2VqzfUQ0Le3mracJJ2IPuOQpwECQF/b7Tv3auIHRaO9AD7xWIOCMYGlKhqeheMZb/mDRHedsdRvigiojDaaFbtnkvXlRbWlkOu5P5GNDpv7EuPbUs8='
phone:
regexp: ^[1][3,4,5,6,7,8,9][0-9]{9}$

View File

@ -166,47 +166,11 @@ public class JobHandler {
XxlJobLogger.log("jobEarningsCalculate");
log.info("jobMaintenanceInsert start !");
Date date = DateUtil.addDays(new Date(), -1);
if(StringUtils.isEmpty(param)){
System.out.println(DateUtil.formatDate(date));
businessFeignClient.jobEarningsCalculate(DateUtil.formatDate(date));
}else{
System.out.println(param);
businessFeignClient.jobEarningsCalculate(param);
}
businessFeignClient.jobEarningsCalculate(DateUtil.formatDate(date));
log.info("jobMaintenanceInsert end !");
return ReturnT.SUCCESS;
}
/**
* 计算光伏-Mppt收益(昨日)
* @param param
* @return
*/
@XxlJob("jobEarningsCalculateMppt")
public ReturnT<String> jobEarningsCalculateMppt(String param) {
XxlJobLogger.log("jobEarningsCalculateMppt");
log.info("jobEarningsCalculateMpptInsert start !");
Date date = DateUtil.addDays(new Date(), -1);
businessFeignClient.jobEarningsCalculateMppt(DateUtil.formatDate(date));
log.info("jobEarningsCalculateMpptInsert end !");
return ReturnT.SUCCESS;
}
/**
* 计算光伏-Mppt收益(当日)
* @param param
* @return
*/
@XxlJob("jobEarningsCalculateMpptToDay")
public ReturnT<String> jobEarningsCalculateMpptToDay(String param) {
XxlJobLogger.log("jobEarningsCalculateMpptToDay");
log.info("jobEarningsCalculateMpptToDayInsert start !");
Date date = new Date();
businessFeignClient.jobEarningsCalculateMpptToDay(DateUtil.formatDate(date));
log.info("jobEarningsCalculateMpptToDayInsert end !");
return ReturnT.SUCCESS;
}
/**
* 计算收益(当日)
*

View File

@ -49,12 +49,6 @@ public interface BusinessFeignClient {
@PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "earningsCalculate/all")
void jobEarningsCalculate(@RequestBody String dateTime);
@PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "earningsCalculate/allMpptIncome")
void jobEarningsCalculateMppt(@RequestBody String dateTime);
@PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "earningsCalculate/allTodayMpptIncome")
void jobEarningsCalculateMpptToDay(@RequestBody String dateTime);
@PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "earningsCalculate/freezeMonthTotalEle")
void jobFreezeMonthTotalEle();
@ -72,6 +66,7 @@ public interface BusinessFeignClient {
*/
@PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "messageInfo/jobUpdateMessageInfo")
void jobUpdateMessageInfo();
@PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "shipEnergyStation/getMainTotal")
void jobCacheShipEnergyMainInfo();
@ -81,5 +76,4 @@ public interface BusinessFeignClient {
@PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "boulderEnergyStation/getBoulderEleIncome")
void jobBoulderEleIncome(@RequestBody String dateTime);
}

View File

@ -75,18 +75,6 @@ public class BusinessFeignClientFallback implements BusinessFeignClient {
throw new BusinessException(BaseResponseCode.FEIGN_CALL_FAIL);
}
@Override
public void jobEarningsCalculateMppt(String dateTime) {
log.error("BusinessFeignClient.jobEarningsCalculateMppt error!");
throw new BusinessException(BaseResponseCode.FEIGN_CALL_FAIL);
}
@Override
public void jobEarningsCalculateMpptToDay(String dateTime) {
log.error("BusinessFeignClient.jobEarningsCalculateMpptToDay error!");
throw new BusinessException(BaseResponseCode.FEIGN_CALL_FAIL);
}
@Override
public void jobFreezeMonthTotalEle() {
log.error("BusinessFeignClient.jobFreezeMonthTotalEle error!");
@ -128,4 +116,5 @@ public class BusinessFeignClientFallback implements BusinessFeignClient {
log.error("BusinessFeignClient.jobBoulderEleIncome error!");
throw new BusinessException(BaseResponseCode.FEIGN_CALL_FAIL);
}
}