From 85ae7e7ddb54f760fd8350d8e1e1aa6da5666e50 Mon Sep 17 00:00:00 2001 From: chendaofei <857448963@qq.com> Date: Tue, 25 Nov 2025 10:15:09 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=B7=BB=E5=8A=A0=E7=99=BB=E5=BD=95=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=9F=A5=E8=AF=A2=E7=9B=91=E6=B5=8B=E7=82=B9=EF=BC=8C?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=EF=BC=8C=E7=94=B5=E8=83=BD=E8=B4=A8=E9=87=8F?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=85=AC=E5=85=B1=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/CsCommTerminalFeignClient.java | 11 +++-- ...ommTerminalFeignClientFallbackFactory.java | 10 ++++- .../ledger/CsCommTerminalController.java | 44 +++++++++++++++---- .../impl/event/EventOverviewServiceImpl.java | 32 ++++++++------ 4 files changed, 70 insertions(+), 27 deletions(-) diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsCommTerminalFeignClient.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsCommTerminalFeignClient.java index b37e938..5db2f2a 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsCommTerminalFeignClient.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsCommTerminalFeignClient.java @@ -23,9 +23,12 @@ public interface CsCommTerminalFeignClient { @GetMapping("lineUnitDetail") HttpResult lineUnitDetail(@RequestParam("lineId") String lineId); - @PostMapping("getDevIdsByUser") - HttpResult> getDevIdsByUser(@RequestBody String userId); + @GetMapping("getDevIdsByUser") + HttpResult> getDevIdsByUser(@RequestParam("userId") String userId); - @PostMapping("getLineIdsByUser") - HttpResult> getLineIdsByUser(@RequestBody String userId); + @GetMapping("getLineIdsByUser") + HttpResult> getLineIdsByUser(@RequestParam("userId") String userId); + + @GetMapping("getPqUserIdsByUser") + HttpResult> getPqUserIdsByUser(@RequestParam("userId") String userId); } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsCommTerminalFeignClientFallbackFactory.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsCommTerminalFeignClientFallbackFactory.java index 1ffd78b..4e16dca 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsCommTerminalFeignClientFallbackFactory.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsCommTerminalFeignClientFallbackFactory.java @@ -36,13 +36,19 @@ public class CsCommTerminalFeignClientFallbackFactory implements FallbackFactory @Override public HttpResult> getDevIdsByUser(String userId) { - log.error("{}异常,降级处理,异常为:{}","查询分组",cause.toString()); + log.error("{}异常,降级处理,异常为:{}","根据登录用户id获取用户所有设备id集合",cause.toString()); throw new BusinessException(finalExceptionEnum); } @Override public HttpResult> getLineIdsByUser(String userId) { - log.error("{}异常,降级处理,异常为:{}","查询分组",cause.toString()); + log.error("{}异常,降级处理,异常为:{}","根据登录用户id获取用户所有监测点id集合",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult> getPqUserIdsByUser(String userId) { + log.error("{}异常,降级处理,异常为:{}","根据登录用户id获取电能质量用户id集合",cause.toString()); throw new BusinessException(finalExceptionEnum); } }; diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/ledger/CsCommTerminalController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/ledger/CsCommTerminalController.java index 3d483d5..b9dad68 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/ledger/CsCommTerminalController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/ledger/CsCommTerminalController.java @@ -52,10 +52,10 @@ public class CsCommTerminalController extends BaseController { * 根据用户获取设备信息 */ @OperateInfo(info = LogEnum.BUSINESS_COMMON) - @PostMapping("/getDevIdsByUser") - @ApiOperation("根据监测点id获取数据单位") - @ApiImplicitParam(name = "lineId", value = "实体", required = true) - public HttpResult> getDevIdsByUser(@RequestBody String userId) { + @GetMapping("/getDevIdsByUser") + @ApiOperation("根据登录用户id获取用户所有设备id集合") + @ApiImplicitParam(name = "userId", value = "用户id", required = true) + public HttpResult> getDevIdsByUser(@RequestParam("userId") String userId) { String methodDescribe = getMethodDescribe("getDevIdsByUser"); List result; List poList = csDeviceUserPOService.lambdaQuery().select(CsDeviceUserPO::getDeviceId) @@ -73,10 +73,10 @@ public class CsCommTerminalController extends BaseController { * 根据用户获取设备信息 */ @OperateInfo(info = LogEnum.BUSINESS_COMMON) - @PostMapping("/getLineIdsByUser") - @ApiOperation("根据监测点id获取数据单位") - @ApiImplicitParam(name = "lineId", value = "实体", required = true) - public HttpResult> getLineIdsByUser(@RequestBody String userId) { + @GetMapping("/getLineIdsByUser") + @ApiOperation("根据登录用户id获取用户所有监测点id集合") + @ApiImplicitParam(name = "userId", value = "用户id", required = true) + public HttpResult> getLineIdsByUser(@RequestParam("userId") String userId) { String methodDescribe = getMethodDescribe("getLineIdsByUser"); List devList = csDeviceUserPOService.lambdaQuery().select(CsDeviceUserPO::getDeviceId) .and(w->w.eq(CsDeviceUserPO::getPrimaryUserId,userId).or().eq(CsDeviceUserPO::getSubUserId,userId)) @@ -96,6 +96,34 @@ public class CsCommTerminalController extends BaseController { } } + + /** + * 根据用户获取设备信息 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @GetMapping("/getPqUserIdsByUser") + @ApiOperation("根据登录用户id获取电能质量用户id集合") + @ApiImplicitParam(name = "userId", value = "用户id", required = true) + public HttpResult> getPqUserIdsByUser(@RequestParam("userId") String userId) { + String methodDescribe = getMethodDescribe("getPqUserIdsByUser"); + List devList = csDeviceUserPOService.lambdaQuery().select(CsDeviceUserPO::getDeviceId) + .and(w->w.eq(CsDeviceUserPO::getPrimaryUserId,userId).or().eq(CsDeviceUserPO::getSubUserId,userId)) + .eq(CsDeviceUserPO::getStatus, DataStateEnum.ENABLE.getCode()).list(); + if(CollUtil.isNotEmpty(devList)){ + List devIds = devList.stream().map(CsDeviceUserPO::getDeviceId).distinct().collect(Collectors.toList()); + List poList = csLinePOService.lambdaQuery().select(CsLinePO::getLineId,CsLinePO::getMonitorUser).in(CsLinePO::getDeviceId,devIds) + .eq(CsLinePO::getStatus,DataStateEnum.ENABLE.getCode()).list(); + if(CollUtil.isEmpty(poList)){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, Collections.emptyList(), methodDescribe); + }else { + List result = poList.stream().map(CsLinePO::getMonitorUser).distinct().collect(Collectors.toList()); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + }else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, Collections.emptyList(), methodDescribe); + } + } + /** * 通过监测点获取监测点数据单位 * @author cdf diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/event/EventOverviewServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/event/EventOverviewServiceImpl.java index 4392fa6..39ace86 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/event/EventOverviewServiceImpl.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/event/EventOverviewServiceImpl.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.ImmutableMap; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.csdevice.api.CsCommTerminalFeignClient; import com.njcn.csdevice.api.CsLineFeignClient; import com.njcn.csdevice.pojo.po.CsLinePO; import com.njcn.csharmonic.enums.CsEventEnum; @@ -19,20 +20,12 @@ import com.njcn.csharmonic.pojo.vo.event.EventStatisticVO; import com.njcn.csharmonic.pojo.vo.event.F47Curve; import com.njcn.csharmonic.service.CsEventPOService; import com.njcn.csharmonic.service.event.EventOverviewService; -import com.njcn.parser.component.WaveFileComponent; -import com.njcn.parser.pojo.dto.WaveDataDTO; -import com.njcn.parser.utils.WaveUtil; -import com.njcn.web.pojo.param.BaseParam; +import com.njcn.web.utils.RequestUtil; import lombok.RequiredArgsConstructor; -import org.apache.commons.lang.StringUtils; -import org.checkerframework.checker.units.qual.A; import org.springframework.stereotype.Service; - -import java.io.InputStream; import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; -import java.util.stream.Stream; /** * @Author: cdf @@ -50,12 +43,15 @@ public class EventOverviewServiceImpl implements EventOverviewService { private final CsEventPOService csEventPOService; private final CsLineFeignClient csLineFeignClient; + private final CsCommTerminalFeignClient csCommTerminalFeignClient; @Override public EventStatisticVO netEventEcharts(EventStatisticParam baseParam) { DateTime start = DateUtil.beginOfDay(DateUtil.parse(baseParam.getSearchBeginTime())); DateTime end = DateUtil.endOfDay(DateUtil.parse(baseParam.getSearchEndTime())); + List ids = csCommTerminalFeignClient.getLineIdsByUser(RequestUtil.getUserIndex()).getData(); + List csEventPOList = csEventPOService.lambdaQuery() .between(CsEventPO::getStartTime, start, end) .eq(CsEventPO::getType, CsEventEnum.EVENT_TYPE.getCode()) @@ -80,6 +76,9 @@ public class EventOverviewServiceImpl implements EventOverviewService { DateTime start = DateUtil.beginOfDay(DateUtil.parse(baseParam.getSearchBeginTime())); DateTime end = DateUtil.endOfDay(DateUtil.parse(baseParam.getSearchEndTime())); + List ids = csCommTerminalFeignClient.getLineIdsByUser(RequestUtil.getUserIndex()).getData(); + + List lineIds = StrUtil.isBlank(baseParam.getSearchValue()) ? csLineFeignClient.getAllLine().getData() : Collections.singletonList(baseParam.getSearchValue()); @@ -142,6 +141,9 @@ public class EventOverviewServiceImpl implements EventOverviewService { DateTime start = DateUtil.beginOfDay(DateUtil.parse(baseParam.getSearchBeginTime())); DateTime end = DateUtil.endOfDay(DateUtil.parse(baseParam.getSearchEndTime())); + List ids = csCommTerminalFeignClient.getLineIdsByUser(RequestUtil.getUserIndex()).getData(); + + List csEventPOList = csEventPOService.lambdaQuery().select(CsEventPO::getId,CsEventPO::getTag,CsEventPO::getPersistTime,CsEventPO::getAmplitude) .between(CsEventPO::getStartTime, start, end) .eq(CsEventPO::getType, CsEventEnum.EVENT_TYPE.getCode()) @@ -168,6 +170,10 @@ public class EventOverviewServiceImpl implements EventOverviewService { DateTime dateTime = DateUtil.parse(baseParam.getSearchBeginTime(), DatePattern.NORM_MONTH_PATTERN); DateTime start = DateUtil.beginOfMonth(dateTime); DateTime end = DateUtil.endOfMonth(dateTime); + + List ids = csCommTerminalFeignClient.getLineIdsByUser(RequestUtil.getUserIndex()).getData(); + + List rangList = DateUtil.rangeToList(start,end, DateField.DAY_OF_MONTH); @@ -206,7 +212,7 @@ public class EventOverviewServiceImpl implements EventOverviewService { @Override public List getEventCoords(EventStatisticParam baseParam) { - // 初始化结果列表:10行 x 9列(根据原始代码的循环推断) + // 初始化结果列表 List result = new ArrayList<>(90); for (int i = 0; i < 10; i++) { for (int j = 0; j < 9; j++) { @@ -223,8 +229,7 @@ public class EventOverviewServiceImpl implements EventOverviewService { //TODO .list(); - // 定义振幅和持续时间的分类规则 - // 振幅分类规则 + // 定义幅值和持续时间的分类规则 Map amplitudeRanges = ImmutableMap.builder() .put(0.0, 0) .put(0.1, 1) @@ -288,6 +293,7 @@ public class EventOverviewServiceImpl implements EventOverviewService { return entry.getValue(); } } - return ranges.size() - 1; // 默认返回最大分组 + // 默认返回最大分组 + return ranges.size() - 1; } }