Compare commits
13 Commits
2025-11
...
a730ad61b1
| Author | SHA1 | Date | |
|---|---|---|---|
| a730ad61b1 | |||
| 9b758dc7c9 | |||
| a74dd460d1 | |||
| 2708aa8b81 | |||
|
|
6d833678a6 | ||
| be264acd79 | |||
|
|
186d46752c | ||
|
|
e03478eeec | ||
|
|
0c1bb606d6 | ||
|
|
42b619fa56 | ||
|
|
f0894ca0ed | ||
|
|
8a958fa34c | ||
|
|
b4e5d0c638 |
@@ -45,6 +45,9 @@ public class Knife4jSwaggerConfig {
|
|||||||
@Value("${microservice.gateway.url}")
|
@Value("${microservice.gateway.url}")
|
||||||
private String gatewayUrl;
|
private String gatewayUrl;
|
||||||
|
|
||||||
|
@Value("${swagger.enable:true}")
|
||||||
|
private Boolean swaggerEnable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* swagger通用配置
|
* swagger通用配置
|
||||||
*/
|
*/
|
||||||
@@ -96,7 +99,7 @@ public class Knife4jSwaggerConfig {
|
|||||||
//securyContext
|
//securyContext
|
||||||
return new Docket(DocumentationType.SWAGGER_2)
|
return new Docket(DocumentationType.SWAGGER_2)
|
||||||
.apiInfo(apiInfo())
|
.apiInfo(apiInfo())
|
||||||
.enable(true)
|
.enable(swaggerEnable)
|
||||||
.select()
|
.select()
|
||||||
// 指定添加swagger注解的方法
|
// 指定添加swagger注解的方法
|
||||||
// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
|
// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
|||||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
import com.njcn.device.pq.pojo.po.TopMsgPO;
|
import com.njcn.device.pq.pojo.po.TopMsgPO;
|
||||||
import com.njcn.device.pq.pojo.vo.DevDetail;
|
import com.njcn.device.pq.pojo.vo.DevDetail;
|
||||||
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
|
import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO;
|
||||||
import org.springframework.cloud.openfeign.FeignClient;
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
@@ -111,7 +111,7 @@ public interface GeneralDeviceInfoClient {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@PostMapping("/getOnlineRateByDevIds")
|
@PostMapping("/getOnlineRateByDevIds")
|
||||||
HttpResult<List<RStatOnlinerateVO>> getOnlineRateByDevIds(@RequestBody OnlineRateParam param);
|
HttpResult<List<RStatOnlineRateVO>> getOnlineRateByDevIds(@RequestBody OnlineRateParam param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*根据单位获取投运监测点(双系统)
|
*根据单位获取投运监测点(双系统)
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
|||||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
import com.njcn.device.pq.pojo.po.TopMsgPO;
|
import com.njcn.device.pq.pojo.po.TopMsgPO;
|
||||||
import com.njcn.device.pq.pojo.vo.DevDetail;
|
import com.njcn.device.pq.pojo.vo.DevDetail;
|
||||||
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
|
import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO;
|
||||||
import com.njcn.device.biz.utils.DeviceEnumUtil;
|
import com.njcn.device.biz.utils.DeviceEnumUtil;
|
||||||
import feign.hystrix.FallbackFactory;
|
import feign.hystrix.FallbackFactory;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -84,7 +84,7 @@ public class GeneralDeviceInfoClientFallbackFactory implements FallbackFactory<G
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HttpResult<List<RStatOnlinerateVO>> getOnlineRateByDevIds(OnlineRateParam param) {
|
public HttpResult<List<RStatOnlineRateVO>> getOnlineRateByDevIds(OnlineRateParam param) {
|
||||||
log.error("{}异常,降级处理,异常为:{}", "获取终端在线率(谐波专用)", throwable.toString());
|
log.error("{}异常,降级处理,异常为:{}", "获取终端在线率(谐波专用)", throwable.toString());
|
||||||
throw new BusinessException(finalExceptionEnum);
|
throw new BusinessException(finalExceptionEnum);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,68 @@
|
|||||||
|
package com.njcn.device.pq.pojo.po;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xy
|
||||||
|
* @since 2025-02-17
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@TableName("pq_data_verify_count")
|
||||||
|
public class PqDataVerifyCount implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监测点id
|
||||||
|
*/
|
||||||
|
@MppMultiId
|
||||||
|
@TableField(value = "line_id")
|
||||||
|
private String lineId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据时间
|
||||||
|
*/
|
||||||
|
@MppMultiId
|
||||||
|
@TableField(value = "time_id")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
|
||||||
|
private LocalDate time;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 异常指标数量
|
||||||
|
*/
|
||||||
|
@TableField(value = "total")
|
||||||
|
private Integer total ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 总指标数量
|
||||||
|
*/
|
||||||
|
@TableField(value = "total_all")
|
||||||
|
private Integer totalAll ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 异常短时闪变数量
|
||||||
|
*/
|
||||||
|
@TableField(value = "flicker")
|
||||||
|
private Integer flicker ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 短时闪变总数量
|
||||||
|
*/
|
||||||
|
@TableField(value = "flicker_all")
|
||||||
|
private Integer flickerAll;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,165 @@
|
|||||||
|
package com.njcn.device.pq.pojo.po.jb;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.njcn.db.bo.BaseEntity;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author hongawen
|
||||||
|
* @since 2022-10-14
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("distribution_area")
|
||||||
|
public class DistributionArea extends BaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 台区编号
|
||||||
|
*/
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 台区名称
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组织机构名称
|
||||||
|
*/
|
||||||
|
private String orgName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组织机构ID(外键)
|
||||||
|
*/
|
||||||
|
private String orgId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 运维单位名称
|
||||||
|
*/
|
||||||
|
private String operationName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 运维单位ID(外键)
|
||||||
|
*/
|
||||||
|
private String operationId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 变电站名称
|
||||||
|
*/
|
||||||
|
private String powerrName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电站ID(外键)
|
||||||
|
*/
|
||||||
|
private String powerStationId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监测线路名称
|
||||||
|
*/
|
||||||
|
private String lineName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 所属线路ID(外键)
|
||||||
|
*/
|
||||||
|
private String lineId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电压等级
|
||||||
|
*/
|
||||||
|
private String voltageLevel;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配变容量
|
||||||
|
*/
|
||||||
|
private Float pCapacity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 地区特征(字典)
|
||||||
|
*/
|
||||||
|
private String regionalism;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备地区特征(字典)
|
||||||
|
*/
|
||||||
|
private String devRegionalism;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否农网:0-否;1:是;
|
||||||
|
*/
|
||||||
|
private Integer ifRuralPowerGrid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 使用性质
|
||||||
|
*/
|
||||||
|
private String natureOfUse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供电半径
|
||||||
|
*/
|
||||||
|
private Float powerSupplyRadius;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供电线路总长度
|
||||||
|
*/
|
||||||
|
private Float lineLength;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 运行状态(字典)
|
||||||
|
*/
|
||||||
|
private String state;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分布式光伏用户数
|
||||||
|
*/
|
||||||
|
private Integer distributedPhotovoltaicNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分布式光伏总装机容量
|
||||||
|
*/
|
||||||
|
private Float photovoltaicCapacity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否有电动汽车接入:0-否;1:是;
|
||||||
|
*/
|
||||||
|
private Integer ifBevAp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接入负荷类型(字典)
|
||||||
|
*/
|
||||||
|
private String apLoadType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否是上送国网监测点,0-否 1-是
|
||||||
|
*/
|
||||||
|
private Integer isUpToGrid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 经度
|
||||||
|
*/
|
||||||
|
private Double longitude;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 维度
|
||||||
|
*/
|
||||||
|
private Double latitude;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据状态:0-删除;1-正常;
|
||||||
|
*/
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据状态:0-手动录入;1-gw台账录入
|
||||||
|
*/
|
||||||
|
private Integer inputStatus;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,128 @@
|
|||||||
|
package com.njcn.device.pq.pojo.po.jb;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.njcn.db.bo.BaseEntity;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 发电用户
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author hongawen
|
||||||
|
* @since 2022-10-14
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("power_generation_user")
|
||||||
|
public class GenerationUser extends BaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户编号
|
||||||
|
*/
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户名称
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组织机构名称
|
||||||
|
*/
|
||||||
|
private String orgName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组织机构ID(外键)
|
||||||
|
*/
|
||||||
|
private String orgId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 运维单位名称
|
||||||
|
*/
|
||||||
|
private String operationName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 运维单位ID(外键)
|
||||||
|
*/
|
||||||
|
private String operationId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电源类别(字典)
|
||||||
|
*/
|
||||||
|
private String powerCategory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电站类型(字典)
|
||||||
|
*/
|
||||||
|
private String powerStationType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发电方式(字典)
|
||||||
|
*/
|
||||||
|
private String powerGenerationMode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 并网电压等级(字典)
|
||||||
|
*/
|
||||||
|
private String voltageLevel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 总装机容量
|
||||||
|
*/
|
||||||
|
private Float sourceCapacity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 并网日期
|
||||||
|
*/
|
||||||
|
private LocalDate connectionDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 能源消纳方式(字典)
|
||||||
|
*/
|
||||||
|
private String connectionMode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 客户状态(字典)
|
||||||
|
*/
|
||||||
|
private String gcStat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供电变电站(外键)
|
||||||
|
*/
|
||||||
|
private String powerStationId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供电线路(外键)
|
||||||
|
*/
|
||||||
|
private String lineId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供电台区(外键)
|
||||||
|
*/
|
||||||
|
private String platformId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户标签
|
||||||
|
*/
|
||||||
|
private String userTag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否是上送国网监测点,0-否 1-是
|
||||||
|
*/
|
||||||
|
private Integer isUpToGrid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据状态:0-删除;1-正常;
|
||||||
|
*/
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.njcn.device.pq.pojo.vo;
|
package com.njcn.device.pq.pojo.vo;
|
||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -26,6 +26,6 @@ public class RStatIntegrityVO {
|
|||||||
|
|
||||||
private Integer realTime;
|
private Integer realTime;
|
||||||
|
|
||||||
private Double integrityRate;
|
private BigDecimal integrityRate;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.njcn.device.pq.pojo.vo;
|
|||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -11,7 +12,7 @@ import java.time.LocalDateTime;
|
|||||||
* @createTime: 2023-04-03
|
* @createTime: 2023-04-03
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class RStatOnlinerateVO {
|
public class RStatOnlineRateVO {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
private LocalDateTime timeId;
|
private LocalDateTime timeId;
|
||||||
@@ -22,5 +23,5 @@ public class RStatOnlinerateVO {
|
|||||||
|
|
||||||
private Integer offlineMin;
|
private Integer offlineMin;
|
||||||
|
|
||||||
private Float onlineRate;
|
private BigDecimal onlineRate;
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
|
|||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -23,7 +24,7 @@ public class DeviceOnlineRate {
|
|||||||
private Integer belowNum;
|
private Integer belowNum;
|
||||||
|
|
||||||
@ApiModelProperty("总终端在线率")
|
@ApiModelProperty("总终端在线率")
|
||||||
private String totalOnlineRate;
|
private BigDecimal totalOnlineRate;
|
||||||
|
|
||||||
@ApiModelProperty("统计信息")
|
@ApiModelProperty("统计信息")
|
||||||
List<CitDetail> citDetailList;
|
List<CitDetail> citDetailList;
|
||||||
@@ -41,7 +42,7 @@ public class DeviceOnlineRate {
|
|||||||
private Integer citBelowNum;
|
private Integer citBelowNum;
|
||||||
|
|
||||||
@ApiModelProperty("总终端在线率")
|
@ApiModelProperty("总终端在线率")
|
||||||
private String citTotalOnlineRate;
|
private BigDecimal citTotalOnlineRate;
|
||||||
|
|
||||||
@ApiModelProperty("统计信息")
|
@ApiModelProperty("统计信息")
|
||||||
List<?> detailList;
|
List<?> detailList;
|
||||||
@@ -82,7 +83,7 @@ public class DeviceOnlineRate {
|
|||||||
private LocalDateTime timeID;
|
private LocalDateTime timeID;
|
||||||
|
|
||||||
@ApiModelProperty("在线率")
|
@ApiModelProperty("在线率")
|
||||||
private String onlineRate;
|
private BigDecimal onlineRate;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@@ -123,7 +124,7 @@ public class DeviceOnlineRate {
|
|||||||
private LocalDateTime latestTime;
|
private LocalDateTime latestTime;
|
||||||
|
|
||||||
@ApiModelProperty("数据完整性")
|
@ApiModelProperty("数据完整性")
|
||||||
private Double integrity;
|
private BigDecimal integrity;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -269,9 +269,9 @@ public class GeneralDeviceInfoController extends BaseController {
|
|||||||
@PostMapping("/getOnlineRateByDevIds")
|
@PostMapping("/getOnlineRateByDevIds")
|
||||||
@ApiOperation("终端在线率(谐波专用)")
|
@ApiOperation("终端在线率(谐波专用)")
|
||||||
@ApiImplicitParam(name = "param", value = "参数实体", required = true)
|
@ApiImplicitParam(name = "param", value = "参数实体", required = true)
|
||||||
public HttpResult<List<RStatOnlinerateVO>> getOnlineRateByDevIds(@RequestBody OnlineRateParam param) {
|
public HttpResult<List<RStatOnlineRateVO>> getOnlineRateByDevIds(@RequestBody OnlineRateParam param) {
|
||||||
String methodDescribe = getMethodDescribe("getOnlineRateByDevIds");
|
String methodDescribe = getMethodDescribe("getOnlineRateByDevIds");
|
||||||
List<RStatOnlinerateVO> onlineRateByDevIds = onlineRateMapper.getOnlineRateByDevIds(param);
|
List<RStatOnlineRateVO> onlineRateByDevIds = onlineRateMapper.getOnlineRateByDevIds(param);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,onlineRateByDevIds,methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,onlineRateByDevIds,methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,13 +6,11 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
|||||||
import com.njcn.common.pojo.response.HttpResult;
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
import com.njcn.common.utils.HttpResultUtil;
|
import com.njcn.common.utils.HttpResultUtil;
|
||||||
import com.njcn.device.pq.mapper.RStatOnlinerateDMapper;
|
import com.njcn.device.pq.mapper.RStatOnlinerateDMapper;
|
||||||
import com.njcn.device.pq.pojo.dto.LineDataQualityDTO;
|
|
||||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||||
import com.njcn.device.pq.pojo.param.LineDataQualityParam;
|
|
||||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
import com.njcn.device.pq.pojo.param.TerminalOnlineRateDataParam;
|
import com.njcn.device.pq.pojo.param.TerminalOnlineRateDataParam;
|
||||||
import com.njcn.device.pq.pojo.vo.OnlineRateCensusVO;
|
import com.njcn.device.pq.pojo.vo.OnlineRateCensusVO;
|
||||||
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
|
import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO;
|
||||||
import com.njcn.device.pq.pojo.vo.TerminalOnlineRateDataVO;
|
import com.njcn.device.pq.pojo.vo.TerminalOnlineRateDataVO;
|
||||||
import com.njcn.device.pq.service.TerminalOnlineRateDataService;
|
import com.njcn.device.pq.service.TerminalOnlineRateDataService;
|
||||||
import com.njcn.web.controller.BaseController;
|
import com.njcn.web.controller.BaseController;
|
||||||
@@ -80,9 +78,9 @@ public class TerminalOnlineRateDataController extends BaseController {
|
|||||||
@PostMapping("/getOnlineRateByDevIds")
|
@PostMapping("/getOnlineRateByDevIds")
|
||||||
@ApiOperation("终端在线率(谐波专用)")
|
@ApiOperation("终端在线率(谐波专用)")
|
||||||
@ApiImplicitParam(name = "param", value = "参数实体", required = true)
|
@ApiImplicitParam(name = "param", value = "参数实体", required = true)
|
||||||
public HttpResult<List<RStatOnlinerateVO>> getOnlineRateByDevIds(@RequestBody OnlineRateParam param) {
|
public HttpResult<List<RStatOnlineRateVO>> getOnlineRateByDevIds(@RequestBody OnlineRateParam param) {
|
||||||
String methodDescribe = getMethodDescribe("getOnlineRateByDevIds");
|
String methodDescribe = getMethodDescribe("getOnlineRateByDevIds");
|
||||||
List<RStatOnlinerateVO> onlineRateByDevIds = onlineRateMapper.getOnlineRateByDevIds(param);
|
List<RStatOnlineRateVO> onlineRateByDevIds = onlineRateMapper.getOnlineRateByDevIds(param);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,onlineRateByDevIds,methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,onlineRateByDevIds,methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,121 @@
|
|||||||
|
package com.njcn.device.pq.controller.jb;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
|
import com.njcn.common.pojo.constant.OperateType;
|
||||||
|
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.common.utils.LogUtil;
|
||||||
|
import com.njcn.device.pms.annotation.TerminalOperationLogDesc;
|
||||||
|
import com.njcn.device.pms.pojo.param.PowerDistributionareaParam;
|
||||||
|
import com.njcn.device.pms.pojo.param.TaiZhangParam;
|
||||||
|
import com.njcn.device.pq.pojo.po.jb.DistributionArea;
|
||||||
|
import com.njcn.device.pq.service.IPowerDistributionAreaService;
|
||||||
|
import com.njcn.web.controller.BaseController;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 台区信息增删改查
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author hongawen
|
||||||
|
* @since 2022-10-14
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/distributionArea")
|
||||||
|
@Api(tags = "台账-台区信息")
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Validated
|
||||||
|
public class PmsPowerDistributionAreaController extends BaseController {
|
||||||
|
|
||||||
|
private final IPowerDistributionAreaService powerDistributionAreaService;
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("getPowerDistributionAreaList")
|
||||||
|
@ApiOperation("分页查询台区所有信息")
|
||||||
|
@ApiImplicitParam(name = "baseParam",value = "查询台区信息",required = true)
|
||||||
|
public HttpResult<Page<DistributionArea>> getList(@RequestBody TaiZhangParam baseParam){
|
||||||
|
String methodDescribe = getMethodDescribe("getList");
|
||||||
|
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, baseParam);
|
||||||
|
Page<DistributionArea> res = powerDistributionAreaService.getList(baseParam);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,res,methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增台区信息
|
||||||
|
* @author hany
|
||||||
|
* @date 2022/10/26
|
||||||
|
*/
|
||||||
|
@PostMapping("/addPowerDistributionArea")
|
||||||
|
@OperateInfo(info = LogEnum.SYSTEM_COMMON,operateType=OperateType.ADD)
|
||||||
|
@ApiOperation("新增台区信息")
|
||||||
|
@ApiImplicitParam(name = "newParam", value = "模板实体", required = true)
|
||||||
|
@TerminalOperationLogDesc(value = "新增台区信息",module = 3)
|
||||||
|
public HttpResult<Object> add(@RequestBody @Validated PowerDistributionareaParam newParam){
|
||||||
|
String methodDescribe = getMethodDescribe("add");
|
||||||
|
boolean result = powerDistributionAreaService.add(newParam);
|
||||||
|
if (result) {
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
|
} else {
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改台区信息
|
||||||
|
* @author hany
|
||||||
|
* @date 2022/10/26
|
||||||
|
*/
|
||||||
|
@PostMapping("/updatePowerDistributionArea")
|
||||||
|
@OperateInfo(info = LogEnum.SYSTEM_COMMON,operateType = OperateType.UPDATE)
|
||||||
|
@ApiOperation("修改台区信息")
|
||||||
|
@ApiImplicitParam(name = "UpdateParam", value = "更新实体", required = true)
|
||||||
|
@TerminalOperationLogDesc(value = "修改台区信息",module = 3)
|
||||||
|
public HttpResult<Object> update(@RequestBody @Validated PowerDistributionareaParam UpdateParam){
|
||||||
|
String methodDescribe = getMethodDescribe("update");
|
||||||
|
boolean result = powerDistributionAreaService.update(UpdateParam);
|
||||||
|
if (result) {
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
|
} else {
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除台区信息
|
||||||
|
* @param ids id
|
||||||
|
* @author hany
|
||||||
|
* @date 2022/10/26
|
||||||
|
*/
|
||||||
|
@PostMapping("/deletePowerDistributionArea")
|
||||||
|
@OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.DELETE)
|
||||||
|
@ApiOperation("删除台区信息")
|
||||||
|
@ApiImplicitParam(name = "ids", value = "ID索引", required = true)
|
||||||
|
@TerminalOperationLogDesc(value = "删除台区信息",module = 3)
|
||||||
|
public HttpResult<Object> delete(@RequestBody List<String> ids){
|
||||||
|
String methodDescribe = getMethodDescribe("delete");
|
||||||
|
boolean result = powerDistributionAreaService.delete(ids);
|
||||||
|
if(result){
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
|
}else {
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,100 @@
|
|||||||
|
package com.njcn.device.pq.controller.jb;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
|
import com.njcn.common.pojo.constant.OperateType;
|
||||||
|
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.annotation.TerminalOperationLogDesc;
|
||||||
|
import com.njcn.device.pms.pojo.param.PowerGenerationUserParam;
|
||||||
|
import com.njcn.device.pq.pojo.po.jb.GenerationUser;
|
||||||
|
import com.njcn.device.pq.service.IPowerGenerationUserService;
|
||||||
|
import com.njcn.web.controller.BaseController;
|
||||||
|
import com.njcn.web.pojo.param.BaseParam;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author hongawen
|
||||||
|
* @since 2022-10-14
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/generationUser")
|
||||||
|
@Api(tags = "台账-发电用户")
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class PmsPowerGenerationUserController extends BaseController {
|
||||||
|
|
||||||
|
private final IPowerGenerationUserService iPowerGenerationUserService;
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
|
||||||
|
@PostMapping("/addPowerGenerationUser")
|
||||||
|
@ApiOperation("新增发电用户")
|
||||||
|
@ApiImplicitParam(name = "powerGenerationUserParam", value = "发电用户实体", required = true)
|
||||||
|
@TerminalOperationLogDesc(value = "新增发电用户",module = 4)
|
||||||
|
public HttpResult<Boolean> addPowerGenerationUser(@RequestBody @Validated PowerGenerationUserParam powerGenerationUserParam) {
|
||||||
|
String methodDescribe = getMethodDescribe("addPowerGenerationUser");
|
||||||
|
boolean result = iPowerGenerationUserService.addPowerGenerationUser(powerGenerationUserParam);
|
||||||
|
if(result){
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
|
}
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.UPDATE)
|
||||||
|
@PostMapping("/updatePowerGenerationUser")
|
||||||
|
@ApiOperation("修改发电用户")
|
||||||
|
@ApiImplicitParam(name = "powerGenerationUserParam", value = "发电用户实体", required = true)
|
||||||
|
@TerminalOperationLogDesc(value = "修改发电用户",module = 4)
|
||||||
|
public HttpResult<Boolean> updatePowerGenerationUser(@RequestBody @Validated PowerGenerationUserParam powerGenerationUserParam) {
|
||||||
|
String methodDescribe = getMethodDescribe("updatePowerGenerationUser");
|
||||||
|
boolean result = iPowerGenerationUserService.updatePowerGenerationUser(powerGenerationUserParam);
|
||||||
|
if(result){
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
|
}
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.DELETE)
|
||||||
|
@DeleteMapping("/delPowerGenerationUser")
|
||||||
|
@ApiOperation("删除发电用户")
|
||||||
|
@ApiImplicitParam(name = "powerGenerationUserIds", value = "发电用户ids", required = true)
|
||||||
|
@TerminalOperationLogDesc(value = "删除发电用户",module = 4)
|
||||||
|
public HttpResult<Boolean> delPowerGenerationUser(@RequestBody @NotEmpty(message = "发电用户id不可为空") List<String> powerGenerationUserIds) {
|
||||||
|
String methodDescribe = getMethodDescribe("delPowerGenerationUser");
|
||||||
|
boolean result = iPowerGenerationUserService.delPowerGenerationUser(powerGenerationUserIds);
|
||||||
|
if(result){
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
|
}
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("/getPowerGenerationUserPageList")
|
||||||
|
@ApiOperation("分页获取发电用户列表")
|
||||||
|
@ApiImplicitParam(name = "baseParam", value = "基本查询体", required = true)
|
||||||
|
public HttpResult<Page<GenerationUser>> getPowerGenerationUserPageList(@RequestBody BaseParam baseParam) {
|
||||||
|
String methodDescribe = getMethodDescribe("getPowerGenerationUserPageList");
|
||||||
|
Page<GenerationUser> result = iPowerGenerationUserService.getPowerGenerationUserPageList(baseParam);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.njcn.device.pq.mapper;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.njcn.device.pq.pojo.po.jb.DistributionArea;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 台区
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author hongawen
|
||||||
|
* @since 2022-10-14
|
||||||
|
*/
|
||||||
|
public interface PowerDistributionAreaMapper extends BaseMapper<DistributionArea> {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.njcn.device.pq.mapper;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.njcn.device.pq.pojo.po.jb.GenerationUser;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 台区
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author hongawen
|
||||||
|
* @since 2022-10-14
|
||||||
|
*/
|
||||||
|
public interface PowerGenerationUserMapper extends BaseMapper<GenerationUser> {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package com.njcn.device.pq.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
|
import com.njcn.device.pq.pojo.po.PqDataVerifyCount;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author cdf
|
||||||
|
* @since 2025-06-10
|
||||||
|
*/
|
||||||
|
public interface PqDataVerifyCountMapper extends BaseMapper<PqDataVerifyCount> {
|
||||||
|
|
||||||
|
|
||||||
|
List<PqDataVerifyCount> selectSumVerify(@Param("param") OnlineRateParam param);
|
||||||
|
}
|
||||||
@@ -4,7 +4,7 @@ package com.njcn.device.pq.mapper;
|
|||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
import com.njcn.device.pq.pojo.po.RStatOnlinerateD;
|
import com.njcn.device.pq.pojo.po.RStatOnlinerateD;
|
||||||
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
|
import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -26,7 +26,7 @@ public interface RStatOnlinerateDMapper extends BaseMapper<RStatOnlinerateD> {
|
|||||||
* @param param
|
* @param param
|
||||||
* @return List<OnlineRate>
|
* @return List<OnlineRate>
|
||||||
*/
|
*/
|
||||||
List<RStatOnlinerateVO> getOnlineRateByDevIds(@Param("param") OnlineRateParam param);
|
List<RStatOnlineRateVO> getOnlineRateByDevIds(@Param("param") OnlineRateParam param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 根据终端id集合获取总终端在线lv
|
* @Description: 根据终端id集合获取总终端在线lv
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.njcn.device.pq.mapper.PqDataVerifyCountMapper">
|
||||||
|
|
||||||
|
|
||||||
|
<select id="selectSumVerify" resultType="com.njcn.device.pq.pojo.po.PqDataVerifyCount">
|
||||||
|
SELECT
|
||||||
|
line_id AS lineId,
|
||||||
|
SUM(total) AS total,
|
||||||
|
SUM(total_all) AS totalAll,
|
||||||
|
SUM(flicker) AS flicker,
|
||||||
|
SUM(flicker_all) AS flickerAll
|
||||||
|
FROM
|
||||||
|
pq_data_verify_count
|
||||||
|
<where>
|
||||||
|
<if test="param!=null and param.ids != null and param.ids.size > 0">
|
||||||
|
AND line_id IN
|
||||||
|
<foreach collection='param.ids' item='item' index="index" open='(' separator=',' close=')'>
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
<if test=" param.startTime != null and param.startTime !=''">
|
||||||
|
AND time_id >= #{param.startTime}
|
||||||
|
</if>
|
||||||
|
<if test="param.endTime != null and param.endTime != ''">
|
||||||
|
AND time_id <= #{param.endTime}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
group by line_id ;
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.njcn.device.pq.mapper.RStatOnlinerateDMapper">
|
<mapper namespace="com.njcn.device.pq.mapper.RStatOnlinerateDMapper">
|
||||||
<select id="getOnlineRateByDevIds" resultType="com.njcn.device.pq.pojo.vo.RStatOnlinerateVO">
|
<select id="getOnlineRateByDevIds" resultType="com.njcn.device.pq.pojo.vo.RStatOnlineRateVO">
|
||||||
select
|
select
|
||||||
dev_index,
|
dev_index,
|
||||||
sum(online_min) as onlineMin,
|
sum(online_min) as onlineMin,
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
package com.njcn.device.pq.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.njcn.device.pms.pojo.param.PowerDistributionareaParam;
|
||||||
|
import com.njcn.device.pms.pojo.param.TaiZhangParam;
|
||||||
|
import com.njcn.device.pq.pojo.po.jb.DistributionArea;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author hongawen
|
||||||
|
* @since 2022-10-14
|
||||||
|
*/
|
||||||
|
public interface IPowerDistributionAreaService extends IService<DistributionArea> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询所有
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Page<DistributionArea> getList(TaiZhangParam baseParam);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增
|
||||||
|
*/
|
||||||
|
boolean add(PowerDistributionareaParam newParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改
|
||||||
|
* @param
|
||||||
|
*/
|
||||||
|
boolean update(PowerDistributionareaParam updateParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除
|
||||||
|
* @param ids ids
|
||||||
|
*/
|
||||||
|
boolean delete(List<String> ids);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
package com.njcn.device.pq.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.njcn.device.pms.pojo.param.PowerDistributionareaParam;
|
||||||
|
import com.njcn.device.pms.pojo.param.PowerGenerationUserParam;
|
||||||
|
import com.njcn.device.pms.pojo.param.TaiZhangParam;
|
||||||
|
import com.njcn.device.pms.pojo.po.PowerGenerationUser;
|
||||||
|
import com.njcn.device.pms.pojo.vo.PowerGenerationUserVO;
|
||||||
|
import com.njcn.device.pq.pojo.po.jb.DistributionArea;
|
||||||
|
import com.njcn.device.pq.pojo.po.jb.GenerationUser;
|
||||||
|
import com.njcn.web.pojo.param.BaseParam;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author hongawen
|
||||||
|
* @since 2022-10-14
|
||||||
|
*/
|
||||||
|
public interface IPowerGenerationUserService extends IService<GenerationUser> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增发电用户
|
||||||
|
* @author cdf
|
||||||
|
* @date 2022/10/25
|
||||||
|
* @param powerGenerationUserParam 发电用户
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
boolean addPowerGenerationUser(PowerGenerationUserParam powerGenerationUserParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改发电用户
|
||||||
|
* @author cdf
|
||||||
|
* @date 2022/10/25
|
||||||
|
* @param powerGenerationUserParam 发电用户
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
boolean updatePowerGenerationUser(PowerGenerationUserParam powerGenerationUserParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除发电用户
|
||||||
|
* @author cdf
|
||||||
|
* @date 2022/10/25
|
||||||
|
* @param powerGenerationUserIds 发电用户
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
boolean delPowerGenerationUser(List<String> powerGenerationUserIds);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询发电用户列表
|
||||||
|
* @author cdf
|
||||||
|
* @date 2022/10/25
|
||||||
|
* @param baseParam 基础参数
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
Page<GenerationUser> getPowerGenerationUserPageList(BaseParam baseParam);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package com.njcn.device.pq.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
|
import com.njcn.device.pq.pojo.po.PqDataVerifyCount;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author cdf
|
||||||
|
* @since 2025-06-10
|
||||||
|
*/
|
||||||
|
public interface IPqDataVerifyCountService extends IService<PqDataVerifyCount> {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
List<PqDataVerifyCount> getSumVerify( OnlineRateParam param);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -295,7 +295,7 @@ public class CommTerminalServiceImpl implements CommTerminalService {
|
|||||||
@Override
|
@Override
|
||||||
public List<String> getRunMonitorByDept(MonitorBaseParam monitorBaseParam) {
|
public List<String> getRunMonitorByDept(MonitorBaseParam monitorBaseParam) {
|
||||||
List<String> ids = deptFeignClient.getDepSonIdtByDeptId(monitorBaseParam.getDeptId()).getData();
|
List<String> ids = deptFeignClient.getDepSonIdtByDeptId(monitorBaseParam.getDeptId()).getData();
|
||||||
List<String> monitorIds = deptLineService.getLineByDeptIds(ids,monitorBaseParam.getManufacturer(),Stream.of(RunFlagEnum.RUNNING.getStatus()).collect(Collectors.toList()),Stream.of(0,1,2).collect(Collectors.toList()),monitorBaseParam.getObjType());
|
List<String> monitorIds = deptLineService.getLineByDeptIds(ids,monitorBaseParam.getManufacturer(),null,Stream.of(0,1,2).collect(Collectors.toList()),monitorBaseParam.getObjType());
|
||||||
return monitorIds;
|
return monitorIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ public class CommunicateServiceImpl implements CommunicateService {
|
|||||||
param.setEndTime(DateUtil.endOfDay(DateUtil.parse(endTime)).toString());
|
param.setEndTime(DateUtil.endOfDay(DateUtil.parse(endTime)).toString());
|
||||||
if (state == 1) {
|
if (state == 1) {
|
||||||
//在线率
|
//在线率
|
||||||
List<RStatOnlinerateVO> onlineRateByDevIds = onlinerateDMapper.getOnlineRateByDevIds(param);
|
List<RStatOnlineRateVO> onlineRateByDevIds = onlinerateDMapper.getOnlineRateByDevIds(param);
|
||||||
if (CollUtil.isNotEmpty(onlineRateByDevIds)) {
|
if (CollUtil.isNotEmpty(onlineRateByDevIds)) {
|
||||||
onlineRateByDevIds.forEach(po -> {
|
onlineRateByDevIds.forEach(po -> {
|
||||||
//数据完整性 保留四位小数
|
//数据完整性 保留四位小数
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.njcn.device.pq.service.impl;
|
package com.njcn.device.pq.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.date.DateField;
|
import cn.hutool.core.date.DateField;
|
||||||
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DatePattern;
|
||||||
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateTime;
|
||||||
@@ -14,22 +15,19 @@ import com.njcn.device.common.mapper.onlinerate.OnLineRateMapper;
|
|||||||
import com.njcn.device.common.service.GeneralDeviceService;
|
import com.njcn.device.common.service.GeneralDeviceService;
|
||||||
import com.njcn.device.line.mapper.LineMapper;
|
import com.njcn.device.line.mapper.LineMapper;
|
||||||
import com.njcn.device.line.service.DeptLineService;
|
import com.njcn.device.line.service.DeptLineService;
|
||||||
import com.njcn.device.line.service.LineService;
|
|
||||||
import com.njcn.device.pq.mapper.RStatOnlinerateDMapper;
|
|
||||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
|
||||||
import com.njcn.device.pq.pojo.param.DevRunEvaluateParam;
|
|
||||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
|
||||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
|
||||||
import com.njcn.device.pq.pojo.po.Line;
|
|
||||||
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
|
|
||||||
import com.njcn.device.pq.pojo.po.RStatOnlinerateD;
|
|
||||||
import com.njcn.device.pq.pojo.vo.*;
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
|
||||||
import com.njcn.device.pq.enums.LineBaseEnum;
|
import com.njcn.device.pq.enums.LineBaseEnum;
|
||||||
import com.njcn.device.pq.enums.PowerFlagEnum;
|
import com.njcn.device.pq.enums.PowerFlagEnum;
|
||||||
import com.njcn.device.pq.enums.RunFlagEnum;
|
import com.njcn.device.pq.enums.RunFlagEnum;
|
||||||
|
import com.njcn.device.pq.mapper.RStatOnlinerateDMapper;
|
||||||
|
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||||
import com.njcn.device.pq.pojo.dto.MonitorInfoDTO;
|
import com.njcn.device.pq.pojo.dto.MonitorInfoDTO;
|
||||||
|
import com.njcn.device.pq.pojo.param.DevRunEvaluateParam;
|
||||||
|
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||||
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
|
import com.njcn.device.pq.pojo.po.*;
|
||||||
|
import com.njcn.device.pq.pojo.vo.*;
|
||||||
import com.njcn.device.pq.service.DeviceRunEvaluateService;
|
import com.njcn.device.pq.service.DeviceRunEvaluateService;
|
||||||
|
import com.njcn.device.pq.service.IPqDataVerifyCountService;
|
||||||
import com.njcn.device.rstatintegrity.mapper.RStatIntegrityDMapper;
|
import com.njcn.device.rstatintegrity.mapper.RStatIntegrityDMapper;
|
||||||
import com.njcn.harmonic.api.RStatLimitRateDClient;
|
import com.njcn.harmonic.api.RStatLimitRateDClient;
|
||||||
import com.njcn.harmonic.pojo.param.RStatLimitQueryParam;
|
import com.njcn.harmonic.pojo.param.RStatLimitQueryParam;
|
||||||
@@ -48,9 +46,8 @@ import java.math.BigDecimal;
|
|||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -73,6 +70,7 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
|||||||
private final OnLineRateMapper onLineRateMapper;
|
private final OnLineRateMapper onLineRateMapper;
|
||||||
private final DicDataFeignClient dicDataFeignClient;
|
private final DicDataFeignClient dicDataFeignClient;
|
||||||
private final DeptFeignClient deptFeignClient;
|
private final DeptFeignClient deptFeignClient;
|
||||||
|
private final IPqDataVerifyCountService pqDataVerifyCountService;
|
||||||
/**
|
/**
|
||||||
* 数据完整性:50%
|
* 数据完整性:50%
|
||||||
*/
|
*/
|
||||||
@@ -378,10 +376,14 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
|||||||
DeviceRunEvaluateVO.Detail detail;
|
DeviceRunEvaluateVO.Detail detail;
|
||||||
//完整率
|
//完整率
|
||||||
List<RStatIntegrityVO> integrityList = integrityDMapper.getLineIntegrityRateInfo(lineIds, param.getSearchBeginTime(), param.getSearchEndTime());
|
List<RStatIntegrityVO> integrityList = integrityDMapper.getLineIntegrityRateInfo(lineIds, param.getSearchBeginTime(), param.getSearchEndTime());
|
||||||
//超标率
|
|
||||||
List<RStatLimitRateDPO> limitRatePOList = rStatLimitRateDClient.monitorIdsGetLimitInfo(rStatLimitQueryParam).getData();
|
|
||||||
//获取所有终端在线率
|
//获取所有终端在线率
|
||||||
List<RStatOnlinerateVO> onlineRateByDev = onLineRateMapper.getOnlineRateByDevIds(onlineRateParam);
|
List<RStatOnlineRateVO> onlineRateByDev = onLineRateMapper.getOnlineRateByDevIds(onlineRateParam);
|
||||||
|
//异常信息
|
||||||
|
onlineRateParam.setIds(lineIds);
|
||||||
|
List<PqDataVerifyCount> sumVerify = pqDataVerifyCountService.getSumVerify(onlineRateParam);
|
||||||
|
|
||||||
|
//超标率
|
||||||
|
// List<RStatLimitRateDPO> limitRatePOList = rStatLimitRateDClient.monitorIdsGetLimitInfo(rStatLimitQueryParam).getData();
|
||||||
|
|
||||||
for (GeneralDeviceDTO dto : deviceInfo) {
|
for (GeneralDeviceDTO dto : deviceInfo) {
|
||||||
detail = new DeviceRunEvaluateVO.Detail();
|
detail = new DeviceRunEvaluateVO.Detail();
|
||||||
@@ -389,10 +391,10 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
|||||||
detail.setCount(dto.getDeviceIndexes().size());
|
detail.setCount(dto.getDeviceIndexes().size());
|
||||||
detail.setOnline(onLineRate(onlineRateByDev, dto.getDeviceIndexes()));
|
detail.setOnline(onLineRate(onlineRateByDev, dto.getDeviceIndexes()));
|
||||||
detail.setIntegrity(integrity(integrityList, dto.getLineIndexes()));
|
detail.setIntegrity(integrity(integrityList, dto.getLineIndexes()));
|
||||||
detail.setQualified(limitRate(limitRatePOList, dto.getLineIndexes()));
|
detail.setQualified(verify(sumVerify, dto.getLineIndexes()));
|
||||||
detail.setScore(ONINTEGRITY.multiply(detail.getIntegrity())
|
detail.setScore(ONINTEGRITY.multiply(detail.getIntegrity())
|
||||||
.add(ONLINERATE.multiply(detail.getOnline())
|
.add(ONLINERATE.multiply(detail.getOnline())
|
||||||
.add(LIMITRATE.multiply(detail.getQualified()))).stripTrailingZeros());
|
.add(LIMITRATE.multiply(detail.getQualified()))).stripTrailingZeros().setScale(2, RoundingMode.HALF_UP));
|
||||||
Map<String, List<DevDetailVO>> dev = lineDeviceByDevIds
|
Map<String, List<DevDetailVO>> dev = lineDeviceByDevIds
|
||||||
.stream()
|
.stream()
|
||||||
.filter(x -> dto.getDeviceIndexes().contains(x.getDevId()))
|
.filter(x -> dto.getDeviceIndexes().contains(x.getDevId()))
|
||||||
@@ -406,6 +408,8 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
|||||||
evaluateVO.setName(value.get(0).getDevName());
|
evaluateVO.setName(value.get(0).getDevName());
|
||||||
evaluateVO.setSubName(value.get(0).getSubName());
|
evaluateVO.setSubName(value.get(0).getSubName());
|
||||||
evaluateVO.setIp(value.get(0).getIp());
|
evaluateVO.setIp(value.get(0).getIp());
|
||||||
|
evaluateVO.setCompany(value.get(0).getCompany());
|
||||||
|
evaluateVO.setRunFlag(RunFlagEnum.getRunFlagRemarkByStatus(value.get(0).getRunFlag()));
|
||||||
//部门
|
//部门
|
||||||
if (deptMap.containsKey(value.get(0).getCit())) {
|
if (deptMap.containsKey(value.get(0).getCit())) {
|
||||||
evaluateVO.setCit(deptMap.get(value.get(0).getCit()));
|
evaluateVO.setCit(deptMap.get(value.get(0).getCit()));
|
||||||
@@ -416,10 +420,10 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
|||||||
}
|
}
|
||||||
evaluateVO.setOnLineRate(onLineRate(onlineRateByDev, Arrays.asList(key)));
|
evaluateVO.setOnLineRate(onLineRate(onlineRateByDev, Arrays.asList(key)));
|
||||||
evaluateVO.setIntegrityRate(integrity(integrityList, ids));
|
evaluateVO.setIntegrityRate(integrity(integrityList, ids));
|
||||||
evaluateVO.setPassRate(limitRate(limitRatePOList, ids));
|
evaluateVO.setPassRate(verify(sumVerify, ids));
|
||||||
evaluateVO.setEvaluate(ONINTEGRITY.multiply(evaluateVO.getIntegrityRate())
|
evaluateVO.setEvaluate(ONINTEGRITY.multiply(evaluateVO.getIntegrityRate())
|
||||||
.add(ONLINERATE.multiply(evaluateVO.getOnLineRate())
|
.add(ONLINERATE.multiply(evaluateVO.getOnLineRate())
|
||||||
.add(LIMITRATE.multiply(evaluateVO.getPassRate()))).stripTrailingZeros());
|
.add(LIMITRATE.multiply(evaluateVO.getPassRate()))).stripTrailingZeros().setScale(2, RoundingMode.HALF_UP));
|
||||||
deviceDetail.add(evaluateVO);
|
deviceDetail.add(evaluateVO);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -430,24 +434,47 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
|||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private BigDecimal verify(List<PqDataVerifyCount> sumVerify, List<String> lineIds) {
|
||||||
|
//异常率
|
||||||
|
List<PqDataVerifyCount> verifyList = sumVerify.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
|
||||||
|
if (CollUtil.isNotEmpty(verifyList)) {
|
||||||
|
double total = verifyList.stream().mapToDouble(PqDataVerifyCount::getTotal).sum();
|
||||||
|
double totalAll = verifyList.stream().mapToDouble(PqDataVerifyCount::getTotalAll).sum();
|
||||||
|
double flicker = verifyList.stream().mapToDouble(PqDataVerifyCount::getFlicker).sum();
|
||||||
|
double flickerAll = verifyList.stream().mapToDouble(PqDataVerifyCount::getFlickerAll).sum();
|
||||||
|
if (totalAll + flickerAll == 0) {
|
||||||
|
return new BigDecimal(0);
|
||||||
|
}
|
||||||
|
return NumberUtil.round(Math.min((total + flicker) * 100 / (totalAll + flickerAll), 100), 2);
|
||||||
|
} else {
|
||||||
|
return new BigDecimal(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private BigDecimal integrity(List<RStatIntegrityVO> integrityList, List<String> lineIds) {
|
private BigDecimal integrity(List<RStatIntegrityVO> integrityList, List<String> lineIds) {
|
||||||
//监测完整率
|
//监测完整率
|
||||||
List<RStatIntegrityVO> integrityDS = integrityList.stream().filter(x -> lineIds.contains(x.getLineIndex())).collect(Collectors.toList());
|
List<RStatIntegrityVO> integrityDS = integrityList.stream().filter(x -> lineIds.contains(x.getLineIndex())).collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(integrityDS)) {
|
if (CollUtil.isNotEmpty(integrityDS)) {
|
||||||
double realTime = integrityDS.stream().mapToDouble(RStatIntegrityVO::getRealTime).sum();
|
double realTime = integrityDS.stream().mapToDouble(RStatIntegrityVO::getRealTime).sum();
|
||||||
double dueTime = integrityDS.stream().mapToDouble(RStatIntegrityVO::getDueTime).sum();
|
double dueTime = integrityDS.stream().mapToDouble(RStatIntegrityVO::getDueTime).sum();
|
||||||
|
if (dueTime == 0) {
|
||||||
|
return new BigDecimal(0);
|
||||||
|
}
|
||||||
return NumberUtil.round(Math.min(realTime * 100 / dueTime, 100), 2);
|
return NumberUtil.round(Math.min(realTime * 100 / dueTime, 100), 2);
|
||||||
} else {
|
} else {
|
||||||
return new BigDecimal(0);
|
return new BigDecimal(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private BigDecimal onLineRate(List<RStatOnlinerateVO> onlineRateByDev, List<String> devIds) {
|
private BigDecimal onLineRate(List<RStatOnlineRateVO> onlineRateByDev, List<String> devIds) {
|
||||||
//终端在线率
|
//终端在线率
|
||||||
List<RStatOnlinerateVO> onlineRateDS = onlineRateByDev.stream().filter(x -> devIds.contains(x.getDevIndex())).collect(Collectors.toList());
|
List<RStatOnlineRateVO> onlineRateDS = onlineRateByDev.stream().filter(x -> devIds.contains(x.getDevIndex())).collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(onlineRateDS)) {
|
if (CollUtil.isNotEmpty(onlineRateDS)) {
|
||||||
double onlineTime = onlineRateDS.stream().mapToDouble(RStatOnlinerateVO::getOnlineMin).sum();
|
double onlineTime = onlineRateDS.stream().mapToDouble(RStatOnlineRateVO::getOnlineMin).sum();
|
||||||
double offlineTime = onlineRateDS.stream().mapToDouble(RStatOnlinerateVO::getOfflineMin).sum();
|
double offlineTime = onlineRateDS.stream().mapToDouble(RStatOnlineRateVO::getOfflineMin).sum();
|
||||||
|
if (offlineTime == 0) {
|
||||||
|
return new BigDecimal(0);
|
||||||
|
}
|
||||||
return NumberUtil.round(Math.min(onlineTime * 100.0 / (onlineTime + offlineTime), 100), 2);
|
return NumberUtil.round(Math.min(onlineTime * 100.0 / (onlineTime + offlineTime), 100), 2);
|
||||||
} else {
|
} else {
|
||||||
return new BigDecimal(0);
|
return new BigDecimal(0);
|
||||||
@@ -455,6 +482,9 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private BigDecimal limitRate(List<RStatLimitRateDPO> limitRatePOList, List<String> lineIds) {
|
private BigDecimal limitRate(List<RStatLimitRateDPO> limitRatePOList, List<String> lineIds) {
|
||||||
|
if (CollUtil.isEmpty(limitRatePOList)) {
|
||||||
|
return new BigDecimal(0);
|
||||||
|
}
|
||||||
//超标信息
|
//超标信息
|
||||||
List<RStatLimitRateDPO> limitRateDPOS = limitRatePOList.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
|
List<RStatLimitRateDPO> limitRateDPOS = limitRatePOList.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(limitRateDPOS)) {
|
if (CollUtil.isNotEmpty(limitRateDPOS)) {
|
||||||
|
|||||||
@@ -0,0 +1,104 @@
|
|||||||
|
package com.njcn.device.pq.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
||||||
|
import com.njcn.common.pojo.exception.BusinessException;
|
||||||
|
import com.njcn.device.pms.enums.PmsDeviceResponseEnum;
|
||||||
|
import com.njcn.device.pms.pojo.param.PowerDistributionareaParam;
|
||||||
|
import com.njcn.device.pms.pojo.param.TaiZhangParam;
|
||||||
|
import com.njcn.device.pq.mapper.PowerDistributionAreaMapper;
|
||||||
|
import com.njcn.device.pq.pojo.po.jb.DistributionArea;
|
||||||
|
import com.njcn.device.pq.service.IPowerDistributionAreaService;
|
||||||
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
|
import com.njcn.user.api.DeptFeignClient;
|
||||||
|
import com.njcn.web.factory.PageFactory;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 台区信息
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author hongawen
|
||||||
|
* @since 2022-10-14
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class PowerDistributionAreaServiceImpl extends ServiceImpl<PowerDistributionAreaMapper, DistributionArea> implements IPowerDistributionAreaService {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<DistributionArea> getList(TaiZhangParam baseParam) {
|
||||||
|
LambdaQueryWrapper<DistributionArea> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
lambdaQueryWrapper.eq(DistributionArea::getStatus,DataStateEnum.ENABLE.getCode())
|
||||||
|
.and(StrUtil.isNotBlank(baseParam.getSearchValue()),
|
||||||
|
i->i.like(DistributionArea::getName,baseParam.getSearchValue())
|
||||||
|
.or()
|
||||||
|
.like(DistributionArea::getPowerrName,baseParam.getSearchValue())
|
||||||
|
.or()
|
||||||
|
.like(DistributionArea::getLineName,baseParam.getSearchValue())
|
||||||
|
.or()
|
||||||
|
.like(DistributionArea::getOrgName,baseParam.getSearchValue())).orderByDesc(DistributionArea::getCreateTime);
|
||||||
|
//初始化分页数据
|
||||||
|
return this.page(new Page<>(PageFactory.getPageNum(baseParam), PageFactory.getPageSize(baseParam)), lambdaQueryWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增台区信息
|
||||||
|
* @author hany
|
||||||
|
* @date 2022/10/26
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean add(PowerDistributionareaParam newParam) {
|
||||||
|
LambdaQueryWrapper<DistributionArea> che = new LambdaQueryWrapper<>();
|
||||||
|
che.eq(DistributionArea::getId,newParam.getId());
|
||||||
|
int count = this.count(che);
|
||||||
|
if(count>0){
|
||||||
|
throw new BusinessException(PmsDeviceResponseEnum.POWER_CODE_SAME);
|
||||||
|
}
|
||||||
|
DistributionArea powerDistributionarea = new DistributionArea();
|
||||||
|
BeanUtils.copyProperties(newParam,powerDistributionarea);
|
||||||
|
//设为正常状态
|
||||||
|
powerDistributionarea.setStatus(DataStateEnum.ENABLE.getCode());
|
||||||
|
return this.save(powerDistributionarea);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改台区信息
|
||||||
|
* @author hany
|
||||||
|
* @date 2022/10/26
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean update(PowerDistributionareaParam updateParam) {
|
||||||
|
DistributionArea powerDistributionarea = this.getById(updateParam.getId());
|
||||||
|
if(Objects.isNull(powerDistributionarea)){
|
||||||
|
throw new BusinessException(PmsDeviceResponseEnum.POWER_DIS_NOT_FIND);
|
||||||
|
}
|
||||||
|
BeanUtils.copyProperties(updateParam,powerDistributionarea);
|
||||||
|
return this.updateById(powerDistributionarea);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除
|
||||||
|
* @param ids
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor=RuntimeException.class)
|
||||||
|
public boolean delete(List<String> ids) {
|
||||||
|
return this.removeByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
package com.njcn.device.pq.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
||||||
|
import com.njcn.common.pojo.exception.BusinessException;
|
||||||
|
import com.njcn.device.pms.enums.PmsDeviceResponseEnum;
|
||||||
|
import com.njcn.device.pms.pojo.param.PowerGenerationUserParam;
|
||||||
|
import com.njcn.device.pq.mapper.PowerGenerationUserMapper;
|
||||||
|
import com.njcn.device.pq.pojo.po.jb.GenerationUser;
|
||||||
|
import com.njcn.device.pq.service.IPowerGenerationUserService;
|
||||||
|
import com.njcn.web.factory.PageFactory;
|
||||||
|
import com.njcn.web.pojo.param.BaseParam;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 台区信息
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author hongawen
|
||||||
|
* @since 2022-10-14
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class PowerGenerationUserServiceImpl extends ServiceImpl<PowerGenerationUserMapper, GenerationUser> implements IPowerGenerationUserService {
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean addPowerGenerationUser(PowerGenerationUserParam powerGenerationUserParam) {
|
||||||
|
LambdaQueryWrapper<GenerationUser> che = new LambdaQueryWrapper<>();
|
||||||
|
che.eq(GenerationUser::getId,powerGenerationUserParam.getId());
|
||||||
|
int count = this.count(che);
|
||||||
|
if(count>0){
|
||||||
|
throw new BusinessException(PmsDeviceResponseEnum.POWER_CODE_SAME);
|
||||||
|
}
|
||||||
|
GenerationUser powerDistributionarea = new GenerationUser();
|
||||||
|
BeanUtils.copyProperties(powerGenerationUserParam,powerDistributionarea);
|
||||||
|
//设为正常状态
|
||||||
|
powerDistributionarea.setStatus(DataStateEnum.ENABLE.getCode());
|
||||||
|
return this.save(powerDistributionarea);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean updatePowerGenerationUser(PowerGenerationUserParam powerGenerationUserParam) {
|
||||||
|
GenerationUser powerDistributionarea = this.getById(powerGenerationUserParam.getId());
|
||||||
|
if(Objects.isNull(powerDistributionarea)){
|
||||||
|
throw new BusinessException(PmsDeviceResponseEnum.POWER_DIS_NOT_FIND);
|
||||||
|
}
|
||||||
|
BeanUtils.copyProperties(powerGenerationUserParam,powerDistributionarea);
|
||||||
|
return this.updateById(powerDistributionarea);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean delPowerGenerationUser(List<String> powerGenerationUserIds) {
|
||||||
|
return this.removeByIds(powerGenerationUserIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<GenerationUser> getPowerGenerationUserPageList(BaseParam baseParam) {
|
||||||
|
LambdaQueryWrapper<GenerationUser> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
lambdaQueryWrapper.eq(GenerationUser::getStatus, DataStateEnum.ENABLE.getCode())
|
||||||
|
.and(StrUtil.isNotBlank(baseParam.getSearchValue()),
|
||||||
|
i->i.like(GenerationUser::getName,baseParam.getSearchValue())
|
||||||
|
.or()
|
||||||
|
.like(GenerationUser::getOrgName,baseParam.getSearchValue())).orderByDesc(GenerationUser::getCreateTime);
|
||||||
|
//初始化分页数据
|
||||||
|
return this.page(new Page<>(PageFactory.getPageNum(baseParam), PageFactory.getPageSize(baseParam)), lambdaQueryWrapper);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
package com.njcn.device.pq.service.impl;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.njcn.device.pq.mapper.PqDataVerifyCountMapper;
|
||||||
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
|
import com.njcn.device.pq.pojo.po.PqDataVerifyCount;
|
||||||
|
import com.njcn.device.pq.service.IPqDataVerifyCountService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author cdf
|
||||||
|
* @since 2025-06-10
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Slf4j
|
||||||
|
public class PqDataVerifyCountServiceImpl extends ServiceImpl<PqDataVerifyCountMapper, PqDataVerifyCount> implements IPqDataVerifyCountService {
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<PqDataVerifyCount> getSumVerify(OnlineRateParam param) {
|
||||||
|
return this.baseMapper.selectSumVerify(param);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ package com.njcn.device.pq.service.impl;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DatePattern;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.NumberUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
@@ -34,6 +35,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -69,9 +71,9 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
|||||||
@Override
|
@Override
|
||||||
public List<LineDataQualityDTO> getLineDataQuality(LineDataQualityParam lineDataQualityParam) {
|
public List<LineDataQualityDTO> getLineDataQuality(LineDataQualityParam lineDataQualityParam) {
|
||||||
List<String> lineIds = lineDataQualityParam.getLineIds();
|
List<String> lineIds = lineDataQualityParam.getLineIds();
|
||||||
List<Line> lineList = lineMapper.selectList(new LambdaQueryWrapper<Line>().in(Line::getId,lineIds));
|
List<Line> lineList = lineMapper.selectList(new LambdaQueryWrapper<Line>().in(Line::getId, lineIds));
|
||||||
|
|
||||||
lineList = lineList.stream().peek(item->{
|
lineList = lineList.stream().peek(item -> {
|
||||||
String devId = item.getPids().split(StrUtil.COMMA)[4];
|
String devId = item.getPids().split(StrUtil.COMMA)[4];
|
||||||
item.setPid(devId);
|
item.setPid(devId);
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
@@ -81,35 +83,35 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
|||||||
QueryWrapper<RStatOnlinerateD> onlineQuery = new QueryWrapper<>();
|
QueryWrapper<RStatOnlinerateD> onlineQuery = new QueryWrapper<>();
|
||||||
onlineQuery.select("dev_index,avg(online_min/offline_min+online_min) as onlineRate")
|
onlineQuery.select("dev_index,avg(online_min/offline_min+online_min) as onlineRate")
|
||||||
.lambda()
|
.lambda()
|
||||||
.in(RStatOnlinerateD::getDevIndex,devIds)
|
.in(RStatOnlinerateD::getDevIndex, devIds)
|
||||||
.between(RStatOnlinerateD::getTimeId, DateUtil.parse(lineDataQualityParam.getBeginTime(), DatePattern.NORM_DATE_PATTERN),DateUtil.parse(lineDataQualityParam.getEndTime(), DatePattern.NORM_DATE_PATTERN))
|
.between(RStatOnlinerateD::getTimeId, DateUtil.parse(lineDataQualityParam.getBeginTime(), DatePattern.NORM_DATE_PATTERN), DateUtil.parse(lineDataQualityParam.getEndTime(), DatePattern.NORM_DATE_PATTERN))
|
||||||
.groupBy(RStatOnlinerateD::getDevIndex);
|
.groupBy(RStatOnlinerateD::getDevIndex);
|
||||||
List<RStatOnlinerateD> rStatOnlinerateDList = onlineRateMapper.selectList(onlineQuery);
|
List<RStatOnlinerateD> rStatOnlinerateDList = onlineRateMapper.selectList(onlineQuery);
|
||||||
Map<String,RStatOnlinerateD> onlineMap = rStatOnlinerateDList.stream().collect(Collectors.toMap(RStatOnlinerateD::getDevIndex, Function.identity()));
|
Map<String, RStatOnlinerateD> onlineMap = rStatOnlinerateDList.stream().collect(Collectors.toMap(RStatOnlinerateD::getDevIndex, Function.identity()));
|
||||||
|
|
||||||
|
|
||||||
QueryWrapper<RStatIntegrityD> integrityQuery = new QueryWrapper<>();
|
QueryWrapper<RStatIntegrityD> integrityQuery = new QueryWrapper<>();
|
||||||
integrityQuery.select("line_index,avg(real_time/due_time) as integrityData")
|
integrityQuery.select("line_index,avg(real_time/due_time) as integrityData")
|
||||||
.lambda()
|
.lambda()
|
||||||
.in(RStatIntegrityD::getLineIndex,lineIds)
|
.in(RStatIntegrityD::getLineIndex, lineIds)
|
||||||
.between(RStatIntegrityD::getTimeId, DateUtil.parse(lineDataQualityParam.getBeginTime(), DatePattern.NORM_DATE_PATTERN),DateUtil.parse(lineDataQualityParam.getEndTime(), DatePattern.NORM_DATE_PATTERN))
|
.between(RStatIntegrityD::getTimeId, DateUtil.parse(lineDataQualityParam.getBeginTime(), DatePattern.NORM_DATE_PATTERN), DateUtil.parse(lineDataQualityParam.getEndTime(), DatePattern.NORM_DATE_PATTERN))
|
||||||
.groupBy(RStatIntegrityD::getLineIndex);
|
.groupBy(RStatIntegrityD::getLineIndex);
|
||||||
List<RStatIntegrityD> rStatIntegrityDList = rStatIntegrityDMapper.selectList(integrityQuery);
|
List<RStatIntegrityD> rStatIntegrityDList = rStatIntegrityDMapper.selectList(integrityQuery);
|
||||||
Map<String,RStatIntegrityD> integrityMap = rStatIntegrityDList.stream().collect(Collectors.toMap(RStatIntegrityD::getLineIndex,Function.identity()));
|
Map<String, RStatIntegrityD> integrityMap = rStatIntegrityDList.stream().collect(Collectors.toMap(RStatIntegrityD::getLineIndex, Function.identity()));
|
||||||
|
|
||||||
List<LineDataQualityDTO> result = new ArrayList<>();
|
List<LineDataQualityDTO> result = new ArrayList<>();
|
||||||
for(Line item : lineList){
|
for (Line item : lineList) {
|
||||||
LineDataQualityDTO lineDataQualityDTO = new LineDataQualityDTO();
|
LineDataQualityDTO lineDataQualityDTO = new LineDataQualityDTO();
|
||||||
lineDataQualityDTO.setLineId(item.getId());
|
lineDataQualityDTO.setLineId(item.getId());
|
||||||
lineDataQualityDTO.setLineName(item.getName());
|
lineDataQualityDTO.setLineName(item.getName());
|
||||||
if(onlineMap.containsKey(item.getPid())){
|
if (onlineMap.containsKey(item.getPid())) {
|
||||||
lineDataQualityDTO.setOnlineRate(Double.valueOf(onlineMap.get(item.getPid()).getOnlineRate()));
|
lineDataQualityDTO.setOnlineRate(Double.valueOf(onlineMap.get(item.getPid()).getOnlineRate()));
|
||||||
}else {
|
} else {
|
||||||
lineDataQualityDTO.setOnlineRate(0.00);
|
lineDataQualityDTO.setOnlineRate(0.00);
|
||||||
}
|
}
|
||||||
if(integrityMap.containsKey(item.getId())){
|
if (integrityMap.containsKey(item.getId())) {
|
||||||
lineDataQualityDTO.setIntegrityRate(Double.valueOf(integrityMap.get(item.getId()).getIntegrityData()));
|
lineDataQualityDTO.setIntegrityRate(Double.valueOf(integrityMap.get(item.getId()).getIntegrityData()));
|
||||||
}else {
|
} else {
|
||||||
lineDataQualityDTO.setIntegrityRate(0.00);
|
lineDataQualityDTO.setIntegrityRate(0.00);
|
||||||
}
|
}
|
||||||
result.add(lineDataQualityDTO);
|
result.add(lineDataQualityDTO);
|
||||||
@@ -132,7 +134,7 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
|||||||
|
|
||||||
return rStatIntegrityD;
|
return rStatIntegrityD;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
this.saveOrUpdateBatchByMultiId(collect1,200);
|
this.saveOrUpdateBatchByMultiId(collect1, 200);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -149,25 +151,25 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
rate.setTotalNum(lineIds.size());
|
rate.setTotalNum(lineIds.size());
|
||||||
//获取所有监测点的数据完整性
|
//获取所有监测点的数据完整性
|
||||||
List<RStatIntegrityVO> lineIntegrityRateInfo = rStatIntegrityDMapper.getLineIntegrityRateInfo(lineIds,param.getSearchBeginTime(),param.getSearchEndTime());
|
List<RStatIntegrityVO> lineIntegrityRateInfo = rStatIntegrityDMapper.getLineIntegrityRateInfo(lineIds, param.getSearchBeginTime(), param.getSearchEndTime());
|
||||||
//获取所有监测点信息信息
|
//获取所有监测点信息信息
|
||||||
List<LineDetailVO.Detail> LineInfoByIds = lineService.getLineDetailByIds(lineIds);
|
List<LineDetailVO.Detail> LineInfoByIds = lineService.getLineDetailByIds(lineIds);
|
||||||
|
|
||||||
rate.setBelowNum(CollUtil.isNotEmpty(lineIntegrityRateInfo)?calculateIntegrityRate(lineIntegrityRateInfo,90):lineIds.size());
|
rate.setBelowNum(CollUtil.isNotEmpty(lineIntegrityRateInfo) ? calculateIntegrityRate(lineIntegrityRateInfo, 90, lineIds.size()) : lineIds.size());
|
||||||
rate.setTotalOnlineRate(calculateIntegrityRate(lineIntegrityRateInfo,lineIds).toString());
|
rate.setTotalOnlineRate(calculateIntegrityRate(lineIntegrityRateInfo, lineIds));
|
||||||
List<DeviceOnlineRate.CitDetail> citDetailList=new ArrayList<>();
|
List<DeviceOnlineRate.CitDetail> citDetailList = new ArrayList<>();
|
||||||
DeviceOnlineRate.CitDetail citDetail;
|
DeviceOnlineRate.CitDetail citDetail;
|
||||||
DeviceOnlineRate.LineDetail detail;
|
DeviceOnlineRate.LineDetail detail;
|
||||||
for (GeneralDeviceDTO dto : deviceInfo) {
|
for (GeneralDeviceDTO dto : deviceInfo) {
|
||||||
//获取部门终端集合
|
//获取部门终端集合
|
||||||
List<RStatIntegrityVO> citDevOnRate = lineIntegrityRateInfo.stream().filter(x -> dto.getLineIndexes().contains(x.getLineIndex())).collect(Collectors.toList());
|
List<RStatIntegrityVO> citDevOnRate = lineIntegrityRateInfo.stream().filter(x -> dto.getLineIndexes().contains(x.getLineIndex())).collect(Collectors.toList());
|
||||||
Map<String, Double> onlineRateByDevMap = citDevOnRate.stream()
|
Map<String, BigDecimal> onlineRateByDevMap = citDevOnRate.stream()
|
||||||
.collect(Collectors.toMap(RStatIntegrityVO::getLineIndex, RStatIntegrityVO::getIntegrityRate));
|
.collect(Collectors.toMap(RStatIntegrityVO::getLineIndex, RStatIntegrityVO::getIntegrityRate));
|
||||||
citDetail=new DeviceOnlineRate.CitDetail();
|
citDetail = new DeviceOnlineRate.CitDetail();
|
||||||
citDetail.setCitName(dto.getName());
|
citDetail.setCitName(dto.getName());
|
||||||
citDetail.setCitTotalNum(dto.getLineIndexes().size());
|
citDetail.setCitTotalNum(dto.getLineIndexes().size());
|
||||||
citDetail.setCitBelowNum(CollUtil.isNotEmpty(citDevOnRate)?calculateIntegrityRate(lineIntegrityRateInfo,90):dto.getLineIndexes().size());
|
citDetail.setCitBelowNum(CollUtil.isNotEmpty(citDevOnRate) ? calculateIntegrityRate(citDevOnRate, 90, dto.getLineIndexes().size()) : dto.getLineIndexes().size());
|
||||||
citDetail.setCitTotalOnlineRate(calculateIntegrityRate(lineIntegrityRateInfo,dto.getLineIndexes()).toString());
|
citDetail.setCitTotalOnlineRate(calculateIntegrityRate(lineIntegrityRateInfo, dto.getLineIndexes()));
|
||||||
List<DeviceOnlineRate.LineDetail> detailList = new ArrayList<>();
|
List<DeviceOnlineRate.LineDetail> detailList = new ArrayList<>();
|
||||||
List<LineDetailVO.Detail> lineDetail = LineInfoByIds.stream().filter(x -> dto.getLineIndexes().contains(x.getLineId())).collect(Collectors.toList());
|
List<LineDetailVO.Detail> lineDetail = LineInfoByIds.stream().filter(x -> dto.getLineIndexes().contains(x.getLineId())).collect(Collectors.toList());
|
||||||
for (LineDetailVO.Detail line : lineDetail) {
|
for (LineDetailVO.Detail line : lineDetail) {
|
||||||
@@ -183,7 +185,7 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
|||||||
detail.setLineId(line.getLineId());
|
detail.setLineId(line.getLineId());
|
||||||
detail.setLineName(line.getLineName());
|
detail.setLineName(line.getLineName());
|
||||||
detail.setLatestTime(line.getTimeID());
|
detail.setLatestTime(line.getTimeID());
|
||||||
detail.setIntegrity(onlineRateByDevMap.getOrDefault(line.getLineId(), 0.0));
|
detail.setIntegrity(onlineRateByDevMap.getOrDefault(line.getLineId(), BigDecimal.valueOf(0)));
|
||||||
detailList.add(detail);
|
detailList.add(detail);
|
||||||
}
|
}
|
||||||
citDetail.setDetailList(detailList);
|
citDetail.setDetailList(detailList);
|
||||||
@@ -194,19 +196,21 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
|||||||
return rate;
|
return rate;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Double calculateIntegrityRate(List<RStatIntegrityVO> lineIntegrityRateInfo ,List<String> deviceIds){
|
private BigDecimal calculateIntegrityRate(List<RStatIntegrityVO> lineIntegrityRateInfo, List<String> deviceIds) {
|
||||||
List<RStatIntegrityVO> list = lineIntegrityRateInfo.stream().filter(x -> deviceIds.contains(x.getLineIndex())).collect(Collectors.toList());
|
List<RStatIntegrityVO> list = lineIntegrityRateInfo.stream().filter(x -> deviceIds.contains(x.getLineIndex())).collect(Collectors.toList());
|
||||||
if(CollUtil.isNotEmpty(list)){
|
if (CollUtil.isNotEmpty(list)) {
|
||||||
BigDecimal onlineMin = BigDecimal.valueOf(list.stream().mapToLong(RStatIntegrityVO::getDueTime).sum());
|
BigDecimal dueTime = BigDecimal.valueOf(list.stream().mapToLong(RStatIntegrityVO::getDueTime).sum());
|
||||||
BigDecimal offlineMin =BigDecimal.valueOf( list.stream().mapToLong(RStatIntegrityVO::getRealTime).sum());
|
BigDecimal realTime = BigDecimal.valueOf(list.stream().mapToLong(RStatIntegrityVO::getRealTime).sum());
|
||||||
BigDecimal sumMin= onlineMin.add(offlineMin);
|
if (BigDecimal.ZERO.compareTo(dueTime) == 0) {
|
||||||
return sumMin.doubleValue();
|
BigDecimal.valueOf(0);
|
||||||
|
}
|
||||||
|
return realTime.multiply(BigDecimal.valueOf(100.0)).divide(dueTime, 2, RoundingMode.HALF_UP);
|
||||||
}
|
}
|
||||||
return 0.0;
|
return BigDecimal.valueOf(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Integer calculateIntegrityRate(List<RStatIntegrityVO> onlineRateByDev,Integer limit){
|
private Integer calculateIntegrityRate(List<RStatIntegrityVO> onlineRateByDev, Integer limit, Integer count) {
|
||||||
return (int) onlineRateByDev.stream().filter(x -> x.getIntegrityRate() < limit).count();
|
return count - onlineRateByDev.stream().filter(x -> x.getIntegrityRate().doubleValue() >= limit).collect(Collectors.toList()).size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,12 +2,8 @@ package com.njcn.device.pq.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.date.DatePattern;
|
|
||||||
import cn.hutool.core.date.DateTime;
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.njcn.common.config.GeneralInfo;
|
import com.njcn.common.config.GeneralInfo;
|
||||||
import com.njcn.common.pojo.exception.BusinessException;
|
import com.njcn.common.pojo.exception.BusinessException;
|
||||||
import com.njcn.device.common.service.GeneralDeviceService;
|
import com.njcn.device.common.service.GeneralDeviceService;
|
||||||
@@ -16,20 +12,15 @@ import com.njcn.device.biz.enums.DeviceResponseEnum;
|
|||||||
import com.njcn.device.pq.enums.LineBaseEnum;
|
import com.njcn.device.pq.enums.LineBaseEnum;
|
||||||
import com.njcn.device.pq.mapper.*;
|
import com.njcn.device.pq.mapper.*;
|
||||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||||
import com.njcn.device.pq.pojo.dto.LineDataQualityDTO;
|
|
||||||
import com.njcn.device.pq.pojo.dto.PublicDTO;
|
import com.njcn.device.pq.pojo.dto.PublicDTO;
|
||||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||||
import com.njcn.device.pq.pojo.param.LineDataQualityParam;
|
|
||||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
import com.njcn.device.pq.pojo.param.TerminalOnlineRateDataParam;
|
import com.njcn.device.pq.pojo.param.TerminalOnlineRateDataParam;
|
||||||
|
|
||||||
import com.njcn.device.pq.pojo.po.Line;
|
|
||||||
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
|
|
||||||
import com.njcn.device.pq.pojo.po.RStatOnlinerateD;
|
|
||||||
import com.njcn.device.pq.pojo.po.TerminalOnlineRateData;
|
import com.njcn.device.pq.pojo.po.TerminalOnlineRateData;
|
||||||
import com.njcn.device.pq.pojo.vo.AlarmStrategyVO;
|
import com.njcn.device.pq.pojo.vo.AlarmStrategyVO;
|
||||||
import com.njcn.device.pq.pojo.vo.OnlineRateCensusVO;
|
import com.njcn.device.pq.pojo.vo.OnlineRateCensusVO;
|
||||||
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
|
import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO;
|
||||||
import com.njcn.device.pq.pojo.vo.TerminalOnlineRateDataVO;
|
import com.njcn.device.pq.pojo.vo.TerminalOnlineRateDataVO;
|
||||||
import com.njcn.device.pq.service.TerminalOnlineRateDataService;
|
import com.njcn.device.pq.service.TerminalOnlineRateDataService;
|
||||||
import com.njcn.device.pq.utils.DataStatisticsUtil;
|
import com.njcn.device.pq.utils.DataStatisticsUtil;
|
||||||
@@ -215,7 +206,7 @@ public class TerminalOnlineRateDataServiceImpl implements TerminalOnlineRateData
|
|||||||
param.setIds(deviceIndexes);
|
param.setIds(deviceIndexes);
|
||||||
param.setStartTime( DateUtil.beginOfDay(DateUtil.parse(searchBeginTime)).toString());
|
param.setStartTime( DateUtil.beginOfDay(DateUtil.parse(searchBeginTime)).toString());
|
||||||
param.setEndTime( DateUtil.endOfDay(DateUtil.parse(searchEndTime)).toString());
|
param.setEndTime( DateUtil.endOfDay(DateUtil.parse(searchEndTime)).toString());
|
||||||
List<RStatOnlinerateVO> data = onlineRateMapper.getOnlineRateByDevIds(param);
|
List<RStatOnlineRateVO> data = onlineRateMapper.getOnlineRateByDevIds(param);
|
||||||
if (CollUtil.isNotEmpty(data)) {
|
if (CollUtil.isNotEmpty(data)) {
|
||||||
data.forEach(po -> {
|
data.forEach(po -> {
|
||||||
PublicDTO publicDTO = new PublicDTO();
|
PublicDTO publicDTO = new PublicDTO();
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ package com.njcn.device.common.mapper.onlinerate;
|
|||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
import com.njcn.device.pq.pojo.po.RStatOnlinerateD;
|
import com.njcn.device.pq.pojo.po.RStatOnlinerateD;
|
||||||
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
|
import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -26,6 +26,6 @@ public interface OnLineRateMapper extends BaseMapper<RStatOnlinerateD> {
|
|||||||
* @param param
|
* @param param
|
||||||
* @return List<OnlineRate>
|
* @return List<OnlineRate>
|
||||||
*/
|
*/
|
||||||
List<RStatOnlinerateVO> getOnlineRateByDevIds(@Param("param") OnlineRateParam param);
|
List<RStatOnlineRateVO> getOnlineRateByDevIds(@Param("param") OnlineRateParam param);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.njcn.device.common.mapper.onlinerate.OnLineRateMapper">
|
<mapper namespace="com.njcn.device.common.mapper.onlinerate.OnLineRateMapper">
|
||||||
<select id="getOnlineRateByDevIds" resultType="com.njcn.device.pq.pojo.vo.RStatOnlinerateVO">
|
<select id="getOnlineRateByDevIds" resultType="com.njcn.device.pq.pojo.vo.RStatOnlineRateVO">
|
||||||
select
|
select
|
||||||
dev_index,
|
dev_index,
|
||||||
sum(online_min) as onlineMin,
|
sum(online_min) as onlineMin,
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -9,7 +9,7 @@ import com.njcn.common.utils.HttpResultUtil;
|
|||||||
import com.njcn.device.device.service.OnLineRateService;
|
import com.njcn.device.device.service.OnLineRateService;
|
||||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
|
import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO;
|
||||||
import com.njcn.device.pq.pojo.vo.common.DeviceOnlineRate;
|
import com.njcn.device.pq.pojo.vo.common.DeviceOnlineRate;
|
||||||
import com.njcn.web.controller.BaseController;
|
import com.njcn.web.controller.BaseController;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
@@ -48,9 +48,9 @@ public class OnLineRateController extends BaseController {
|
|||||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
@PostMapping("/getOnlineRateByDevIds")
|
@PostMapping("/getOnlineRateByDevIds")
|
||||||
@ApiOperation("通用终端在线率(冀北)")
|
@ApiOperation("通用终端在线率(冀北)")
|
||||||
public HttpResult<List<RStatOnlinerateVO>> getOnlineRateByDevIds(@RequestBody OnlineRateParam deviceInfoParam) {
|
public HttpResult<List<RStatOnlineRateVO>> getOnlineRateByDevIds(@RequestBody OnlineRateParam deviceInfoParam) {
|
||||||
String methodDescribe = getMethodDescribe("deviceOnlineRateInfo");
|
String methodDescribe = getMethodDescribe("deviceOnlineRateInfo");
|
||||||
List<RStatOnlinerateVO> rate = onLineRateService.getOnlineRateByDevIds(deviceInfoParam);
|
List<RStatOnlineRateVO> rate = onLineRateService.getOnlineRateByDevIds(deviceInfoParam);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rate, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rate, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package com.njcn.device.device.service;
|
|||||||
|
|
||||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
|
import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO;
|
||||||
import com.njcn.device.pq.pojo.vo.common.DeviceOnlineRate;
|
import com.njcn.device.pq.pojo.vo.common.DeviceOnlineRate;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -31,5 +31,5 @@ public interface OnLineRateService {
|
|||||||
* @param
|
* @param
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<RStatOnlinerateVO> getOnlineRateByDevIds(OnlineRateParam onlineRateParam);
|
List<RStatOnlineRateVO> getOnlineRateByDevIds(OnlineRateParam onlineRateParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,12 +12,13 @@ import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
|||||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
import com.njcn.device.pq.pojo.po.RStatOnlinerateD;
|
import com.njcn.device.pq.pojo.po.RStatOnlinerateD;
|
||||||
import com.njcn.device.pq.pojo.vo.DevDetail;
|
import com.njcn.device.pq.pojo.vo.DevDetail;
|
||||||
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
|
import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO;
|
||||||
import com.njcn.device.pq.pojo.vo.common.DeviceOnlineRate;
|
import com.njcn.device.pq.pojo.vo.common.DeviceOnlineRate;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -49,24 +50,24 @@ public class OnLineRateServiceImpl extends ServiceImpl<OnLineRateMapper, RStatOn
|
|||||||
onlineRateParam.setStartTime(param.getSearchBeginTime());
|
onlineRateParam.setStartTime(param.getSearchBeginTime());
|
||||||
onlineRateParam.setEndTime(param.getSearchEndTime());
|
onlineRateParam.setEndTime(param.getSearchEndTime());
|
||||||
//获取所有终端在线率
|
//获取所有终端在线率
|
||||||
List<RStatOnlinerateVO> onlineRateByDev = this.baseMapper.getOnlineRateByDevIds(onlineRateParam);
|
List<RStatOnlineRateVO> onlineRateByDev = this.baseMapper.getOnlineRateByDevIds(onlineRateParam);
|
||||||
|
|
||||||
//获取所有终端信息
|
//获取所有终端信息
|
||||||
List<DevDetail> devInfoByIds = deviceService.getDevInfoByIds(deviceIds);
|
List<DevDetail> devInfoByIds = deviceService.getDevInfoByIds(deviceIds);
|
||||||
rate.setBelowNum(CollUtil.isNotEmpty(onlineRateByDev) ? calculateOnLineRate(onlineRateByDev, 90) : deviceIds.size());
|
rate.setBelowNum(CollUtil.isNotEmpty(onlineRateByDev) ? calculateOnLineRate(onlineRateByDev, 90, deviceIds.size()) : deviceIds.size());
|
||||||
rate.setTotalOnlineRate(calculateOnLineRate(onlineRateByDev, deviceIds));
|
rate.setTotalOnlineRate(calculateOnLineRate(onlineRateByDev, deviceIds));
|
||||||
List<DeviceOnlineRate.CitDetail> citDetailList = new ArrayList<>();
|
List<DeviceOnlineRate.CitDetail> citDetailList = new ArrayList<>();
|
||||||
DeviceOnlineRate.CitDetail citDetail;
|
DeviceOnlineRate.CitDetail citDetail;
|
||||||
DeviceOnlineRate.Detail detail;
|
DeviceOnlineRate.Detail detail;
|
||||||
for (GeneralDeviceDTO dto : deviceInfo) {
|
for (GeneralDeviceDTO dto : deviceInfo) {
|
||||||
//获取部门终端集合
|
//获取部门终端集合
|
||||||
List<RStatOnlinerateVO> citDevOnRate = onlineRateByDev.stream().filter(x -> dto.getDeviceIndexes().contains(x.getDevIndex())).collect(Collectors.toList());
|
List<RStatOnlineRateVO> citDevOnRate = onlineRateByDev.stream().filter(x -> dto.getDeviceIndexes().contains(x.getDevIndex())).collect(Collectors.toList());
|
||||||
Map<String, Float> onlineRateByDevMap = citDevOnRate.stream()
|
Map<String, BigDecimal> onlineRateByDevMap = citDevOnRate.stream()
|
||||||
.collect(Collectors.toMap(RStatOnlinerateVO::getDevIndex, RStatOnlinerateVO::getOnlineRate));
|
.collect(Collectors.toMap(x -> x.getDevIndex(), x -> x.getOnlineRate()));
|
||||||
citDetail = new DeviceOnlineRate.CitDetail();
|
citDetail = new DeviceOnlineRate.CitDetail();
|
||||||
citDetail.setCitName(dto.getName());
|
citDetail.setCitName(dto.getName());
|
||||||
citDetail.setCitTotalNum(dto.getDeviceIndexes().size());
|
citDetail.setCitTotalNum(dto.getDeviceIndexes().size());
|
||||||
citDetail.setCitBelowNum(CollUtil.isNotEmpty(citDevOnRate) ? calculateOnLineRate(onlineRateByDev, 90) : dto.getDeviceIndexes().size());
|
citDetail.setCitBelowNum(CollUtil.isNotEmpty(citDevOnRate) ? calculateOnLineRate(citDevOnRate, 90, dto.getDeviceIndexes().size()) : dto.getDeviceIndexes().size());
|
||||||
citDetail.setCitTotalOnlineRate(calculateOnLineRate(onlineRateByDev, dto.getDeviceIndexes()));
|
citDetail.setCitTotalOnlineRate(calculateOnLineRate(onlineRateByDev, dto.getDeviceIndexes()));
|
||||||
List<DeviceOnlineRate.Detail> detailList = new ArrayList<>();
|
List<DeviceOnlineRate.Detail> detailList = new ArrayList<>();
|
||||||
List<DevDetail> details = devInfoByIds.stream().filter(x -> dto.getDeviceIndexes().contains(x.getDevIndex())).collect(Collectors.toList());
|
List<DevDetail> details = devInfoByIds.stream().filter(x -> dto.getDeviceIndexes().contains(x.getDevIndex())).collect(Collectors.toList());
|
||||||
@@ -82,7 +83,7 @@ public class OnLineRateServiceImpl extends ServiceImpl<OnLineRateMapper, RStatOn
|
|||||||
detail.setRunFlag(RunFlagEnum.getRunFlagRemarkByStatus(dev.getRunFlag()));
|
detail.setRunFlag(RunFlagEnum.getRunFlagRemarkByStatus(dev.getRunFlag()));
|
||||||
detail.setComFlag(dev.getComFlag() == 0 ? "中断" : "正常");
|
detail.setComFlag(dev.getComFlag() == 0 ? "中断" : "正常");
|
||||||
detail.setTimeID(dev.getTimeID());
|
detail.setTimeID(dev.getTimeID());
|
||||||
detail.setOnlineRate(onlineRateByDevMap.containsKey(dev.getDevIndex()) ? onlineRateByDevMap.get(dev.getDevIndex()).toString() : "0");
|
detail.setOnlineRate(onlineRateByDevMap.containsKey(dev.getDevIndex()) ? onlineRateByDevMap.get(dev.getDevIndex()) : BigDecimal.valueOf(0));
|
||||||
detailList.add(detail);
|
detailList.add(detail);
|
||||||
}
|
}
|
||||||
citDetail.setDetailList(detailList);
|
citDetail.setDetailList(detailList);
|
||||||
@@ -94,23 +95,26 @@ public class OnLineRateServiceImpl extends ServiceImpl<OnLineRateMapper, RStatOn
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<RStatOnlinerateVO> getOnlineRateByDevIds(OnlineRateParam onlineRateParam) {
|
public List<RStatOnlineRateVO> getOnlineRateByDevIds(OnlineRateParam onlineRateParam) {
|
||||||
return this.baseMapper.getOnlineRateByDevIds(onlineRateParam);
|
return this.baseMapper.getOnlineRateByDevIds(onlineRateParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String calculateOnLineRate(List<RStatOnlinerateVO> onlineRateByDev, List<String> deviceIds) {
|
private BigDecimal calculateOnLineRate(List<RStatOnlineRateVO> onlineRateByDev, List<String> deviceIds) {
|
||||||
List<RStatOnlinerateVO> list = onlineRateByDev.stream().filter(x -> deviceIds.contains(x.getDevIndex())).collect(Collectors.toList());
|
List<RStatOnlineRateVO> list = onlineRateByDev.stream().filter(x -> deviceIds.contains(x.getDevIndex())).collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(list)) {
|
if (CollUtil.isNotEmpty(list)) {
|
||||||
BigDecimal onlineMin = BigDecimal.valueOf(list.stream().mapToLong(RStatOnlinerateVO::getOnlineMin).sum());
|
BigDecimal onlineMin = BigDecimal.valueOf(list.stream().mapToLong(RStatOnlineRateVO::getOnlineMin).sum());
|
||||||
BigDecimal offlineMin = BigDecimal.valueOf(list.stream().mapToLong(RStatOnlinerateVO::getOfflineMin).sum());
|
BigDecimal offlineMin = BigDecimal.valueOf(list.stream().mapToLong(RStatOnlineRateVO::getOfflineMin).sum());
|
||||||
BigDecimal sumMin = onlineMin.add(offlineMin);
|
BigDecimal sumMin = onlineMin.add(offlineMin);
|
||||||
return onlineMin.divide(sumMin, 2).toString();
|
if (BigDecimal.ZERO.compareTo(sumMin) == 0) {
|
||||||
|
BigDecimal.valueOf(0);
|
||||||
|
}
|
||||||
|
return onlineMin.multiply(BigDecimal.valueOf(100.0)).divide(sumMin, 2, RoundingMode.HALF_UP);
|
||||||
}
|
}
|
||||||
return "0";
|
return BigDecimal.valueOf(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Integer calculateOnLineRate(List<RStatOnlinerateVO> onlineRateByDev, Integer limit) {
|
private Integer calculateOnLineRate(List<RStatOnlineRateVO> onlineRateByDev, Integer limit, Integer count) {
|
||||||
return onlineRateByDev.stream().filter(x -> x.getOnlineRate() < limit).collect(Collectors.toList()).size();
|
return count - onlineRateByDev.stream().filter(x -> x.getOnlineRate().doubleValue() >= limit).collect(Collectors.toList()).size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -142,10 +142,12 @@
|
|||||||
<foreach collection="dataType" item="item" open="(" close=")" separator=",">
|
<foreach collection="dataType" item="item" open="(" close=")" separator=",">
|
||||||
#{item}
|
#{item}
|
||||||
</foreach>
|
</foreach>
|
||||||
and device.run_flag in
|
<if test="runFlag!=null and runFlag!=''">
|
||||||
<foreach collection="runFlag" item="item" open="(" close=")" separator=",">
|
and device.run_flag in
|
||||||
#{item}
|
<foreach collection="runFlag" item="item" open="(" close=")" separator=",">
|
||||||
</foreach>
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
<if test="objType!=null and objType!=''">
|
<if test="objType!=null and objType!=''">
|
||||||
and lineDetail.big_obj_type = #{objType}
|
and lineDetail.big_obj_type = #{objType}
|
||||||
</if>
|
</if>
|
||||||
|
|||||||
@@ -217,6 +217,7 @@ whitelist:
|
|||||||
- /pqs-auth/judgeToken/guangZhou
|
- /pqs-auth/judgeToken/guangZhou
|
||||||
|
|
||||||
- /webjars/**
|
- /webjars/**
|
||||||
|
- /actuator/**
|
||||||
- /doc.html
|
- /doc.html
|
||||||
- /swagger-resources/**
|
- /swagger-resources/**
|
||||||
- /*/v2/api-docs
|
- /*/v2/api-docs
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import com.njcn.device.pq.api.GeneralDeviceInfoClient;
|
|||||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
|
import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO;
|
||||||
import com.njcn.harmonic.mapper.OnlineRateDataMapper;
|
import com.njcn.harmonic.mapper.OnlineRateDataMapper;
|
||||||
import com.njcn.harmonic.pojo.dto.PublicDTO;
|
import com.njcn.harmonic.pojo.dto.PublicDTO;
|
||||||
import com.njcn.harmonic.pojo.vo.OnlineRateCensusVO;
|
import com.njcn.harmonic.pojo.vo.OnlineRateCensusVO;
|
||||||
@@ -143,7 +143,7 @@ public class OnlineRateDataServiceImpl implements OnlineRateDataService {
|
|||||||
param.setIds(deviceIndexes);
|
param.setIds(deviceIndexes);
|
||||||
param.setStartTime(DateUtil.beginOfDay(DateUtil.parse(startTime)).toString());
|
param.setStartTime(DateUtil.beginOfDay(DateUtil.parse(startTime)).toString());
|
||||||
param.setEndTime( DateUtil.endOfDay(DateUtil.parse(endTime)).toString());
|
param.setEndTime( DateUtil.endOfDay(DateUtil.parse(endTime)).toString());
|
||||||
List<RStatOnlinerateVO> data = generalDeviceInfoClient.getOnlineRateByDevIds(param).getData();
|
List<RStatOnlineRateVO> data = generalDeviceInfoClient.getOnlineRateByDevIds(param).getData();
|
||||||
if (CollUtil.isNotEmpty(data)) {
|
if (CollUtil.isNotEmpty(data)) {
|
||||||
data.forEach(po -> {
|
data.forEach(po -> {
|
||||||
PublicDTO publicDTO = new PublicDTO();
|
PublicDTO publicDTO = new PublicDTO();
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ import com.njcn.device.pq.pojo.po.Line;
|
|||||||
import com.njcn.device.pq.pojo.po.LineDetail;
|
import com.njcn.device.pq.pojo.po.LineDetail;
|
||||||
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
||||||
import com.njcn.device.pq.pojo.vo.RStatIntegrityVO;
|
import com.njcn.device.pq.pojo.vo.RStatIntegrityVO;
|
||||||
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
|
import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO;
|
||||||
import com.njcn.event.api.RmpEventDetailFeignClient;
|
import com.njcn.event.api.RmpEventDetailFeignClient;
|
||||||
import com.njcn.event.pojo.dto.EventCount;
|
import com.njcn.event.pojo.dto.EventCount;
|
||||||
import com.njcn.harmonic.mapper.*;
|
import com.njcn.harmonic.mapper.*;
|
||||||
@@ -1001,11 +1001,11 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
|||||||
onlineRateParam.setStartTime(startDate);
|
onlineRateParam.setStartTime(startDate);
|
||||||
onlineRateParam.setEndTime(endDate);
|
onlineRateParam.setEndTime(endDate);
|
||||||
List<RStatIntegrityVO> integrityVOS = lineFeignClient.getOnIntegrityByIds(onlineRateParam).getData();
|
List<RStatIntegrityVO> integrityVOS = lineFeignClient.getOnIntegrityByIds(onlineRateParam).getData();
|
||||||
Map<String, Double> integrityMap = integrityVOS.stream().collect(Collectors.toMap(RStatIntegrityVO::getLineIndex, RStatIntegrityVO::getIntegrityRate));
|
Map<String, BigDecimal> integrityMap = integrityVOS.stream().collect(Collectors.toMap(RStatIntegrityVO::getLineIndex, RStatIntegrityVO::getIntegrityRate));
|
||||||
|
|
||||||
//获取装置在线率
|
//获取装置在线率
|
||||||
List<RStatOnlinerateVO> onLineRateVOS = generalDeviceInfoClient.getOnlineRateByDevIds(onlineRateParam).getData();
|
List<RStatOnlineRateVO> onLineRateVOS = generalDeviceInfoClient.getOnlineRateByDevIds(onlineRateParam).getData();
|
||||||
Map<String, Float> onlineRateMap = onLineRateVOS.stream().collect(Collectors.toMap(RStatOnlinerateVO::getDevIndex, RStatOnlinerateVO::getOnlineRate));
|
Map<String, BigDecimal> onlineRateMap = onLineRateVOS.stream().collect(Collectors.toMap(RStatOnlineRateVO::getDevIndex, RStatOnlineRateVO::getOnlineRate));
|
||||||
|
|
||||||
List<RMpPollutionDPO> rMpPollutionDPOS = rMpPollutionDPOMapper.selectSumList(lineIdList, param.getIds(), startDate, endDate);
|
List<RMpPollutionDPO> rMpPollutionDPOS = rMpPollutionDPOMapper.selectSumList(lineIdList, param.getIds(), startDate, endDate);
|
||||||
Map<String, Double> calcMap = new HashMap<>();
|
Map<String, Double> calcMap = new HashMap<>();
|
||||||
@@ -1023,12 +1023,12 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
|||||||
BeanUtil.copyProperties(eventMap.get(lineId), linePollution);
|
BeanUtil.copyProperties(eventMap.get(lineId), linePollution);
|
||||||
BeanUtil.copyProperties(data, linePollution, true);
|
BeanUtil.copyProperties(data, linePollution, true);
|
||||||
//监测点在线率
|
//监测点在线率
|
||||||
Float vo2 = onlineRateMap.get(data.getDeviceId());
|
BigDecimal vo2 = onlineRateMap.get(data.getDeviceId());
|
||||||
linePollution.setOnlineRate(Objects.isNull(vo2) ? 0.0f : vo2);
|
linePollution.setOnlineRate(Objects.isNull(vo2) ? 0.0f : vo2.floatValue());
|
||||||
//获取监测点数据完整性
|
//获取监测点数据完整性
|
||||||
linePollution.setIntegrity(Objects.isNull(integrityMap.get(lineId)) ? 0.0 : integrityMap.get(lineId)>100?100.0:integrityMap.get(lineId));
|
linePollution.setIntegrity(Objects.isNull(integrityMap.get(lineId)) ? 0.0 : integrityMap.get(lineId).doubleValue()>100?100.0:integrityMap.get(lineId).doubleValue());
|
||||||
// 计算谐波的污染值
|
// 计算谐波的污染值
|
||||||
linePollution.setHarmonicValue(calcMap.containsKey(lineId)?calcMap.get(lineId)>100?100.0:integrityMap.get(lineId):0.0);
|
linePollution.setHarmonicValue(calcMap.containsKey(lineId)?calcMap.get(lineId)>100?100.0:integrityMap.get(lineId).doubleValue():0.0);
|
||||||
linePollution.setInterval(data.getTimeInterval());
|
linePollution.setInterval(data.getTimeInterval());
|
||||||
linePollutionList.add(linePollution);
|
linePollutionList.add(linePollution);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import com.njcn.device.pq.api.GeneralDeviceInfoClient;
|
|||||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
|
import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO;
|
||||||
import com.njcn.harmonic.mapper.TerminalDataMapper;
|
import com.njcn.harmonic.mapper.TerminalDataMapper;
|
||||||
import com.njcn.harmonic.pojo.dto.PublicDTO;
|
import com.njcn.harmonic.pojo.dto.PublicDTO;
|
||||||
import com.njcn.harmonic.pojo.vo.TerminalCensusVO;
|
import com.njcn.harmonic.pojo.vo.TerminalCensusVO;
|
||||||
@@ -211,7 +211,7 @@ public class TerminalServiceImpl implements TerminalService {
|
|||||||
param.setIds(deviceIndexes);
|
param.setIds(deviceIndexes);
|
||||||
param.setStartTime( DateUtil.beginOfDay(DateUtil.parse(startTime)).toString());
|
param.setStartTime( DateUtil.beginOfDay(DateUtil.parse(startTime)).toString());
|
||||||
param.setEndTime( DateUtil.endOfDay(DateUtil.parse(endTime)).toString());
|
param.setEndTime( DateUtil.endOfDay(DateUtil.parse(endTime)).toString());
|
||||||
List<RStatOnlinerateVO> data = generalDeviceInfoClient.getOnlineRateByDevIds(param).getData();
|
List<RStatOnlineRateVO> data = generalDeviceInfoClient.getOnlineRateByDevIds(param).getData();
|
||||||
if (CollUtil.isNotEmpty(data)) {
|
if (CollUtil.isNotEmpty(data)) {
|
||||||
data.forEach(po -> {
|
data.forEach(po -> {
|
||||||
PublicDTO publicDTO = new PublicDTO();
|
PublicDTO publicDTO = new PublicDTO();
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
|||||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
|
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
|
||||||
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
||||||
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
|
import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO;
|
||||||
import com.njcn.harmonic.mapper.RStatLimitTargetDMapper;
|
import com.njcn.harmonic.mapper.RStatLimitTargetDMapper;
|
||||||
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
||||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||||
@@ -103,7 +103,7 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
|||||||
integrityList = lineIntegrityClient.getIntegrityByLineIds(lineIds, deviceInfoParam.getSearchBeginTime(), deviceInfoParam.getSearchEndTime()).getData();
|
integrityList = lineIntegrityClient.getIntegrityByLineIds(lineIds, deviceInfoParam.getSearchBeginTime(), deviceInfoParam.getSearchEndTime()).getData();
|
||||||
}
|
}
|
||||||
//终端在线率
|
//终端在线率
|
||||||
List<RStatOnlinerateVO> onlineRateList =new ArrayList<>();
|
List<RStatOnlineRateVO> onlineRateList =new ArrayList<>();
|
||||||
if(CollUtil.isNotEmpty(devIds)){
|
if(CollUtil.isNotEmpty(devIds)){
|
||||||
OnlineRateParam param=new OnlineRateParam();
|
OnlineRateParam param=new OnlineRateParam();
|
||||||
param.setIds(devIds);
|
param.setIds(devIds);
|
||||||
@@ -580,7 +580,7 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void onLineAndIntegrity(List<String> lineIds, List<RStatIntegrityD> onIntegrityByIds, List<String> devIds, List<RStatOnlinerateVO> onlineRateByDevIds,List<RStatLimitTargetVO> limitTargetList, GridDiagramVO.LineData lineData) {
|
private void onLineAndIntegrity(List<String> lineIds, List<RStatIntegrityD> onIntegrityByIds, List<String> devIds, List<RStatOnlineRateVO> onlineRateByDevIds, List<RStatLimitTargetVO> limitTargetList, GridDiagramVO.LineData lineData) {
|
||||||
//监测完整率
|
//监测完整率
|
||||||
List<RStatIntegrityD> integrityDS = onIntegrityByIds.stream().filter(x -> lineIds.contains(x.getLineIndex())).collect(Collectors.toList());
|
List<RStatIntegrityD> integrityDS = onIntegrityByIds.stream().filter(x -> lineIds.contains(x.getLineIndex())).collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(integrityDS)) {
|
if (CollUtil.isNotEmpty(integrityDS)) {
|
||||||
@@ -591,10 +591,10 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
|||||||
lineData.setIntegrityRate(0.0f);
|
lineData.setIntegrityRate(0.0f);
|
||||||
}
|
}
|
||||||
//终端在线率
|
//终端在线率
|
||||||
List<RStatOnlinerateVO> onlineRateDS = onlineRateByDevIds.stream().filter(x -> devIds.contains(x.getDevIndex())).collect(Collectors.toList());
|
List<RStatOnlineRateVO> onlineRateDS = onlineRateByDevIds.stream().filter(x -> devIds.contains(x.getDevIndex())).collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(onlineRateDS)) {
|
if (CollUtil.isNotEmpty(onlineRateDS)) {
|
||||||
double onlineTime = onlineRateDS.stream().mapToDouble(RStatOnlinerateVO::getOnlineMin).sum();
|
double onlineTime = onlineRateDS.stream().mapToDouble(RStatOnlineRateVO::getOnlineMin).sum();
|
||||||
double offlineTime = onlineRateDS.stream().mapToDouble(RStatOnlinerateVO::getOfflineMin).sum();
|
double offlineTime = onlineRateDS.stream().mapToDouble(RStatOnlineRateVO::getOfflineMin).sum();
|
||||||
lineData.setOnLineRate(Math.min(NumberUtil.round(onlineTime * 100.0 / (onlineTime + offlineTime), 2).floatValue(),100));
|
lineData.setOnLineRate(Math.min(NumberUtil.round(onlineTime * 100.0 / (onlineTime + offlineTime), 2).floatValue(),100));
|
||||||
} else {
|
} else {
|
||||||
lineData.setOnLineRate(0.0f);
|
lineData.setOnLineRate(0.0f);
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import lombok.EqualsAndHashCode;
|
|||||||
import org.hibernate.validator.constraints.Range;
|
import org.hibernate.validator.constraints.Range;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotEmpty;
|
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
import javax.validation.constraints.Pattern;
|
import javax.validation.constraints.Pattern;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -60,9 +59,7 @@ public class ComponentParam {
|
|||||||
private String image;
|
private String image;
|
||||||
|
|
||||||
@ApiModelProperty("时间标识")
|
@ApiModelProperty("时间标识")
|
||||||
private String timeKey;
|
private List<String> timeKeys;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ApiModelProperty("系统类型")
|
@ApiModelProperty("系统类型")
|
||||||
@NotBlank(message = "系统类型不为空")
|
@NotBlank(message = "系统类型不为空")
|
||||||
@@ -84,6 +81,4 @@ public class ComponentParam {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
package com.njcn.user.pojo.po;
|
package com.njcn.user.pojo.po;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.njcn.db.bo.BaseEntity;
|
import com.njcn.db.bo.BaseEntity;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author xuyang
|
* @author xuyang
|
||||||
* @since 2021-12-13
|
* @since 2021-12-13
|
||||||
*/
|
*/
|
||||||
@@ -80,5 +81,13 @@ public class Component extends BaseEntity {
|
|||||||
|
|
||||||
private String timeKey;
|
private String timeKey;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private List<String> timeKeys;
|
||||||
|
|
||||||
|
public String getTimeKey() {
|
||||||
|
if (timeKeys != null) {
|
||||||
|
timeKey = String.join(",", timeKeys);
|
||||||
|
}
|
||||||
|
return timeKey;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,6 +52,9 @@ public class ComponentVO implements Serializable {
|
|||||||
@ApiModelProperty("时间标识")
|
@ApiModelProperty("时间标识")
|
||||||
private String timeKey;
|
private String timeKey;
|
||||||
|
|
||||||
|
@ApiModelProperty("时间标识集合")
|
||||||
|
private List<String> timeKeys;
|
||||||
|
|
||||||
@ApiModelProperty("子级")
|
@ApiModelProperty("子级")
|
||||||
List<ComponentVO> children;
|
List<ComponentVO> children;
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.njcn.user.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.njcn.common.pojo.exception.BusinessException;
|
import com.njcn.common.pojo.exception.BusinessException;
|
||||||
@@ -25,7 +26,10 @@ import lombok.AllArgsConstructor;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -89,17 +93,18 @@ public class ComponentServiceImpl extends ServiceImpl<ComponentMapper, Component
|
|||||||
List<ComponentVO> list = new ArrayList<>();
|
List<ComponentVO> list = new ArrayList<>();
|
||||||
List<ComponentVO> result = new ArrayList<>();
|
List<ComponentVO> result = new ArrayList<>();
|
||||||
List<ComponentDTO> componentList = componentMapper.getAllComponent();
|
List<ComponentDTO> componentList = componentMapper.getAllComponent();
|
||||||
if (!CollectionUtils.isEmpty(componentList)){
|
if (!CollectionUtils.isEmpty(componentList)) {
|
||||||
componentList.forEach(item -> {
|
componentList.forEach(item -> {
|
||||||
ComponentVO componentVO = new ComponentVO();
|
ComponentVO componentVO = new ComponentVO();
|
||||||
BeanUtil.copyProperties(item, componentVO);
|
BeanUtil.copyProperties(item, componentVO);
|
||||||
|
componentVO.setTimeKeys(StrUtil.split(item.getTimeKey(), ","));
|
||||||
// componentVO.setFunctionGroup(Arrays.stream(item.getFunctionGroup().split(",")).map(s -> Integer.valueOf(s.trim())).collect(Collectors.toList()));
|
// componentVO.setFunctionGroup(Arrays.stream(item.getFunctionGroup().split(",")).map(s -> Integer.valueOf(s.trim())).collect(Collectors.toList()));
|
||||||
list.add(componentVO);
|
list.add(componentVO);
|
||||||
});
|
});
|
||||||
Map<String,List<ComponentVO>> map = list.stream().filter(m->!Objects.isNull(m.getSystemType())).collect(Collectors.groupingBy(ComponentVO::getSystemType));
|
Map<String, List<ComponentVO>> map = list.stream().filter(m -> !Objects.isNull(m.getSystemType())).collect(Collectors.groupingBy(ComponentVO::getSystemType));
|
||||||
map.forEach((k,v)->{
|
map.forEach((k, v) -> {
|
||||||
DictData dictData = dicDataFeignClient.getDicDataById(k).getData();
|
DictData dictData = dicDataFeignClient.getDicDataById(k).getData();
|
||||||
if (Objects.isNull(dictData)){
|
if (Objects.isNull(dictData)) {
|
||||||
throw new BusinessException(SystemResponseEnum.SYSTEM_TYPE_EMPTY);
|
throw new BusinessException(SystemResponseEnum.SYSTEM_TYPE_EMPTY);
|
||||||
}
|
}
|
||||||
ComponentVO componentVO = new ComponentVO();
|
ComponentVO componentVO = new ComponentVO();
|
||||||
@@ -107,9 +112,9 @@ public class ComponentServiceImpl extends ServiceImpl<ComponentMapper, Component
|
|||||||
componentVO.setName(dictData.getName());
|
componentVO.setName(dictData.getName());
|
||||||
componentVO.setChildren(
|
componentVO.setChildren(
|
||||||
v.stream()
|
v.stream()
|
||||||
.filter(fun -> Objects.equals(ComponentState.FATHER_PID, fun.getPid()))
|
.filter(fun -> Objects.equals(ComponentState.FATHER_PID, fun.getPid()))
|
||||||
.peek(funS -> funS.setChildren(getChildCategoryList(funS, v)))
|
.peek(funS -> funS.setChildren(getChildCategoryList(funS, v)))
|
||||||
.collect(Collectors.toList()));
|
.collect(Collectors.toList()));
|
||||||
result.add(componentVO);
|
result.add(componentVO);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -132,19 +137,20 @@ public class ComponentServiceImpl extends ServiceImpl<ComponentMapper, Component
|
|||||||
}
|
}
|
||||||
list = componentMapper.getComponentByList(componentList);
|
list = componentMapper.getComponentByList(componentList);
|
||||||
}
|
}
|
||||||
if (CollectionUtil.isEmpty(list)){
|
if (CollectionUtil.isEmpty(list)) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
list.forEach(item -> {
|
list.forEach(item -> {
|
||||||
ComponentVO componentVO = new ComponentVO();
|
ComponentVO componentVO = new ComponentVO();
|
||||||
BeanUtil.copyProperties(item, componentVO);
|
BeanUtil.copyProperties(item, componentVO);
|
||||||
|
componentVO.setTimeKeys(StrUtil.split(item.getTimeKey(), ","));
|
||||||
// componentVO.setFunctionGroup(Arrays.stream(item.getFunctionGroup().split(",")).map(s -> Integer.valueOf(s.trim())).collect(Collectors.toList()));
|
// componentVO.setFunctionGroup(Arrays.stream(item.getFunctionGroup().split(",")).map(s -> Integer.valueOf(s.trim())).collect(Collectors.toList()));
|
||||||
componentVOList.add(componentVO);
|
componentVOList.add(componentVO);
|
||||||
});
|
});
|
||||||
Map<String,List<ComponentVO>> map = componentVOList.stream().collect(Collectors.groupingBy(ComponentVO::getSystemType));
|
Map<String, List<ComponentVO>> map = componentVOList.stream().collect(Collectors.groupingBy(ComponentVO::getSystemType));
|
||||||
map.forEach((k, v)->{
|
map.forEach((k, v) -> {
|
||||||
DictData dictData = dicDataFeignClient.getDicDataById(k).getData();
|
DictData dictData = dicDataFeignClient.getDicDataById(k).getData();
|
||||||
if (Objects.isNull(dictData)){
|
if (Objects.isNull(dictData)) {
|
||||||
throw new BusinessException(SystemResponseEnum.SYSTEM_TYPE_EMPTY);
|
throw new BusinessException(SystemResponseEnum.SYSTEM_TYPE_EMPTY);
|
||||||
}
|
}
|
||||||
ComponentVO componentVO = new ComponentVO();
|
ComponentVO componentVO = new ComponentVO();
|
||||||
@@ -167,7 +173,7 @@ public class ComponentServiceImpl extends ServiceImpl<ComponentMapper, Component
|
|||||||
component.setId("0");
|
component.setId("0");
|
||||||
component.setName("无");
|
component.setName("无");
|
||||||
list.add(component);
|
list.add(component);
|
||||||
list.addAll(this.lambdaQuery().eq(Component::getSystemType, systemType).eq(Component::getPid,ComponentState.FATHER_PID).eq(Component::getState, ComponentState.ENABLE).list());
|
list.addAll(this.lambdaQuery().eq(Component::getSystemType, systemType).eq(Component::getPid, ComponentState.FATHER_PID).eq(Component::getState, ComponentState.ENABLE).list());
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user