合并代码

This commit is contained in:
2022-11-21 17:58:18 +08:00
parent a4c225d067
commit a81a815636
65 changed files with 3828 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
package com.njcn.device.pms.api;
import cn.hutool.core.collection.CollectionUtil;
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.pms.api.fallback.DistributionMonitorClientFallbackFactory;
import com.njcn.device.pms.api.fallback.MonitorClientFallbackFactory;
import com.njcn.device.pms.pojo.dto.PmsMonitorDTO;
import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO;
import com.njcn.device.pms.pojo.param.PmsMonitorInfoParam;
import com.njcn.device.pms.pojo.param.PmsMonitorParam;
import com.njcn.device.pms.pojo.vo.DoubleUserVO;
import com.njcn.device.pq.pojo.po.Overlimit;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* @author yzh
* @date 2022/10/18
*/
@FeignClient(
value = ServerInfo.DEVICE,
path = "/pms/distributionMonitor",
fallbackFactory = DistributionMonitorClientFallbackFactory.class)
public interface DistributionMonitorClient {
/**
* 获取指定组织下的发电用电用户
* @author cdf
* @date 2022/11/15
*/
@PostMapping("/getDoubleUserByDept")
HttpResult<List<DoubleUserVO>> getDoubleUserByDept(@RequestParam("orgId")String orgId);
}

View File

@@ -0,0 +1,50 @@
package com.njcn.device.pms.api.fallback;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.device.pms.api.DistributionMonitorClient;
import com.njcn.device.pms.api.MonitorClient;
import com.njcn.device.pms.pojo.dto.PmsMonitorDTO;
import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO;
import com.njcn.device.pms.pojo.param.PmsMonitorInfoParam;
import com.njcn.device.pms.pojo.param.PmsMonitorParam;
import com.njcn.device.pms.pojo.vo.DoubleUserVO;
import com.njcn.device.pms.utils.PmsDeviceEnumUtil;
import com.njcn.device.pq.pojo.po.Overlimit;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* @author yzh
* @date 2022/10/18
*/
@Slf4j
@Component
public class DistributionMonitorClientFallbackFactory implements FallbackFactory<DistributionMonitorClient> {
@Override
public DistributionMonitorClient create(Throwable throwable) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (throwable.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) throwable.getCause();
exceptionEnum = PmsDeviceEnumUtil.getExceptionEnum(businessException.getResult());
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new DistributionMonitorClient()
{
@Override
public HttpResult<List<DoubleUserVO>> getDoubleUserByDept(@RequestParam("orgId")String orgId) {
log.error("{}异常,降级处理,异常为:{}", "获取指定组织下的发电用电用户", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -0,0 +1,25 @@
package com.njcn.device.pms.pojo.param;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 终端异常管理接收参数实体
* @Title RMpDevAbnormalManageParam
* @Package com.njcn.device.pms.pojo.param
* @Author jianghaifei
* @Date 2022-11-14 19:48
* @Version V1.0
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class RMpDevAbnormalManageParam extends StatisticsBizBaseParam {
@ApiModelProperty(name = "manufactureIds", value = "厂家id(仅限厂家终端消缺统计接口使用)")
private String manufactureIds;
@ApiModelProperty(name = "breakDownType", value = "故障类型(仅限故障类型消缺统计接口使用)")
private String breakDownType;
}

View File

@@ -0,0 +1,26 @@
package com.njcn.device.pms.pojo.param;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @Title RMpDevEvaluateDetailParam
* @Package com.njcn.device.pms.pojo.param
* @Author jianghaifei
* @Date 2022-11-17 15:50
* @Version V1.0
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class RMpDevEvaluateDetailParam extends StatisticsBizBaseParam {
@ApiModelProperty(name = "searchType", value = "维度(1:单位2:终端厂家3:终端型号)")
private String searchType;
@ApiModelProperty(name = "manufactureIds", value = "终端厂商ids")
private String manufactureIds;
@ApiModelProperty(name = "deviceModel", value = "终端型号(可多选)")
private String deviceModel;
}

View File

@@ -0,0 +1,20 @@
package com.njcn.device.pms.pojo.param;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Title RMpDevSolveDetailParam
* @Package com.njcn.device.pms.pojo.param
* @Author jianghaifei
* @Date 2022-11-17 10:30
* @Version V1.0
*/
@Data
public class RMpDevSolveDetailParam extends StatisticsBizBaseParam {
@ApiModelProperty(name = "manufactureIds", value = "厂家ids")
private String manufactureIds;
}

View File

@@ -0,0 +1,28 @@
package com.njcn.device.pms.pojo.param;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 终端通信管理接收参数实体类
* @Title RStatDevSignalParam
* @Package com.njcn.device.pms.pojo.param
* @Author jianghaifei
* @Date 2022-11-11 16:13
* @Version V1.0
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class RStatDevSignalParam extends StatisticsBizBaseParam {
@ApiModelProperty(name = "terminalName", value = "终端名称")
private String deviceName;
@ApiModelProperty(name = "deviceStatus", value = "设备状态")
private String deviceStatus;
@ApiModelProperty(name = "runStatus", value = "运行状态")
private String runStatus;
}

View File

@@ -0,0 +1,44 @@
package com.njcn.device.pms.pojo.po;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 终端评价详情表
* @TableName r_mp_dev_evaluate_detail
*/
@Data
public class RMpDevEvaluateDetail implements Serializable {
/**
* 生成数据的时间,每月统计一次
*/
private Date dataDate;
/**
* 终端id
*/
private String deviceId;
/**
* 终端指标完整率
*/
private Double devTargetRate;
/**
* 终端数据完整率
*/
private Double devDataRate;
/**
* 终端故障及消缺评分
*/
private Double devScore;
/**
* 终端有效接入率
*/
private Double devEffectiveRate;
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,54 @@
package com.njcn.device.pms.pojo.po;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 终端消缺明细数据表
* @TableName r_mp_dev_solve_detail
*/
@Data
public class RMpDevSolveDetail implements Serializable {
/**
* 终端id
*/
private String deviceId;
/**
* 生成数据的时间,每天统计一次
*/
private Date dataDate;
/**
* 故障时间
*/
private Date breakDownDate;
/**
* 故障类型
*/
private String breakDownType;
/**
* 是否消缺(0否 1是)
*/
private Integer isSolve;
/**
* 消缺时间
*/
private Date solveDate;
/**
* 消缺措施
*/
private String defectTreatment;
/**
* 缺陷严重度(轻缺陷、较重缺陷和严重缺陷 三类缺陷对应分值为0.02,0.12和0.42消缺为对应缺陷分值的1/3)
*/
private String defectSeverity;
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,39 @@
package com.njcn.device.pms.pojo.po;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 终端通信管理日表
* @TableName r_stat_dev_signal_d
*/
@Data
public class RStatDevSignalD implements Serializable {
/**
* 终端id
*/
private String deviceId;
/**
* 生成数据的时间,每日统计一次
*/
private Date dataDate;
/**
* 设备状态
*/
private String deviceStatus;
/**
* 运行状态
*/
private String runStatus;
/**
* 更新时间
*/
private Date updateTime;
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,54 @@
package com.njcn.device.pms.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @Title RMpDevEvaluateDetailVO
* @Package com.njcn.device.pms.pojo.vo
* @Author jianghaifei
* @Date 2022-11-17 16:00
* @Version V1.0
*/
@Data
public class RMpDevEvaluateDetailVO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(name = "orgId", value = "单位id")
private String orgId; //单位id
@ApiModelProperty(name = "orgName", value = "单位名称")
private String orgName; //单位名称
@ApiModelProperty(name = "manufactureId", value = "厂家(字典id)")
private String manufactureId;
@ApiModelProperty(name = "deviceModel", value = "终端型号(字典id)")
private String deviceModel;
@ApiModelProperty(name = "dataDate", value = "日期")
private String dataDate;
/**
* 终端有效接入率
*/
@ApiModelProperty(name = "devEffectiveRate", value = "终端有效接入率")
private Double devEffectiveRate;
/**
* 终端指标完整率
*/
@ApiModelProperty(name = "devTargetRate", value = "终端指标完整率")
private Double devTargetRate;
/**
* 终端数据完整率
*/
@ApiModelProperty(name = "devDataRate", value = "终端数据完整率")
private Double devDataRate;
@ApiModelProperty(name = "assessment", value = "综合评价")
private Double assessment;
}

View File

@@ -0,0 +1,63 @@
package com.njcn.device.pms.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 异常终端消缺明细返回实体类
* @TableName r_mp_dev_solve_detail
*/
@Data
public class RMpDevSolveDetailVO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(name = "orgId", value = "单位id")
private String orgId; //单位id
@ApiModelProperty(name = "orgName", value = "单位名称")
private String orgName; //单位名称
@ApiModelProperty(name = "powerId", value = "变电站id")
private String powerId;
@ApiModelProperty(name = "powerName", value = "变电站名称")
private String powerName;
/**
* 终端id
*/
@ApiModelProperty(name = "deviceId", value = "终端编号")
private String deviceId;
/**
* 故障时间
*/
@ApiModelProperty(name = "breakDownDate", value = "故障时间")
private Date breakDownDate;
/**
* 故障类型
*/
@ApiModelProperty(name = "breakDownType", value = "故障类型(字典)")
private String breakDownType;
/**
* 是否消缺(0否 1是)
*/
@ApiModelProperty(name = "isSolve", value = "是否消缺(0否 1是)")
private Integer isSolve;
/**
* 消缺时间
*/
@ApiModelProperty(name = "solveDate", value = "消缺时间")
private Date solveDate;
}

View File

@@ -0,0 +1,45 @@
package com.njcn.device.pms.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 终端异常管理返回实体类
* @Title RMpDevAbnormalManageVO
* @Package com.njcn.device.pms.pojo.vo
* @Author jianghaifei
* @Date 2022-11-14 19:50
* @Version V1.0
*/
@Data
public class RMpDevSolveVO {
@ApiModelProperty(name = "dataDate", value = "时间")
private String dataDate;
@ApiModelProperty(name = "orgId", value = "单位id")
private String orgId; //单位id
@ApiModelProperty(name = "orgName", value = "单位名称")
private String orgName; //单位名称
@ApiModelProperty(name = "manufactureId", value = "厂商id(字典)")
private String manufactureId;
@ApiModelProperty(name = "breakDownType", value = "故障类型(字典id)")
private String breakDownType;
@ApiModelProperty(name = "terminalCount", value = "终端数量")
private Integer terminalCount;
@ApiModelProperty(name = "terminalAbnormalCount", value = "终端异常数量")
private Integer terminalAbnormalCount;
@ApiModelProperty(name = "solveCount", value = "已消缺异常数量")
private Integer solveCount;
@ApiModelProperty(name = "solveRate", value = "消缺率")
private Double solveRate;
}

View File

@@ -0,0 +1,45 @@
package com.njcn.device.pms.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 终端通信管理返回前端实体类
* @Title RStatDevSignalVO
* @Package com.njcn.device.pms.pojo.vo
* @Author jianghaifei
* @Date 2022-11-11 16:16
* @Version V1.0
*/
@Data
public class RStatDevSignalVO {
@ApiModelProperty(name = "orgId", value = "单位id")
private String orgId; //单位id
@ApiModelProperty(name = "orgName", value = "单位名称")
private String orgName; //单位名称
@ApiModelProperty(name = "terminalId", value = "终端编号")
private String terminalId; //终端编号
@ApiModelProperty(name = "terminalName", value = "终端名称")
private String terminalName; //终端名称
@ApiModelProperty(name = "deviceStatus", value = "设备状态(字典)")
private String deviceStatus; //设备状态
@ApiModelProperty(name = "runStatus", value = "运行状态(字典)")
private String runStatus; //运行状态
@ApiModelProperty(name = "ip", value = "ip地址")
private String ip; //ip地址
@ApiModelProperty(name = "port", value = "端口")
private String port; //端口
@ApiModelProperty(name = "updateTime", value = "最后通讯时间")
private Date updateTime; //最后通讯时间
}