代码提交
This commit is contained in:
@@ -93,7 +93,9 @@ public class AppTopologyDiagramServiceImpl extends MppServiceImpl<AppTopologyDia
|
|||||||
queryWrapper.eq ("status","1").
|
queryWrapper.eq ("status","1").
|
||||||
eq (StringUtils.isNotBlank (appTopologyDiagramAuditParm.getId ()),"id",appTopologyDiagramAuditParm.getId ()).
|
eq (StringUtils.isNotBlank (appTopologyDiagramAuditParm.getId ()),"id",appTopologyDiagramAuditParm.getId ()).
|
||||||
eq (StringUtils.isNotBlank (appTopologyDiagramAuditParm.getProjectId ()),"project_id",appTopologyDiagramAuditParm.getProjectId ()).
|
eq (StringUtils.isNotBlank (appTopologyDiagramAuditParm.getProjectId ()),"project_id",appTopologyDiagramAuditParm.getProjectId ()).
|
||||||
like (StringUtils.isNotBlank (appTopologyDiagramAuditParm.getName ()),"name", appTopologyDiagramAuditParm.getName ());
|
like (StringUtils.isNotBlank (appTopologyDiagramAuditParm.getName ()),"name", appTopologyDiagramAuditParm.getName ()).
|
||||||
|
orderByDesc("create_time");
|
||||||
|
|
||||||
List<AppTopologyDiagramPO> list = this.list (queryWrapper);
|
List<AppTopologyDiagramPO> list = this.list (queryWrapper);
|
||||||
|
|
||||||
List<AppTopologyDiagramVO> collect = list.stream ( ).map (temp -> {
|
List<AppTopologyDiagramVO> collect = list.stream ( ).map (temp -> {
|
||||||
@@ -117,7 +119,8 @@ public class AppTopologyDiagramServiceImpl extends MppServiceImpl<AppTopologyDia
|
|||||||
QueryWrapper<AppTopologyDiagramPO> queryWrapper = new QueryWrapper<> ();
|
QueryWrapper<AppTopologyDiagramPO> queryWrapper = new QueryWrapper<> ();
|
||||||
queryWrapper.eq ("status","1").
|
queryWrapper.eq ("status","1").
|
||||||
eq (StringUtils.isNotBlank (appTopologyDiagramQueryPageParm.getProjectId ()),"project_id",appTopologyDiagramQueryPageParm.getProjectId ()).
|
eq (StringUtils.isNotBlank (appTopologyDiagramQueryPageParm.getProjectId ()),"project_id",appTopologyDiagramQueryPageParm.getProjectId ()).
|
||||||
like (StringUtils.isNotBlank (appTopologyDiagramQueryPageParm.getSearchValue ()),"name", appTopologyDiagramQueryPageParm.getSearchValue ());
|
like (StringUtils.isNotBlank (appTopologyDiagramQueryPageParm.getSearchValue ()),"name", appTopologyDiagramQueryPageParm.getSearchValue ()).
|
||||||
|
orderByDesc("create_time");
|
||||||
tempPage = appTopologyDiagramMapper.selectPage (tempPage, queryWrapper);
|
tempPage = appTopologyDiagramMapper.selectPage (tempPage, queryWrapper);
|
||||||
List<AppTopologyDiagramVO> collect = tempPage.getRecords ( ).stream ( ).map (temp -> {
|
List<AppTopologyDiagramVO> collect = tempPage.getRecords ( ).stream ( ).map (temp -> {
|
||||||
AppTopologyDiagramVO vo = new AppTopologyDiagramVO ( );
|
AppTopologyDiagramVO vo = new AppTopologyDiagramVO ( );
|
||||||
|
|||||||
@@ -139,6 +139,34 @@ spring:
|
|||||||
filters:
|
filters:
|
||||||
- SwaggerHeaderFilter
|
- SwaggerHeaderFilter
|
||||||
- StripPrefix=1
|
- StripPrefix=1
|
||||||
|
- id: cs-device-boot
|
||||||
|
uri: lb://cs-device-boot
|
||||||
|
predicates:
|
||||||
|
- Path=/cs-device-boot/**
|
||||||
|
filters:
|
||||||
|
- SwaggerHeaderFilter
|
||||||
|
- StripPrefix=1
|
||||||
|
- id: cs-system-boot
|
||||||
|
uri: lb://cs-system-boot
|
||||||
|
predicates:
|
||||||
|
- Path=/cs-system-boot/**
|
||||||
|
filters:
|
||||||
|
- SwaggerHeaderFilter
|
||||||
|
- StripPrefix=1
|
||||||
|
- id: cs-warn-boot
|
||||||
|
uri: lb://cs-warn-boot
|
||||||
|
predicates:
|
||||||
|
- Path=/cs-warn-boot/**
|
||||||
|
filters:
|
||||||
|
- SwaggerHeaderFilter
|
||||||
|
- StripPrefix=1
|
||||||
|
- id: cs-harmonic-boot
|
||||||
|
uri: lb://cs-harmonic-boot
|
||||||
|
predicates:
|
||||||
|
- Path=/cs-harmonic-boot/**
|
||||||
|
filters:
|
||||||
|
- SwaggerHeaderFilter
|
||||||
|
- StripPrefix=1
|
||||||
#项目日志的配置
|
#项目日志的配置
|
||||||
logging:
|
logging:
|
||||||
config: http://@nacos.url@/nacos/v1/cs/configs?tenant=@nacos.namespace@&group=DEFAULT_GROUP&dataId=logback.xml
|
config: http://@nacos.url@/nacos/v1/cs/configs?tenant=@nacos.namespace@&group=DEFAULT_GROUP&dataId=logback.xml
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
package com.njcn.prepare.harmonic.pojo.mysql.po;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Date: 2023/5/26 15:52【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName(value = "r_stat_harmonic_d")
|
||||||
|
public class RStatHarmonicDPO {
|
||||||
|
/**
|
||||||
|
* 单位ID
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "org_no")
|
||||||
|
private String orgNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成数据的时间,每日统计一次
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "data_date")
|
||||||
|
private Date dataDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监测点类别ID、监测对象类型ID
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "measurement_type_class")
|
||||||
|
private String measurementTypeClass;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 稳态指标类型Id,字典表ID
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "harmonic_type")
|
||||||
|
private String harmonicType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据类型,字典表(01:主网测点 02:配网测点)
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "data_type")
|
||||||
|
private String dataType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 超标监测点数
|
||||||
|
*/
|
||||||
|
@TableField(value = "over_limit_measurement")
|
||||||
|
private Integer overLimitMeasurement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 超标监测点数占比
|
||||||
|
*/
|
||||||
|
@TableField(value = "over_limit_measurement_ratio")
|
||||||
|
private Double overLimitMeasurementRatio;
|
||||||
|
}
|
||||||
@@ -2,7 +2,9 @@ package com.njcn.prepare.harmonic.pojo.param;
|
|||||||
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import javax.management.loading.PrivateMLet;
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -16,6 +18,16 @@ import java.util.List;
|
|||||||
@Data
|
@Data
|
||||||
public class DeviceParam {
|
public class DeviceParam {
|
||||||
|
|
||||||
|
|
||||||
|
private List<DeviceDetail> detailList;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "dataDate",value = "时间")
|
||||||
|
@NotBlank(message = "报表时间不可为空")
|
||||||
|
private String dataDate;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class DeviceDetail{
|
||||||
@ApiModelProperty(name = "devId",value = "终端id")
|
@ApiModelProperty(name = "devId",value = "终端id")
|
||||||
private String devId;
|
private String devId;
|
||||||
|
|
||||||
@@ -23,9 +35,6 @@ public class DeviceParam {
|
|||||||
@ApiModelProperty(name = "lineIds",value = "监测点索引集合")
|
@ApiModelProperty(name = "lineIds",value = "监测点索引集合")
|
||||||
private List<String> lineIds;
|
private List<String> lineIds;
|
||||||
|
|
||||||
@ApiModelProperty(name = "dataDate",value = "时间")
|
|
||||||
@NotBlank(message = "报表时间不可为空")
|
|
||||||
private String dataDate;
|
|
||||||
|
|
||||||
private String deviceStatus;
|
private String deviceStatus;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package com.njcn.prepare.harmonic.pojo.param;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author clam
|
||||||
|
* Date: 2022/10/20 11:41
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class OrgParam {
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "orgId",value = "单位Id")
|
||||||
|
private String orgId;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "type",value = "报表类型,1,年,2季,3月,4周,5日")
|
||||||
|
@NotNull(message = "报表类型不可为空")
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "dataDate",value = "时间")
|
||||||
|
@NotBlank(message = "报表时间不可为空")
|
||||||
|
private String dataDate;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,19 +1,27 @@
|
|||||||
package com.njcn.prepare.harmonic.controller.newalgorithm;
|
package com.njcn.prepare.harmonic.controller.newalgorithm;
|
||||||
|
|
||||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
|
import com.njcn.common.pojo.constant.ServerInfo;
|
||||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
import com.njcn.common.pojo.response.HttpResult;
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
import com.njcn.common.utils.HttpResultUtil;
|
import com.njcn.common.utils.HttpResultUtil;
|
||||||
|
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetDeviceDTO;
|
||||||
|
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||||
|
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||||
import com.njcn.prepare.harmonic.pojo.param.DeviceParam;
|
import com.njcn.prepare.harmonic.pojo.param.DeviceParam;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.area.RMpDevEvaluateDetailPOService;
|
import com.njcn.prepare.harmonic.service.mysql.area.RMpDevEvaluateDetailPOService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.device.RStatDevSignalDPOService;
|
import com.njcn.prepare.harmonic.service.mysql.device.RStatDevSignalDPOService;
|
||||||
|
import com.njcn.user.api.DeptFeignClient;
|
||||||
|
import com.njcn.user.pojo.po.Dept;
|
||||||
import com.njcn.web.controller.BaseController;
|
import com.njcn.web.controller.BaseController;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
@@ -21,7 +29,11 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description:
|
* Description:
|
||||||
@@ -40,16 +52,58 @@ public class RMpDevEvaluateDetailController extends BaseController {
|
|||||||
|
|
||||||
|
|
||||||
private final RMpDevEvaluateDetailPOService rMpDevEvaluateDetailPOService;
|
private final RMpDevEvaluateDetailPOService rMpDevEvaluateDetailPOService;
|
||||||
|
private final DeptFeignClient deptFeignClient;
|
||||||
|
private final CommTerminalGeneralClient commTerminalGeneralClient;
|
||||||
|
|
||||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
@PostMapping("/handler")
|
@PostMapping("/handler")
|
||||||
@ApiOperation("终端数据评价_日统计")
|
@ApiOperation("终端数据评价_日统计")
|
||||||
@ApiImplicitParam(name = "deviceParamList", value = "参数", required = true)
|
@ApiImplicitParam(name = "deviceParam", value = "参数", required = true)
|
||||||
public HttpResult<String> handler(@RequestBody @Validated List<DeviceParam> deviceParamList){
|
public HttpResult<String> handler(@RequestBody @Validated DeviceParam deviceParam){
|
||||||
log.info(LocalDateTime.now()+"handler始执行");
|
log.info(LocalDateTime.now()+"handler始执行");
|
||||||
String methodDescribe = getMethodDescribe("handler");
|
String methodDescribe = getMethodDescribe("handler");
|
||||||
|
/**
|
||||||
|
* 支持补录
|
||||||
|
*/
|
||||||
|
if(CollectionUtils.isEmpty(deviceParam.getDetailList())){
|
||||||
|
List<DeviceParam.DeviceDetail> list = new ArrayList<>();
|
||||||
|
Dept data = deptFeignClient.getRootDept().getData();
|
||||||
|
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
|
||||||
|
deptGetLineParam.setDeptId(data.getId());
|
||||||
|
deptGetLineParam.setServerName(ServerInfo.PREPARE_BOOT);
|
||||||
|
List<DeptGetDeviceDTO> data1 = commTerminalGeneralClient.deptGetDevice(deptGetLineParam).getData();
|
||||||
|
/*主网*/
|
||||||
|
|
||||||
|
List<LineDevGetDTO> collect = data1.stream().map(DeptGetDeviceDTO::getDeviceList).flatMap(Collection::stream).collect(Collectors.toList());
|
||||||
|
if(!CollectionUtils.isEmpty(collect)){
|
||||||
|
Map<String, List<LineDevGetDTO>> map = collect.stream().collect(Collectors.groupingBy(LineDevGetDTO::getDevId));
|
||||||
|
map.forEach((k, v) -> {
|
||||||
|
DeviceParam.DeviceDetail deviceDetail = new DeviceParam.DeviceDetail();
|
||||||
|
deviceDetail.setDevId(k);
|
||||||
|
List<String> lineIds = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
deviceDetail.setLineIds(lineIds);
|
||||||
|
deviceDetail.setUpdateTime(v.get(0).getUpdateTime()+"");
|
||||||
|
list.add(deviceDetail);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
rMpDevEvaluateDetailPOService.handler (deviceParamList);
|
/*配网*/
|
||||||
|
List<LineDevGetDTO> collect2 = data1.stream().map(DeptGetDeviceDTO::getPwDeviceList).flatMap(Collection::stream).collect(Collectors.toList());
|
||||||
|
if(!CollectionUtils.isEmpty(collect2)){
|
||||||
|
Map<String, List<LineDevGetDTO>> map = collect2.stream().collect(Collectors.groupingBy(LineDevGetDTO::getDevId));
|
||||||
|
map.forEach((k, v) -> {
|
||||||
|
DeviceParam.DeviceDetail deviceDetail = new DeviceParam.DeviceDetail();
|
||||||
|
deviceDetail.setDevId(k);
|
||||||
|
List<String> lineIds = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
deviceDetail.setLineIds(lineIds);
|
||||||
|
deviceDetail.setUpdateTime(v.get(0).getUpdateTime()+"");
|
||||||
|
list.add(deviceDetail);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
deviceParam.setDetailList(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
rMpDevEvaluateDetailPOService.handler (deviceParam);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,23 @@
|
|||||||
package com.njcn.prepare.harmonic.controller.newalgorithm;
|
package com.njcn.prepare.harmonic.controller.newalgorithm;
|
||||||
|
|
||||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
|
import com.njcn.common.pojo.constant.ServerInfo;
|
||||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
import com.njcn.common.pojo.response.HttpResult;
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
import com.njcn.common.utils.HttpResultUtil;
|
import com.njcn.common.utils.HttpResultUtil;
|
||||||
|
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetDeviceDTO;
|
||||||
|
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||||
|
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||||
|
import com.njcn.device.pq.api.DeptLineFeignClient;
|
||||||
import com.njcn.device.pq.api.LineFeignClient;
|
import com.njcn.device.pq.api.LineFeignClient;
|
||||||
import com.njcn.prepare.harmonic.pojo.param.DeviceParam;
|
import com.njcn.prepare.harmonic.pojo.param.DeviceParam;
|
||||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.device.RStatDevSignalDPOService;
|
import com.njcn.prepare.harmonic.service.mysql.device.RStatDevSignalDPOService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.line.RMpEventDetailService;
|
import com.njcn.prepare.harmonic.service.mysql.line.RMpEventDetailService;
|
||||||
|
import com.njcn.user.api.DeptFeignClient;
|
||||||
|
import com.njcn.user.pojo.po.Dept;
|
||||||
import com.njcn.web.controller.BaseController;
|
import com.njcn.web.controller.BaseController;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
@@ -25,7 +33,10 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description:
|
* Description:
|
||||||
@@ -44,16 +55,56 @@ public class RStatDevSignalController extends BaseController {
|
|||||||
|
|
||||||
|
|
||||||
private final RStatDevSignalDPOService rStatDevSignalDPOService;
|
private final RStatDevSignalDPOService rStatDevSignalDPOService;
|
||||||
|
private final CommTerminalGeneralClient commTerminalGeneralClient;
|
||||||
|
private final DeptFeignClient deptFeignClient;
|
||||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
@PostMapping("/rstatdevsignalHandler")
|
@PostMapping("/rstatdevsignalHandler")
|
||||||
@ApiOperation("终端通信管理_日统计")
|
@ApiOperation("终端通信管理_日统计")
|
||||||
@ApiImplicitParam(name = "deviceParamList", value = "参数", required = true)
|
@ApiImplicitParam(name = "deviceParam", value = "参数", required = true)
|
||||||
public HttpResult<String> rstatdevsignalHandler(@RequestBody @Validated List<DeviceParam> deviceParamList){
|
public HttpResult<String> rstatdevsignalHandler(@RequestBody @Validated DeviceParam deviceParam ){
|
||||||
log.info(LocalDateTime.now()+"rstatdevsignalHandler始执行");
|
log.info(LocalDateTime.now()+"rstatdevsignalHandler始执行");
|
||||||
String methodDescribe = getMethodDescribe("rstatdevsignalHandler");
|
String methodDescribe = getMethodDescribe("rstatdevsignalHandler");
|
||||||
|
/**
|
||||||
|
* 支持补录
|
||||||
|
*/
|
||||||
|
if(CollectionUtils.isEmpty(deviceParam.getDetailList())){
|
||||||
|
List<DeviceParam.DeviceDetail> list = new ArrayList<>();
|
||||||
|
Dept data = deptFeignClient.getRootDept().getData();
|
||||||
|
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
|
||||||
|
deptGetLineParam.setDeptId(data.getId());
|
||||||
|
deptGetLineParam.setServerName(ServerInfo.PREPARE_BOOT);
|
||||||
|
List<DeptGetDeviceDTO> data1 = commTerminalGeneralClient.deptGetDevice(deptGetLineParam).getData();
|
||||||
|
/*主网*/
|
||||||
|
|
||||||
|
List<LineDevGetDTO> collect = data1.stream().map(DeptGetDeviceDTO::getDeviceList).flatMap(Collection::stream).collect(Collectors.toList());
|
||||||
|
if(!CollectionUtils.isEmpty(collect)){
|
||||||
|
Map<String, List<LineDevGetDTO>> map = collect.stream().collect(Collectors.groupingBy(LineDevGetDTO::getDevId));
|
||||||
|
map.forEach((k, v) -> {
|
||||||
|
DeviceParam.DeviceDetail deviceDetail = new DeviceParam.DeviceDetail();
|
||||||
|
deviceDetail.setDevId(k);
|
||||||
|
List<String> lineIds = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
deviceDetail.setLineIds(lineIds);
|
||||||
|
deviceDetail.setUpdateTime(v.get(0).getUpdateTime()+"");
|
||||||
|
list.add(deviceDetail);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
rStatDevSignalDPOService.eventdetailHandler (deviceParamList);
|
/*配网*/
|
||||||
|
List<LineDevGetDTO> collect2 = data1.stream().map(DeptGetDeviceDTO::getPwDeviceList).flatMap(Collection::stream).collect(Collectors.toList());
|
||||||
|
if(!CollectionUtils.isEmpty(collect2)){
|
||||||
|
Map<String, List<LineDevGetDTO>> map = collect2.stream().collect(Collectors.groupingBy(LineDevGetDTO::getDevId));
|
||||||
|
map.forEach((k, v) -> {
|
||||||
|
DeviceParam.DeviceDetail deviceDetail = new DeviceParam.DeviceDetail();
|
||||||
|
deviceDetail.setDevId(k);
|
||||||
|
List<String> lineIds = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
deviceDetail.setLineIds(lineIds);
|
||||||
|
deviceDetail.setUpdateTime(v.get(0).getUpdateTime()+"");
|
||||||
|
list.add(deviceDetail);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
deviceParam.setDetailList(list);
|
||||||
|
}
|
||||||
|
rStatDevSignalDPOService.eventdetailHandler (deviceParam);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,75 @@
|
|||||||
|
package com.njcn.prepare.harmonic.controller.newalgorithm;
|
||||||
|
|
||||||
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
|
import com.njcn.common.pojo.constant.ServerInfo;
|
||||||
|
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||||
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
|
import com.njcn.common.utils.HttpResultUtil;
|
||||||
|
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.param.OrgParam;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgService;
|
||||||
|
import com.njcn.user.api.DeptFeignClient;
|
||||||
|
import com.njcn.user.pojo.po.Dept;
|
||||||
|
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.StringUtils;
|
||||||
|
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.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("/rstatharmonic")
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class RStatHarmonicController extends BaseController {
|
||||||
|
|
||||||
|
|
||||||
|
private final RStatHarmonicService service;
|
||||||
|
private final CommTerminalGeneralClient commTerminalGeneralClient;
|
||||||
|
private final DeptFeignClient deptFeignClient;
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("/Handler")
|
||||||
|
@ApiOperation("单位监测点稳态指标统计")
|
||||||
|
@ApiImplicitParam(name = "orgParam", value = "参数", required = true)
|
||||||
|
public HttpResult<String> handler(@RequestBody @Validated OrgParam orgParam ){
|
||||||
|
log.info(LocalDateTime.now()+"dayHandler始执行");
|
||||||
|
String methodDescribe = getMethodDescribe("dayHandler");
|
||||||
|
/**
|
||||||
|
* 支持补录
|
||||||
|
*/
|
||||||
|
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
|
||||||
|
|
||||||
|
if(StringUtils.isEmpty(orgParam.getOrgId())){
|
||||||
|
Dept data = deptFeignClient.getRootDept().getData();
|
||||||
|
deptGetLineParam.setDeptId(data.getId());
|
||||||
|
}else {
|
||||||
|
deptGetLineParam.setDeptId(orgParam.getOrgId());
|
||||||
|
}
|
||||||
|
deptGetLineParam.setServerName(ServerInfo.PREPARE_BOOT);
|
||||||
|
List<DeptGetChildrenMoreDTO> data = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
|
||||||
|
service.handler (data,orgParam.getDataDate(),orgParam.getType());
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
package com.njcn.prepare.harmonic.controller.newalgorithm;
|
||||||
|
|
||||||
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
|
import com.njcn.common.pojo.constant.ServerInfo;
|
||||||
|
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||||
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
|
import com.njcn.common.utils.HttpResultUtil;
|
||||||
|
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetDeviceDTO;
|
||||||
|
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||||
|
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.param.DeviceParam;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.param.OrgParam;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.device.RStatDevSignalDPOService;
|
||||||
|
import com.njcn.user.api.DeptFeignClient;
|
||||||
|
import com.njcn.user.pojo.po.Dept;
|
||||||
|
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.util.StringUtils;
|
||||||
|
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.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Description:
|
||||||
|
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||||
|
* Date: 2022/12/28 13:47【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Api(tags = "单位监测点统计")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/rstatorg")
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class RStatOrgController extends BaseController {
|
||||||
|
|
||||||
|
|
||||||
|
private final RStatOrgService rStatOrgService;
|
||||||
|
private final CommTerminalGeneralClient commTerminalGeneralClient;
|
||||||
|
private final DeptFeignClient deptFeignClient;
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("/Handler")
|
||||||
|
@ApiOperation("单位监测点_统计")
|
||||||
|
@ApiImplicitParam(name = "orgParam", value = "参数", required = true)
|
||||||
|
public HttpResult<String> handler(@RequestBody @Validated OrgParam orgParam ){
|
||||||
|
log.info(LocalDateTime.now()+"dayHandler始执行");
|
||||||
|
String methodDescribe = getMethodDescribe("dayHandler");
|
||||||
|
/**
|
||||||
|
* 支持补录
|
||||||
|
*/
|
||||||
|
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
|
||||||
|
|
||||||
|
if(StringUtils.isEmpty(orgParam.getOrgId())){
|
||||||
|
Dept data = deptFeignClient.getRootDept().getData();
|
||||||
|
deptGetLineParam.setDeptId(data.getId());
|
||||||
|
}else {
|
||||||
|
deptGetLineParam.setDeptId(orgParam.getOrgId());
|
||||||
|
}
|
||||||
|
deptGetLineParam.setServerName(ServerInfo.PREPARE_BOOT);
|
||||||
|
List<DeptGetChildrenMoreDTO> data = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
|
||||||
|
rStatOrgService.handler (data,orgParam.getDataDate(),orgParam.getType());
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.njcn.prepare.harmonic.mapper.mysql.area;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicDPO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Date: 2023/5/26 15:52【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
public interface RStatHarmonicDPOMapper extends MppBaseMapper<RStatHarmonicDPO> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
<?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.area.RStatHarmonicDPOMapper">
|
||||||
|
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicDPO">
|
||||||
|
<!--@mbg.generated-->
|
||||||
|
<!--@Table r_stat_harmonic_d-->
|
||||||
|
<id column="org_no" jdbcType="VARCHAR" property="orgNo" />
|
||||||
|
<id column="data_date" jdbcType="DATE" property="dataDate" />
|
||||||
|
<id column="measurement_type_class" jdbcType="VARCHAR" property="measurementTypeClass" />
|
||||||
|
<id column="harmonic_type" jdbcType="VARCHAR" property="harmonicType" />
|
||||||
|
<id column="data_type" jdbcType="VARCHAR" property="dataType" />
|
||||||
|
<result column="over_limit_measurement" jdbcType="INTEGER" property="overLimitMeasurement" />
|
||||||
|
<result column="over_limit_measurement_ratio" jdbcType="REAL" property="overLimitMeasurementRatio" />
|
||||||
|
</resultMap>
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
<!--@mbg.generated-->
|
||||||
|
org_no, data_date, measurement_type_class, harmonic_type, data_type, over_limit_measurement,
|
||||||
|
over_limit_measurement_ratio
|
||||||
|
</sql>
|
||||||
|
</mapper>
|
||||||
@@ -15,6 +15,9 @@ import com.njcn.prepare.harmonic.pojo.po.RStatDevSignalDPO;
|
|||||||
import com.njcn.prepare.harmonic.service.mysql.area.RMpDevEvaluateDetailPOService;
|
import com.njcn.prepare.harmonic.service.mysql.area.RMpDevEvaluateDetailPOService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.area.ROperatingIndexDPOService;
|
import com.njcn.prepare.harmonic.service.mysql.area.ROperatingIndexDPOService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.device.RMpDevSolveDetailPOService;
|
import com.njcn.prepare.harmonic.service.mysql.device.RMpDevSolveDetailPOService;
|
||||||
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
|
import com.njcn.system.enums.DicDataEnum;
|
||||||
|
import com.njcn.system.pojo.po.DictData;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.scheduling.annotation.Async;
|
||||||
@@ -49,14 +52,14 @@ public class RMpDevEvaluateDetailPOServiceImpl extends MppServiceImpl<RMpDevEval
|
|||||||
@Transactional(rollbackFor = {Exception.class})
|
@Transactional(rollbackFor = {Exception.class})
|
||||||
@Async("asyncExecutor")
|
@Async("asyncExecutor")
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public void handler(List<DeviceParam> deviceParamList) {
|
public void handler(DeviceParam deviceParam) {
|
||||||
|
|
||||||
List<RMpDevEvaluateDetailPO> rMpDevEvaluateDetailPOList = new ArrayList<>();
|
List<RMpDevEvaluateDetailPO> rMpDevEvaluateDetailPOList = new ArrayList<>();
|
||||||
Date date = DateUtil.parse(deviceParamList.get(0).getDataDate());
|
Date date = DateUtil.parse(deviceParam.getDataDate());
|
||||||
QueryWrapper<ROperatingMonitorDPO> wrapper = new QueryWrapper<>();
|
QueryWrapper<ROperatingMonitorDPO> wrapper = new QueryWrapper<>();
|
||||||
QueryWrapper<RMpDevSolveDetailPO> wrapper1 = new QueryWrapper<>();
|
QueryWrapper<RMpDevSolveDetailPO> wrapper1 = new QueryWrapper<>();
|
||||||
|
|
||||||
deviceParamList.forEach(temp -> {
|
deviceParam.getDetailList().forEach(temp -> {
|
||||||
|
|
||||||
RMpDevEvaluateDetailPO rMpDevEvaluateDetailPO = new RMpDevEvaluateDetailPO();
|
RMpDevEvaluateDetailPO rMpDevEvaluateDetailPO = new RMpDevEvaluateDetailPO();
|
||||||
rMpDevEvaluateDetailPO.setDeviceId(temp.getDevId());
|
rMpDevEvaluateDetailPO.setDeviceId(temp.getDevId());
|
||||||
@@ -66,7 +69,7 @@ public class RMpDevEvaluateDetailPOServiceImpl extends MppServiceImpl<RMpDevEval
|
|||||||
wrapper1.clear();
|
wrapper1.clear();
|
||||||
wrapper1.select(RMpDevSolveDetailPO.COL_DEFECT_SEVERITY).
|
wrapper1.select(RMpDevSolveDetailPO.COL_DEFECT_SEVERITY).
|
||||||
eq(RMpDevSolveDetailPO.COL_DEVICE_ID,temp.getDevId()).
|
eq(RMpDevSolveDetailPO.COL_DEVICE_ID,temp.getDevId()).
|
||||||
eq(RMpDevSolveDetailPO.COL_DATA_DATE, temp.getDataDate());
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",deviceParam.getDataDate());
|
||||||
RMpDevSolveDetailPO one = rMpDevSolveDetailPOService.getOne(wrapper1);
|
RMpDevSolveDetailPO one = rMpDevSolveDetailPOService.getOne(wrapper1);
|
||||||
Double defectSeverity = PubUtils.getDefectSeverity(one.getDefectSeverity());
|
Double defectSeverity = PubUtils.getDefectSeverity(one.getDefectSeverity());
|
||||||
rMpDevEvaluateDetailPO.setDevScore(Double.valueOf(df.format(defectSeverity/3)));
|
rMpDevEvaluateDetailPO.setDevScore(Double.valueOf(df.format(defectSeverity/3)));
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package com.njcn.prepare.harmonic.service.mysql.Impl.area;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatHarmonicDPOMapper;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicDPO;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicDPOService;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Date: 2023/5/26 15:52【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class RStatHarmonicDPOServiceImpl extends MppServiceImpl<RStatHarmonicDPOMapper, RStatHarmonicDPO> implements RStatHarmonicDPOService{
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,261 @@
|
|||||||
|
package com.njcn.prepare.harmonic.service.mysql.Impl.area;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||||
|
import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD;
|
||||||
|
import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD;
|
||||||
|
import com.njcn.harmonic.pojo.po.RStatHarmonicD;
|
||||||
|
import com.njcn.harmonic.pojo.po.RStatOrgDPO;
|
||||||
|
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgDMapper;
|
||||||
|
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper;
|
||||||
|
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailDMapper;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicDPO;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.Impl.line.RMpPartHarmonicDetailDServiceImpl;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicDPOService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgDService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.line.IRMpPartHarmonicDetailDService;
|
||||||
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
|
import com.njcn.system.enums.DicDataEnum;
|
||||||
|
import com.njcn.system.enums.DicDataTypeEnum;
|
||||||
|
import com.njcn.system.pojo.po.DictData;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.SneakyThrows;
|
||||||
|
import org.apache.poi.ss.formula.functions.T;
|
||||||
|
import org.springframework.scheduling.annotation.Async;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.text.DecimalFormat;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Description:
|
||||||
|
* Date: 2023/5/26 15:41【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class RStatHarmonicServiceImpl implements RStatHarmonicService {
|
||||||
|
|
||||||
|
private final RStatHarmonicDPOService rStatHarmonicDPOService;
|
||||||
|
private final RMpPartHarmonicDetailDMapper rMpPartHarmonicDetailDMapper;
|
||||||
|
private final RMpSurplusHarmonicDetailDMapper rMpSurplusHarmonicDetailDMapper;
|
||||||
|
private final RStatOrgDMapper rStatOrgDMapper;
|
||||||
|
|
||||||
|
private final
|
||||||
|
DicDataFeignClient dicDataFeignClient;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
|
switch (type) {
|
||||||
|
// case 1:
|
||||||
|
// this.hanlderOracleYear (lineParam);
|
||||||
|
// break;
|
||||||
|
// case 2:
|
||||||
|
// this.hanlderOracleQtr (lineParam);
|
||||||
|
// break;
|
||||||
|
// case 3:
|
||||||
|
// this.hanlderOracleMonth (lineParam);
|
||||||
|
// break;
|
||||||
|
case 5:
|
||||||
|
this.hanlderDay ( data, dataDate, type);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = {Exception.class})
|
||||||
|
@Async("asyncExecutor")
|
||||||
|
@SneakyThrows
|
||||||
|
private void hanlderDay(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
|
List<RStatHarmonicDPO> rStatHarmonicDPOList = new ArrayList<>();
|
||||||
|
Date date = DateUtil.parse(dataDate);
|
||||||
|
QueryWrapper<RMpPartHarmonicDetailD> queryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RStatOrgDPO> rStatOrgDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
|
||||||
|
/*获取稳态统计指标*/
|
||||||
|
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
/*获取数据类型*/
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
|
||||||
|
data.forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
|
||||||
|
/*主网*/
|
||||||
|
if(!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())){
|
||||||
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
collect.forEach((k, v)->{
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
queryWrapper.clear();
|
||||||
|
queryWrapper.select("is_freq","is_v_dev","is_v","is_i","is_unbalance","is_i_neg").
|
||||||
|
in("measurement_point_id",collect1).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate);
|
||||||
|
List<RMpPartHarmonicDetailD> rMpPartHarmonicDetailDS = rMpPartHarmonicDetailDMapper.selectList(queryWrapper);
|
||||||
|
|
||||||
|
rMpSurplusHarmonicDetailDQueryWrapper.clear();
|
||||||
|
rMpSurplusHarmonicDetailDQueryWrapper.select("is_flicker","is_inuharm").
|
||||||
|
in("measurement_point_id",collect1).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate);
|
||||||
|
List<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDS = rMpSurplusHarmonicDetailDMapper.selectList(rMpSurplusHarmonicDetailDQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgDPOQueryWrapper.clear();
|
||||||
|
rStatOrgDPOQueryWrapper.select("effective_measurement").
|
||||||
|
eq("org_no",deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class",getmeasurementType(k,lineSortMap)).
|
||||||
|
eq("data_type",dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate);
|
||||||
|
RStatOrgDPO rStatOrgDPO = rStatOrgDMapper.selectOne(rStatOrgDPOQueryWrapper);
|
||||||
|
|
||||||
|
steadyStatis.forEach(dictData -> {
|
||||||
|
if(Objects.equals(dictData.getCode(),DicDataEnum.TOTAL_INDICATOR.getCode())){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
RStatHarmonicDPO rStatHarmonicDPO = new RStatHarmonicDPO();
|
||||||
|
rStatHarmonicDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatHarmonicDPO.setDataDate(date);
|
||||||
|
rStatHarmonicDPO.setHarmonicType(dictData.getId());
|
||||||
|
rStatHarmonicDPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
rStatHarmonicDPO.setMeasurementTypeClass(getmeasurementType(k,lineSortMap));
|
||||||
|
rStatHarmonicDPO.setOverLimitMeasurement(getSteadyStatisData(dictData,rMpPartHarmonicDetailDS,rMpSurplusHarmonicDetailDS));
|
||||||
|
if(rStatOrgDPO.getEffectiveMeasurement()==0){
|
||||||
|
rStatHarmonicDPO.setOverLimitMeasurementRatio(1.00);
|
||||||
|
|
||||||
|
}else{
|
||||||
|
String value = df.format((float)rStatHarmonicDPO.getOverLimitMeasurement() / rStatOrgDPO.getEffectiveMeasurement());
|
||||||
|
rStatHarmonicDPO.setOverLimitMeasurementRatio(Double.parseDouble(value));
|
||||||
|
}
|
||||||
|
rStatHarmonicDPOList.add(rStatHarmonicDPO);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
/*配网*/
|
||||||
|
if(!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) {
|
||||||
|
List<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> pwMonitorMap = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
pwMonitorMap.forEach((k, v) -> {
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
queryWrapper.clear();
|
||||||
|
queryWrapper.select("is_freq", "is_v_dev", "is_v", "is_i", "is_unbalance", "is_i_neg").
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", dataDate);
|
||||||
|
List<RMpPartHarmonicDetailD> rMpPartHarmonicDetailDS = rMpPartHarmonicDetailDMapper.selectList(queryWrapper);
|
||||||
|
|
||||||
|
rMpSurplusHarmonicDetailDQueryWrapper.clear();
|
||||||
|
rMpSurplusHarmonicDetailDQueryWrapper.select("is_flicker", "is_inuharm").
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", dataDate);
|
||||||
|
List<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDS = rMpSurplusHarmonicDetailDMapper.selectList(rMpSurplusHarmonicDetailDQueryWrapper);
|
||||||
|
|
||||||
|
rStatOrgDPOQueryWrapper.clear();
|
||||||
|
rStatOrgDPOQueryWrapper.select("effective_measurement").
|
||||||
|
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||||
|
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
|
||||||
|
eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", dataDate);
|
||||||
|
RStatOrgDPO rStatOrgDPO = rStatOrgDMapper.selectOne(rStatOrgDPOQueryWrapper);
|
||||||
|
|
||||||
|
steadyStatis.forEach(dictData -> {
|
||||||
|
if (Objects.equals(dictData.getCode(), DicDataEnum.NEG_CURRENT.getCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
RStatHarmonicDPO rStatHarmonicDPO = new RStatHarmonicDPO();
|
||||||
|
rStatHarmonicDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatHarmonicDPO.setDataDate(date);
|
||||||
|
rStatHarmonicDPO.setHarmonicType(dictData.getId());
|
||||||
|
rStatHarmonicDPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||||
|
rStatHarmonicDPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
|
||||||
|
rStatHarmonicDPO.setOverLimitMeasurement(getSteadyStatisData(dictData, rMpPartHarmonicDetailDS, rMpSurplusHarmonicDetailDS));
|
||||||
|
if (rStatOrgDPO.getEffectiveMeasurement() == 0) {
|
||||||
|
rStatHarmonicDPO.setOverLimitMeasurementRatio(1.00);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
String value = df.format(rStatHarmonicDPO.getOverLimitMeasurement() / rStatOrgDPO.getEffectiveMeasurement());
|
||||||
|
rStatHarmonicDPO.setOverLimitMeasurementRatio(Double.parseDouble(value));
|
||||||
|
}
|
||||||
|
rStatHarmonicDPOList.add(rStatHarmonicDPO);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
if(!CollectionUtils.isEmpty(rStatHarmonicDPOList)){
|
||||||
|
rStatHarmonicDPOService.saveOrUpdateBatchByMultiId(rStatHarmonicDPOList,500);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getmeasurementType(Integer k, Map<String, DictData> lineSortMap) {
|
||||||
|
String value ="";
|
||||||
|
switch (k) {
|
||||||
|
case 1:
|
||||||
|
value =lineSortMap.get(DicDataEnum.ONE_LINE.getCode()).getId();
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
value =lineSortMap.get(DicDataEnum.TWO_LINE.getCode()).getId();
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
value =lineSortMap.get(DicDataEnum.THREE_LINE.getCode()).getId();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Integer getSteadyStatisData(DictData dictData, List<RMpPartHarmonicDetailD> rMpPartHarmonicDetailDS, List<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDS) {
|
||||||
|
Integer value = 0;
|
||||||
|
if (Objects.equals(dictData.getCode(),DicDataEnum.VOLTAGE_DEV.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsVDev()==1).count()+"");
|
||||||
|
}
|
||||||
|
if (Objects.equals(dictData.getCode(),DicDataEnum.FLICKER.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpSurplusHarmonicDetailDS.stream().filter(temp ->temp.getIsFlicker()==1).count()+"");
|
||||||
|
}
|
||||||
|
if (Objects.equals(dictData.getCode(),DicDataEnum.HARMONIC_VOLTAGE.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsV()==1).count()+"");
|
||||||
|
}
|
||||||
|
if (Objects.equals(dictData.getCode(),DicDataEnum.HARMONIC_CURRENT.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsI()==1).count()+"");
|
||||||
|
}
|
||||||
|
if (Objects.equals(dictData.getCode(),DicDataEnum.INTERHARMONIC_VOLTAGE.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpSurplusHarmonicDetailDS.stream().filter(temp ->temp.getIsInuharm()==1).count()+"");
|
||||||
|
}
|
||||||
|
if (Objects.equals(dictData.getCode(),DicDataEnum.PHASE_VOLTAGE.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsUnbalance()==1).count()+"");
|
||||||
|
}
|
||||||
|
if (Objects.equals(dictData.getCode(),DicDataEnum.FREQUENCY_DEV.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsFreq()==1).count()+"");
|
||||||
|
|
||||||
|
}
|
||||||
|
if (Objects.equals(dictData.getCode(),DicDataEnum.NEG_CURRENT.getCode())) {
|
||||||
|
value = Integer.valueOf(rMpPartHarmonicDetailDS.stream().filter(temp ->temp.getIsINeg()==1).count()+"");
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,7 +3,9 @@ package com.njcn.prepare.harmonic.service.mysql.Impl.area;
|
|||||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
import com.njcn.harmonic.pojo.po.RStatOrgMPO;
|
import com.njcn.harmonic.pojo.po.RStatOrgMPO;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgMMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgMMapper;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgDService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgMService;
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgMService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -15,6 +17,10 @@ import org.springframework.stereotype.Service;
|
|||||||
* @version V1.0.0
|
* @version V1.0.0
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class RStatOrgMServiceImpl extends MppServiceImpl<RStatOrgMMapper, RStatOrgMPO> implements RStatOrgMService{
|
public class RStatOrgMServiceImpl extends MppServiceImpl<RStatOrgMMapper, RStatOrgMPO> implements RStatOrgMService{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,229 @@
|
|||||||
|
package com.njcn.prepare.harmonic.service.mysql.Impl.area;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.lang.Dict;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||||
|
import com.njcn.harmonic.pojo.po.*;
|
||||||
|
import com.njcn.prepare.harmonic.mapper.mysql.area.RMpTargetWarnDMapper;
|
||||||
|
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpEventDetailDMapper;
|
||||||
|
import com.njcn.prepare.harmonic.mapper.mysql.line.ROperatingMonitorDMapper;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicDPO;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.po.RStatDevSignalDPO;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgDService;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgService;
|
||||||
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
|
import com.njcn.system.enums.DicDataEnum;
|
||||||
|
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.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Description:
|
||||||
|
* Date: 2023/5/26 10:50【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class RStatOrgServiceImpl implements RStatOrgService {
|
||||||
|
|
||||||
|
private final RStatOrgDService rStatOrgDService;
|
||||||
|
private final
|
||||||
|
DicDataFeignClient dicDataFeignClient;
|
||||||
|
|
||||||
|
private final ROperatingMonitorDMapper rOperatingMonitorDMapper;
|
||||||
|
private final RMpTargetWarnDMapper rMpTargetWarnDMapper;
|
||||||
|
private final RMpEventDetailDMapper rMpEventDetailDMapper;
|
||||||
|
@Override
|
||||||
|
|
||||||
|
public void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
|
switch (type) {
|
||||||
|
// case 1:
|
||||||
|
// this.hanlderOracleYear (lineParam);
|
||||||
|
// break;
|
||||||
|
// case 2:
|
||||||
|
// this.hanlderOracleQtr (lineParam);
|
||||||
|
// break;
|
||||||
|
// case 3:
|
||||||
|
// this.hanlderOracleMonth (lineParam);
|
||||||
|
// break;
|
||||||
|
case 5:
|
||||||
|
this.hanlderDay ( data, dataDate, type);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = {Exception.class})
|
||||||
|
@Async("asyncExecutor")
|
||||||
|
@SneakyThrows
|
||||||
|
private void hanlderDay(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||||
|
List<RStatOrgDPO> rStatOrgDPOList = new ArrayList<>();
|
||||||
|
Date date = DateUtil.parse(dataDate);
|
||||||
|
|
||||||
|
/*获取数据类型*/
|
||||||
|
|
||||||
|
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||||
|
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
;
|
||||||
|
/*获取监测点类型类型*/
|
||||||
|
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||||
|
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||||
|
|
||||||
|
QueryWrapper<ROperatingMonitorDPO> rOperatingMonitorDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RMpTargetWarnDPO> rmpTargetWarnDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
QueryWrapper<RMpEventDetailDPO> rMpEventDetailDPOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
|
||||||
|
data.forEach(deptGetChildrenMoreDTO -> {
|
||||||
|
|
||||||
|
/*主网*/
|
||||||
|
if(!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())){
|
||||||
|
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
collect.forEach((k, v)->{
|
||||||
|
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
RStatOrgDPO rStatOrgDPO = new RStatOrgDPO();
|
||||||
|
rStatOrgDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatOrgDPO.setDataDate(date);
|
||||||
|
rStatOrgDPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||||
|
rStatOrgDPO.setMeasurementTypeClass(getmeasurementType(k,lineSortMap));
|
||||||
|
rStatOrgDPO.setAllCount(v.size());
|
||||||
|
/*2、接入有效监测点数*/
|
||||||
|
rOperatingMonitorDPOQueryWrapper.clear();
|
||||||
|
rOperatingMonitorDPOQueryWrapper.select("1").
|
||||||
|
in("measurement_point_id",collect1).
|
||||||
|
gt("effective_minute_count",0).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate);
|
||||||
|
Integer integer = rOperatingMonitorDMapper.selectCount(rOperatingMonitorDPOQueryWrapper);
|
||||||
|
rStatOrgDPO.setEffectiveMeasurement(integer);
|
||||||
|
/*3、稳态超标监测点数*/
|
||||||
|
rmpTargetWarnDPOQueryWrapper.clear();
|
||||||
|
rmpTargetWarnDPOQueryWrapper.select("1").
|
||||||
|
in("measurement_point_id",collect1).
|
||||||
|
eq("is_harmonic",1).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate);
|
||||||
|
Integer integer1 = rMpTargetWarnDMapper.selectCount(rmpTargetWarnDPOQueryWrapper);
|
||||||
|
rStatOrgDPO.setHarmonicMeasurement(integer1);
|
||||||
|
/*4、发生暂态的监测点数,5、暂态指标发生次数*/
|
||||||
|
rMpEventDetailDPOQueryWrapper.clear();
|
||||||
|
rMpEventDetailDPOQueryWrapper.
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate);
|
||||||
|
List<RMpEventDetailDPO> rMpEventDetailDPOS = rMpEventDetailDMapper.selectList(rMpEventDetailDPOQueryWrapper);
|
||||||
|
Integer eventCount =0;
|
||||||
|
int sum = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getInterruptTimes).sum();
|
||||||
|
int sum1 = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getSagTimes).sum();
|
||||||
|
int sum2 = rMpEventDetailDPOS.stream().mapToInt(RMpEventDetailDPO::getSwellTimes).sum();
|
||||||
|
|
||||||
|
rStatOrgDPO.setEventCount(sum+sum1+sum2);
|
||||||
|
rStatOrgDPO.setEventMeasurement(rMpEventDetailDPOS.size());
|
||||||
|
/*todo这个指标不重要,后续根据配置来*/
|
||||||
|
rStatOrgDPO.setShouldCount(8);
|
||||||
|
/*7、告警监测点数*/
|
||||||
|
rOperatingMonitorDPOQueryWrapper.clear();
|
||||||
|
rOperatingMonitorDPOQueryWrapper.select("1").
|
||||||
|
in("measurement_point_id",collect1).
|
||||||
|
eq("is_unusual",1).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate);
|
||||||
|
Integer integer2 = rOperatingMonitorDMapper.selectCount(rOperatingMonitorDPOQueryWrapper);
|
||||||
|
rStatOrgDPO.setWarnCount(integer2);
|
||||||
|
rStatOrgDPOList.add(rStatOrgDPO);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
/*配网*/
|
||||||
|
if(!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())){
|
||||||
|
List<LineDevGetDTO> pwMonitorIds = deptGetChildrenMoreDTO.getPwMonitorIds();
|
||||||
|
Map<Integer, List<LineDevGetDTO>> collect = pwMonitorIds.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
|
||||||
|
collect.forEach((k, v)->{
|
||||||
|
|
||||||
|
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||||
|
RStatOrgDPO rStatOrgDPO = new RStatOrgDPO();
|
||||||
|
rStatOrgDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||||
|
rStatOrgDPO.setDataDate(date);
|
||||||
|
rStatOrgDPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||||
|
rStatOrgDPO.setMeasurementTypeClass(getmeasurementType(k,lineSortMap));
|
||||||
|
rStatOrgDPO.setAllCount(v.size());
|
||||||
|
/*2、接入有效监测点数*/
|
||||||
|
rOperatingMonitorDPOQueryWrapper.clear();
|
||||||
|
rOperatingMonitorDPOQueryWrapper.select("1").
|
||||||
|
in("measurement_point_id",collect1).
|
||||||
|
gt("effective_minute_count",0).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate);
|
||||||
|
Integer integer = rOperatingMonitorDMapper.selectCount(rOperatingMonitorDPOQueryWrapper);
|
||||||
|
rStatOrgDPO.setEffectiveMeasurement(integer);
|
||||||
|
/*3、稳态超标监测点数*/
|
||||||
|
rmpTargetWarnDPOQueryWrapper.clear();
|
||||||
|
rmpTargetWarnDPOQueryWrapper.select("1").
|
||||||
|
in("measurement_point_id",collect1).
|
||||||
|
eq("is_harmonic",1).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate);
|
||||||
|
Integer integer1 = rMpTargetWarnDMapper.selectCount(rmpTargetWarnDPOQueryWrapper);
|
||||||
|
rStatOrgDPO.setHarmonicMeasurement(integer1);
|
||||||
|
/*4、发生暂态的监测点数,5、暂态指标发生次数*/
|
||||||
|
rMpEventDetailDPOQueryWrapper.clear();
|
||||||
|
rMpEventDetailDPOQueryWrapper.select("measurement_point_id").
|
||||||
|
in("measurement_point_id", collect1).
|
||||||
|
in("measurement_point_id",collect1).
|
||||||
|
eq("is_harmonic",1).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate);
|
||||||
|
List<RMpEventDetailDPO> rMpEventDetailDPOS = rMpEventDetailDMapper.selectList(rMpEventDetailDPOQueryWrapper);
|
||||||
|
rStatOrgDPO.setEventCount(rMpEventDetailDPOS.size());
|
||||||
|
long count = rMpEventDetailDPOS.stream().distinct().count();
|
||||||
|
rStatOrgDPO.setEventMeasurement(Integer.valueOf(count+""));
|
||||||
|
/*todo这个指标不重要,后续根据配置来*/
|
||||||
|
rStatOrgDPO.setShouldCount(8);
|
||||||
|
/*7、告警监测点数*/
|
||||||
|
rOperatingMonitorDPOQueryWrapper.clear();
|
||||||
|
rOperatingMonitorDPOQueryWrapper.select("1").
|
||||||
|
in("measurement_point_id",collect1).
|
||||||
|
eq("is_unusual",1).
|
||||||
|
eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate);
|
||||||
|
Integer integer2 = rOperatingMonitorDMapper.selectCount(rOperatingMonitorDPOQueryWrapper);
|
||||||
|
rStatOrgDPO.setWarnCount(integer2);
|
||||||
|
rStatOrgDPOList.add(rStatOrgDPO);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
if (!CollectionUtils.isEmpty(rStatOrgDPOList)){
|
||||||
|
rStatOrgDService.saveOrUpdateBatchByMultiId(rStatOrgDPOList,500);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getmeasurementType(Integer k, Map<String, DictData> lineSortMap) {
|
||||||
|
String value ="";
|
||||||
|
switch (k) {
|
||||||
|
case 1:
|
||||||
|
value =lineSortMap.get(DicDataEnum.ONE_LINE.getCode()).getId();
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
value =lineSortMap.get(DicDataEnum.TWO_LINE.getCode()).getId();
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
value =lineSortMap.get(DicDataEnum.THREE_LINE.getCode()).getId();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -6,6 +6,9 @@ import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
|||||||
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpMonitorEvaluateDMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpMonitorEvaluateDMapper;
|
||||||
import com.njcn.prepare.harmonic.pojo.mysql.RMpMonitorEvaluateDPO;
|
import com.njcn.prepare.harmonic.pojo.mysql.RMpMonitorEvaluateDPO;
|
||||||
import com.njcn.prepare.harmonic.pojo.param.DeviceParam;
|
import com.njcn.prepare.harmonic.pojo.param.DeviceParam;
|
||||||
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
|
import com.njcn.system.enums.DicDataEnum;
|
||||||
|
import com.njcn.system.pojo.po.DictData;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.scheduling.annotation.Async;
|
||||||
@@ -25,6 +28,8 @@ import java.util.List;
|
|||||||
* Description:
|
* Description:
|
||||||
* Date: 2023/5/4 14:25【需求编号】
|
* Date: 2023/5/4 14:25【需求编号】
|
||||||
*
|
*
|
||||||
|
|
||||||
|
|
||||||
* @author clam
|
* @author clam
|
||||||
* @version V1.0.0
|
* @version V1.0.0
|
||||||
*/
|
*/
|
||||||
@@ -33,19 +38,22 @@ import java.util.List;
|
|||||||
public class RStatDevSignalDPOServiceImpl extends MppServiceImpl<RStatDevSignalDPOMapper,RStatDevSignalDPO > implements RStatDevSignalDPOService{
|
public class RStatDevSignalDPOServiceImpl extends MppServiceImpl<RStatDevSignalDPOMapper,RStatDevSignalDPO > implements RStatDevSignalDPOService{
|
||||||
|
|
||||||
private final RMpMonitorEvaluateDMapper revaluateDMapper;
|
private final RMpMonitorEvaluateDMapper revaluateDMapper;
|
||||||
|
private final
|
||||||
|
DicDataFeignClient dicDataFeignClient;
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = {Exception.class})
|
@Transactional(rollbackFor = {Exception.class})
|
||||||
@Async("asyncExecutor")
|
@Async("asyncExecutor")
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public void eventdetailHandler(List<DeviceParam> deviceParamList) {
|
public void eventdetailHandler(DeviceParam deviceParam) {
|
||||||
List<RStatDevSignalDPO> rStatDevSignalDPOList = new ArrayList<>();
|
List<RStatDevSignalDPO> rStatDevSignalDPOList = new ArrayList<>();
|
||||||
Date date = DateUtil.parse(deviceParamList.get(0).getDataDate());
|
Date date = DateUtil.parse(deviceParam.getDataDate());
|
||||||
QueryWrapper<RMpMonitorEvaluateDPO> wrapper = new QueryWrapper<>();
|
QueryWrapper<RMpMonitorEvaluateDPO> wrapper = new QueryWrapper<>();
|
||||||
deviceParamList.forEach(temp -> {
|
DictData data = dicDataFeignClient.getDicDataByCode(DicDataEnum.RUNNING.getCode()).getData();
|
||||||
|
deviceParam.getDetailList().forEach(temp -> {
|
||||||
|
|
||||||
RStatDevSignalDPO rStatDevSignalDPO = new RStatDevSignalDPO();
|
RStatDevSignalDPO rStatDevSignalDPO = new RStatDevSignalDPO();
|
||||||
rStatDevSignalDPO.setDevId(temp.getDevId());
|
rStatDevSignalDPO.setDevId(temp.getDevId());
|
||||||
rStatDevSignalDPO.setDeviceStatus(temp.getDeviceStatus());
|
rStatDevSignalDPO.setDeviceStatus(data.getId());
|
||||||
rStatDevSignalDPO.setUpdateTime(temp.getUpdateTime());
|
rStatDevSignalDPO.setUpdateTime(temp.getUpdateTime());
|
||||||
rStatDevSignalDPO.setDataDate(date);
|
rStatDevSignalDPO.setDataDate(date);
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -18,5 +18,5 @@ import java.util.List;
|
|||||||
public interface RMpDevEvaluateDetailPOService extends IMppService<RMpDevEvaluateDetailPO> {
|
public interface RMpDevEvaluateDetailPOService extends IMppService<RMpDevEvaluateDetailPO> {
|
||||||
|
|
||||||
|
|
||||||
void handler(List<DeviceParam> deviceParamList);
|
void handler(DeviceParam deviceParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package com.njcn.prepare.harmonic.service.mysql.area;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.mysql.po.RStatHarmonicDPO;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Date: 2023/5/26 15:52【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
public interface RStatHarmonicDPOService extends IMppService<RStatHarmonicDPO> {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.njcn.prepare.harmonic.service.mysql.area;
|
||||||
|
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Description:
|
||||||
|
* Date: 2023/5/26 15:40【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
public interface RStatHarmonicService {
|
||||||
|
void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type);
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package com.njcn.prepare.harmonic.service.mysql.area;
|
||||||
|
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Description:
|
||||||
|
* Date: 2023/5/26 10:50【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
public interface RStatOrgService
|
||||||
|
{
|
||||||
|
void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type);
|
||||||
|
}
|
||||||
@@ -18,5 +18,5 @@ import java.util.List;
|
|||||||
public interface RStatDevSignalDPOService extends IMppService<RStatDevSignalDPO> {
|
public interface RStatDevSignalDPOService extends IMppService<RStatDevSignalDPO> {
|
||||||
|
|
||||||
|
|
||||||
void eventdetailHandler(List<DeviceParam> deviceParamList);
|
void eventdetailHandler(DeviceParam deviceParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -244,7 +244,12 @@ public enum DicDataEnum {
|
|||||||
VOLTAGE_DEV("电压偏差", "Voltage_Dev"),
|
VOLTAGE_DEV("电压偏差", "Voltage_Dev"),
|
||||||
FLICKER("闪变", "Flicker"),
|
FLICKER("闪变", "Flicker"),
|
||||||
HARMONIC_VOLTAGE("谐波电压", "Harmonic_Voltage"),
|
HARMONIC_VOLTAGE("谐波电压", "Harmonic_Voltage"),
|
||||||
|
HARMONIC_CURRENT("谐波电流", "Harmonic_Current"),
|
||||||
|
INTERHARMONIC_VOLTAGE("间谐波电压", "Interharmonic_Voltage"),
|
||||||
|
PHASE_VOLTAGE("三相电压不平衡度", "phase_Voltage"),
|
||||||
|
FREQUENCY_DEV("频率偏差", "Frequency_Dev"),
|
||||||
|
NEG_CURRENT("负序电流", "Neg_Current"),
|
||||||
|
TOTAL_INDICATOR("总稳态指标", "Total_Indicator"),
|
||||||
/**
|
/**
|
||||||
* 监测对象
|
* 监测对象
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user