diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/DevStatusNumVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/DevStatusNumVO.java new file mode 100644 index 000000000..10daebbed --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/DevStatusNumVO.java @@ -0,0 +1,31 @@ +package com.njcn.device.pq.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: cdf + * @CreateTime: 2025-05-08 + * @Description: 不同运行状态的终端数量 + */ +@Data +public class DevStatusNumVO { + + @ApiModelProperty("总数") + private Integer allNum; + + @ApiModelProperty("在运数量") + private Integer runNum; + + @ApiModelProperty("检修数量") + private Integer checkNum; + + @ApiModelProperty("停运数量") + private Integer stopRunNum; + + private Integer testNum; + + @ApiModelProperty("退役数量") + private Integer quiteNum; + +} diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/CommTerminalController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/CommTerminalController.java index 7f82730de..468a5ecf4 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/CommTerminalController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/CommTerminalController.java @@ -158,10 +158,8 @@ public class CommTerminalController extends BaseController { @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiImplicitParam(name = "deptGetLineParam", value = "请求体", required = true) public HttpResult> deptBusBar(@RequestBody @Validated DeptGetLineParam deptGetLineParam) { - TimeInterval timer = new TimeInterval(); String methodDescribe = getMethodDescribe("deptBusBar"); List result = commTerminalService.deptBusBar(deptGetLineParam); - log.info("运行时长" + timer.intervalSecond()); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } @@ -177,10 +175,8 @@ public class CommTerminalController extends BaseController { @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiImplicitParam(name = "deptGetLineParam", value = "请求体", required = true) public HttpResult> deptGetDevice(@RequestBody @Validated DeptGetLineParam deptGetLineParam) { - TimeInterval timer = new TimeInterval(); String methodDescribe = getMethodDescribe("deptGetDevice"); List result = commTerminalService.deptGetDevice(deptGetLineParam,3); - log.info("运行时长" + timer.intervalSecond()); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } @@ -194,10 +190,8 @@ public class CommTerminalController extends BaseController { @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiImplicitParam(name = "deptGetLineParam", value = "请求体", required = true) public HttpResult> deptGetDeviceAndMonitor(@RequestBody @Validated DeptGetLineParam deptGetLineParam) { - TimeInterval timer = new TimeInterval(); String methodDescribe = getMethodDescribe("deptGetDeviceAndMonitor"); List result = commTerminalService.deptGetDevice(deptGetLineParam,1); - log.info("运行时长" + timer.intervalSecond()); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } @@ -211,10 +205,8 @@ public class CommTerminalController extends BaseController { @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiImplicitParam(name = "substationId", value = "请求体", required = true) public HttpResult substationGetLine(@RequestParam("substationId")String substationId) { - TimeInterval timer = new TimeInterval(); String methodDescribe = getMethodDescribe("substationGetLine"); LineDevGetBandDTO result = commTerminalService.substationGetLine(substationId); - log.info("运行时长" + timer.intervalSecond()); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } @@ -229,10 +221,8 @@ public class CommTerminalController extends BaseController { @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiImplicitParam(name = "busBarId", value = "请求体", required = true) public HttpResult busBarGetLine(@RequestParam("busBarId")String busBarId) { - TimeInterval timer = new TimeInterval(); String methodDescribe = getMethodDescribe("busBarGetLine"); LineDevGetBandDTO result = commTerminalService.substationGetLine(busBarId); - log.info("运行时长" + timer.intervalSecond()); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/DeviceController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/DeviceController.java index 8557a8f15..7ca6def60 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/DeviceController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/DeviceController.java @@ -1,19 +1,25 @@ package com.njcn.device.pq.controller; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Console; import cn.hutool.core.util.StrUtil; import com.github.tocrhz.mqtt.annotation.MqttSubscribe; import com.github.tocrhz.mqtt.annotation.NamedValue; import com.github.tocrhz.mqtt.annotation.Payload; import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.dto.SimpleDTO; 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.pq.pojo.dto.DevComFlagDTO; +import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO; import com.njcn.device.pq.pojo.param.ConstantValueParam; +import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.po.Device; +import com.njcn.device.pq.pojo.vo.DevStatusNumVO; import com.njcn.device.pq.service.IDeviceService; +import com.njcn.device.pq.service.impl.GeneralDeviceService; import com.njcn.web.controller.BaseController; import com.njcn.web.utils.RequestUtil; import io.swagger.annotations.Api; @@ -25,8 +31,11 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** @@ -43,6 +52,9 @@ import java.util.Objects; public class DeviceController extends BaseController { private final IDeviceService iDeviceService; + + private final GeneralDeviceService generalDeviceService; + @OperateInfo(info = LogEnum.SYSTEM_COMMON) @PostMapping("/socketLine") @ApiOperation("获取监测点定值信息") @@ -188,4 +200,23 @@ public class DeviceController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, update, methodDescribe); } + @ApiOperation("台账状态统计") + @PostMapping(value = "statisticDevNum") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + public HttpResult statisticDevNum(@RequestParam Integer powerFlag, @RequestParam String deptId) { + DevStatusNumVO devStatusNumVO = new DevStatusNumVO(); + String methodDescribe = getMethodDescribe("statisticDevNum"); + DeviceInfoParam deviceInfoParam = new DeviceInfoParam(); + deviceInfoParam.setDeptIndex(deptId); + deviceInfoParam.setStatisticalType(new SimpleDTO()); + deviceInfoParam.setPowerFlag(powerFlag); + List generalDeviceDTOList = generalDeviceService.getDeviceInfo(deviceInfoParam,new ArrayList<>(), Stream.of(1).collect(Collectors.toList())); + List devIds = generalDeviceDTOList.stream().flatMap(list->list.getDeviceIndexes().stream()).collect(Collectors.toList()); + if(CollectionUtil.isEmpty(devIds)){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, devStatusNumVO, methodDescribe); + } + devStatusNumVO = iDeviceService.statisticDevNum(devIds); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, devStatusNumVO, methodDescribe); + } + } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/TerminalBaseController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/TerminalBaseController.java index 0b358ad69..21dbce2bd 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/TerminalBaseController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/TerminalBaseController.java @@ -17,10 +17,7 @@ import com.njcn.device.pq.pojo.bo.excel.TerminalBaseExcel; import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO; import com.njcn.device.pq.pojo.param.*; import com.njcn.device.pq.pojo.po.Line; -import com.njcn.device.pq.pojo.vo.LineDetailDataVO; -import com.njcn.device.pq.pojo.vo.LineWiringDiagramVO; -import com.njcn.device.pq.pojo.vo.TerminalBaseVO; -import com.njcn.device.pq.pojo.vo.TerminalVO; +import com.njcn.device.pq.pojo.vo.*; import com.njcn.device.pq.service.LineService; import com.njcn.device.pq.service.TerminalBaseService; import com.njcn.device.pq.service.impl.GeneralDeviceService; @@ -467,6 +464,4 @@ public class TerminalBaseController extends BaseController { } - - } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/IDeviceService.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/IDeviceService.java index f2221be65..1ac9c2382 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/IDeviceService.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/IDeviceService.java @@ -4,6 +4,7 @@ package com.njcn.device.pq.service; import com.baomidou.mybatisplus.extension.service.IService; import com.njcn.device.pq.pojo.param.ConstantValueParam; import com.njcn.device.pq.pojo.po.Device; +import com.njcn.device.pq.pojo.vo.DevStatusNumVO; import java.util.List; @@ -133,4 +134,11 @@ public interface IDeviceService extends IService { * @Description: 技术监督修改装置定检时间 */ void updateDevCheckTime(String devId, String thisTimeCheck, String nextTimeCheck); + + + + /** + * 统计不同运行状态的终端数量 + */ + DevStatusNumVO statisticDevNum(List devIds); } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/TerminalBaseService.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/TerminalBaseService.java index f859a1b2c..e5d57f11b 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/TerminalBaseService.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/TerminalBaseService.java @@ -9,6 +9,7 @@ import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.param.SyncTerminalParam; import com.njcn.device.pq.pojo.param.UpdateTerminalParam; import com.njcn.device.pq.pojo.po.Line; +import com.njcn.device.pq.pojo.vo.DevStatusNumVO; import com.njcn.device.pq.pojo.vo.LineWiringDiagramVO; import com.njcn.device.pq.pojo.vo.TerminalBaseVO; import com.njcn.device.pq.pojo.vo.TerminalVO; @@ -290,4 +291,6 @@ public interface TerminalBaseService { void askRestartDevice(List devId, String deviceRebootType,Integer processNo); void ledgerChangePush(); + + } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DeviceServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DeviceServiceImpl.java index 72d93b020..9d0c6b872 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DeviceServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DeviceServiceImpl.java @@ -8,6 +8,7 @@ import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.device.biz.enums.RunFlagEnum; import com.njcn.device.pq.mapper.DevVersionMapper; import com.njcn.device.pq.mapper.DeviceMapper; import com.njcn.device.pq.mapper.LineMapper; @@ -17,6 +18,7 @@ import com.njcn.device.pq.pojo.po.DevVersion; import com.njcn.device.pq.pojo.po.Device; import com.njcn.device.pq.pojo.po.Line; import com.njcn.device.pq.pojo.po.Version; +import com.njcn.device.pq.pojo.vo.DevStatusNumVO; import com.njcn.device.pq.pojo.vo.DeviceIpRVO; import com.njcn.device.pq.service.IDeviceService; import com.njcn.device.pq.service.ProgramVersionService; @@ -408,4 +410,19 @@ public class DeviceServiceImpl extends ServiceImpl impleme } + @Override + public DevStatusNumVO statisticDevNum(List devIds) { + DevStatusNumVO devStatusNumVO = new DevStatusNumVO(); + List deviceList = this.baseMapper.selectList(new LambdaQueryWrapper().in(Device::getId,devIds)); + Map map = deviceList.stream().collect(Collectors.groupingBy(Device::getRunFlag,Collectors.counting())); + devStatusNumVO.setRunNum(map.getOrDefault(RunFlagEnum.RUNNING.getStatus(),0L).intValue()); + devStatusNumVO.setCheckNum(map.getOrDefault(RunFlagEnum.CHECK.getStatus(),0L).intValue()); + devStatusNumVO.setStopRunNum(map.getOrDefault(RunFlagEnum.STOP.getStatus(),0L).intValue()); + devStatusNumVO.setQuiteNum(map.getOrDefault(RunFlagEnum.QUIT.getStatus(),0L).intValue()); + devStatusNumVO.setTestNum(map.getOrDefault(RunFlagEnum.TEST.getStatus(),0L).intValue()); + devStatusNumVO.setAllNum(deviceList.size()); + return devStatusNumVO; + } + + } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalBaseServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalBaseServiceImpl.java index 218c903f9..4b7d4e0e0 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalBaseServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalBaseServiceImpl.java @@ -3786,6 +3786,8 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple } + + /** * 终端日志记录 */ diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/HarmonicServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/HarmonicServiceImpl.java index cc2e728d8..7a306943e 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/HarmonicServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/HarmonicServiceImpl.java @@ -76,7 +76,6 @@ public class HarmonicServiceImpl implements IHarmonicService { if (StringUtils.isBlank(RequestUtil.getDeptIndex())) { return list; } - Map userLedgerVOMap; if (Objects.isNull(harmonicPublicParam.getPowerFlag()) || !PowerFlagEnum.GRID_SIDE.getCode().equals(harmonicPublicParam.getPowerFlag())) { List userLedgerVOList = userLedgerFeignClient.selectUserList(new UserReportParam()).getData(); @@ -85,7 +84,6 @@ public class HarmonicServiceImpl implements IHarmonicService { userLedgerVOMap = new HashMap<>(); } - List deptList = generalDeviceInfoClient.getPracticalRunDeviceInfo(harmonicPublicParam).getData(); deptList.forEach(dept -> lineList.addAll(dept.getLineIndexes())); //获取所有的数据信息