中车、寄点站点融合

This commit is contained in:
2026-04-14 17:33:01 +08:00
parent 21a3c2f9cf
commit c63b92481b
19 changed files with 1555 additions and 0 deletions

View File

@ -0,0 +1,47 @@
package com.ho.business.controller;
import com.ho.business.service.BoulderEnergyService;
import com.ho.common.tools.annotation.TokenIgnore;
import com.ho.common.tools.constant.ContextConstant;
import com.ho.common.tools.exception.DataResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping(ContextConstant.BUSINESS + "boulderEnergyStation")
@RestController
@Api(tags = "业务模块-中车能源电站管理")
@Slf4j
public class BoulderEnergyController {
@Autowired
BoulderEnergyService boulderEnergyService;
@PostMapping("getToken")
@ApiOperation(value = "获取token")
@TokenIgnore
public DataResult<String> getToken() {
return DataResult.success(boulderEnergyService.getToken());
}
@PostMapping("getBoulderEleIncome")
@ApiOperation(value = "中车-统计缓存充放电、及收益数据")
@TokenIgnore
public DataResult getBoulderEleIncome(@RequestBody(required = false) String beginTime) {
log.info("参数: {} ", beginTime);
// beginTime ==null 时统计昨日充放电、及收益数据
// beginTime =null 时统计beginTime充放电、及收益数据
boulderEnergyService.getBoulderEleIncome(beginTime);
if(beginTime!=null){
//beginTime =null 缓存中车电站累计数据
boulderEnergyService.getCacheBoulderData();
}
return DataResult.success();
}
}

View File

@ -1,6 +1,8 @@
package com.ho.business.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.ho.business.constant.DeviceTypeConstant;
import com.ho.business.entity.Station;
import com.ho.business.service.*;
@ -10,6 +12,7 @@ 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.ShipStationRespVO;
import com.ho.business.vo.resp.cabin.CircleCtrlResp;
import com.ho.business.vo.resp.cabin.EarningsCalculateCountResp;
import com.ho.business.vo.resp.openStationHome.OpenStationMiddle;
@ -44,6 +47,8 @@ import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.math.BigDecimal;
import java.text.ParseException;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
@ -106,6 +111,38 @@ public class OpenStationController {
public DataResult<List<NewRealTimeCurveVo>> realtimeCurve(@RequestBody StationReq stationReq) {
log.info("realtimeCurve.stationRealtimeCurve:" + stationReq);
List<NewRealTimeCurveVo> resList = stationHomeService.getRealtimeCurve(stationReq);
// 寄点电站功率、soc曲线
if(stationReq.getStationId()==11003 || stationReq.getStationId()==10942 || stationReq.getStationId()==11006){
// 寄点电站数据
String mainKey = CommonConstant.SHIP_ENERGY_MAIN + stationReq.getStationId();
String json = (String)redisService.get(mainKey);
ShipStationRespVO vo = JSON.parseObject(json,ShipStationRespVO.class);
JSONArray historyDataList = vo.getHistoryDataList();
if(historyDataList!=null){
NewRealTimeCurveVo soc = new NewRealTimeCurveVo();
soc.setName("SOC");
List<StationHomeRespVo> soclist =new ArrayList<>();
NewRealTimeCurveVo p = new NewRealTimeCurveVo();
p.setName("实时功率");
List<StationHomeRespVo> plist =new ArrayList<>();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(CommonConstant.DATE);
historyDataList.forEach(i->{
JSONObject obj = (JSONObject) i;
StationHomeRespVo socCurve = new StationHomeRespVo();
socCurve.setDate(ZonedDateTime.parse(obj.getString("record_time")).format(formatter));
socCurve.setDigital(obj.getBigDecimal("soc"));
soclist.add(socCurve);
StationHomeRespVo pCurve = new StationHomeRespVo();
pCurve.setDate(ZonedDateTime.parse(obj.getString("record_time")).format(formatter));
pCurve.setDigital(obj.getBigDecimal("p_total"));
plist.add(pCurve);
});
soc.setList(soclist);
p.setList(plist);
resList.add(soc);
resList.add(p);
}
}
//返回值的BigDecimal类型保留两位小数
for (NewRealTimeCurveVo newRealTimeCurveVo : resList) {
List<StationHomeRespVo> list = newRealTimeCurveVo.getList();
@ -221,6 +258,21 @@ public class OpenStationController {
req.setDeviceType(deviceType);
}
PcsTotalData data = stationHomeService.getPcsTotalData(req);
if(req.getStationId()==11003 || req.getStationId()==10942 || req.getStationId()==11006){
// 寄点电站数据
String mainKey = CommonConstant.SHIP_ENERGY_MAIN + req.getStationId();
String json = (String)redisService.get(mainKey);
ShipStationRespVO vo = JSON.parseObject(json,ShipStationRespVO.class);
// 数据转换
data.setTotalChargeElec(vo.getPositivePowerSum()==null?BigDecimal.ZERO:BigDecimal.valueOf(vo.getPositivePowerSum()));
data.setTotalDischargeElec(vo.getReversePowerSum()==null?BigDecimal.ZERO:BigDecimal.valueOf(vo.getReversePowerSum()));
data.setDailyChargeElec(vo.getPositivePowerToday()==null?BigDecimal.ZERO:BigDecimal.valueOf(vo.getPositivePowerToday()));
data.setDailyDischargeElec(vo.getReversePowerToday()==null?BigDecimal.ZERO:BigDecimal.valueOf(vo.getReversePowerToday()));
data.setCurrentPower(vo.getRealTimePower()==null?BigDecimal.ZERO:BigDecimal.valueOf(vo.getRealTimePower()));
if(data.getTotalChargeElec().compareTo(BigDecimal.ZERO)>0){
data.setSystemEfficiency(data.getTotalDischargeElec().divide(data.getTotalChargeElec(), 4, BigDecimal.ROUND_HALF_UP));
}
}
BigDecimal systemEfficiency = data.getSystemEfficiency();
bigDecimalUtil.keepTwoDecimalPlaces(data);
bigDecimalUtil.ifIsNUll(data);

View File

@ -0,0 +1,51 @@
package com.ho.business.controller;
import com.ho.business.service.ShipEnergyService;
import com.ho.common.tools.annotation.TokenIgnore;
import com.ho.common.tools.constant.ContextConstant;
import com.ho.common.tools.exception.DataResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RequestMapping(ContextConstant.BUSINESS + "shipEnergyStation")
@RestController
@Api(tags = "业务模块-寄点能源电站管理")
public class ShipEnergyController {
@Autowired
ShipEnergyService shipEnergyService;
@PostMapping("add")
@ApiOperation(value = "新增电站接口")
@TokenIgnore
public DataResult add() {
shipEnergyService.addShipEnergyStation();
return DataResult.success();
}
@PostMapping("getMainTotal")
@ApiOperation(value = "获取主监控汇总信息")
@TokenIgnore
public DataResult getMainTotal() {
shipEnergyService.getShipEnergyTotal();
return DataResult.success();
}
@PostMapping("getStationIncomeHis")
@ApiOperation(value = "获取寄点电站历史收益")
@TokenIgnore
public DataResult getStationIncomeHis(@RequestBody(required = false) String beginTime) {
shipEnergyService.getStationIncomeHis(beginTime);
return DataResult.success();
}
}