From 076d5b99be843a6e39cb0f9050e28f8c0cebf440 Mon Sep 17 00:00:00 2001 From: hongawen <83944980@qq.com> Date: Mon, 28 Jul 2025 21:01:45 +0800 Subject: [PATCH 1/3] 1 --- .../com/njcn/echarts/util/DrawPicUtil.java | 2 +- .../com/njcn/web/advice/ResponseAdvice.java | 5 ---- .../njcn/web/service/impl/LogServiceImpl.java | 16 ++++++------- .../device/pq/mapper/LineDetailMapper.java | 3 +++ .../com/njcn/device/pq/mapper/LineMapper.java | 5 ++++ .../pq/mapper/mapping/LineDetailMapper.xml | 9 +++++++ .../mapping/LineIntegrityDataMapper.xml | 1 + .../device/pq/mapper/mapping/LineMapper.xml | 5 ++++ .../njcn/device/pq/service/LineService.java | 9 +++++++ .../pq/service/impl/LineServiceImpl.java | 24 +++++++++++++++++++ .../impl/TerminalMaintainServiceImpl.java | 8 ++++++- .../TerminalOnlineRateDataServiceImpl.java | 2 -- .../src/main/resources/bootstrap.yml | 4 ++-- 13 files changed, 74 insertions(+), 19 deletions(-) diff --git a/pqs-common/common-echarts/src/main/java/com/njcn/echarts/util/DrawPicUtil.java b/pqs-common/common-echarts/src/main/java/com/njcn/echarts/util/DrawPicUtil.java index ba66c83b8..a98a94b95 100644 --- a/pqs-common/common-echarts/src/main/java/com/njcn/echarts/util/DrawPicUtil.java +++ b/pqs-common/common-echarts/src/main/java/com/njcn/echarts/util/DrawPicUtil.java @@ -24,7 +24,7 @@ import java.util.*; public class DrawPicUtil { //目前写死,后续作为配置 - @Value("${DrawPicUtil.URL:http://192.168.1.24:5174/picture}") + @Value("${DrawPicUtil.URL:http://localhost:3008/generate-chart}") private String URL; diff --git a/pqs-common/common-web/src/main/java/com/njcn/web/advice/ResponseAdvice.java b/pqs-common/common-web/src/main/java/com/njcn/web/advice/ResponseAdvice.java index 8f196cf66..c3c67afa6 100644 --- a/pqs-common/common-web/src/main/java/com/njcn/web/advice/ResponseAdvice.java +++ b/pqs-common/common-web/src/main/java/com/njcn/web/advice/ResponseAdvice.java @@ -1,17 +1,13 @@ package com.njcn.web.advice; import com.njcn.common.config.GeneralInfo; -import com.njcn.common.pojo.constant.SecurityConstants; import com.njcn.common.pojo.response.HttpResult; -import com.njcn.common.pojo.constant.LogInfo; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.utils.ReflectCommonUtil; -import com.njcn.web.utils.RequestUtil; import com.njcn.web.service.ILogService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.MethodParameter; -import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.server.ServerHttpRequest; import org.springframework.http.server.ServerHttpResponse; @@ -19,7 +15,6 @@ import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; import javax.annotation.Nonnull; -import javax.servlet.http.HttpServletRequest; import java.util.Arrays; import java.util.List; diff --git a/pqs-common/common-web/src/main/java/com/njcn/web/service/impl/LogServiceImpl.java b/pqs-common/common-web/src/main/java/com/njcn/web/service/impl/LogServiceImpl.java index 3c8b94bd8..c1b697e26 100644 --- a/pqs-common/common-web/src/main/java/com/njcn/web/service/impl/LogServiceImpl.java +++ b/pqs-common/common-web/src/main/java/com/njcn/web/service/impl/LogServiceImpl.java @@ -84,19 +84,19 @@ public class LogServiceImpl implements ILogService { LogInfoDTO logInfoDTO = new LogInfoDTO(loginName, userName, ip, methodDescribe, operateType, result.equalsIgnoreCase("失败") ? 0 : 1, "", severity, type.equalsIgnoreCase("业务事件") ? 0 : 1, generalInfo.getMicroServiceName(), userIndex, LocalDateTime.now()); publisher.send("/userLog", PubUtils.obj2json(logInfoDTO), 2, false); //推送审计消息功能 - if(severity!=0){ - if(!logInfoDTO.getLoginName().equals(LogInfo.UNKNOWN_USER)){ + if (severity != 0) { + if (!logInfoDTO.getLoginName().equals(LogInfo.UNKNOWN_USER)) { publisher.send("/userLogPush", PubUtils.obj2json(logInfoDTO), 2, false); //发送邮箱功能 - if(severity==2&&logInfoDTO.getResult()==0){ + if (severity == 2 && logInfoDTO.getResult() == 0) { //publisher.send("/userLogEmailPush", PubUtils.obj2json(logInfoDTO), 2, false); } } } //如果存在设备日志注解,则记录设备日志 - if(Objects.nonNull((returnType.getMethod()))&& (returnType.getMethod()).isAnnotationPresent(DeviceLog.class)){ - String deviceOperate = returnType.getMethod().getAnnotation(DeviceLog.class).operateType(); - DeviceLogDTO deviceLogDTO = new DeviceLogDTO(userName,deviceOperate,result.equalsIgnoreCase("失败") ? 0 : 1,"",loginName,userIndex); + if (Objects.nonNull((returnType.getMethod())) && (returnType.getMethod()).isAnnotationPresent(DeviceLog.class)) { + String deviceOperate = returnType.getMethod().getAnnotation(DeviceLog.class).operateType(); + DeviceLogDTO deviceLogDTO = new DeviceLogDTO(userName, deviceOperate, result.equalsIgnoreCase("失败") ? 0 : 1, "", loginName, userIndex); publisher.send("/deviceLog", PubUtils.obj2json(deviceLogDTO), 2, false); } @@ -169,8 +169,8 @@ public class LogServiceImpl implements ILogService { private void auditPush(Integer severity, LogInfoDTO logInfoDTO) { //推送审计消息功能 - if(severity !=0){ - if(!logInfoDTO.getLoginName().equals(LogInfo.UNKNOWN_USER)) { + if (severity != 0) { + if (!logInfoDTO.getLoginName().equals(LogInfo.UNKNOWN_USER)) { publisher.send("/userLogPush", PubUtils.obj2json(logInfoDTO), 2, false); //发送邮箱功能 if (severity == 2 && logInfoDTO.getResult() == 0) { diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LineDetailMapper.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LineDetailMapper.java index a9372847b..313ff3379 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LineDetailMapper.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LineDetailMapper.java @@ -56,6 +56,7 @@ public interface LineDetailMapper extends BaseMapper { void updateLineRunFlag(@Param("id")String lineId, @Param("runFlag")Integer status); + void updateLineRunFlagBatch(@Param("lineIds") List lineIds, @Param("runFlag") Integer status); /** * 根据监测点信息获取监测点详情(关联终端和母线) @@ -69,4 +70,6 @@ public interface LineDetailMapper extends BaseMapper { * 判断该新能源场站信息是否绑定了测点ID */ Integer checkExistsLineByNewStationId(@Param("newStationId") String newStationId); + + } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LineMapper.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LineMapper.java index 05c15ff0f..bcc95fc48 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LineMapper.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LineMapper.java @@ -581,4 +581,9 @@ public interface LineMapper extends BaseMapper { List getLineDeviceByDevIds(@Param("powerFlag") Integer powerFlag, @Param("lineIds") List lineIds, @Param("devIds") List devIds); + + /** + * 根据Pid获取所有子节点 + */ + List getSubIdByPid(@Param("pid") String pid); } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineDetailMapper.xml b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineDetailMapper.xml index 5e5bc06da..7b0d674fe 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineDetailMapper.xml +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineDetailMapper.xml @@ -101,6 +101,15 @@ where id = #{id} + + update pq_line_detail + set run_flag = #{runFlag} + where id in + + #{item} + + + + + + diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/LineService.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/LineService.java index d60c4f4b8..5f66ff149 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/LineService.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/LineService.java @@ -246,4 +246,13 @@ public interface LineService extends IService { */ List getPollutionLineInfo(List id); + /** + * 根据pid获取所有子节点的ID + */ + List getSubIdByPid(String pid); + + /** + * 终端运行状态修改时,同时调整监测点的运行状态 + */ + void updateLineRunFlag(String id, Integer status); } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/LineServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/LineServiceImpl.java index eee7f0bbf..c07686009 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/LineServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/LineServiceImpl.java @@ -847,6 +847,30 @@ public class LineServiceImpl extends ServiceImpl implements Li return pollutionLineInfoDTOList; } + @Override + public List getSubIdByPid(String pid) { + List subIdList = lineMapper.getSubIdByPid(pid); + if(CollUtil.isNotEmpty(subIdList)){ + return subIdList; + } + return Collections.emptyList(); + } + + @Override + public void updateLineRunFlag(String devId, Integer status) { + List lineIds = new ArrayList<>(); + // 获取母线 + List subLineIds = lineMapper.getSubIdByPid(devId); + // 母线再获取所有监测点id + for (String subLineId : subLineIds) { + List lineIdsTemp = lineMapper.getSubIdByPid(subLineId); + lineIds.addAll(lineIdsTemp); + } + if(CollUtil.isNotEmpty(lineIds)){ + lineDetailMapper.updateLineRunFlagBatch(lineIds, status); + } + } + @Override public List getOverLimitByList(PollutionParamDTO pollutionParamDTO) { diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalMaintainServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalMaintainServiceImpl.java index 4a4da5fd3..73c3368c0 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalMaintainServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalMaintainServiceImpl.java @@ -77,6 +77,7 @@ public class TerminalMaintainServiceImpl implements TerminalMaintainService { private final DevFuctionMapper devFuctionMapper; private final CldStatisticsFlowMapper cldStatisticsFlowMapper; + private final LineService lineService; @Override public List getTerminalMainList(TerminalMainQueryParam terminalMainQueryParam) { @@ -139,12 +140,17 @@ public class TerminalMaintainServiceImpl implements TerminalMaintainService { @Override public boolean updateRunFlagManage(TerminalParam terminalParam) { + List devIds = terminalParam.getIds(); + if(CollectionUtils.isEmpty(devIds)){ + return true; + } QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.in("id", terminalParam.getIds()); + wrapper.in("id", devIds); List newList = iDeviceService.listByIds(terminalParam.getIds()); boolean b = iDeviceService.update(new LambdaUpdateWrapper() .set(Device::getRunFlag,terminalParam.getRunFlag()) .in(Device::getId,terminalParam.getIds())); + devIds.forEach(id -> {lineService.updateLineRunFlag(id,terminalParam.getRunFlag());}); //添加日志信息 if (b) { List oldList = iDeviceService.list(wrapper); diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalOnlineRateDataServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalOnlineRateDataServiceImpl.java index b3d3454f7..296e54a42 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalOnlineRateDataServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalOnlineRateDataServiceImpl.java @@ -299,8 +299,6 @@ public class TerminalOnlineRateDataServiceImpl implements TerminalOnlineRateData mapAlarm.put(0,0); } - - for (TerminalOnlineRateDataVO proItem : terminalOnlineRateData) { List gds = proItem.getChildren(); if (CollectionUtil.isNotEmpty(gds)) { diff --git a/pqs-harmonic/harmonic-boot/src/main/resources/bootstrap.yml b/pqs-harmonic/harmonic-boot/src/main/resources/bootstrap.yml index 19cb511ff..db9f602b3 100644 --- a/pqs-harmonic/harmonic-boot/src/main/resources/bootstrap.yml +++ b/pqs-harmonic/harmonic-boot/src/main/resources/bootstrap.yml @@ -35,8 +35,8 @@ spring: - data-id: share-config.yaml refresh: true #数据中心使用 - #- data-Id: share-config-datasource-db.yaml - # refresh: true +# - data-Id: share-config-datasource-db.yaml +# refresh: true #PMS使用 - data-Id: share-config-harmonic-db.yaml refresh: true From 67680628a1c53d128095a6c940aada67823d9c8d Mon Sep 17 00:00:00 2001 From: xy <748613696@qq.com> Date: Mon, 28 Jul 2025 21:02:50 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=96=87=E6=A1=A3bug?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/njcn/web/constant/ValidMessage.java | 2 +- .../njcn/device/pq/api/LineFeignClient.java | 10 + .../LineFeignClientFallbackFactory.java | 7 + .../device/pq/controller/LineController.java | 12 + .../pq/mapper/mapping/LineDetailMapper.xml | 2 +- .../njcn/device/pq/service/LineService.java | 3 + .../pq/service/impl/LineServiceImpl.java | 18 ++ .../njcn/event/pojo/po/RmpEventDetailPO.java | 1 + .../com/njcn/event/pojo/vo/SendEventVO.java | 50 +++++ .../com/njcn/event/pojo/vo/WaveTypeVO.java | 13 +- .../Impl/EventAnalysisServiceImpl.java | 9 +- .../Impl/EventDetailServiceImpl.java | 52 ++++- .../harmonic/pojo/vo/HistoryDataResultVO.java | 3 + .../harmonic/pojo/QueryResultLimitVO.java | 4 + .../impl/HistoryResultServiceImpl.java | 1 + .../harmonic/pojo/bo/excel/DataVDetail.java | 207 ++++++++++++++++++ .../prepare/executor/MeasurementExecutor.java | 1 - .../service/influxdb/IPollutionCalc.java | 5 + .../influxdb/impl/PollutionCalcImpl.java | 168 +++++++++++++- .../user/impl/UserReportPOServiceImpl.java | 2 +- .../njcn/system/pojo/param/ThemeParam.java | 12 +- .../service/impl/SysDicTreePOServiceImpl.java | 47 +++- .../system/service/impl/ThemeServiceImpl.java | 30 +-- .../com/njcn/user/enums/UserResponseEnum.java | 2 + .../service/impl/FunctionServiceImpl.java | 43 ++-- 25 files changed, 638 insertions(+), 66 deletions(-) create mode 100644 pqs-event/event-api/src/main/java/com/njcn/event/pojo/vo/SendEventVO.java create mode 100644 pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/bo/excel/DataVDetail.java diff --git a/pqs-common/common-web/src/main/java/com/njcn/web/constant/ValidMessage.java b/pqs-common/common-web/src/main/java/com/njcn/web/constant/ValidMessage.java index 4491b9526..65f811f8c 100644 --- a/pqs-common/common-web/src/main/java/com/njcn/web/constant/ValidMessage.java +++ b/pqs-common/common-web/src/main/java/com/njcn/web/constant/ValidMessage.java @@ -19,7 +19,7 @@ public interface ValidMessage { String NAME_NOT_BLANK = "名称不能为空,请检查name参数"; - String NAME_FORMAT_ERROR = "名称格式错误,请检查name参数"; + String NAME_FORMAT_ERROR = "名称格式错误,存在特殊符号或超过20字符,请检查name参数"; String INDUSTRY_NOT_BLANK = "行业不能为空,请检查industry参数"; String INDUSTRY_FORMAT_ERROR = "行业格式错误,请检查industry参数"; diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/LineFeignClient.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/LineFeignClient.java index e7e2b2377..f33a10df8 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/LineFeignClient.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/LineFeignClient.java @@ -1,7 +1,11 @@ package com.njcn.device.pq.api; +import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.constant.ServerInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; import com.njcn.device.biz.pojo.dto.PollutionLineDTO; import com.njcn.device.pq.api.fallback.LineFeignClientFallbackFactory; import com.njcn.device.pq.pojo.dto.*; @@ -13,6 +17,8 @@ import com.njcn.device.pq.pojo.po.LineDetail; import com.njcn.device.biz.pojo.po.Overlimit; import com.njcn.device.pq.pojo.po.line.LineInfoVO; import com.njcn.device.pq.pojo.vo.*; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -21,6 +27,7 @@ import org.springframework.web.bind.annotation.RequestParam; import java.util.List; import java.util.Map; +import java.util.Set; /** * @author denghuajun @@ -366,4 +373,7 @@ import java.util.Map; @PostMapping("/getPowerStationByMonitorIds") HttpResult> getPowerStationByMonitorIds(@RequestBody List ids); + + @PostMapping("/getDevListByLineIdList") + HttpResult> getDevListByLineIdList(@RequestBody List list); } diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/fallback/LineFeignClientFallbackFactory.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/fallback/LineFeignClientFallbackFactory.java index 7d28a0e97..0aca96294 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/fallback/LineFeignClientFallbackFactory.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/fallback/LineFeignClientFallbackFactory.java @@ -23,6 +23,7 @@ import org.springframework.web.bind.annotation.RequestParam; import java.util.List; import java.util.Map; +import java.util.Set; /** * @author denghuajun @@ -306,6 +307,12 @@ public class LineFeignClientFallbackFactory implements FallbackFactory> getDevListByLineIdList(List list) { + log.error("{}异常,降级处理,异常为:{}", "根据监测点id集合获取装置id集合: ", throwable.toString()); + throw new BusinessException(finalExceptionEnum); + } }; } } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LineController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LineController.java index fbcd93215..a15b342da 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LineController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LineController.java @@ -33,6 +33,7 @@ import springfox.documentation.annotations.ApiIgnore; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Set; /** * @author denghuajun @@ -138,6 +139,17 @@ public class LineController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getDevListByLineIdList") + @ApiOperation("根据监测点id集合获取装置id集合") + @ApiImplicitParam(name = "list", value = "监测点id集合", required = true) + public HttpResult> getDevListByLineIdList(@RequestBody List list) { + String methodDescribe = getMethodDescribe("getDevListByLineIdList"); + Set result = lineService.getDevListByLineIdList(list); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/getOverLimitData") @ApiOperation("根据监测点id获取越限数值") diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineDetailMapper.xml b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineDetailMapper.xml index 5e5bc06da..a6952ab87 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineDetailMapper.xml +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineDetailMapper.xml @@ -58,7 +58,7 @@