diff --git a/business-service-dao/src/main/java/com/ho/business/service/ShipEnergyService.java b/business-service-dao/src/main/java/com/ho/business/service/ShipEnergyService.java index bb7179f..721f0e3 100644 --- a/business-service-dao/src/main/java/com/ho/business/service/ShipEnergyService.java +++ b/business-service-dao/src/main/java/com/ho/business/service/ShipEnergyService.java @@ -243,7 +243,8 @@ public class ShipEnergyService { JSONObject jsonObj = (JSONObject) i; Integer stationId = jsonObj.getInteger("stationId"); String json = getMainTotal(stationId); - String mainKey = CommonConstant.SHIP_ENERGY_MAIN + stationId; + Integer finalStationId = stationId +10000; + String mainKey = CommonConstant.SHIP_ENERGY_MAIN + finalStationId; redisService.set(mainKey,json); }); } diff --git a/business-service-dao/src/main/java/com/ho/business/service/impl/IargeScreenShowServiceImpl.java b/business-service-dao/src/main/java/com/ho/business/service/impl/IargeScreenShowServiceImpl.java index d95f8db..de7bf92 100644 --- a/business-service-dao/src/main/java/com/ho/business/service/impl/IargeScreenShowServiceImpl.java +++ b/business-service-dao/src/main/java/com/ho/business/service/impl/IargeScreenShowServiceImpl.java @@ -349,16 +349,15 @@ public class IargeScreenShowServiceImpl implements IargeScreenShowService { } // 寄点站点数据融合 stations.forEach(s->{ - if(s.getId()==11003 || s.getId()==10942) { + if(s.getId()==11003 || s.getId()==10942 || s.getId()==11006) { // 寄点电站数据 - Integer stationId = s.getId() - 10000; - String mainKey = CommonConstant.SHIP_ENERGY_MAIN + stationId; + String mainKey = CommonConstant.SHIP_ENERGY_MAIN + s.getId(); String json = (String) redisService.get(mainKey); ShipStationRespVO respVO = JSON.parseObject(json, ShipStationRespVO.class); // 日充 - annualOverviewResp.setDayCharge(annualOverviewResp.getDayCharge().add(BigDecimal.valueOf(respVO.getPositivePowerToday()))); + annualOverviewResp.setDayCharge(annualOverviewResp.getDayCharge().add(respVO.getPositivePowerToday()==null?BigDecimal.ZERO:BigDecimal.valueOf(respVO.getPositivePowerToday()))); // 日放 - annualOverviewResp.setDayDischarge(annualOverviewResp.getDayDischarge().add(BigDecimal.valueOf(respVO.getReversePowerToday()))); + annualOverviewResp.setDayDischarge(annualOverviewResp.getDayDischarge().add(respVO.getReversePowerToday()==null?BigDecimal.ZERO:BigDecimal.valueOf(respVO.getReversePowerToday()))); } }); return annualOverviewResp; diff --git a/business-service-dao/src/main/java/com/ho/business/service/impl/OutApiServiceImpl.java b/business-service-dao/src/main/java/com/ho/business/service/impl/OutApiServiceImpl.java index e032fb9..d37a58e 100644 --- a/business-service-dao/src/main/java/com/ho/business/service/impl/OutApiServiceImpl.java +++ b/business-service-dao/src/main/java/com/ho/business/service/impl/OutApiServiceImpl.java @@ -176,7 +176,7 @@ public class OutApiServiceImpl implements OutApiService { } String deviceType = DeviceTypeConstant.BMS; log.info("stations.size:" + stations.size()); - stations = stations.stream().filter(i->i.getId()!=11003 && i.getId()!=10942).collect(Collectors.toList()); + stations = stations.stream().filter(i->i.getId()!=11003 && i.getId()!=10942 && i.getId()!=11006).collect(Collectors.toList()); for (Station station : stations) { try { //先删除站的当日数据 diff --git a/business-service-dao/src/main/java/com/ho/business/service/impl/StationHomeServiceImpl.java b/business-service-dao/src/main/java/com/ho/business/service/impl/StationHomeServiceImpl.java index 2b946f3..671ca52 100644 --- a/business-service-dao/src/main/java/com/ho/business/service/impl/StationHomeServiceImpl.java +++ b/business-service-dao/src/main/java/com/ho/business/service/impl/StationHomeServiceImpl.java @@ -960,14 +960,13 @@ public class StationHomeServiceImpl implements StationHomeService { dailyDischargeElec = new BigDecimal(dailyDischargeElecStr); pcsElecData.setChargeElec(dailyChargeElec); pcsElecData.setDischargeElec(dailyDischargeElec); - if(req.getStationId()==11003 || req.getStationId()==10942){ + if(req.getStationId()==11003 || req.getStationId()==10942 || req.getStationId()==11006){ // 寄点电站数据 - Integer stationId = req.getStationId()-10000; - String mainKey = CommonConstant.SHIP_ENERGY_MAIN + stationId; + String mainKey = CommonConstant.SHIP_ENERGY_MAIN + req.getStationId(); String json = (String)redisService.get(mainKey); ShipStationRespVO vo = JSON.parseObject(json,ShipStationRespVO.class); - pcsElecData.setChargeElec(BigDecimal.valueOf(vo.getPositivePowerToday())); - pcsElecData.setDischargeElec(BigDecimal.valueOf(vo.getReversePowerToday())); + pcsElecData.setChargeElec(vo.getPositivePowerToday()==null?BigDecimal.ZERO:BigDecimal.valueOf(vo.getPositivePowerToday())); + pcsElecData.setDischargeElec(vo.getReversePowerToday()==null?BigDecimal.ZERO:BigDecimal.valueOf(vo.getReversePowerToday())); } } } diff --git a/business-service/src/main/java/com/ho/business/controller/OpenStationController.java b/business-service/src/main/java/com/ho/business/controller/OpenStationController.java index 8b646ed..461f587 100644 --- a/business-service/src/main/java/com/ho/business/controller/OpenStationController.java +++ b/business-service/src/main/java/com/ho/business/controller/OpenStationController.java @@ -119,35 +119,36 @@ public class OpenStationController { log.info("realtimeCurve.stationRealtimeCurve:" + stationReq); List resList = stationHomeService.getRealtimeCurve(stationReq); // 寄点电站功率、soc曲线 - if(stationReq.getStationId()==11003 || stationReq.getStationId()==10942){ + if(stationReq.getStationId()==11003 || stationReq.getStationId()==10942 || stationReq.getStationId()==11006){ // 寄点电站数据 - Integer stationId = stationReq.getStationId()-10000; - String mainKey = CommonConstant.SHIP_ENERGY_MAIN + stationId; + 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(); - NewRealTimeCurveVo soc = new NewRealTimeCurveVo(); - soc.setName("SOC"); - List soclist =new ArrayList<>(); - NewRealTimeCurveVo p = new NewRealTimeCurveVo(); - p.setName("实时功率"); - List 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); + if(historyDataList!=null){ + NewRealTimeCurveVo soc = new NewRealTimeCurveVo(); + soc.setName("SOC"); + List soclist =new ArrayList<>(); + NewRealTimeCurveVo p = new NewRealTimeCurveVo(); + p.setName("实时功率"); + List 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) { @@ -264,19 +265,20 @@ public class OpenStationController { req.setDeviceType(deviceType); } PcsTotalData data = stationHomeService.getPcsTotalData(req); - if(req.getStationId()==11003 || req.getStationId()==10942){ + if(req.getStationId()==11003 || req.getStationId()==10942 || req.getStationId()==11006){ // 寄点电站数据 - Integer stationId = req.getStationId()-10000; - String mainKey = CommonConstant.SHIP_ENERGY_MAIN + stationId; + String mainKey = CommonConstant.SHIP_ENERGY_MAIN + req.getStationId(); String json = (String)redisService.get(mainKey); ShipStationRespVO vo = JSON.parseObject(json,ShipStationRespVO.class); // 数据转换 - data.setTotalChargeElec(BigDecimal.valueOf(vo.getPositivePowerSum())); - data.setTotalDischargeElec(BigDecimal.valueOf(vo.getReversePowerSum())); - data.setDailyChargeElec(BigDecimal.valueOf(vo.getPositivePowerToday())); - data.setDailyDischargeElec(BigDecimal.valueOf(vo.getReversePowerToday())); - data.setCurrentPower(BigDecimal.valueOf(vo.getRealTimePower())); - data.setSystemEfficiency(data.getTotalDischargeElec().divide(data.getTotalChargeElec(), 4, BigDecimal.ROUND_HALF_UP)); + 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); diff --git a/common-tools/src/main/java/com/ho/common/tools/util/HttpUtils.java b/common-tools/src/main/java/com/ho/common/tools/util/HttpUtils.java index 452215c..e4cc47d 100644 --- a/common-tools/src/main/java/com/ho/common/tools/util/HttpUtils.java +++ b/common-tools/src/main/java/com/ho/common/tools/util/HttpUtils.java @@ -187,7 +187,7 @@ public class HttpUtils { /** * 将Map转换为JSON字符串(简单实现,实际项目中建议使用Jackson/Gson等库) */ - private static String mapToJson(Map params) { + public static String mapToJson(Map params) { if (params == null || params.isEmpty()) { return "{}"; } diff --git a/xxl-job/src/main/java/com/ho/xxljob/JobHandler.java b/xxl-job/src/main/java/com/ho/xxljob/JobHandler.java index afe0f3b..a97867b 100644 --- a/xxl-job/src/main/java/com/ho/xxljob/JobHandler.java +++ b/xxl-job/src/main/java/com/ho/xxljob/JobHandler.java @@ -293,4 +293,29 @@ public class JobHandler { log.info("jobCacheShipEnergyEle end !"); return ReturnT.SUCCESS; } + /** + * 中车-站点收益、充放电数据 - 昨日 + * @param param + * @return + */ + @XxlJob("jobBoulderEleIncome") + public ReturnT jobBoulderEleIncome(String param){ + log.info("jobCacheShipEnergyEle start !"); + businessFeignClient.jobBoulderEleIncome(param); + log.info("jobCacheShipEnergyEle end !"); + return ReturnT.SUCCESS; + } + + /** + * 中车-站点收益、充放电数据 - 今日 + * @param param + * @return + */ + @XxlJob("jobBoulderEleIncomeToday") + public ReturnT jobBoulderEleIncomeToday(String param){ + log.info("jobCacheShipEnergyEle start !"); + businessFeignClient.jobBoulderEleIncome(DateUtil.formatDate(new Date())); + log.info("jobCacheShipEnergyEle end !"); + return ReturnT.SUCCESS; + } }