代码提交
This commit is contained in:
@@ -59,6 +59,7 @@ public class AppTopologyDiagramServiceImpl extends MppServiceImpl<AppTopologyDia
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = {Exception.class})
|
||||||
public Boolean AuditAppTopologyDiagram(AppTopologyDiagramAuditParm appTopologyDiagramAuditParm) {
|
public Boolean AuditAppTopologyDiagram(AppTopologyDiagramAuditParm appTopologyDiagramAuditParm) {
|
||||||
AppTopologyDiagramPO appTopologyDiagramPO = new AppTopologyDiagramPO();
|
AppTopologyDiagramPO appTopologyDiagramPO = new AppTopologyDiagramPO();
|
||||||
if(!Objects.equal (appTopologyDiagramAuditParm.getFile (),null )){
|
if(!Objects.equal (appTopologyDiagramAuditParm.getFile (),null )){
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ public class CsEdDataServiceImpl extends ServiceImpl<CsEdDataMapper, CsEdDataPO>
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = {Exception.class})
|
||||||
public Boolean auditEdData(CsEdDataAuditParm csEdDataAuditParm) {
|
public Boolean auditEdData(CsEdDataAuditParm csEdDataAuditParm) {
|
||||||
CsEdDataPO csEdDataPO = new CsEdDataPO ();
|
CsEdDataPO csEdDataPO = new CsEdDataPO ();
|
||||||
BeanUtils.copyProperties (csEdDataAuditParm, csEdDataPO);
|
BeanUtils.copyProperties (csEdDataAuditParm, csEdDataPO);
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ public class NjcnBeanUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
System.out.println (target.toString ( ));
|
|
||||||
return (T) target;
|
return (T) target;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -137,6 +137,7 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
|
|||||||
lineDetailDataVO.setDevCapacity(lineDetail.getDevCapacity());
|
lineDetailDataVO.setDevCapacity(lineDetail.getDevCapacity());
|
||||||
lineDetailDataVO.setShortCapacity(lineDetail.getShortCapacity());
|
lineDetailDataVO.setShortCapacity(lineDetail.getShortCapacity());
|
||||||
lineDetailDataVO.setStandardCapacity(lineDetail.getStandardCapacity());
|
lineDetailDataVO.setStandardCapacity(lineDetail.getStandardCapacity());
|
||||||
|
lineDetailDataVO.setTimeInterval (lineDetail.getTimeInterval ());
|
||||||
return lineDetailDataVO;
|
return lineDetailDataVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,166 @@
|
|||||||
|
package com.njcn.prepare.harmonic.pojo.mysql;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2023/4/23 13:50【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName(value = "r_mp_event_detail")
|
||||||
|
public class RMpEventDetailPO {
|
||||||
|
/**
|
||||||
|
* 暂时事件ID
|
||||||
|
*/
|
||||||
|
@TableId(value = "event_id")
|
||||||
|
private String eventId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监测点ID
|
||||||
|
*/
|
||||||
|
@TableField(value = "measurement_point_id")
|
||||||
|
private String measurementPointId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计指标类型
|
||||||
|
*/
|
||||||
|
@TableField(value = "event_type")
|
||||||
|
private String eventType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 暂降原因(字典表PQS_Dicdata)
|
||||||
|
*/
|
||||||
|
@TableField(value = "advance_reason")
|
||||||
|
private String advanceReason;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 暂降类型(字典表PQS_Dicdata)
|
||||||
|
*/
|
||||||
|
@TableField(value = "advance_type")
|
||||||
|
private String advanceType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 事件关联分析表Guid
|
||||||
|
*/
|
||||||
|
@TableField(value = "eventass_index")
|
||||||
|
private String eventassIndex;
|
||||||
|
|
||||||
|
@TableField(value = "dq_time")
|
||||||
|
private Double dqTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 特征值计算更新时间(外键PQS_Relevance的Time字段)
|
||||||
|
*/
|
||||||
|
@TableField(value = "deal_time")
|
||||||
|
private Date dealTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 默认事件个数为0
|
||||||
|
*/
|
||||||
|
@TableField(value = "num")
|
||||||
|
private Integer num;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 波形文件是否从装置招到本地(0:未招,1:已招)默认值为0
|
||||||
|
*/
|
||||||
|
@TableField(value = "file_flag")
|
||||||
|
private Boolean fileFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 特征值计算标志(0,未处理;1,已处理; 2,已处理,无结果;3,计算失败)默认值为0
|
||||||
|
*/
|
||||||
|
@TableField(value = "deal_flag")
|
||||||
|
private Boolean dealFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理结果第一条事件发生时间(读comtra文件获取)
|
||||||
|
*/
|
||||||
|
@TableField(value = "first_time")
|
||||||
|
private Date firstTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理结果第一条事件暂降类型(字典表PQS_Dicdata)
|
||||||
|
*/
|
||||||
|
@TableField(value = "first_type")
|
||||||
|
private String firstType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理结果第一条事件发生时间毫秒(读comtra文件获取)
|
||||||
|
*/
|
||||||
|
@TableField(value = "first_ms")
|
||||||
|
private BigDecimal firstMs;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 暂降能量
|
||||||
|
*/
|
||||||
|
@TableField(value = "energy")
|
||||||
|
private Double energy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 暂降严重度
|
||||||
|
*/
|
||||||
|
@TableField(value = "severity")
|
||||||
|
private Double severity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 暂降源与监测位置关系 Upper:上游;Lower :下游;Unknown :未知;为空则是未计算
|
||||||
|
*/
|
||||||
|
@TableField(value = "sagsource")
|
||||||
|
private String sagsource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开始时间
|
||||||
|
*/
|
||||||
|
@TableField(value = "start_time")
|
||||||
|
private Date startTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 持续时间,单位秒
|
||||||
|
*/
|
||||||
|
@TableField(value = "duration")
|
||||||
|
private BigDecimal duration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 特征幅值
|
||||||
|
*/
|
||||||
|
@TableField(value = "feature_amplitude")
|
||||||
|
private BigDecimal featureAmplitude;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 相别
|
||||||
|
*/
|
||||||
|
@TableField(value = "phase")
|
||||||
|
private String phase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 事件描述
|
||||||
|
*/
|
||||||
|
@TableField(value = "event_describe")
|
||||||
|
private String eventDescribe;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 波形路径
|
||||||
|
*/
|
||||||
|
@TableField(value = "wave_path")
|
||||||
|
private String wavePath;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 暂态事件上送时间
|
||||||
|
*/
|
||||||
|
@TableField(value = "create_time")
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
@TableField(value = "transient_value")
|
||||||
|
private Double transientValue;
|
||||||
|
}
|
||||||
@@ -23,9 +23,9 @@ import java.util.Date;
|
|||||||
@Data
|
@Data
|
||||||
@TableName(value = "r_mp_monitor_evaluate_d")
|
@TableName(value = "r_mp_monitor_evaluate_d")
|
||||||
public class RMpMonitorEvaluateDPO {
|
public class RMpMonitorEvaluateDPO {
|
||||||
@MppMultiId(value = "time_id")
|
@MppMultiId(value = "data_date")
|
||||||
@ApiModelProperty(value="")
|
@ApiModelProperty(value="")
|
||||||
private Date timeId;
|
private Date dataDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 监测点Id
|
* 监测点Id
|
||||||
|
|||||||
@@ -0,0 +1,76 @@
|
|||||||
|
package com.njcn.prepare.harmonic.pojo.mysql;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2023/4/21 10:17【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* 监测点指标数据质量-日表
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName(value = "r_operating_monitor_d")
|
||||||
|
public class ROperatingMonitorDPO {
|
||||||
|
@MppMultiId(value = "data_date")
|
||||||
|
private Date dataDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监测点Id
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "measurement_point_id")
|
||||||
|
private String measurementPointId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 终端Id
|
||||||
|
*/
|
||||||
|
@TableField(value = "dev_id")
|
||||||
|
private String devId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监测点状态(算法1)
|
||||||
|
*/
|
||||||
|
@TableField(value = "monitor_state")
|
||||||
|
private String monitorState;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有效接入分钟数
|
||||||
|
*/
|
||||||
|
@TableField(value = "effective_minute_count")
|
||||||
|
private Integer effectiveMinuteCount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据完整率(算法2)
|
||||||
|
*/
|
||||||
|
@TableField(value = "data_integrity_rate")
|
||||||
|
private BigDecimal dataIntegrityRate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据准确率(算法3)
|
||||||
|
*/
|
||||||
|
@TableField(value = "data_right_rate")
|
||||||
|
private BigDecimal dataRightRate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 指标完整率(算法4)
|
||||||
|
*/
|
||||||
|
@TableField(value = "index_integrity_rate")
|
||||||
|
private BigDecimal indexIntegrityRate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据是否异常(算法5)
|
||||||
|
*/
|
||||||
|
@TableField(value = "is_unusual")
|
||||||
|
private Integer isUnusual;
|
||||||
|
}
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
package com.njcn.prepare.harmonic.pojo.mysql;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2023/4/21 15:41【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* 监测点指标数据质量-日表
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName(value = "r_operating_monitor_m")
|
||||||
|
public class ROperatingMonitorMPO {
|
||||||
|
@MppMultiId(value = "data_date")
|
||||||
|
private Date dataDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监测点Id
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "measurement_point_id")
|
||||||
|
private String measurementPointId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 终端Id
|
||||||
|
*/
|
||||||
|
@TableField(value = "dev_id")
|
||||||
|
private String devId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监测点状态(算法1)
|
||||||
|
*/
|
||||||
|
@TableField(value = "monitor_state")
|
||||||
|
private String monitorState;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有效接入分钟数
|
||||||
|
*/
|
||||||
|
@TableField(value = "effective_minute_count")
|
||||||
|
private Long effectiveMinuteCount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据完整率(算法2)
|
||||||
|
*/
|
||||||
|
@TableField(value = "data_integrity_rate")
|
||||||
|
private BigDecimal dataIntegrityRate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据准确率(算法3)
|
||||||
|
*/
|
||||||
|
@TableField(value = "data_right_rate")
|
||||||
|
private BigDecimal dataRightRate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 指标完整率(算法4)
|
||||||
|
*/
|
||||||
|
@TableField(value = "index_integrity_rate")
|
||||||
|
private BigDecimal indexIntegrityRate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据是否异常(算法5)
|
||||||
|
*/
|
||||||
|
@TableField(value = "is_unusual")
|
||||||
|
private Integer isUnusual;
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
package com.njcn.prepare.harmonic.pojo.mysql;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2023/4/21 9:07【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName(value = "r_stat_abnormal_d")
|
||||||
|
public class RStatAbnormalDPO {
|
||||||
|
/**
|
||||||
|
* 时间
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "data_date")
|
||||||
|
private Date dataDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监测点ID
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "measurement_point_id")
|
||||||
|
private String measurementPointId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据是否异常(0异常,1正常)
|
||||||
|
*/
|
||||||
|
@TableField(value = "value_alarm")
|
||||||
|
private Integer valueAlarm;
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
package com.njcn.prepare.harmonic.controller.newalgorithm;
|
||||||
|
|
||||||
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
|
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||||
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
|
import com.njcn.common.utils.HttpResultUtil;
|
||||||
|
import com.njcn.device.pq.api.LineFeignClient;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.line.RStatAbnormalDService;
|
||||||
|
import com.njcn.web.controller.BaseController;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2023/4/19 15:45【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/rmstatabnormal")
|
||||||
|
@Api(tags = "监测点异常_日统计")
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class RMStatAbnormalDController extends BaseController {
|
||||||
|
private final LineFeignClient lineFeignClient;
|
||||||
|
private final RStatAbnormalDService rStatAbnormalDService;
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation("监测点异常_日统计(MySQL库)")
|
||||||
|
@ApiImplicitParam(value = "jobParam",name = "jobParam",required = true)
|
||||||
|
@PostMapping("handlerMonitorAbnormal")
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_MEDIUM)
|
||||||
|
public HttpResult<Boolean> handlerMonitorAbnormal(@RequestBody LineParam jobParam ){
|
||||||
|
|
||||||
|
log.info(LocalDateTime.now()+"handlerMonitorAbnormal开始执行");
|
||||||
|
String methodDescribe = getMethodDescribe("handlerMonitorAbnormal");
|
||||||
|
List<String> indexLists = new ArrayList<> ();
|
||||||
|
if(CollectionUtils.isEmpty (jobParam.getLineIds ())){
|
||||||
|
indexLists = lineFeignClient.getLineList ( ).getData ( );
|
||||||
|
}else{
|
||||||
|
indexLists = jobParam.getLineIds ();
|
||||||
|
}
|
||||||
|
|
||||||
|
rStatAbnormalDService.handlerMonitorAbnormal (indexLists,jobParam.getDataDate ());
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
package com.njcn.prepare.harmonic.controller.newalgorithm;
|
||||||
|
|
||||||
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
|
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||||
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
|
import com.njcn.common.utils.HttpResultUtil;
|
||||||
|
import com.njcn.device.pq.api.LineFeignClient;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.line.RMpEventDetailService;
|
||||||
|
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.util.CollectionUtils;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2022/12/28 13:47【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Api(tags = "监测点暂态指标超标明细")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/rmpeventdetail")
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class RMpEventdetailController extends BaseController {
|
||||||
|
|
||||||
|
private final LineFeignClient lineFeignClient;
|
||||||
|
|
||||||
|
private final RMpEventDetailService rMpEventDetailService;
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("/eventdetailHandler")
|
||||||
|
@ApiOperation("监测点暂态指标处理")
|
||||||
|
@ApiImplicitParam(name = "lineParam", value = "参数", required = true)
|
||||||
|
public HttpResult<String> eventdetailHandler(@RequestBody @Validated LineParam lineParam){
|
||||||
|
log.info(LocalDateTime.now()+"eventdetailHandler始执行");
|
||||||
|
String methodDescribe = getMethodDescribe("eventdetailHandler");
|
||||||
|
List<String> indexLists = new ArrayList<> ();
|
||||||
|
if(CollectionUtils.isEmpty (lineParam.getLineIds ())){
|
||||||
|
indexLists = lineFeignClient.getLineList ( ).getData ( );
|
||||||
|
}else{
|
||||||
|
indexLists = lineParam.getLineIds ();
|
||||||
|
}
|
||||||
|
lineParam.setLineIds (indexLists);
|
||||||
|
|
||||||
|
rMpEventDetailService.eventdetailHandler (lineParam);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -46,7 +46,7 @@ public class RMpMonitorEvaluateDController extends BaseController {
|
|||||||
@ApiImplicitParam(value = "jobParam",name = "jobParam",required = true)
|
@ApiImplicitParam(value = "jobParam",name = "jobParam",required = true)
|
||||||
@PostMapping("handlerMonitorEvaluate")
|
@PostMapping("handlerMonitorEvaluate")
|
||||||
@OperateInfo(info = LogEnum.BUSINESS_MEDIUM)
|
@OperateInfo(info = LogEnum.BUSINESS_MEDIUM)
|
||||||
public HttpResult<Boolean> dataToDayHandler(@RequestBody LineParam jobParam ){
|
public HttpResult<Boolean> handlerMonitorEvaluate(@RequestBody LineParam jobParam ){
|
||||||
|
|
||||||
log.info(LocalDateTime.now()+"handlerMonitorEvaluate开始执行");
|
log.info(LocalDateTime.now()+"handlerMonitorEvaluate开始执行");
|
||||||
String methodDescribe = getMethodDescribe("handlerMonitorEvaluate");
|
String methodDescribe = getMethodDescribe("handlerMonitorEvaluate");
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
package com.njcn.prepare.harmonic.controller.newalgorithm;
|
||||||
|
|
||||||
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
|
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||||
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
|
import com.njcn.common.utils.HttpResultUtil;
|
||||||
|
import com.njcn.device.pq.api.LineFeignClient;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.line.RMpPassRateDService;
|
||||||
|
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.util.CollectionUtils;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2022/12/28 13:47【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Api(tags = "监测点稳态指标合格率统计")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/rmppassrate")
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class RMpPassRateController extends BaseController {
|
||||||
|
|
||||||
|
private final LineFeignClient lineFeignClient;
|
||||||
|
|
||||||
|
private final RMpPassRateDService rMpPassRateDService;
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("/passRateHandler")
|
||||||
|
@ApiOperation("监测点稳态指标合格率统计")
|
||||||
|
@ApiImplicitParam(name = "lineParam", value = "参数", required = true)
|
||||||
|
public HttpResult<String> passRateHandler(@RequestBody @Validated LineParam lineParam){
|
||||||
|
log.info(LocalDateTime.now()+"passRateHandler始执行");
|
||||||
|
String methodDescribe = getMethodDescribe("passRateHandler");
|
||||||
|
List<String> indexLists = new ArrayList<> ();
|
||||||
|
if(CollectionUtils.isEmpty (lineParam.getLineIds ())){
|
||||||
|
indexLists = lineFeignClient.getLineList ( ).getData ( );
|
||||||
|
}else{
|
||||||
|
indexLists = lineParam.getLineIds ();
|
||||||
|
}
|
||||||
|
lineParam.setLineIds (indexLists);
|
||||||
|
|
||||||
|
rMpPassRateDService.passRateHandler (lineParam);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
package com.njcn.prepare.harmonic.controller.newalgorithm;
|
||||||
|
|
||||||
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
|
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||||
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
|
import com.njcn.common.utils.HttpResultUtil;
|
||||||
|
import com.njcn.device.pq.api.LineFeignClient;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorMService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorService;
|
||||||
|
import com.njcn.web.controller.BaseController;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2023/4/19 15:45【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/roperatingmonitor")
|
||||||
|
@Api(tags = "监测点数据质量")
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ROperatingMonitorController extends BaseController {
|
||||||
|
private final LineFeignClient lineFeignClient;
|
||||||
|
|
||||||
|
private final ROperatingMonitorService rOperatingMonitorService;
|
||||||
|
private final ROperatingMonitorMService rOperatingMonitorMService;
|
||||||
|
|
||||||
|
@ApiOperation("监测点数据质量_日统计(MySQL库)")
|
||||||
|
@ApiImplicitParam(value = "jobParam",name = "jobParam",required = true)
|
||||||
|
@PostMapping("handlerMonitorOperatingD")
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_MEDIUM)
|
||||||
|
public HttpResult<Boolean> handlerMonitorOperatingD(@RequestBody LineParam jobParam ){
|
||||||
|
|
||||||
|
log.info(LocalDateTime.now()+"handlerMonitorOperatingD开始执行");
|
||||||
|
String methodDescribe = getMethodDescribe("handlerMonitorOperatingD");
|
||||||
|
List<String> indexLists = new ArrayList<> ();
|
||||||
|
if(CollectionUtils.isEmpty (jobParam.getLineIds ())){
|
||||||
|
indexLists = lineFeignClient.getLineList ( ).getData ( );
|
||||||
|
}else{
|
||||||
|
indexLists = jobParam.getLineIds ();
|
||||||
|
}
|
||||||
|
|
||||||
|
rOperatingMonitorService.handlerMonitorOperatingD (indexLists,jobParam.getDataDate ());
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("监测点数据质量_月统计(MySQL库)")
|
||||||
|
@ApiImplicitParam(value = "jobParam",name = "jobParam",required = true)
|
||||||
|
@PostMapping("handlerMonitorOperatingM")
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_MEDIUM)
|
||||||
|
public HttpResult<Boolean> handlerMonitorOperatingM(@RequestBody LineParam jobParam ){
|
||||||
|
|
||||||
|
log.info(LocalDateTime.now()+"handlerMonitorOperatingM开始执行");
|
||||||
|
String methodDescribe = getMethodDescribe("handlerMonitorOperatingM");
|
||||||
|
List<String> indexLists = new ArrayList<> ();
|
||||||
|
if(CollectionUtils.isEmpty (jobParam.getLineIds ())){
|
||||||
|
indexLists = lineFeignClient.getLineList ( ).getData ( );
|
||||||
|
}else{
|
||||||
|
indexLists = jobParam.getLineIds ();
|
||||||
|
}
|
||||||
|
|
||||||
|
rOperatingMonitorMService.handlerMonitorOperatingM (indexLists,jobParam.getDataDate ());
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.njcn.prepare.harmonic.mapper.mysql.line;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.RMpEventDetailPO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2023/4/23 13:50【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
public interface RMpEventDetailMapper extends BaseMapper<RMpEventDetailPO> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.njcn.prepare.harmonic.mapper.mysql.line;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2023/4/21 10:17【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
public interface ROperatingMonitorDMapper extends MppBaseMapper<ROperatingMonitorDPO> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.njcn.prepare.harmonic.mapper.mysql.line;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorMPO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2023/4/21 15:41【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
public interface ROperatingMonitorMMapper extends MppBaseMapper<ROperatingMonitorMPO> {
|
||||||
|
}
|
||||||
@@ -1,14 +1,15 @@
|
|||||||
package com.njcn.prepare.harmonic.mapper.mysql.line;
|
package com.njcn.prepare.harmonic.mapper.mysql.line;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
import com.njcn.device.pq.pojo.po.RStatAbnormalD;
|
import com.njcn.prepare.harmonic.pojo.mysql.RStatAbnormalDPO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* RStatAbnormalDMapper
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2023/4/21 9:07【需求编号】
|
||||||
*
|
*
|
||||||
* @author qijian
|
* @author clam
|
||||||
* @date 2022/10/26
|
* @version V1.0.0
|
||||||
*/
|
*/
|
||||||
public interface RStatAbnormalDMapper extends BaseMapper<RStatAbnormalD> {
|
public interface RStatAbnormalDMapper extends MppBaseMapper<RStatAbnormalDPO> {
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
<?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.prepare.harmonic.mapper.mysql.line.RMpEventDetailMapper">
|
||||||
|
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.mysql.RMpEventDetailPO">
|
||||||
|
<!--@mbg.generated-->
|
||||||
|
<!--@Table r_mp_event_detail-->
|
||||||
|
<id column="event_id" jdbcType="CHAR" property="eventId" />
|
||||||
|
<result column="measurement_point_id" jdbcType="VARCHAR" property="measurementPointId" />
|
||||||
|
<result column="event_type" jdbcType="CHAR" property="eventType" />
|
||||||
|
<result column="advance_reason" jdbcType="CHAR" property="advanceReason" />
|
||||||
|
<result column="advance_type" jdbcType="CHAR" property="advanceType" />
|
||||||
|
<result column="eventass_index" jdbcType="VARCHAR" property="eventassIndex" />
|
||||||
|
<result column="dq_time" jdbcType="DOUBLE" property="dqTime" />
|
||||||
|
<result column="deal_time" jdbcType="TIMESTAMP" property="dealTime" />
|
||||||
|
<result column="num" jdbcType="INTEGER" property="num" />
|
||||||
|
<result column="file_flag" jdbcType="BOOLEAN" property="fileFlag" />
|
||||||
|
<result column="deal_flag" jdbcType="BOOLEAN" property="dealFlag" />
|
||||||
|
<result column="first_time" jdbcType="TIMESTAMP" property="firstTime" />
|
||||||
|
<result column="first_type" jdbcType="VARCHAR" property="firstType" />
|
||||||
|
<result column="first_ms" jdbcType="DECIMAL" property="firstMs" />
|
||||||
|
<result column="energy" jdbcType="DOUBLE" property="energy" />
|
||||||
|
<result column="severity" jdbcType="DOUBLE" property="severity" />
|
||||||
|
<result column="sagsource" jdbcType="VARCHAR" property="sagsource" />
|
||||||
|
<result column="start_time" jdbcType="TIMESTAMP" property="startTime" />
|
||||||
|
<result column="duration" jdbcType="DECIMAL" property="duration" />
|
||||||
|
<result column="feature_amplitude" jdbcType="DECIMAL" property="featureAmplitude" />
|
||||||
|
<result column="phase" jdbcType="VARCHAR" property="phase" />
|
||||||
|
<result column="event_describe" jdbcType="VARCHAR" property="eventDescribe" />
|
||||||
|
<result column="wave_path" jdbcType="VARCHAR" property="wavePath" />
|
||||||
|
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||||
|
<result column="transient_value" jdbcType="DOUBLE" property="transientValue" />
|
||||||
|
</resultMap>
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
<!--@mbg.generated-->
|
||||||
|
event_id, measurement_point_id, event_type, advance_reason, advance_type, eventass_index,
|
||||||
|
dq_time, deal_time, num, file_flag, deal_flag, first_time, first_type, first_ms,
|
||||||
|
energy, severity, sagsource, start_time, duration, feature_amplitude, phase, event_describe,
|
||||||
|
wave_path, create_time, transient_value
|
||||||
|
</sql>
|
||||||
|
</mapper>
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
<?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.prepare.harmonic.mapper.mysql.line.ROperatingMonitorDMapper">
|
||||||
|
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO">
|
||||||
|
<!--@mbg.generated-->
|
||||||
|
<!--@Table r_operating_monitor_d-->
|
||||||
|
<id column="data_date" jdbcType="TIMESTAMP" property="dataDate" />
|
||||||
|
<id column="measurement_point_id" jdbcType="VARCHAR" property="measurementPointId" />
|
||||||
|
<result column="dev_id" jdbcType="VARCHAR" property="devId" />
|
||||||
|
<result column="monitor_state" jdbcType="VARCHAR" property="monitorState" />
|
||||||
|
<result column="effective_minute_count" jdbcType="DECIMAL" property="effectiveMinuteCount" />
|
||||||
|
<result column="data_integrity_rate" jdbcType="DECIMAL" property="dataIntegrityRate" />
|
||||||
|
<result column="data_right_rate" jdbcType="DECIMAL" property="dataRightRate" />
|
||||||
|
<result column="index_integrity_rate" jdbcType="DECIMAL" property="indexIntegrityRate" />
|
||||||
|
<result column="is_unusual" jdbcType="INTEGER" property="isUnusual" />
|
||||||
|
</resultMap>
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
<!--@mbg.generated-->
|
||||||
|
data_date, measurement_point_id, dev_id, monitor_state, effective_minute_count, data_integrity_rate,
|
||||||
|
data_right_rate, index_integrity_rate, is_unusual
|
||||||
|
</sql>
|
||||||
|
</mapper>
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
<?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.prepare.harmonic.mapper.mysql.line.ROperatingMonitorMMapper">
|
||||||
|
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorMPO">
|
||||||
|
<!--@mbg.generated-->
|
||||||
|
<!--@Table r_operating_monitor_m-->
|
||||||
|
<id column="data_date" jdbcType="TIMESTAMP" property="dataDate" />
|
||||||
|
<id column="measurement_point_id" jdbcType="VARCHAR" property="measurementPointId" />
|
||||||
|
<result column="dev_id" jdbcType="VARCHAR" property="devId" />
|
||||||
|
<result column="monitor_state" jdbcType="VARCHAR" property="monitorState" />
|
||||||
|
<result column="effective_minute_count" jdbcType="DECIMAL" property="effectiveMinuteCount" />
|
||||||
|
<result column="data_integrity_rate" jdbcType="DECIMAL" property="dataIntegrityRate" />
|
||||||
|
<result column="data_right_rate" jdbcType="DECIMAL" property="dataRightRate" />
|
||||||
|
<result column="index_integrity_rate" jdbcType="DECIMAL" property="indexIntegrityRate" />
|
||||||
|
<result column="is_unusual" jdbcType="INTEGER" property="isUnusual" />
|
||||||
|
</resultMap>
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
<!--@mbg.generated-->
|
||||||
|
data_date, measurement_point_id, dev_id, monitor_state, effective_minute_count, data_integrity_rate,
|
||||||
|
data_right_rate, index_integrity_rate, is_unusual
|
||||||
|
</sql>
|
||||||
|
</mapper>
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
<?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.prepare.harmonic.mapper.mysql.line.RStatAbnormalDMapper">
|
||||||
|
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.mysql.RStatAbnormalDPO">
|
||||||
|
<!--@mbg.generated-->
|
||||||
|
<!--@Table r_stat_abnormal_d-->
|
||||||
|
<id column="data_date" jdbcType="DATE" property="dataDate" />
|
||||||
|
<id column="measurement_point_id" jdbcType="VARCHAR" property="measurementPointId" />
|
||||||
|
<result column="value_alarm" jdbcType="INTEGER" property="valueAlarm" />
|
||||||
|
</resultMap>
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
<!--@mbg.generated-->
|
||||||
|
data_date, measurement_point_id, value_alarm
|
||||||
|
</sql>
|
||||||
|
</mapper>
|
||||||
@@ -78,14 +78,14 @@ public class DataVInfluxdbServiceImpl implements DataVInfluxdbService {
|
|||||||
String startTime = date+" "+"00:00:00";
|
String startTime = date+" "+"00:00:00";
|
||||||
String endTime = date+" "+"23:59:59";
|
String endTime = date+" "+"23:59:59";
|
||||||
String Sql = "SELECT time, MAX(freq) as freq_max,MIN(freq) as freq_min,MAX(v_thd) as v_thd_max,MIN(v_thd) as v_thd_min,MAX(v_unbalance) as v_unbalance_max,MIN(v_unbalance) as v_unbalance_min from data_v where line_id='"+lineId+
|
String Sql = "SELECT time, MAX(freq) as freq_max,MIN(freq) as freq_min,MAX(v_thd) as v_thd_max,MIN(v_thd) as v_thd_min,MAX(v_unbalance) as v_unbalance_max,MIN(v_unbalance) as v_unbalance_min from data_v where line_id='"+lineId+
|
||||||
"'and "+ InfluxDBPublicParam.TIME+">='"+startTime+"'and "+ InfluxDBPublicParam.TIME+"<='"+endTime+"' and phasic_type ='T' group by time("+statisticalInterval+"m ) fill(none) "+InfluxDBPublicParam.TIME_ZONE;
|
"'and "+ InfluxDBPublicParam.TIME+">='"+startTime+"'and "+ InfluxDBPublicParam.TIME+"<='"+endTime+"' and phasic_type ='T' and value_type='AVG' group by time("+statisticalInterval+"m ) fill(none) "+InfluxDBPublicParam.TIME_ZONE;
|
||||||
QueryResult query = influxDbUtils.query(Sql);
|
QueryResult query = influxDbUtils.query(Sql);
|
||||||
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
|
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
|
||||||
List<DataV> dataVS = resultMapper.toPOJO(query, DataV.class);
|
List<DataV> dataVS = resultMapper.toPOJO(query, DataV.class);
|
||||||
/*rms,rms_lvr 取ABC项数据任意一个数据*/
|
/*rms,rms_lvr 取ABC项数据任意一个数据*/
|
||||||
|
|
||||||
String Sql2 = "SELECT time, MAX(rms) as rms_max,MIN(rms) as rms_min,MAX(rms_lvr) as rms_lvr_max,MIN(rms_lvr) as rms_lvr_min from data_v where line_id='"+lineId+
|
String Sql2 = "SELECT time, MAX(rms) as rms_max,MIN(rms) as rms_min,MAX(rms_lvr) as rms_lvr_max,MIN(rms_lvr) as rms_lvr_min from data_v where line_id='"+lineId+
|
||||||
"'and "+ InfluxDBPublicParam.TIME+">='"+startTime+"'and "+ InfluxDBPublicParam.TIME+"<='"+endTime+"' and phasic_type ='A' group by time("+statisticalInterval+"m ) fill(none) "+InfluxDBPublicParam.TIME_ZONE;
|
"'and "+ InfluxDBPublicParam.TIME+">='"+startTime+"'and "+ InfluxDBPublicParam.TIME+"<='"+endTime+"' and phasic_type ='A' and value_type='AVG' group by time("+statisticalInterval+"m ) fill(none) "+InfluxDBPublicParam.TIME_ZONE;
|
||||||
QueryResult query2 = influxDbUtils.query(Sql2);
|
QueryResult query2 = influxDbUtils.query(Sql2);
|
||||||
InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper();
|
InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper();
|
||||||
List<DataV> dataVS2 = resultMapper2.toPOJO(query2, DataV.class);
|
List<DataV> dataVS2 = resultMapper2.toPOJO(query2, DataV.class);
|
||||||
|
|||||||
@@ -3,18 +3,18 @@ package com.njcn.prepare.harmonic.service.mysql.Impl.line;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.njcn.device.biz.enums.DeviceResponseEnum;
|
||||||
import com.njcn.device.pms.api.DistributionMonitorClient;
|
import com.njcn.device.pms.api.DistributionMonitorClient;
|
||||||
import com.njcn.device.pms.api.MonitorClient;
|
import com.njcn.device.pms.api.MonitorClient;
|
||||||
import com.njcn.device.pms.pojo.po.DistributionMonitor;
|
import com.njcn.device.pms.pojo.po.DistributionMonitor;
|
||||||
import com.njcn.device.pms.pojo.po.Monitor;
|
import com.njcn.device.pms.pojo.po.Monitor;
|
||||||
import com.njcn.device.pq.constant.Param;
|
import com.njcn.device.pq.constant.Param;
|
||||||
import com.njcn.device.biz.enums.DeviceResponseEnum;
|
|
||||||
import com.njcn.device.pq.pojo.po.DataV;
|
import com.njcn.device.pq.pojo.po.DataV;
|
||||||
import com.njcn.device.pq.pojo.po.PmsAbnormalRules;
|
import com.njcn.device.pq.pojo.po.PmsAbnormalRules;
|
||||||
import com.njcn.device.pq.pojo.po.RStatAbnormalD;
|
|
||||||
import com.njcn.prepare.harmonic.constant.AlgorithmParam;
|
import com.njcn.prepare.harmonic.constant.AlgorithmParam;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.line.PmsAbnormalRulesMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.line.PmsAbnormalRulesMapper;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.line.RStatAbnormalDMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.line.RStatAbnormalDMapper;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.RStatAbnormalDPO;
|
||||||
import com.njcn.prepare.harmonic.pojo.oracle.PqLinedetailPO;
|
import com.njcn.prepare.harmonic.pojo.oracle.PqLinedetailPO;
|
||||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||||
import com.njcn.prepare.harmonic.pojo.vo.DataVOracleVO;
|
import com.njcn.prepare.harmonic.pojo.vo.DataVOracleVO;
|
||||||
@@ -367,11 +367,11 @@ public class DataExceptionServiceImpl implements DataExceptionService {
|
|||||||
* @date 2022/11/29
|
* @date 2022/11/29
|
||||||
*/
|
*/
|
||||||
private void addData(String lineId, Date date) {
|
private void addData(String lineId, Date date) {
|
||||||
LambdaQueryWrapper<RStatAbnormalD> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<RStatAbnormalDPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper.eq(RStatAbnormalD::getMeasurementPointId, lineId).eq(RStatAbnormalD::getDataDate, date);
|
lambdaQueryWrapper.eq(RStatAbnormalDPO::getMeasurementPointId, lineId).eq(RStatAbnormalDPO::getDataDate, date);
|
||||||
RStatAbnormalD rStatAbnormalDOne = rStatAbnormalDMapper.selectOne(lambdaQueryWrapper);
|
RStatAbnormalDPO rStatAbnormalDOne = rStatAbnormalDMapper.selectOne(lambdaQueryWrapper);
|
||||||
if (Objects.isNull(rStatAbnormalDOne)){
|
if (Objects.isNull(rStatAbnormalDOne)){
|
||||||
RStatAbnormalD rStatAbnormalD = new RStatAbnormalD();
|
RStatAbnormalDPO rStatAbnormalD = new RStatAbnormalDPO();
|
||||||
rStatAbnormalD.setDataDate(date);
|
rStatAbnormalD.setDataDate(date);
|
||||||
rStatAbnormalD.setMeasurementPointId(lineId);
|
rStatAbnormalD.setMeasurementPointId(lineId);
|
||||||
rStatAbnormalD.setValueAlarm(0);
|
rStatAbnormalD.setValueAlarm(0);
|
||||||
|
|||||||
@@ -0,0 +1,165 @@
|
|||||||
|
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.njcn.harmonic.pojo.po.RMpEventDetailDPO;
|
||||||
|
import com.njcn.harmonic.pojo.po.RMpEventDetailMPO;
|
||||||
|
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpEventDetailMapper;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.RMpEventDetailPO;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.line.RMpEventDetailDService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.line.RMpEventDetailMService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.line.RMpEventDetailService;
|
||||||
|
import com.njcn.redis.utils.RedisUtil;
|
||||||
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
|
import com.njcn.system.enums.DicDataEnum;
|
||||||
|
import com.njcn.system.pojo.po.DictData;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.SneakyThrows;
|
||||||
|
import org.springframework.scheduling.annotation.Async;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2023/4/23 13:50【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class RMpEventDetailServiceImpl extends ServiceImpl<RMpEventDetailMapper, RMpEventDetailPO> implements RMpEventDetailService{
|
||||||
|
|
||||||
|
private final RMpEventDetailDService rMpEventDetailDService;
|
||||||
|
|
||||||
|
private final RMpEventDetailMService rMpEventDetailMService;
|
||||||
|
|
||||||
|
private final DicDataFeignClient dicDataFeignClient;
|
||||||
|
|
||||||
|
private final RedisUtil redisUtil;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = {Exception.class})
|
||||||
|
@Async("asyncExecutor")
|
||||||
|
public void eventdetailHandler(LineParam lineParam) {
|
||||||
|
this.hanlderData(lineParam);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer queryByCondition(String measurementPointId, String dataDate, String eventType) {
|
||||||
|
QueryWrapper<RMpEventDetailPO> queryWrapper = new QueryWrapper ( );
|
||||||
|
queryWrapper.select ("1").
|
||||||
|
eq ("measurement_point_id", measurementPointId).
|
||||||
|
eq ("event_type",eventType).
|
||||||
|
eq("DATE_FORMAT( start_time ,'%Y-%m-%d')",dataDate);
|
||||||
|
|
||||||
|
Integer integer = this.getBaseMapper ().selectCount (queryWrapper);
|
||||||
|
|
||||||
|
return integer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: hanlderOracleData
|
||||||
|
* @Param: [lineParam]
|
||||||
|
* @return: void
|
||||||
|
* @Author: clam
|
||||||
|
* @Date: 2022/12/28
|
||||||
|
*/
|
||||||
|
private void hanlderData(LineParam lineParam) {
|
||||||
|
Integer type = lineParam.getType ( );
|
||||||
|
switch (type) {
|
||||||
|
// case 1:
|
||||||
|
// this.hanlderYear (lineParam);
|
||||||
|
// break;
|
||||||
|
// case 2:
|
||||||
|
// this.hanlderQtr (lineParam);
|
||||||
|
// break;
|
||||||
|
case 3:
|
||||||
|
this.hanlderMonth (lineParam);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
this.hanlderDay (lineParam);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@SneakyThrows
|
||||||
|
private void hanlderMonth(LineParam lineParam) {
|
||||||
|
|
||||||
|
|
||||||
|
List<String> lineIds = lineParam.getLineIds ( );
|
||||||
|
String dataDate = lineParam.getDataDate ( );
|
||||||
|
final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse (dataDate);
|
||||||
|
List<RMpEventDetailMPO> rMpEventDetailMPOList = new ArrayList<> ( );
|
||||||
|
|
||||||
|
lineIds.forEach (measurementPointId -> {
|
||||||
|
/*查询day表数据生成月表数据*/
|
||||||
|
List<RMpEventDetailDPO> rMpEventDetailDPOList = rMpEventDetailDService.queryOneMothData(measurementPointId,dataDate);
|
||||||
|
int sagCount = rMpEventDetailDPOList.stream ( ).mapToInt (RMpEventDetailDPO::getSagTimes).sum ( );
|
||||||
|
int riseCount = rMpEventDetailDPOList.stream ( ).mapToInt (RMpEventDetailDPO::getSwellTimes).sum ( );
|
||||||
|
int interruptCount = rMpEventDetailDPOList.stream ( ).mapToInt (RMpEventDetailDPO::getInterruptTimes).sum ( );
|
||||||
|
|
||||||
|
RMpEventDetailMPO rMpEventDetailMPO = new RMpEventDetailMPO();
|
||||||
|
rMpEventDetailMPO.setMeasurementPointId (measurementPointId);
|
||||||
|
rMpEventDetailMPO.setDataDate (tempDate);
|
||||||
|
rMpEventDetailMPO.setSagTimes (sagCount);
|
||||||
|
rMpEventDetailMPO.setSwellTimes (riseCount);
|
||||||
|
rMpEventDetailMPO.setInterruptTimes (interruptCount);
|
||||||
|
rMpEventDetailMPOList.add (rMpEventDetailMPO);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
rMpEventDetailMService.saveOrUpdateBatchByMultiId (rMpEventDetailMPOList,500);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@SneakyThrows
|
||||||
|
private void hanlderDay(LineParam lineParam) {
|
||||||
|
|
||||||
|
List<String> lineIds = lineParam.getLineIds ( );
|
||||||
|
String dataDate = lineParam.getDataDate ( );
|
||||||
|
final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse (dataDate);
|
||||||
|
List<RMpEventDetailDPO> rMpEventDetailDPOList = new ArrayList<> ( );
|
||||||
|
|
||||||
|
|
||||||
|
lineIds.forEach (measurementPointId -> {
|
||||||
|
Integer sagCount = this.queryByCondition (measurementPointId,dataDate, getEventTypeId(DicDataEnum.VOLTAGE_DIP.getCode ( )));
|
||||||
|
Integer riseCount = this.queryByCondition (measurementPointId,dataDate,getEventTypeId(DicDataEnum.VOLTAGE_RISE.getCode ( )));
|
||||||
|
Integer interruptCount = this.queryByCondition (measurementPointId,dataDate,getEventTypeId(DicDataEnum.SHORT_INTERRUPTIONS.getCode ( )));
|
||||||
|
RMpEventDetailDPO rMpEventDetailDPO = new RMpEventDetailDPO();
|
||||||
|
rMpEventDetailDPO.setMeasurementPointId (measurementPointId);
|
||||||
|
rMpEventDetailDPO.setDataDate (tempDate);
|
||||||
|
rMpEventDetailDPO.setSagTimes (sagCount);
|
||||||
|
rMpEventDetailDPO.setSwellTimes (riseCount);
|
||||||
|
rMpEventDetailDPO.setInterruptTimes (interruptCount);
|
||||||
|
|
||||||
|
rMpEventDetailDPOList.add (rMpEventDetailDPO);
|
||||||
|
});
|
||||||
|
|
||||||
|
rMpEventDetailDService.saveOrUpdateBatchByMultiId (rMpEventDetailDPOList,500);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEventTypeId(String code){
|
||||||
|
|
||||||
|
String eventType =redisUtil.getStringByKey (code);
|
||||||
|
eventType = Optional.ofNullable (eventType).orElseGet (() ->{
|
||||||
|
DictData data = dicDataFeignClient.getDicDataByCode (code).getData ( );
|
||||||
|
redisUtil.saveByKey (data.getCode (),data.getId ());
|
||||||
|
return data.getId ();
|
||||||
|
});
|
||||||
|
|
||||||
|
return eventType;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -14,14 +14,15 @@ import com.njcn.prepare.harmonic.pojo.po.DataFlicker;
|
|||||||
import com.njcn.prepare.harmonic.service.influxdb.DataIntegrityRateInfluxService;
|
import com.njcn.prepare.harmonic.service.influxdb.DataIntegrityRateInfluxService;
|
||||||
import com.njcn.prepare.harmonic.service.influxdb.DataVInfluxdbService;
|
import com.njcn.prepare.harmonic.service.influxdb.DataVInfluxdbService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.line.RMpMonitorEvaluateDService;
|
import com.njcn.prepare.harmonic.service.mysql.line.RMpMonitorEvaluateDService;
|
||||||
import com.njcn.prepare.harmonic.utils.PublicUtil;
|
|
||||||
import com.njcn.system.api.DicDataFeignClient;
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
import com.njcn.system.enums.DicDataTypeEnum;
|
import com.njcn.system.enums.DicDataTypeEnum;
|
||||||
import com.njcn.system.pojo.po.DictData;
|
import com.njcn.system.pojo.po.DictData;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.SneakyThrows;
|
||||||
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.scheduling.annotation.Async;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@@ -50,6 +51,7 @@ public class RMpMonitorEvaluateDServiceImpl extends MppServiceImpl<RMpMonitorEva
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = {Exception.class})
|
@Transactional(rollbackFor = {Exception.class})
|
||||||
@Async("asyncExecutor")
|
@Async("asyncExecutor")
|
||||||
|
@SneakyThrows
|
||||||
public void dayDataJobHandler(List<String> indexLists, String dataDate) {
|
public void dayDataJobHandler(List<String> indexLists, String dataDate) {
|
||||||
|
|
||||||
//1、取出规则
|
//1、取出规则
|
||||||
@@ -61,19 +63,31 @@ public class RMpMonitorEvaluateDServiceImpl extends MppServiceImpl<RMpMonitorEva
|
|||||||
|
|
||||||
indexLists.forEach (temp -> {
|
indexLists.forEach (temp -> {
|
||||||
LineDetailDataVO data = lineFeignClient.getLineDetailData (temp).getData ( );
|
LineDetailDataVO data = lineFeignClient.getLineDetailData (temp).getData ( );
|
||||||
|
if(Objects.isNull (data)){
|
||||||
|
System.out.println ( );
|
||||||
|
return;
|
||||||
|
}
|
||||||
/*todo 统计间隔,电压等级取值方式后期提供融合版本接口获取不然pms,pqs系统取值方式不一样*/
|
/*todo 统计间隔,电压等级取值方式后期提供融合版本接口获取不然pms,pqs系统取值方式不一样*/
|
||||||
/*统计间隔*/
|
/*统计间隔*/
|
||||||
Integer statisticalInterval = data.getTimeInterval ();
|
Integer statisticalInterval = data.getTimeInterval ();
|
||||||
/*电压等级*/
|
/*电压等级*/
|
||||||
Double voltage = PublicUtil.getVoltage (temp, dictDataList);
|
// Double voltage = PublicUtil.getVoltage (temp, dictDataList);
|
||||||
|
Double voltage =Double.parseDouble (data.getScale ().substring (0, data.getScale ().length ()-2));
|
||||||
|
|
||||||
List<DataVFiveItemDTO> fiveItems = dataVInfluxdbService.getFiveItems (temp, dataDate, statisticalInterval);
|
List<DataVFiveItemDTO> fiveItems = dataVInfluxdbService.getFiveItems (temp, dataDate, statisticalInterval);
|
||||||
|
if(CollectionUtils.isEmpty (fiveItems)){
|
||||||
|
return;
|
||||||
|
}
|
||||||
RMpMonitorEvaluateDPO rMpMonitorEvaluateDPO = calculateRMpMonitorEvaluateDPO (fiveItems, pmsAbnormalRules, voltage);
|
RMpMonitorEvaluateDPO rMpMonitorEvaluateDPO = calculateRMpMonitorEvaluateDPO (fiveItems, pmsAbnormalRules, voltage);
|
||||||
Date date = DateUtil.parse(dataDate);
|
Date date = DateUtil.parse(dataDate);
|
||||||
|
|
||||||
DataFlicker twoFlickerData = dataIntegrityRateInfluxService.getTwoFlickerData (temp, date, 5);
|
DataFlicker twoFlickerData = dataIntegrityRateInfluxService.getTwoFlickerData (temp, date, 5);
|
||||||
|
|
||||||
|
if(Objects.isNull (twoFlickerData)){
|
||||||
|
return;
|
||||||
|
}
|
||||||
rMpMonitorEvaluateDPO.setAllMinuteCount (fiveItems.size ());
|
rMpMonitorEvaluateDPO.setAllMinuteCount (fiveItems.size ());
|
||||||
rMpMonitorEvaluateDPO.setTimeId (date);
|
rMpMonitorEvaluateDPO.setDataDate (date);
|
||||||
rMpMonitorEvaluateDPO.setMeasurementPointId (temp);
|
rMpMonitorEvaluateDPO.setMeasurementPointId (temp);
|
||||||
rMpMonitorEvaluateDPO.setPltCount (twoFlickerData.getPltCount ());
|
rMpMonitorEvaluateDPO.setPltCount (twoFlickerData.getPltCount ());
|
||||||
rMpMonitorEvaluateDPO.setPstCount (twoFlickerData.getPstCount ());
|
rMpMonitorEvaluateDPO.setPstCount (twoFlickerData.getPstCount ());
|
||||||
|
|||||||
@@ -1,16 +1,32 @@
|
|||||||
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
|
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
|
import com.njcn.device.pq.api.LineFeignClient;
|
||||||
|
import com.njcn.device.pq.pojo.vo.LineDetailDataVO;
|
||||||
|
import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD;
|
||||||
|
import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD;
|
||||||
|
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPassRateDMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPassRateDMapper;
|
||||||
|
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailDMapper;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.RMpMonitorEvaluateDPO;
|
||||||
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateDPO;
|
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateDPO;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.line.RMpPassRateDService;
|
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateMPO;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateQPO;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateYPO;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.line.*;
|
||||||
|
import com.njcn.prepare.harmonic.utils.PublicUtil;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* Description:
|
* Description:
|
||||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
* Date: 2023/2/28 15:39【需求编号】
|
* Date: 2023/2/28 15:39【需求编号】
|
||||||
@@ -19,12 +35,179 @@ import java.util.List;
|
|||||||
* @version V1.0.0
|
* @version V1.0.0
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class RMpPassRateDServiceImpl extends MppServiceImpl<RMpPassRateDMapper, RMpPassRateDPO> implements RMpPassRateDService {
|
public class RMpPassRateDServiceImpl extends MppServiceImpl<RMpPassRateDMapper, RMpPassRateDPO> implements RMpPassRateDService {
|
||||||
|
|
||||||
|
private final LineFeignClient lineFeignClient;
|
||||||
|
private final RMpMonitorEvaluateDService rMpMonitorEvaluateDService;
|
||||||
|
private final RMpPartHarmonicDetailDMapper rMpPartHarmonicDetailDMapper;
|
||||||
|
private final RMpSurplusHarmonicDetailDMapper rMpSurplusHarmonicDetailDMapper;
|
||||||
|
|
||||||
|
private final RMpPassRateMService rMpPassRateMService;
|
||||||
|
private final RMpPassRateQService rMpPassRateQService;
|
||||||
|
private final RMpPassRateYService rMpPassRateYService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@DS("process")
|
@DS("process")
|
||||||
@Override
|
@Override
|
||||||
public List<RMpPassRateDPO> getAll() {
|
public List<RMpPassRateDPO> getAll() {
|
||||||
return this.list ( );
|
return this.list ( );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void passRateHandlerD(LineParam lineParam) {
|
||||||
|
List<String> lineIds = lineParam.getLineIds ( );
|
||||||
|
String dataDate = lineParam.getDataDate ( );
|
||||||
|
Date date = DateUtil.parse (dataDate);
|
||||||
|
List<RMpPassRateDPO> rMpPassRateDPOList = new ArrayList<> ( );
|
||||||
|
QueryWrapper<RMpMonitorEvaluateDPO> rMpMonitorEvaluateDPOQueryWrapper = new QueryWrapper ( );
|
||||||
|
|
||||||
|
QueryWrapper<RMpPartHarmonicDetailD> queryWrapper = new QueryWrapper ( );
|
||||||
|
QueryWrapper<RMpSurplusHarmonicDetailD> surplusHarmonicDetailDQueryWrapper = new QueryWrapper ( );
|
||||||
|
|
||||||
|
lineIds.forEach (temp -> {
|
||||||
|
LineDetailDataVO data = lineFeignClient.getLineDetailData (temp).getData ( );
|
||||||
|
Integer statisticalInterval = data.getTimeInterval ( );
|
||||||
|
rMpMonitorEvaluateDPOQueryWrapper.clear ();
|
||||||
|
rMpMonitorEvaluateDPOQueryWrapper.select ("effective_minute_count").
|
||||||
|
eq ("measurement_point_id", temp).
|
||||||
|
eq ("DATE_FORMAT( data_date ,'%Y-%m-%d')", lineParam.getDataDate ( ));
|
||||||
|
RMpMonitorEvaluateDPO one = rMpMonitorEvaluateDService.getOne (rMpMonitorEvaluateDPOQueryWrapper);
|
||||||
|
queryWrapper.clear ( );
|
||||||
|
queryWrapper.select ("freq_times", "v_dev_times").
|
||||||
|
eq ("measurement_point_id", temp).
|
||||||
|
eq ("DATE_FORMAT( data_date ,'%Y-%m-%d')", lineParam.getDataDate ( ));
|
||||||
|
RMpPartHarmonicDetailD rMpPartHarmonicDetailD = rMpPartHarmonicDetailDMapper.selectOne (queryWrapper);
|
||||||
|
|
||||||
|
surplusHarmonicDetailDQueryWrapper.clear ( );
|
||||||
|
surplusHarmonicDetailDQueryWrapper.select ("flicker_times").
|
||||||
|
eq ("measurement_point_id", temp).
|
||||||
|
eq ("DATE_FORMAT( data_date ,'%Y-%m-%d')", lineParam.getDataDate ( ));
|
||||||
|
RMpSurplusHarmonicDetailD rMpSurplusHarmonicDetailD = rMpSurplusHarmonicDetailDMapper.selectOne (surplusHarmonicDetailDQueryWrapper);
|
||||||
|
RMpPassRateDPO rMpPassRateDPO = new RMpPassRateDPO ( );
|
||||||
|
rMpPassRateDPO.setMeasurementPointId (temp);
|
||||||
|
rMpPassRateDPO.setDataDate (date);
|
||||||
|
rMpPassRateDPO.setEffectiveTime (statisticalInterval *one.getEffectiveMinuteCount ());
|
||||||
|
rMpPassRateDPO.setFreqTime (statisticalInterval * rMpPartHarmonicDetailD.getFreqTimes ( ));
|
||||||
|
rMpPassRateDPO.setvDevTime (statisticalInterval * rMpPartHarmonicDetailD.getVDevTimes ( ));
|
||||||
|
rMpPassRateDPO.setFlickerTime (statisticalInterval * rMpSurplusHarmonicDetailD.getFlickerTimes ( ));
|
||||||
|
|
||||||
|
rMpPassRateDPOList.add (rMpPassRateDPO);
|
||||||
|
|
||||||
|
});
|
||||||
|
this.saveOrUpdateBatchByMultiId(rMpPassRateDPOList, 500);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void passRateHandler(LineParam lineParam) {
|
||||||
|
Integer type = lineParam.getType ( );
|
||||||
|
switch (type) {
|
||||||
|
case 1:
|
||||||
|
this.passRateHandlerY (lineParam);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
this.passRateHandlerQ (lineParam);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
this.passRateHandlerM (lineParam);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
this.passRateHandlerD (lineParam);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void passRateHandlerY(LineParam lineParam) {
|
||||||
|
List<String> lineIds = lineParam.getLineIds ( );
|
||||||
|
String dataDate = lineParam.getDataDate ( );
|
||||||
|
Date date = DateUtil.parse (dataDate);
|
||||||
|
List<RMpPassRateYPO> rMpPassRateYPOList = new ArrayList<> ( );
|
||||||
|
|
||||||
|
lineIds.forEach (temp -> {
|
||||||
|
QueryWrapper<RMpPassRateDPO> queryWrapper = new QueryWrapper<> ();
|
||||||
|
queryWrapper.eq ("measurement_point_id", temp).
|
||||||
|
eq("YEAR( data_date )",dataDate.substring (0, 4));
|
||||||
|
List<RMpPassRateDPO> rMpPassRateDPOList = this.getBaseMapper ( ).selectList (queryWrapper);
|
||||||
|
RMpPassRateYPO rMpPassRateYPO = new RMpPassRateYPO();
|
||||||
|
rMpPassRateYPO.setMeasurementPointId (temp);
|
||||||
|
rMpPassRateYPO.setDataDate (date);
|
||||||
|
int sumEffectiveTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getEffectiveTime).sum ( );
|
||||||
|
int sumFreqTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getFreqTime).sum ( );
|
||||||
|
int sumDevTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getvDevTime).sum ( );
|
||||||
|
int sumFlickerTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getFlickerTime).sum ( );
|
||||||
|
|
||||||
|
rMpPassRateYPO.setFreqPassRate (calculatePassRate(sumEffectiveTime,sumFreqTime));
|
||||||
|
rMpPassRateYPO.setvDevPassRate (calculatePassRate(sumEffectiveTime,sumDevTime));
|
||||||
|
rMpPassRateYPO.setFlickerPassRate (calculatePassRate(sumEffectiveTime,sumFlickerTime));
|
||||||
|
rMpPassRateYPOList.add (rMpPassRateYPO);
|
||||||
|
});
|
||||||
|
rMpPassRateYService.saveOrUpdateBatchByMultiId (rMpPassRateYPOList, 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void passRateHandlerQ(LineParam lineParam) {
|
||||||
|
|
||||||
|
List<String> lineIds = lineParam.getLineIds ( );
|
||||||
|
String dataDate = lineParam.getDataDate ( );
|
||||||
|
Date date = DateUtil.parse (dataDate);
|
||||||
|
List<RMpPassRateQPO> rMpPassRateQPOList = new ArrayList<> ( );
|
||||||
|
|
||||||
|
lineIds.forEach (temp -> {
|
||||||
|
QueryWrapper<RMpPassRateDPO> queryWrapper = new QueryWrapper<> ();
|
||||||
|
queryWrapper.eq ("measurement_point_id", temp).
|
||||||
|
eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate));
|
||||||
|
List<RMpPassRateDPO> rMpPassRateDPOList = this.getBaseMapper ( ).selectList (queryWrapper);
|
||||||
|
RMpPassRateQPO rMpPassRateQPO = new RMpPassRateQPO();
|
||||||
|
rMpPassRateQPO.setMeasurementPointId (temp);
|
||||||
|
rMpPassRateQPO.setDataDate (date);
|
||||||
|
int sumEffectiveTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getEffectiveTime).sum ( );
|
||||||
|
int sumFreqTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getFreqTime).sum ( );
|
||||||
|
int sumDevTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getvDevTime).sum ( );
|
||||||
|
int sumFlickerTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getFlickerTime).sum ( );
|
||||||
|
|
||||||
|
rMpPassRateQPO.setFreqPassRate (calculatePassRate(sumEffectiveTime,sumFreqTime));
|
||||||
|
rMpPassRateQPO.setvDevPassRate (calculatePassRate(sumEffectiveTime,sumDevTime));
|
||||||
|
rMpPassRateQPO.setFlickerPassRate (calculatePassRate(sumEffectiveTime,sumFlickerTime));
|
||||||
|
rMpPassRateQPOList.add (rMpPassRateQPO);
|
||||||
|
});
|
||||||
|
rMpPassRateQService.saveOrUpdateBatchByMultiId (rMpPassRateQPOList, 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void passRateHandlerM(LineParam lineParam) {
|
||||||
|
|
||||||
|
List<String> lineIds = lineParam.getLineIds ( );
|
||||||
|
String dataDate = lineParam.getDataDate ( );
|
||||||
|
Date date = DateUtil.parse (dataDate);
|
||||||
|
List<RMpPassRateMPO> rMpPassRateMPOList = new ArrayList<> ( );
|
||||||
|
|
||||||
|
lineIds.forEach (temp -> {
|
||||||
|
QueryWrapper<RMpPassRateDPO> queryWrapper = new QueryWrapper<> ();
|
||||||
|
queryWrapper.eq ("measurement_point_id", temp).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring (0, 7));
|
||||||
|
List<RMpPassRateDPO> rMpPassRateDPOList = this.getBaseMapper ( ).selectList (queryWrapper);
|
||||||
|
RMpPassRateMPO rMpPassRateMPO = new RMpPassRateMPO();
|
||||||
|
rMpPassRateMPO.setMeasurementPointId (temp);
|
||||||
|
rMpPassRateMPO.setDataDate (date);
|
||||||
|
int sumEffectiveTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getEffectiveTime).sum ( );
|
||||||
|
int sumFreqTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getFreqTime).sum ( );
|
||||||
|
int sumDevTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getvDevTime).sum ( );
|
||||||
|
int sumFlickerTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getFlickerTime).sum ( );
|
||||||
|
|
||||||
|
rMpPassRateMPO.setFreqPassRate (calculatePassRate(sumEffectiveTime,sumFreqTime));
|
||||||
|
rMpPassRateMPO.setvDevPassRate (calculatePassRate(sumEffectiveTime,sumDevTime));
|
||||||
|
rMpPassRateMPO.setFlickerPassRate (calculatePassRate(sumEffectiveTime,sumFlickerTime));
|
||||||
|
rMpPassRateMPOList.add (rMpPassRateMPO);
|
||||||
|
});
|
||||||
|
rMpPassRateMService.saveOrUpdateBatchByMultiId (rMpPassRateMPOList, 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Double calculatePassRate(int sumEffectiveTime, int sumFreqTime) {
|
||||||
|
Double result =0.00;
|
||||||
|
if(sumEffectiveTime==0||sumEffectiveTime<=sumFreqTime){
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
result = (double) ((sumEffectiveTime-sumFreqTime)/sumEffectiveTime);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,104 @@
|
|||||||
|
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
|
import com.njcn.device.pq.api.LineFeignClient;
|
||||||
|
import com.njcn.device.pq.pojo.vo.LineDetailDataVO;
|
||||||
|
import com.njcn.prepare.harmonic.mapper.mysql.line.ROperatingMonitorDMapper;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.RMpMonitorEvaluateDPO;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.RStatAbnormalDPO;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.line.RMpMonitorEvaluateDService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.line.RStatAbnormalDService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.scheduling.annotation.Async;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2023/4/21 10:17【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class ROperatingMonitorDServiceImpl extends MppServiceImpl<ROperatingMonitorDMapper, ROperatingMonitorDPO> implements ROperatingMonitorService {
|
||||||
|
|
||||||
|
private final RMpMonitorEvaluateDService rMpMonitorEvaluateDService;
|
||||||
|
private final RStatAbnormalDService rStatAbnormalDService;
|
||||||
|
private final LineFeignClient lineFeignClient;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 采用以下公式计算数据完整率:
|
||||||
|
* 〖数据完整率〗_日统计=有效值数据个数/(1440/interval)*100%
|
||||||
|
* 采用以下公式计算数据准确率
|
||||||
|
* 〖数据准确率〗_日统计=(频率+相电压+线电压+畸变率+不平衡度)/(有效值数据个数*5)*100%
|
||||||
|
* 采用以下公式计算指标完整率
|
||||||
|
* 〖指标完整率〗_日统计=(频率+相电压+线电压+畸变率+不平衡度)/(1440/interval*5)*100% 采用以下公式计算数据完整率:
|
||||||
|
* 〖数据完整率〗_日统计=有效值数据个数/(1440/interval)*100%
|
||||||
|
* 采用以下公式计算数据准确率
|
||||||
|
* 〖数据准确率〗_日统计=(频率+相电压+线电压+畸变率+不平衡度)/(有效值数据个数*5)*100%
|
||||||
|
* 采用以下公式计算指标完整率
|
||||||
|
* 〖指标完整率〗_日统计=(频率+相电压+线电压+畸变率+不平衡度)/(1440/interval*5)*100%
|
||||||
|
* @Param: [indexLists, dataDate]
|
||||||
|
* @return: void
|
||||||
|
* @Author: clam
|
||||||
|
* @Date: 2023/4/21
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = {Exception.class})
|
||||||
|
@Async("asyncExecutor")
|
||||||
|
public void handlerMonitorOperatingD(List<String> indexLists, String dataDate) {
|
||||||
|
Date date = DateUtil.parse(dataDate);
|
||||||
|
List<ROperatingMonitorDPO> rOperatingMonitorDPOList = new ArrayList<> ();
|
||||||
|
indexLists.forEach (temp -> {
|
||||||
|
|
||||||
|
LineDetailDataVO data = lineFeignClient.getLineDetailData (temp).getData ( );
|
||||||
|
/*todo 统计间隔,电压等级取值方式,devid后期提供融合版本接口获取不然pms,pqs系统取值方式不一样*/
|
||||||
|
/*统计间隔*/
|
||||||
|
Integer statisticalInterval = data.getTimeInterval ();
|
||||||
|
String devid = "待获取";
|
||||||
|
|
||||||
|
RMpMonitorEvaluateDPO rMpMonitorEvaluateDPO = new RMpMonitorEvaluateDPO();
|
||||||
|
rMpMonitorEvaluateDPO.setMeasurementPointId (temp);
|
||||||
|
rMpMonitorEvaluateDPO.setDataDate (date);
|
||||||
|
rMpMonitorEvaluateDPO = rMpMonitorEvaluateDService.selectByMultiId (rMpMonitorEvaluateDPO);
|
||||||
|
RStatAbnormalDPO rStatAbnormalDPO = new RStatAbnormalDPO();
|
||||||
|
rStatAbnormalDPO.setDataDate (date);
|
||||||
|
rStatAbnormalDPO.setMeasurementPointId (temp);
|
||||||
|
rStatAbnormalDPO = rStatAbnormalDService.selectByMultiId (rStatAbnormalDPO);
|
||||||
|
ROperatingMonitorDPO rOperatingMonitorDPO = new ROperatingMonitorDPO();
|
||||||
|
rOperatingMonitorDPO.setMeasurementPointId (temp);
|
||||||
|
rOperatingMonitorDPO.setDataDate (date);
|
||||||
|
rOperatingMonitorDPO.setIsUnusual (rStatAbnormalDPO.getValueAlarm ());
|
||||||
|
rOperatingMonitorDPO.setEffectiveMinuteCount (rMpMonitorEvaluateDPO.getEffectiveMinuteCount ());
|
||||||
|
rOperatingMonitorDPO.setDataIntegrityRate (BigDecimal.valueOf (rMpMonitorEvaluateDPO.getEffectiveMinuteCount ()*statisticalInterval/1440));
|
||||||
|
rOperatingMonitorDPO.setDataRightRate (BigDecimal.valueOf(
|
||||||
|
(rMpMonitorEvaluateDPO.getFreqCount ()+ rMpMonitorEvaluateDPO.getLineVoltageCount ()+
|
||||||
|
rMpMonitorEvaluateDPO.getPhaseVoltageCount ()+rMpMonitorEvaluateDPO.getUnbalanceCount ()+
|
||||||
|
rMpMonitorEvaluateDPO.getVThdCount ())/(5*rMpMonitorEvaluateDPO.getEffectiveMinuteCount ())
|
||||||
|
));
|
||||||
|
rOperatingMonitorDPO.setIndexIntegrityRate (
|
||||||
|
BigDecimal.valueOf(
|
||||||
|
(rMpMonitorEvaluateDPO.getFreqCount ()+ rMpMonitorEvaluateDPO.getLineVoltageCount ()+
|
||||||
|
rMpMonitorEvaluateDPO.getPhaseVoltageCount ()+rMpMonitorEvaluateDPO.getUnbalanceCount ()+
|
||||||
|
rMpMonitorEvaluateDPO.getVThdCount ())*statisticalInterval/(5*1440)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
rOperatingMonitorDPO.setDevId (devid);
|
||||||
|
rOperatingMonitorDPO.setMonitorState ("待获取");
|
||||||
|
rOperatingMonitorDPOList.add (rOperatingMonitorDPO);
|
||||||
|
});
|
||||||
|
this.saveOrUpdateBatchByMultiId (rOperatingMonitorDPOList,500);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
|
import com.njcn.prepare.harmonic.mapper.mysql.line.ROperatingMonitorMMapper;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorMPO;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorMService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.scheduling.annotation.Async;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2023/4/21 15:41【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class ROperatingMonitorMServiceImpl extends MppServiceImpl<ROperatingMonitorMMapper, ROperatingMonitorMPO> implements ROperatingMonitorMService {
|
||||||
|
private final ROperatingMonitorService rOperatingMonitorService;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = {Exception.class})
|
||||||
|
@Async("asyncExecutor")
|
||||||
|
public void handlerMonitorOperatingM(List<String> indexLists, String dataDate) {
|
||||||
|
Date date = DateUtil.parse (dataDate);
|
||||||
|
List<ROperatingMonitorMPO> rOperatingMonitorMPOList = new ArrayList<> ( );
|
||||||
|
QueryWrapper<ROperatingMonitorDPO> queryWrapper = new QueryWrapper<> ( );
|
||||||
|
|
||||||
|
indexLists.forEach (temp -> {
|
||||||
|
queryWrapper.clear ( );
|
||||||
|
queryWrapper.eq ("measurement_point_id", temp).
|
||||||
|
eq ("DATE_FORMAT( data_date ,'%Y-%m')", dataDate.substring (0, 7));
|
||||||
|
List<ROperatingMonitorDPO> list = rOperatingMonitorService.list (queryWrapper);
|
||||||
|
ROperatingMonitorMPO rOperatingMonitorMPO = new ROperatingMonitorMPO ( );
|
||||||
|
BigDecimal dataIntegrityRate = BigDecimal.valueOf (
|
||||||
|
list.stream ( ).
|
||||||
|
mapToDouble (po -> po.getDataIntegrityRate ( ).doubleValue ( ))
|
||||||
|
.average ( ).getAsDouble ( )
|
||||||
|
);
|
||||||
|
BigDecimal dataRightRate = BigDecimal.valueOf (
|
||||||
|
list.stream ( ).
|
||||||
|
mapToDouble (po -> po.getDataRightRate ( ).doubleValue ( ))
|
||||||
|
.average ( ).getAsDouble ( )
|
||||||
|
);
|
||||||
|
BigDecimal indexIntegrityRate = BigDecimal.valueOf (
|
||||||
|
list.stream ( ).
|
||||||
|
mapToDouble (po -> po.getIndexIntegrityRate ( ).doubleValue ( ))
|
||||||
|
.average ( ).getAsDouble ( )
|
||||||
|
);
|
||||||
|
rOperatingMonitorMPO.setMeasurementPointId (temp);
|
||||||
|
rOperatingMonitorMPO.setDataDate (date);
|
||||||
|
rOperatingMonitorMPO.setDataIntegrityRate (dataIntegrityRate);
|
||||||
|
rOperatingMonitorMPO.setDataRightRate (dataRightRate);
|
||||||
|
rOperatingMonitorMPO.setIndexIntegrityRate (indexIntegrityRate);
|
||||||
|
rOperatingMonitorMPO.setDevId (list.get (0).getDevId ( ));
|
||||||
|
List<Integer> collect = list.stream ( ).map (ROperatingMonitorDPO::getIsUnusual).collect (Collectors.toList ( ));
|
||||||
|
rOperatingMonitorMPO.setIsUnusual (collect.contains (Integer.valueOf (0)) ? 0 : 1);
|
||||||
|
rOperatingMonitorMPOList.add (rOperatingMonitorMPO);
|
||||||
|
});
|
||||||
|
this.saveOrUpdateBatchByMultiId ( rOperatingMonitorMPOList,500);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
|
import com.njcn.prepare.harmonic.mapper.mysql.line.RStatAbnormalDMapper;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.RMpMonitorEvaluateDPO;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.RStatAbnormalDPO;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.line.RMpMonitorEvaluateDService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.line.RStatAbnormalDService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.scheduling.annotation.Async;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2023/4/21 9:07【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class RStatAbnormalDServiceImpl extends MppServiceImpl<RStatAbnormalDMapper, RStatAbnormalDPO> implements RStatAbnormalDService{
|
||||||
|
|
||||||
|
|
||||||
|
private final RMpMonitorEvaluateDService rMpMonitorEvaluateDService;
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = {Exception.class})
|
||||||
|
@Async("asyncExecutor")
|
||||||
|
public void handlerMonitorAbnormal(List<String> indexLists, String dataDate) {
|
||||||
|
Date date = DateUtil.parse(dataDate);
|
||||||
|
List<RStatAbnormalDPO> rStatAbnormalDPOS = new ArrayList<> ();
|
||||||
|
indexLists.forEach (temp -> {
|
||||||
|
RMpMonitorEvaluateDPO rMpMonitorEvaluateDPO = new RMpMonitorEvaluateDPO();
|
||||||
|
rMpMonitorEvaluateDPO.setMeasurementPointId (temp);
|
||||||
|
rMpMonitorEvaluateDPO.setDataDate (date);
|
||||||
|
rMpMonitorEvaluateDPO = rMpMonitorEvaluateDService.selectByMultiId (rMpMonitorEvaluateDPO);
|
||||||
|
RStatAbnormalDPO rStatAbnormalDPO = new RStatAbnormalDPO();
|
||||||
|
rStatAbnormalDPO.setDataDate (date);
|
||||||
|
rStatAbnormalDPO.setMeasurementPointId (temp);
|
||||||
|
rStatAbnormalDPO.setValueAlarm (rMpMonitorEvaluateDPO.getEffectiveMinuteCount ()
|
||||||
|
<rMpMonitorEvaluateDPO.getAllMinuteCount ()?0:1);
|
||||||
|
rStatAbnormalDPOS.add (rStatAbnormalDPO);
|
||||||
|
});
|
||||||
|
this.saveOrUpdateBatchByMultiId (rStatAbnormalDPOS,500);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package com.njcn.prepare.harmonic.service.mysql.line;
|
||||||
|
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.RMpEventDetailPO;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2023/4/23 13:50【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
public interface RMpEventDetailService extends IService<RMpEventDetailPO>{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: eventdetailHandler
|
||||||
|
* @Param: [lineParam]
|
||||||
|
* @return: void
|
||||||
|
* @Author: clam
|
||||||
|
* @Date: 2023/4/23
|
||||||
|
*/
|
||||||
|
void eventdetailHandler(LineParam lineParam);
|
||||||
|
|
||||||
|
Integer queryByCondition(String lineId, String dataDate, String eventType);
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@ package com.njcn.prepare.harmonic.service.mysql.line;
|
|||||||
|
|
||||||
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||||
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateDPO;
|
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateDPO;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -17,4 +18,6 @@ import java.util.List;
|
|||||||
public interface RMpPassRateDService extends IMppService<RMpPassRateDPO> {
|
public interface RMpPassRateDService extends IMppService<RMpPassRateDPO> {
|
||||||
|
|
||||||
List<RMpPassRateDPO> getAll();
|
List<RMpPassRateDPO> getAll();
|
||||||
|
|
||||||
|
void passRateHandler(LineParam lineParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package com.njcn.prepare.harmonic.service.mysql.line;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorMPO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2023/4/21 15:41【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
public interface ROperatingMonitorMService extends IMppService<ROperatingMonitorMPO> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: handlerMonitorOperatingM
|
||||||
|
* @Param: [indexLists, dataDate]
|
||||||
|
* @return: void
|
||||||
|
* @Author: clam
|
||||||
|
* @Date: 2023/4/21
|
||||||
|
*/
|
||||||
|
void handlerMonitorOperatingM(List<String> indexLists, String dataDate);
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package com.njcn.prepare.harmonic.service.mysql.line;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2023/4/21 10:17【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
public interface ROperatingMonitorService extends IMppService<ROperatingMonitorDPO> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: handlerMonitorOperatingD
|
||||||
|
* @Param: [indexLists, dataDate]
|
||||||
|
* @return: void
|
||||||
|
* @Author: clam
|
||||||
|
* @Date: 2023/4/21
|
||||||
|
*/
|
||||||
|
void handlerMonitorOperatingD(List<String> indexLists, String dataDate);
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package com.njcn.prepare.harmonic.service.mysql.line;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.RStatAbnormalDPO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2023/4/21 9:07【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
public interface RStatAbnormalDService extends IMppService<RStatAbnormalDPO> {
|
||||||
|
|
||||||
|
|
||||||
|
void handlerMonitorAbnormal(List<String> indexLists, String dataDate);
|
||||||
|
}
|
||||||
@@ -15,14 +15,13 @@ import com.njcn.system.pojo.param.AreaParam;
|
|||||||
import com.njcn.system.pojo.po.Area;
|
import com.njcn.system.pojo.po.Area;
|
||||||
import com.njcn.system.pojo.vo.AreaTreeVO;
|
import com.njcn.system.pojo.vo.AreaTreeVO;
|
||||||
import com.njcn.system.service.IAreaService;
|
import com.njcn.system.service.IAreaService;
|
||||||
|
import com.njcn.web.controller.BaseController;
|
||||||
import io.swagger.annotations.*;
|
import io.swagger.annotations.*;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import com.njcn.web.controller.BaseController;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -273,5 +272,21 @@ public class AreaController extends BaseController {
|
|||||||
Area result = areaService.areaDeptPro(id);
|
Area result = areaService.areaDeptPro(id);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 获取省市区下拉框
|
||||||
|
* @Param:
|
||||||
|
* @return:
|
||||||
|
* @Author: clam
|
||||||
|
* @Date: 2023/4/11
|
||||||
|
*/
|
||||||
|
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
|
||||||
|
@PostMapping("/areaSelect")
|
||||||
|
@ApiOperation("获取省市区下拉框")
|
||||||
|
public HttpResult<List<AreaTreeVO>> areaSelect() {
|
||||||
|
String methodDescribe = getMethodDescribe("areaSelect");
|
||||||
|
List<AreaTreeVO> result = areaService.areaSelect();
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.njcn.system.pojo.dto.AreaTreeDTO;
|
import com.njcn.system.pojo.dto.AreaTreeDTO;
|
||||||
import com.njcn.system.pojo.param.AreaParam;
|
import com.njcn.system.pojo.param.AreaParam;
|
||||||
import com.njcn.system.pojo.param.DictTypeParam;
|
|
||||||
import com.njcn.system.pojo.po.Area;
|
import com.njcn.system.pojo.po.Area;
|
||||||
import com.njcn.system.pojo.vo.AreaTreeVO;
|
import com.njcn.system.pojo.vo.AreaTreeVO;
|
||||||
|
|
||||||
@@ -105,4 +104,12 @@ public interface IAreaService extends IService<Area> {
|
|||||||
* @return 行政区域详情
|
* @return 行政区域详情
|
||||||
*/
|
*/
|
||||||
Area selectAreaByName(String name);
|
Area selectAreaByName(String name);
|
||||||
|
/**
|
||||||
|
* @Description: areaSelect
|
||||||
|
* @Param: []
|
||||||
|
* @return: java.util.List<com.njcn.system.pojo.vo.AreaTreeVO>
|
||||||
|
* @Author: clam
|
||||||
|
* @Date: 2023/4/11
|
||||||
|
*/
|
||||||
|
List<AreaTreeVO> areaSelect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ 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;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
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.enums.common.DataStateEnum;
|
||||||
import com.njcn.common.pojo.exception.BusinessException;
|
import com.njcn.common.pojo.exception.BusinessException;
|
||||||
import com.njcn.system.enums.SystemResponseEnum;
|
import com.njcn.system.enums.SystemResponseEnum;
|
||||||
@@ -15,18 +16,14 @@ import com.njcn.system.pojo.param.AreaParam;
|
|||||||
import com.njcn.system.pojo.po.Area;
|
import com.njcn.system.pojo.po.Area;
|
||||||
import com.njcn.system.pojo.vo.AreaTreeVO;
|
import com.njcn.system.pojo.vo.AreaTreeVO;
|
||||||
import com.njcn.system.service.IAreaService;
|
import com.njcn.system.service.IAreaService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import com.njcn.user.api.DeptFeignClient;
|
import com.njcn.user.api.DeptFeignClient;
|
||||||
import com.njcn.user.pojo.po.Dept;
|
|
||||||
import com.njcn.web.factory.PageFactory;
|
import com.njcn.web.factory.PageFactory;
|
||||||
import com.njcn.web.utils.RequestUtil;
|
import com.njcn.web.utils.RequestUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -286,5 +283,16 @@ public class AreaServiceImpl extends ServiceImpl<AreaMapper, Area> implements IA
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AreaTreeVO> areaSelect() {
|
||||||
|
List<AreaTreeVO> areaTreeVOS = this.baseMapper.getAreaAll();
|
||||||
|
List<AreaTreeVO> collect = areaTreeVOS.stream ( ).filter (temp ->"0".equals(temp.getPid()))
|
||||||
|
.map ((areaFirst) -> {
|
||||||
|
//map映射方法改变结果,调用getChildrens()方法,把一级部门deptFirst和所有数据allDept作为参数传递,查询所有下级部门
|
||||||
|
areaFirst.setChildren (getChildrens (areaFirst, areaTreeVOS));
|
||||||
|
return areaFirst;
|
||||||
|
}).collect (Collectors.toList ( ));
|
||||||
|
return collect;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user