diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/DevDetail.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/DevDetail.java index 50d6c4c58..7137891f1 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/DevDetail.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/DevDetail.java @@ -27,6 +27,9 @@ public class DevDetail { @ApiModelProperty("供电公司") private String gdName; + @ApiModelProperty("所属部门") + private String deptName; + @ApiModelProperty("变电站名称") private String bdzName; @@ -37,9 +40,15 @@ public class DevDetail { @ApiModelProperty("终端等级") private String lineGrade; + @ApiModelProperty("终端厂商") + private String manufacturer; + @ApiModelProperty("通讯状态(0:中断;1:正常)") private Integer comFlag; + @ApiModelProperty("运行状态(0:运行;1:检修;2:停运;3:调试;4:退运)") + private Integer runFlag; + @ApiModelProperty("定检时间") @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate nextTimeCheck; diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/RStatOnlinerateVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/RStatOnlinerateVO.java index 2566f1433..2fdcf4723 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/RStatOnlinerateVO.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/RStatOnlinerateVO.java @@ -1,6 +1,5 @@ package com.njcn.device.pq.pojo.vo; -import com.github.jeffreyning.mybatisplus.anno.MppMultiId; import lombok.Data; import java.time.LocalDateTime; diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/common/DeviceOnlineRate.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/common/DeviceOnlineRate.java new file mode 100644 index 000000000..315e8a246 --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/common/DeviceOnlineRate.java @@ -0,0 +1,84 @@ +package com.njcn.device.pq.pojo.vo.common; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @author wr + * @description + * @date 2025/11/26 11:00 + */ + +@Data +public class DeviceOnlineRate { + + @ApiModelProperty("总终端数量") + private Integer totalNum; + + @ApiModelProperty("低于90终端数据") + private Integer belowNum; + + @ApiModelProperty("总终端在线率") + private String totalOnlineRate; + + @ApiModelProperty("统计信息") + List citDetailList; + + @Data + public static class CitDetail { + + @ApiModelProperty("地市") + private String citName; + + @ApiModelProperty("总终端数量") + private Integer citTotalNum; + + @ApiModelProperty("低于90终端数据") + private Integer citBelowNum; + + @ApiModelProperty("总终端在线率") + private String citTotalOnlineRate; + + @ApiModelProperty("统计信息") + List detailList; + } + + + @Data + public static class Detail { + + @ApiModelProperty("地市") + private String cit; + + @ApiModelProperty("供电公司") + private String company; + + @ApiModelProperty("变电站") + private String subStation; + + @ApiModelProperty("终端ID") + private String deviceId; + + @ApiModelProperty("终端名称") + private String deviceName; + + @ApiModelProperty("终端厂家") + private String manufacturer; + + @ApiModelProperty("终端IP") + private String ip; + + @ApiModelProperty("终端运行状态") + private Integer runFlag; + + @ApiModelProperty("终端运行状态") + private Integer comFlag; + + @ApiModelProperty("在线率") + private String onlineRate; + } + +} diff --git a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/mapper/onlinerate/OnLineRateMapper.java b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/mapper/onlinerate/OnLineRateMapper.java new file mode 100644 index 000000000..62b068551 --- /dev/null +++ b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/mapper/onlinerate/OnLineRateMapper.java @@ -0,0 +1,31 @@ +package com.njcn.device.common.mapper.onlinerate; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.device.pq.pojo.param.OnlineRateParam; +import com.njcn.device.pq.pojo.po.RStatOnlinerateD; +import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 在线率日表 Mapper 接口 + *

+ * + * @author hongawen + * @since 2023-03-28 + */ +public interface OnLineRateMapper extends BaseMapper { + + /*** + * 获取设备在线率 + * @author wr + * @date 2023-04-03 10:10 + * @param param + * @return List + */ + List getOnlineRateByDevIds(@Param("param") OnlineRateParam param); + +} diff --git a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/mapper/onlinerate/mapping/OnLineRateMapper.xml b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/mapper/onlinerate/mapping/OnLineRateMapper.xml new file mode 100644 index 000000000..683baa89b --- /dev/null +++ b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/mapper/onlinerate/mapping/OnLineRateMapper.xml @@ -0,0 +1,50 @@ + + + + + + diff --git a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/service/GeneralDeviceService.java b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/service/GeneralDeviceService.java index 5e2eae581..d57decee1 100644 --- a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/service/GeneralDeviceService.java +++ b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/service/GeneralDeviceService.java @@ -34,6 +34,7 @@ import com.njcn.system.pojo.enums.StatisticsEnum; import com.njcn.system.pojo.po.DictData; import com.njcn.user.api.DeptFeignClient; import com.njcn.user.pojo.dto.DeptDTO; +import com.njcn.user.pojo.po.Dept; import com.njcn.web.utils.WebUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -796,12 +797,25 @@ public class GeneralDeviceService { List gradeType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_GRADE.getCode()).getData(); Map gradeMap = gradeType.stream().collect(Collectors.toMap(DictData::getId, DictData::getAlgoDescribe)); + List manufacturerList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_MANUFACTURER.getCode()).getData(); + Map manufacturerMap = manufacturerList.stream().collect(Collectors.toMap(DictData::getId, DictData::getName)); + + List deptList = deptFeignClient.getAllDept().getData(); + Map deptMap = deptList.stream().collect(Collectors.toMap(Dept::getId, Dept::getName)); List devDetails = deviceMapper.selectDevByIds(devIds); for (DevDetail devDetail : devDetails) { //终端等级 if(gradeMap.containsKey(devDetail.getLineGrade())){ devDetail.setLineGrade(String.valueOf(gradeMap.get(devDetail.getLineGrade()))); } + //部门 + if(deptMap.containsKey(devDetail.getDeptName())){ + devDetail.setDeptName(deptMap.get(devDetail.getDeptName())); + } + //终端厂商 + if(manufacturerMap.containsKey(devDetail.getManufacturer())){ + devDetail.setManufacturer(manufacturerMap.get(devDetail.getManufacturer())); + } } return devDetails; } diff --git a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/controller/OnLineRateController.java b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/controller/OnLineRateController.java new file mode 100644 index 000000000..43f896173 --- /dev/null +++ b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/controller/OnLineRateController.java @@ -0,0 +1,46 @@ +package com.njcn.device.device.controller; + + +import com.njcn.common.pojo.annotation.OperateInfo; +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.device.service.OnLineRateService; +import com.njcn.device.pq.pojo.param.DeviceInfoParam; +import com.njcn.device.pq.pojo.vo.common.DeviceOnlineRate; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + + + +/** + * @Description: 终端在线率 + * @Author: wr + * @Date: 2025/11/26 10:28 + */ +@Slf4j +@Api(tags = "终端在线率") +@RestController +@RequestMapping("/onLineRate") +@RequiredArgsConstructor +public class OnLineRateController extends BaseController { + + private final OnLineRateService onLineRateService; + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/deviceOnlineRateInfo") + @ApiOperation("终端在线率列表(冀北)") + public HttpResult deviceOnlineRateInfo(@RequestBody DeviceInfoParam.BusinessParam deviceInfoParam) { + String methodDescribe = getMethodDescribe("deviceOnlineRateInfo"); + DeviceOnlineRate rate = onLineRateService.deviceOnlineRateInfo(deviceInfoParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rate, methodDescribe); + } + +} + diff --git a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/mapper/mapping/DeviceMapper.xml b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/mapper/mapping/DeviceMapper.xml index 903de3b4c..15438b82a 100644 --- a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/mapper/mapping/DeviceMapper.xml +++ b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/mapper/mapping/DeviceMapper.xml @@ -229,6 +229,7 @@