代码提交
This commit is contained in:
@@ -59,6 +59,7 @@ public class AppTopologyDiagramServiceImpl extends MppServiceImpl<AppTopologyDia
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
public Boolean AuditAppTopologyDiagram(AppTopologyDiagramAuditParm appTopologyDiagramAuditParm) {
|
||||
AppTopologyDiagramPO appTopologyDiagramPO = new AppTopologyDiagramPO();
|
||||
if(!Objects.equal (appTopologyDiagramAuditParm.getFile (),null )){
|
||||
|
||||
@@ -47,6 +47,7 @@ public class CsEdDataServiceImpl extends ServiceImpl<CsEdDataMapper, CsEdDataPO>
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
public Boolean auditEdData(CsEdDataAuditParm csEdDataAuditParm) {
|
||||
CsEdDataPO csEdDataPO = new CsEdDataPO ();
|
||||
BeanUtils.copyProperties (csEdDataAuditParm, csEdDataPO);
|
||||
|
||||
@@ -40,7 +40,6 @@ public class NjcnBeanUtil {
|
||||
}
|
||||
}
|
||||
});
|
||||
System.out.println (target.toString ( ));
|
||||
return (T) target;
|
||||
}
|
||||
|
||||
|
||||
@@ -137,6 +137,7 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
|
||||
lineDetailDataVO.setDevCapacity(lineDetail.getDevCapacity());
|
||||
lineDetailDataVO.setShortCapacity(lineDetail.getShortCapacity());
|
||||
lineDetailDataVO.setStandardCapacity(lineDetail.getStandardCapacity());
|
||||
lineDetailDataVO.setTimeInterval (lineDetail.getTimeInterval ());
|
||||
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
|
||||
@TableName(value = "r_mp_monitor_evaluate_d")
|
||||
public class RMpMonitorEvaluateDPO {
|
||||
@MppMultiId(value = "time_id")
|
||||
@MppMultiId(value = "data_date")
|
||||
@ApiModelProperty(value="")
|
||||
private Date timeId;
|
||||
private Date dataDate;
|
||||
|
||||
/**
|
||||
* 监测点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)
|
||||
@PostMapping("handlerMonitorEvaluate")
|
||||
@OperateInfo(info = LogEnum.BUSINESS_MEDIUM)
|
||||
public HttpResult<Boolean> dataToDayHandler(@RequestBody LineParam jobParam ){
|
||||
public HttpResult<Boolean> handlerMonitorEvaluate(@RequestBody LineParam jobParam ){
|
||||
|
||||
log.info(LocalDateTime.now()+"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;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.njcn.device.pq.pojo.po.RStatAbnormalD;
|
||||
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.mysql.RStatAbnormalDPO;
|
||||
|
||||
/**
|
||||
* RStatAbnormalDMapper
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2023/4/21 9:07【需求编号】
|
||||
*
|
||||
* @author qijian
|
||||
* @date 2022/10/26
|
||||
* @author clam
|
||||
* @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 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+
|
||||
"'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);
|
||||
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
|
||||
List<DataV> dataVS = resultMapper.toPOJO(query, DataV.class);
|
||||
/*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+
|
||||
"'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);
|
||||
InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper();
|
||||
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.date.DateUtil;
|
||||
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.MonitorClient;
|
||||
import com.njcn.device.pms.pojo.po.DistributionMonitor;
|
||||
import com.njcn.device.pms.pojo.po.Monitor;
|
||||
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.PmsAbnormalRules;
|
||||
import com.njcn.device.pq.pojo.po.RStatAbnormalD;
|
||||
import com.njcn.prepare.harmonic.constant.AlgorithmParam;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.line.PmsAbnormalRulesMapper;
|
||||
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.param.LineParam;
|
||||
import com.njcn.prepare.harmonic.pojo.vo.DataVOracleVO;
|
||||
@@ -367,11 +367,11 @@ public class DataExceptionServiceImpl implements DataExceptionService {
|
||||
* @date 2022/11/29
|
||||
*/
|
||||
private void addData(String lineId, Date date) {
|
||||
LambdaQueryWrapper<RStatAbnormalD> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(RStatAbnormalD::getMeasurementPointId, lineId).eq(RStatAbnormalD::getDataDate, date);
|
||||
RStatAbnormalD rStatAbnormalDOne = rStatAbnormalDMapper.selectOne(lambdaQueryWrapper);
|
||||
LambdaQueryWrapper<RStatAbnormalDPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(RStatAbnormalDPO::getMeasurementPointId, lineId).eq(RStatAbnormalDPO::getDataDate, date);
|
||||
RStatAbnormalDPO rStatAbnormalDOne = rStatAbnormalDMapper.selectOne(lambdaQueryWrapper);
|
||||
if (Objects.isNull(rStatAbnormalDOne)){
|
||||
RStatAbnormalD rStatAbnormalD = new RStatAbnormalD();
|
||||
RStatAbnormalDPO rStatAbnormalD = new RStatAbnormalDPO();
|
||||
rStatAbnormalD.setDataDate(date);
|
||||
rStatAbnormalD.setMeasurementPointId(lineId);
|
||||
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.DataVInfluxdbService;
|
||||
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.enums.DicDataTypeEnum;
|
||||
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 org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
@@ -50,6 +51,7 @@ public class RMpMonitorEvaluateDServiceImpl extends MppServiceImpl<RMpMonitorEva
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
@Async("asyncExecutor")
|
||||
@SneakyThrows
|
||||
public void dayDataJobHandler(List<String> indexLists, String dataDate) {
|
||||
|
||||
//1、取出规则
|
||||
@@ -61,19 +63,31 @@ public class RMpMonitorEvaluateDServiceImpl extends MppServiceImpl<RMpMonitorEva
|
||||
|
||||
indexLists.forEach (temp -> {
|
||||
LineDetailDataVO data = lineFeignClient.getLineDetailData (temp).getData ( );
|
||||
if(Objects.isNull (data)){
|
||||
System.out.println ( );
|
||||
return;
|
||||
}
|
||||
/*todo 统计间隔,电压等级取值方式后期提供融合版本接口获取不然pms,pqs系统取值方式不一样*/
|
||||
/*统计间隔*/
|
||||
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);
|
||||
if(CollectionUtils.isEmpty (fiveItems)){
|
||||
return;
|
||||
}
|
||||
RMpMonitorEvaluateDPO rMpMonitorEvaluateDPO = calculateRMpMonitorEvaluateDPO (fiveItems, pmsAbnormalRules, voltage);
|
||||
Date date = DateUtil.parse(dataDate);
|
||||
|
||||
DataFlicker twoFlickerData = dataIntegrityRateInfluxService.getTwoFlickerData (temp, date, 5);
|
||||
|
||||
if(Objects.isNull (twoFlickerData)){
|
||||
return;
|
||||
}
|
||||
rMpMonitorEvaluateDPO.setAllMinuteCount (fiveItems.size ());
|
||||
rMpMonitorEvaluateDPO.setTimeId (date);
|
||||
rMpMonitorEvaluateDPO.setDataDate (date);
|
||||
rMpMonitorEvaluateDPO.setMeasurementPointId (temp);
|
||||
rMpMonitorEvaluateDPO.setPltCount (twoFlickerData.getPltCount ());
|
||||
rMpMonitorEvaluateDPO.setPstCount (twoFlickerData.getPstCount ());
|
||||
|
||||
@@ -1,16 +1,32 @@
|
||||
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.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
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.RMpSurplusHarmonicDetailDMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.mysql.RMpMonitorEvaluateDPO;
|
||||
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 java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2023/2/28 15:39【需求编号】
|
||||
@@ -19,12 +35,179 @@ import java.util.List;
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
public class RMpPassRateDServiceImpl extends MppServiceImpl<RMpPassRateDMapper, RMpPassRateDPO> implements RMpPassRateDService{
|
||||
@RequiredArgsConstructor
|
||||
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")
|
||||
@Override
|
||||
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.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateDPO;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -17,4 +18,6 @@ import java.util.List;
|
||||
public interface RMpPassRateDService extends IMppService<RMpPassRateDPO> {
|
||||
|
||||
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.vo.AreaTreeVO;
|
||||
import com.njcn.system.service.IAreaService;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import io.swagger.annotations.*;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.njcn.web.controller.BaseController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -273,5 +272,21 @@ public class AreaController extends BaseController {
|
||||
Area result = areaService.areaDeptPro(id);
|
||||
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.njcn.system.pojo.dto.AreaTreeDTO;
|
||||
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.vo.AreaTreeVO;
|
||||
|
||||
@@ -105,4 +104,12 @@ public interface IAreaService extends IService<Area> {
|
||||
* @return 行政区域详情
|
||||
*/
|
||||
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.QueryWrapper;
|
||||
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.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.vo.AreaTreeVO;
|
||||
import com.njcn.system.service.IAreaService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.user.api.DeptFeignClient;
|
||||
import com.njcn.user.pojo.po.Dept;
|
||||
import com.njcn.web.factory.PageFactory;
|
||||
import com.njcn.web.utils.RequestUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
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