Merge remote-tracking branch 'origin/master'

This commit is contained in:
2023-05-16 10:45:31 +08:00
42 changed files with 765 additions and 64 deletions

View File

@@ -31,7 +31,8 @@ public class CsEdDataAddParm {
@ApiModelProperty(value = "装置型号") @ApiModelProperty(value = "装置型号")
@NotBlank(message="装置型号不能为空!") @NotBlank(message="装置型号不能为空!")
private String devType; private String devType;
@ApiModelProperty(value = "装置类型")
private String type;
/** /**
* 版本号 * 版本号
*/ */

View File

@@ -8,6 +8,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.Date;
/** /**
* *
@@ -30,7 +31,8 @@ public class CsEdDataAuditParm {
*/ */
@ApiModelProperty(value = "装置型号") @ApiModelProperty(value = "装置型号")
private String devType; private String devType;
@ApiModelProperty(value = "装置类型")
private String type;
/** /**
* 版本号 * 版本号
*/ */
@@ -49,7 +51,7 @@ public class CsEdDataAuditParm {
@ApiModelProperty(value = "版本日期") @ApiModelProperty(value = "版本日期")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDate versionDate; private Date versionDate;
/** /**
* 描述 * 描述
@@ -65,7 +67,8 @@ public class CsEdDataAuditParm {
@ApiModelProperty(value = "crc信息") @ApiModelProperty(value = "crc信息")
private String crcInfo; private String crcInfo;
@ApiModelProperty(value="0删除 1正常")
private String status;
@ApiModelProperty(value = ".bin文件") @ApiModelProperty(value = ".bin文件")
private MultipartFile file; private MultipartFile file;

View File

@@ -50,12 +50,12 @@ public class CsEquipmentDeliveryAddParm{
@NotBlank(message="装置用途不能为空!") @NotBlank(message="装置用途不能为空!")
private String devUse; private String devUse;
/** // /**
* 装置类型(直连设备、网关设备) // * 装置类型(直连设备、网关设备)
*/ // */
@ApiModelProperty(value="装置类型") // @ApiModelProperty(value="装置类型")
@NotBlank(message="装置类型不能为空!") // @NotBlank(message="装置类型不能为空!")
private String devType; // private String devType;
/** /**
* 装置型号pqs588、pqs680... * 装置型号pqs588、pqs680...

View File

@@ -48,11 +48,11 @@ public class CsEquipmentDeliveryAuditParm {
@ApiModelProperty(value="装置用途") @ApiModelProperty(value="装置用途")
private String devUse; private String devUse;
/** // /**
* 装置类型(直连设备、网关设备) // * 装置类型(直连设备、网关设备)
*/ // */
@ApiModelProperty(value="装置类型") // @ApiModelProperty(value="装置类型")
private String devType; // private String devType;
/** /**
* 装置型号pqs588、pqs680... * 装置型号pqs588、pqs680...

View File

@@ -44,11 +44,11 @@ public class CsEquipmentDeliveryQueryParm {
@ApiModelProperty(value="装置用途") @ApiModelProperty(value="装置用途")
private String devUse; private String devUse;
/** // /**
* 装置类型(直连设备、网关设备) // * 装置类型(直连设备、网关设备)
*/ // */
@ApiModelProperty(value="装置类型") // @ApiModelProperty(value="装置类型")
private String devType; // private String devType;
/** /**
* 装置型号pqs588、pqs680... * 装置型号pqs588、pqs680...

View File

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity; import com.njcn.db.bo.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@@ -38,7 +39,11 @@ public class CsEdDataPO extends BaseEntity {
*/ */
@TableField(value = "dev_type") @TableField(value = "dev_type")
private String devType; private String devType;
/**
* 装置类型(直连设备、网关设备)
*/
@TableField(value = "type")
private String type;
/** /**
* 版本号 * 版本号
*/ */
@@ -81,10 +86,6 @@ public class CsEdDataPO extends BaseEntity {
@TableField(value = "file_path") @TableField(value = "file_path")
private String filePath; private String filePath;
/**
* 装置类型
*/
@TableField(value = "type")
private String type;
} }

View File

@@ -52,11 +52,11 @@ public class CsEquipmentDeliveryPO extends BaseEntity {
@TableField(value = "dev_use") @TableField(value = "dev_use")
private String devUse; private String devUse;
/** // /**
* 装置类型(直连设备、网关设备) // * 装置类型(直连设备、网关设备)
*/ // */
@TableField(value = "dev_type") // @TableField(value = "dev_type")
private String devType; // private String devType;
/** /**
* 装置型号pqs588、pqs680... * 装置型号pqs588、pqs680...

View File

@@ -37,6 +37,9 @@ public class AppTopologyDiagramVO extends BaseEntity {
@ApiModelProperty(value = "项目Id") @ApiModelProperty(value = "项目Id")
private String projectId; private String projectId;
@ApiModelProperty(value = "项目名称")
private String projectName;
/** /**
* 拓扑图文件路径 * 拓扑图文件路径
*/ */

View File

@@ -1,10 +1,14 @@
package com.njcn.algorithm.pojo.vo; package com.njcn.algorithm.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.njcn.db.bo.BaseEntity; import com.njcn.db.bo.BaseEntity;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
/** /**
* *
@@ -46,7 +50,9 @@ public class CsDevModelPageVO extends BaseEntity {
* 版本日期 * 版本日期
*/ */
@ApiModelProperty(value = "版本日期") @ApiModelProperty(value = "版本日期")
private LocalDate versionDate; @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date versionDate;
/** /**
* 装置模板文件路径 * 装置模板文件路径

View File

@@ -1,10 +1,13 @@
package com.njcn.algorithm.pojo.vo; package com.njcn.algorithm.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.njcn.db.bo.BaseEntity; import com.njcn.db.bo.BaseEntity;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.Date;
/** /**
* *
@@ -30,7 +33,8 @@ public class CsEdDataVO extends BaseEntity {
private String devType; private String devType;
@ApiModelProperty(value = "装置名称") @ApiModelProperty(value = "装置名称")
private String devName; private String devName;
@ApiModelProperty(value = "装置类型")
private String type;
/** /**
* 版本号 * 版本号
@@ -47,8 +51,10 @@ public class CsEdDataVO extends BaseEntity {
/** /**
* 版本日期 * 版本日期
*/ */
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty(value = "版本日期") @ApiModelProperty(value = "版本日期")
private LocalDate versionDate; private Date versionDate;
/** /**
* 描述 * 描述
@@ -56,6 +62,9 @@ public class CsEdDataVO extends BaseEntity {
@ApiModelProperty(value = "描述") @ApiModelProperty(value = "描述")
private String description; private String description;
@ApiModelProperty(value = "状态")
private String status;
/** /**
* 版本类型 * 版本类型
*/ */
@@ -68,7 +77,6 @@ public class CsEdDataVO extends BaseEntity {
@ApiModelProperty(value = ".bin文件") @ApiModelProperty(value = ".bin文件")
private String filePath; private String filePath;
@ApiModelProperty(value = "type")
private String type;
} }

View File

@@ -51,11 +51,11 @@ public class CsEquipmentDeliveryVO extends BaseEntity {
@ApiModelProperty(value="装置用途") @ApiModelProperty(value="装置用途")
private String devUse; private String devUse;
/** // /**
* 装置类型(直连设备、网关设备) // * 装置类型(直连设备、网关设备)
*/ // */
@ApiModelProperty(value="装置类型") // @ApiModelProperty(value="装置类型")
private String devType; // private String devType;
/** /**
* 装置型号pqs588、pqs680... * 装置型号pqs588、pqs680...

View File

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import com.njcn.algorithm.pojo.po.CsFeedbackChatPO; import com.njcn.algorithm.pojo.po.CsFeedbackChatPO;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@@ -60,7 +61,8 @@ public class CsFeedbackDetailVO {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime createTime; private LocalDateTime createTime;
private List<String> imageUrls; private List<String> imageUrls;

View File

@@ -3,6 +3,7 @@ package com.njcn.algorithm.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@@ -59,7 +60,8 @@ public class CsFeedbackVO {
@ApiModelProperty(value = "未读消息条数") @ApiModelProperty(value = "未读消息条数")
private int chatCount; private int chatCount;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime createTime; private LocalDateTime createTime;

View File

@@ -29,7 +29,7 @@
FROM cs_ed_data a FROM cs_ed_data a
LEFT JOIN sys_dict_data b ON a.dev_type = b.id LEFT JOIN sys_dict_data b ON a.dev_type = b.id
WHERE WHERE
1 = 1 And a.`status`='1' 1 = 1
<if test="csEdDataQueryParm.versionStartDate != null and csEdDataQueryParm.versionStartDate != ''"> <if test="csEdDataQueryParm.versionStartDate != null and csEdDataQueryParm.versionStartDate != ''">
AND a.version_date &gt;= #{csEdDataQueryParm.versionStartDate } AND a.version_date &gt;= #{csEdDataQueryParm.versionStartDate }
</if> </if>

View File

@@ -6,13 +6,16 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.google.common.base.Objects; import com.google.common.base.Objects;
import com.njcn.algorithm.mapper.AppProjectMapper;
import com.njcn.algorithm.mapper.AppTopologyDiagramMapper; import com.njcn.algorithm.mapper.AppTopologyDiagramMapper;
import com.njcn.algorithm.pojo.param.AppTopologyDiagramAddParm; import com.njcn.algorithm.pojo.param.AppTopologyDiagramAddParm;
import com.njcn.algorithm.pojo.param.AppTopologyDiagramAuditParm; import com.njcn.algorithm.pojo.param.AppTopologyDiagramAuditParm;
import com.njcn.algorithm.pojo.param.AppTopologyDiagramQueryPageParm; import com.njcn.algorithm.pojo.param.AppTopologyDiagramQueryPageParm;
import com.njcn.algorithm.pojo.param.AppTopologyDiagramQueryParm; import com.njcn.algorithm.pojo.param.AppTopologyDiagramQueryParm;
import com.njcn.algorithm.pojo.po.AppProjectPO;
import com.njcn.algorithm.pojo.po.AppTopologyDiagramPO; import com.njcn.algorithm.pojo.po.AppTopologyDiagramPO;
import com.njcn.algorithm.pojo.vo.AppTopologyDiagramVO; import com.njcn.algorithm.pojo.vo.AppTopologyDiagramVO;
import com.njcn.algorithm.service.AppProjectService;
import com.njcn.algorithm.service.AppTopologyDiagramService; import com.njcn.algorithm.service.AppTopologyDiagramService;
import com.njcn.oss.constant.OssPath; import com.njcn.oss.constant.OssPath;
import com.njcn.oss.utils.FileStorageUtil; import com.njcn.oss.utils.FileStorageUtil;
@@ -41,6 +44,7 @@ public class AppTopologyDiagramServiceImpl extends MppServiceImpl<AppTopologyDia
private final FileStorageUtil fileStorageUtil; private final FileStorageUtil fileStorageUtil;
private final AppProjectMapper appServiceMapper;
private final AppTopologyDiagramMapper appTopologyDiagramMapper; private final AppTopologyDiagramMapper appTopologyDiagramMapper;
@Override @Override
@@ -91,9 +95,13 @@ public class AppTopologyDiagramServiceImpl extends MppServiceImpl<AppTopologyDia
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 ());
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 -> {
AppTopologyDiagramVO vo = new AppTopologyDiagramVO ( ); AppTopologyDiagramVO vo = new AppTopologyDiagramVO ( );
BeanUtils.copyProperties (temp, vo); BeanUtils.copyProperties (temp, vo);
AppProjectPO appProjectPO = appServiceMapper.selectById(vo.getProjectId());
vo.setProjectName(appProjectPO.getName());
vo.setFilePath (fileStorageUtil.getFileUrl (vo.getFilePath ())); vo.setFilePath (fileStorageUtil.getFileUrl (vo.getFilePath ()));
return vo; return vo;
}).collect (Collectors.toList ( )); }).collect (Collectors.toList ( ));
@@ -114,6 +122,9 @@ public class AppTopologyDiagramServiceImpl extends MppServiceImpl<AppTopologyDia
List<AppTopologyDiagramVO> collect = tempPage.getRecords ( ).stream ( ).map (temp -> { List<AppTopologyDiagramVO> collect = tempPage.getRecords ( ).stream ( ).map (temp -> {
AppTopologyDiagramVO vo = new AppTopologyDiagramVO ( ); AppTopologyDiagramVO vo = new AppTopologyDiagramVO ( );
BeanUtils.copyProperties (temp, vo); BeanUtils.copyProperties (temp, vo);
AppProjectPO appProjectPO = appServiceMapper.selectById(vo.getProjectId());
vo.setProjectName(appProjectPO.getName());
vo.setFilePath (fileStorageUtil.getFileUrl (temp.getFilePath ( ))); vo.setFilePath (fileStorageUtil.getFileUrl (temp.getFilePath ( )));
return vo; return vo;
}).collect (Collectors.toList ( )); }).collect (Collectors.toList ( ));

View File

@@ -31,7 +31,7 @@ spring:
shared-configs: shared-configs:
- data-id: share-config.yaml - data-id: share-config.yaml
refresh: true refresh: true
- data-Id: share-config-datasource-db.yaml - data-Id: algorithm-config.yaml
refresh: true refresh: true
main: main:
allow-bean-definition-overriding: true allow-bean-definition-overriding: true

View File

@@ -256,6 +256,31 @@ public class PubUtils {
} }
} }
public static Integer getRunFlag(String runFlag) {
switch (runFlag) {
case "投运":
return 0;
case "热备用":
return 1;
case "停运":
return 2;
default:
return -1;
}
}
public static Double getDefectSeverity(String defectSeverity) {
switch (defectSeverity) {
case "轻缺陷":
return 0.02;
case "较重缺陷":
return 0.12;
case "严重缺陷":
return 0.42;
default:
return 0.00;
}
}
public static String ptType(Integer ptType) { public static String ptType(Integer ptType) {
switch (ptType) { switch (ptType) {
case 0: case 0:

View File

@@ -32,11 +32,11 @@ public class PmsLedgerStaticDTO implements Serializable {
/** /**
* 根据单位统计监测点数量 * 根据单位统计监测点数量
*/ */
private HashMap<String,List<PmsSimpleDTO>> monitorStatisticsByDept; private List<List<PmsSimpleDTO.PmsSimpleOrg>> monitorStatisticsByDept;
/** /**
*根据单位统计终端数量 * 根据单位统计终端数量
*/ */
private HashMap<String,List<PmsSimpleDTO>> terminalStatisticsByDept; private List<List<PmsSimpleDTO.PmsSimpleOrg>> terminalStatisticsByDept;
} }

View File

@@ -4,7 +4,10 @@ package com.njcn.device.pms.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.common.pojo.param.StatisticsBizBaseParam; import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.device.pms.pojo.dto.PmsLedgerStaticDTO; import com.njcn.device.pms.pojo.dto.PmsLedgerStaticDTO;
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
import com.njcn.device.pms.pojo.po.SubstationExpend; import com.njcn.device.pms.pojo.po.SubstationExpend;
import com.njcn.device.pq.pojo.param.CommunicateParam;
import com.njcn.device.pq.pojo.vo.CommunicateVO;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -23,5 +26,7 @@ public interface ISubstationExpendService extends IService<SubstationExpend> {
Map<String, List<SubstationExpend>> getSubstationExpendInfo(StatisticsBizBaseParam param); Map<String, List<SubstationExpend>> getSubstationExpendInfo(StatisticsBizBaseParam param);
PmsLedgerStaticDTO getLedgerStatistics(PmsDeviceInfoParam param); PmsLedgerStaticDTO getLedgerStatistics(StatisticsBizBaseParam param);
List<CommunicateVO.PVCommunicateVO> getCommunicationStatus(CommunicateParam param);
} }

View File

@@ -6,6 +6,7 @@ import com.njcn.device.pms.pojo.param.PmsBaseParam;
import com.njcn.device.pms.pojo.param.PmsTerminalParam; import com.njcn.device.pms.pojo.param.PmsTerminalParam;
import com.njcn.device.pms.pojo.param.TerminalQueryParam; import com.njcn.device.pms.pojo.param.TerminalQueryParam;
import com.njcn.device.pms.pojo.po.PmsTerminal; import com.njcn.device.pms.pojo.po.PmsTerminal;
import com.njcn.web.pojo.param.BaseParam;
import java.util.List; import java.util.List;
@@ -32,7 +33,12 @@ public interface ITerminalService extends IService<PmsTerminal> {
*/ */
List<PmsTerminal> getTerminalSelectList(PmsBaseParam pmsBaseParam); List<PmsTerminal> getTerminalSelectList(PmsBaseParam pmsBaseParam);
/**
* 根据终端id集合新查询终端信息
* @param ids
* @return
*/
List<PmsTerminal> getTerminalSelectByIds(List<String> ids);
/** /**
* 根据id查询 * 根据id查询

View File

@@ -1,11 +1,13 @@
package com.njcn.device.pms.service.majornetwork.impl; package com.njcn.device.pms.service.majornetwork.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pms.enums.PmsDeviceResponseEnum; import com.njcn.device.pms.enums.PmsDeviceResponseEnum;
import com.njcn.device.pms.mapper.majornetwork.StatationStatMapper;
import com.njcn.device.pms.mapper.majornetwork.TerminalMapper; import com.njcn.device.pms.mapper.majornetwork.TerminalMapper;
import com.njcn.device.pms.pojo.param.PmsBaseParam; import com.njcn.device.pms.pojo.param.PmsBaseParam;
import com.njcn.device.pms.pojo.param.PmsTerminalParam; import com.njcn.device.pms.pojo.param.PmsTerminalParam;
@@ -23,11 +25,13 @@ import com.njcn.system.api.DicDataFeignClient;
import com.njcn.user.api.DeptFeignClient; import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept; import com.njcn.user.pojo.po.Dept;
import com.njcn.web.factory.PageFactory; import com.njcn.web.factory.PageFactory;
import com.njcn.web.pojo.param.BaseParam;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@@ -93,6 +97,14 @@ public class TerminalServiceImpl extends ServiceImpl<TerminalMapper, PmsTerminal
return this.list(lambdaQueryWrapper); return this.list(lambdaQueryWrapper);
} }
@Override
public List<PmsTerminal> getTerminalSelectByIds(List<String> ids) {
return this.list(new LambdaQueryWrapper<PmsTerminal>()
.in(CollUtil.isNotEmpty(ids),PmsTerminal::getId,ids)
.eq(PmsTerminal::getStatus,DataStateEnum.ENABLE.getCode())
);
}
/** /**
* 根据id查询 * 根据id查询
* @author hany * @author hany

View File

@@ -20,9 +20,6 @@ public class Communicate {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* 终端Id
*/
/** /**
* 更新时间 * 更新时间
*/ */
@@ -33,7 +30,11 @@ public class Communicate {
*/ */
@Column(name = "line_id") @Column(name = "line_id")
private String id; private String id;
/**
* 终端Id
*/
@Column(name = "dev_id")
private String devId;
/** /**
* 事件类型(0中断1正常2退出) * 事件类型(0中断1正常2退出)

View File

@@ -438,14 +438,29 @@ public class ReportServiceImpl implements ReportService {
*/ */
@Override @Override
public Page<DetailVO> getContinueTime(WaveTypeParam waveTypeParam) { public Page<DetailVO> getContinueTime(WaveTypeParam waveTypeParam) {
List<String> lineIds =new ArrayList<>();
String eventType="";
List<DetailVO> result = new ArrayList<>(); List<DetailVO> result = new ArrayList<>();
if(waveTypeParam.getType()==0){
//pq系统
List<GeneralDeviceDTO> deviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(waveTypeParam).getData(); List<GeneralDeviceDTO> deviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(waveTypeParam).getData();
List<String> lineIds = deviceDTOList.stream().flatMap(list -> list.getLineIndexes().stream()).collect(Collectors.toList()); lineIds =deviceDTOList.stream().flatMap(list -> list.getLineIndexes().stream()).collect(Collectors.toList());
}else{
//pms系统
PmsDeviceInfoParam param=new PmsDeviceInfoParam();
param.setDeptIndex(waveTypeParam.getDeptIndex());
param.setStatisticalType(waveTypeParam.getStatisticalType());
List<PmsGeneralDeviceDTO> data = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(param).getData();
lineIds =data.stream().flatMap(list -> list.getMonitorIdList().stream()).collect(Collectors.toList());
eventType=dicDataFeignClient.getDicDataByCode(DicDataEnum.VOLTAGE_DIP.getCode()).getData().getId();
}
if (CollectionUtil.isEmpty(lineIds)) { if (CollectionUtil.isEmpty(lineIds)) {
throw new BusinessException(DeviceResponseEnum.DEPT_LINE_EMPTY); throw new BusinessException(DeviceResponseEnum.DEPT_LINE_EMPTY);
} }
Page<RmpEventDetailPO> pageInfo = eventDetailService.page(new Page<>(waveTypeParam.getPageNum(), waveTypeParam.getPageSize()), new LambdaQueryWrapper<RmpEventDetailPO>() Page<RmpEventDetailPO> pageInfo = eventDetailService.page(new Page<>(waveTypeParam.getPageNum(), waveTypeParam.getPageSize()), new LambdaQueryWrapper<RmpEventDetailPO>()
.in(RmpEventDetailPO::getMeasurementPointId, lineIds) .in(RmpEventDetailPO::getMeasurementPointId, lineIds)
.eq(StrUtil.isNotBlank(eventType),RmpEventDetailPO::getEventType,eventType)
.ge(StringUtils.isNotBlank(waveTypeParam.getSearchBeginTime()), RmpEventDetailPO::getStartTime,DateUtil.beginOfDay(DateUtil.parse(waveTypeParam.getSearchBeginTime()))) .ge(StringUtils.isNotBlank(waveTypeParam.getSearchBeginTime()), RmpEventDetailPO::getStartTime,DateUtil.beginOfDay(DateUtil.parse(waveTypeParam.getSearchBeginTime())))
.le(StringUtils.isNotBlank(waveTypeParam.getSearchEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(waveTypeParam.getSearchEndTime()))) .le(StringUtils.isNotBlank(waveTypeParam.getSearchEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(waveTypeParam.getSearchEndTime())))
); );
@@ -458,6 +473,8 @@ public class ReportServiceImpl implements ReportService {
result.add(vo); result.add(vo);
idlist.add(eventDetail.getLineId()); idlist.add(eventDetail.getLineId());
} }
if(waveTypeParam.getType()==0){
//pq系统
HttpResult<List<AreaLineInfoVO>> AreaInfo = lineFeignClient.getBaseLineAreaInfo(idlist); HttpResult<List<AreaLineInfoVO>> AreaInfo = lineFeignClient.getBaseLineAreaInfo(idlist);
List<AreaLineInfoVO> data = AreaInfo.getData(); List<AreaLineInfoVO> data = AreaInfo.getData();
for (DetailVO detailVO : result) { for (DetailVO detailVO : result) {
@@ -467,6 +484,25 @@ public class ReportServiceImpl implements ReportService {
} }
} }
} }
}else{
//pms系统
List<Monitor> monitorInfo = monitorClient.getMonitorList(idlist).getData();
for (DetailVO detailVO : result) {
for (Monitor vo : monitorInfo) {
if (vo.getId().equals(detailVO.getLineId())) {
detailVO.setLineId(vo.getId());
detailVO.setLineName(vo.getName());
detailVO.setSubId(vo.getPowerrId());
detailVO.setSubName(vo.getPowerrName());
detailVO.setGdId(vo.getOrgId());
detailVO.setGdName(vo.getOrgName());
detailVO.setVoltageScale(vo.getVoltageLevel());
}
}
}
}
HttpResult<List<DictData>> reason = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.EVENT_TYPE.getName()); HttpResult<List<DictData>> reason = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.EVENT_TYPE.getName());
List<DictData> type = reason.getData(); List<DictData> type = reason.getData();
for (DetailVO detailVO : result) { for (DetailVO detailVO : result) {

View File

@@ -125,6 +125,13 @@ spring:
filters: filters:
- SwaggerHeaderFilter - SwaggerHeaderFilter
- StripPrefix=1 - StripPrefix=1
- id: algorithm-boot
uri: lb://algorithm-boot
predicates:
- Path=/algorithm-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

View File

@@ -33,6 +33,9 @@ public class RMpMonitorEvaluateDPO {
@MppMultiId(value = "measurement_point_id") @MppMultiId(value = "measurement_point_id")
private String measurementPointId; private String measurementPointId;
@TableField(value = "device_id")
private String deviceId;
/** /**
* 总接入分钟数 * 总接入分钟数
*/ */
@@ -54,7 +57,6 @@ public class RMpMonitorEvaluateDPO {
/** /**
* 相电压有效值平均值指标数据个数 * 相电压有效值平均值指标数据个数
*/ */
@TableField(value = "phase_voltage_count")
private Integer phaseVoltageCount; private Integer phaseVoltageCount;
/** /**

View File

@@ -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 java.util.List;
/**
* Description:
* Date: 2023/5/4 15:18【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
public class DeviceParam {
@ApiModelProperty(name = "devId",value = "终端id")
private String devId;
private String updateTime;
@ApiModelProperty(name = "lineIds",value = "监测点索引集合")
private List<String> lineIds;
@ApiModelProperty(name = "dataDate",value = "时间")
@NotBlank(message = "报表时间不可为空")
private String dataDate;
private String deviceStatus;
}

View File

@@ -0,0 +1,86 @@
package com.njcn.prepare.harmonic.pojo.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/9 15:43【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
@TableName(value = "r_mp_dev_solve_detail")
public class RMpDevSolveDetailPO {
/**
* 终端id
*/
@MppMultiId(value = "device_id")
private String deviceId;
/**
* 生成数据的时间,每天统计一次
*/
@MppMultiId(value = "data_date")
private Date dataDate;
/**
* 故障时间
*/
@TableField(value = "break_down_date")
private Date breakDownDate;
/**
* 故障类型
*/
@TableField(value = "break_down_type")
private String breakDownType;
/**
* 是否消缺(0否 1是)
*/
@TableField(value = "is_solve")
private String isSolve;
/**
* 消缺时间
*/
@TableField(value = "solve_date")
private Date solveDate;
/**
* 消缺措施
*/
@TableField(value = "defect_treatment")
private String defectTreatment;
/**
* 缺陷严重度(轻缺陷、较重缺陷和严重缺陷 三类缺陷对应分值为0.02,0.12和0.42消缺为对应缺陷分值的1/3)
*/
@TableField(value = "defect_severity")
private String defectSeverity;
public static final String COL_DEVICE_ID = "device_id";
public static final String COL_DATA_DATE = "data_date";
public static final String COL_BREAK_DOWN_DATE = "break_down_date";
public static final String COL_BREAK_DOWN_TYPE = "break_down_type";
public static final String COL_IS_SOLVE = "is_solve";
public static final String COL_SOLVE_DATE = "solve_date";
public static final String COL_DEFECT_TREATMENT = "defect_treatment";
public static final String COL_DEFECT_SEVERITY = "defect_severity";
}

View File

@@ -0,0 +1,50 @@
package com.njcn.prepare.harmonic.pojo.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/4 14:30【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
@TableName(value = "r_stat_dev_signal_d")
public class RStatDevSignalDPO {
/**
* 更新时间
*/
@MppMultiId(value = "data_date")
private Date dataDate;
/**
* 终端Id
*/
@MppMultiId(value = "dev_id")
private String devId;
/**
* 设备状态
*/
@TableField(value = "device_status")
private String deviceStatus;
/**
* 运行状态
*/
@TableField(value = "run_status")
private String runStatus;
@TableField(value = "update_time")
private String updateTime;
}

View File

@@ -0,0 +1,55 @@
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.prepare.harmonic.pojo.param.DeviceParam;
import com.njcn.prepare.harmonic.service.mysql.area.RMpDevEvaluateDetailPOService;
import com.njcn.prepare.harmonic.service.mysql.device.RStatDevSignalDPOService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.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("/rMpDevEvaluateDetail")
@RequiredArgsConstructor
public class RMpDevEvaluateDetailController extends BaseController {
private final RMpDevEvaluateDetailPOService rMpDevEvaluateDetailPOService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/handler")
@ApiOperation("终端数据评价_日统计")
@ApiImplicitParam(name = "deviceParamList", value = "参数", required = true)
public HttpResult<String> handler(@RequestBody @Validated List<DeviceParam> deviceParamList){
log.info(LocalDateTime.now()+"handler始执行");
String methodDescribe = getMethodDescribe("handler");
rMpDevEvaluateDetailPOService.handler (deviceParamList);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

View File

@@ -0,0 +1,59 @@
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.DeviceParam;
import com.njcn.prepare.harmonic.pojo.param.LineParam;
import com.njcn.prepare.harmonic.service.mysql.device.RStatDevSignalDPOService;
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("/rstatdevsignal")
@RequiredArgsConstructor
public class RStatDevSignalController extends BaseController {
private final RStatDevSignalDPOService rStatDevSignalDPOService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/rstatdevsignalHandler")
@ApiOperation("终端通信管理_日统计")
@ApiImplicitParam(name = "deviceParamList", value = "参数", required = true)
public HttpResult<String> rstatdevsignalHandler(@RequestBody @Validated List<DeviceParam> deviceParamList){
log.info(LocalDateTime.now()+"rstatdevsignalHandler始执行");
String methodDescribe = getMethodDescribe("rstatdevsignalHandler");
rStatDevSignalDPOService.eventdetailHandler (deviceParamList);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

View File

@@ -0,0 +1,16 @@
package com.njcn.prepare.harmonic.mapper.mysql.device;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.prepare.harmonic.pojo.po.RMpDevSolveDetailPO;
/**
*
* Description:
* Date: 2023/5/9 15:43【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RMpDevSolveDetailPOMapper extends MppBaseMapper<RMpDevSolveDetailPO> {
}

View File

@@ -0,0 +1,15 @@
package com.njcn.prepare.harmonic.mapper.mysql.device;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.prepare.harmonic.pojo.po.RStatDevSignalDPO;
/**
* Description:
* Date: 2023/5/4 14:30【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RStatDevSignalDPOMapper extends MppBaseMapper<RStatDevSignalDPO> {
}

View File

@@ -0,0 +1,21 @@
<?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.device.RMpDevSolveDetailPOMapper">
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.po.RMpDevSolveDetailPO">
<!--@mbg.generated-->
<!--@Table r_mp_dev_solve_detail-->
<id column="device_id" jdbcType="VARCHAR" property="deviceId" />
<id column="data_date" jdbcType="TIMESTAMP" property="dataDate" />
<result column="break_down_date" jdbcType="TIMESTAMP" property="breakDownDate" />
<result column="break_down_type" jdbcType="VARCHAR" property="breakDownType" />
<result column="is_solve" jdbcType="TINYINT" property="isSolve" />
<result column="solve_date" jdbcType="TIMESTAMP" property="solveDate" />
<result column="defect_treatment" jdbcType="LONGVARCHAR" property="defectTreatment" />
<result column="defect_severity" jdbcType="VARCHAR" property="defectSeverity" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
device_id, data_date, break_down_date, break_down_type, is_solve, solve_date, defect_treatment,
defect_severity
</sql>
</mapper>

View File

@@ -0,0 +1,16 @@
<?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.device.RStatDevSignalDPOMapper">
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.po.RStatDevSignalDPO">
<!--@mbg.generated-->
<!--@Table r_stat_dev_signal_d-->
<id column="data_date" jdbcType="TIMESTAMP" property="dataDate" />
<id column="dev_id" jdbcType="VARCHAR" property="devId" />
<result column="device_status" jdbcType="VARCHAR" property="deviceStatus" />
<result column="run_status" jdbcType="VARCHAR" property="runStatus" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
data_date, dev_id, device_status, run_status
</sql>
</mapper>

View File

@@ -1,10 +1,33 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.area; 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.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.utils.PubUtils;
import com.njcn.harmonic.pojo.po.RMpDevEvaluateDetailPO; import com.njcn.harmonic.pojo.po.RMpDevEvaluateDetailPO;
import com.njcn.prepare.harmonic.mapper.mysql.area.RMpDevEvaluateDetailPOMapper; import com.njcn.prepare.harmonic.mapper.mysql.area.RMpDevEvaluateDetailPOMapper;
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.param.DeviceParam;
import com.njcn.prepare.harmonic.pojo.po.RMpDevSolveDetailPO;
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.device.RMpDevSolveDetailPOService;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.OptionalDouble;
/** /**
* *
* Description: * Description:
@@ -15,6 +38,61 @@ import org.springframework.stereotype.Service;
* @version V1.0.0 * @version V1.0.0
*/ */
@Service @Service
@RequiredArgsConstructor
public class RMpDevEvaluateDetailPOServiceImpl extends MppServiceImpl<RMpDevEvaluateDetailPOMapper, RMpDevEvaluateDetailPO> implements RMpDevEvaluateDetailPOService{ public class RMpDevEvaluateDetailPOServiceImpl extends MppServiceImpl<RMpDevEvaluateDetailPOMapper, RMpDevEvaluateDetailPO> implements RMpDevEvaluateDetailPOService{
private final ROperatingMonitorDMapper rOperatingMonitorDMapper;
private final RMpDevSolveDetailPOService rMpDevSolveDetailPOService;
private final DecimalFormat df = new DecimalFormat("#.00");
@Override
@Transactional(rollbackFor = {Exception.class})
@Async("asyncExecutor")
@SneakyThrows
public void handler(List<DeviceParam> deviceParamList) {
List<RMpDevEvaluateDetailPO> rMpDevEvaluateDetailPOList = new ArrayList<>();
Date date = DateUtil.parse(deviceParamList.get(0).getDataDate());
QueryWrapper<ROperatingMonitorDPO> wrapper = new QueryWrapper<>();
QueryWrapper<RMpDevSolveDetailPO> wrapper1 = new QueryWrapper<>();
deviceParamList.forEach(temp -> {
RMpDevEvaluateDetailPO rMpDevEvaluateDetailPO = new RMpDevEvaluateDetailPO();
rMpDevEvaluateDetailPO.setDeviceId(temp.getDevId());
rMpDevEvaluateDetailPO.setDataDate(date);
wrapper.clear();
wrapper1.clear();
wrapper1.select(RMpDevSolveDetailPO.COL_DEFECT_SEVERITY).
eq(RMpDevSolveDetailPO.COL_DEVICE_ID,temp.getDevId()).
eq(RMpDevSolveDetailPO.COL_DATA_DATE, temp.getDataDate());
RMpDevSolveDetailPO one = rMpDevSolveDetailPOService.getOne(wrapper1);
Double defectSeverity = PubUtils.getDefectSeverity(one.getDefectSeverity());
rMpDevEvaluateDetailPO.setDevScore(Double.valueOf(df.format(defectSeverity/3)));
List<ROperatingMonitorDPO> rOperatingMonitorDPOS = new ArrayList<>();
List<String> lineIds = temp.getLineIds();
if(lineIds.size() > 0){
wrapper.in("measurement_point_id", lineIds);
rOperatingMonitorDPOS = rOperatingMonitorDMapper.selectList(wrapper);
}
double asDouble1=0.00 ,asDouble2=0.00,aDouble=0.00;
if(rOperatingMonitorDPOS.size()>0){
asDouble1= rOperatingMonitorDPOS.stream().mapToDouble(po -> po.getDataIntegrityRate().doubleValue()).average().getAsDouble();
asDouble2 = rOperatingMonitorDPOS.stream().mapToDouble(po -> po.getIndexIntegrityRate().doubleValue()).average().getAsDouble();
long count = rOperatingMonitorDPOS.stream().filter(po -> po.getIsUnusual() == 1 && po.getDataIntegrityRate().compareTo(new BigDecimal(0.95)) == 1).count();
aDouble = Double.valueOf(count) / rOperatingMonitorDPOS.size();
}
rMpDevEvaluateDetailPO.setDevDataRate(Double.valueOf(df.format(asDouble1)));
rMpDevEvaluateDetailPO.setDevTargetRate(Double.valueOf(df.format(asDouble2)));
rMpDevEvaluateDetailPO.setDevEffectiveRate(Double.valueOf(df.format(aDouble)));
rMpDevEvaluateDetailPOList.add(rMpDevEvaluateDetailPO);
});
this.saveOrUpdateBatchByMultiId(rMpDevEvaluateDetailPOList,500);
}
} }

View File

@@ -0,0 +1,22 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.device;
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.device.RMpDevSolveDetailPOMapper;
import com.njcn.prepare.harmonic.pojo.po.RMpDevSolveDetailPO;
import com.njcn.prepare.harmonic.service.mysql.device.RMpDevSolveDetailPOService;
/**
*
* Description:
* Date: 2023/5/9 15:43【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class RMpDevSolveDetailPOServiceImpl extends MppServiceImpl<RMpDevSolveDetailPOMapper, RMpDevSolveDetailPO> implements RMpDevSolveDetailPOService{
}

View File

@@ -0,0 +1,74 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.device;
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.RMpMonitorEvaluateDMapper;
import com.njcn.prepare.harmonic.pojo.mysql.RMpMonitorEvaluateDPO;
import com.njcn.prepare.harmonic.pojo.param.DeviceParam;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import com.njcn.prepare.harmonic.mapper.mysql.device.RStatDevSignalDPOMapper;
import com.njcn.prepare.harmonic.pojo.po.RStatDevSignalDPO;
import com.njcn.prepare.harmonic.service.mysql.device.RStatDevSignalDPOService;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
*
* Description:
* Date: 2023/5/4 14:25【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
@RequiredArgsConstructor
public class RStatDevSignalDPOServiceImpl extends MppServiceImpl<RStatDevSignalDPOMapper,RStatDevSignalDPO > implements RStatDevSignalDPOService{
private final RMpMonitorEvaluateDMapper revaluateDMapper;
@Override
@Transactional(rollbackFor = {Exception.class})
@Async("asyncExecutor")
@SneakyThrows
public void eventdetailHandler(List<DeviceParam> deviceParamList) {
List<RStatDevSignalDPO> rStatDevSignalDPOList = new ArrayList<>();
Date date = DateUtil.parse(deviceParamList.get(0).getDataDate());
QueryWrapper<RMpMonitorEvaluateDPO> wrapper = new QueryWrapper<>();
deviceParamList.forEach(temp -> {
RStatDevSignalDPO rStatDevSignalDPO = new RStatDevSignalDPO();
rStatDevSignalDPO.setDevId(temp.getDevId());
rStatDevSignalDPO.setDeviceStatus(temp.getDeviceStatus());
rStatDevSignalDPO.setUpdateTime(temp.getUpdateTime());
rStatDevSignalDPO.setDataDate(date);
/**
* 1、运行状态设备下任意一个监测点有效接入分钟数effective_minute_count > 0为在线状态反之离线状态
*/
Integer effective_minute_count = 0;
List<String> lineIds = temp.getLineIds();
if(lineIds.size() > 0){
wrapper.clear();
wrapper.select("sum(effective_minute_count) as effective_minute_count ");
wrapper.eq("device_id", temp.getDevId());
wrapper.in("measurement_point_id", lineIds);
RMpMonitorEvaluateDPO rMpMonitorEvaluateDPO = revaluateDMapper.selectOne(wrapper);
effective_minute_count = rMpMonitorEvaluateDPO.getEffectiveMinuteCount();
}
String runStatus = "0";
if(effective_minute_count>0&&temp.getDeviceStatus().equals("0")){
runStatus = "1";
}
rStatDevSignalDPO.setRunStatus(runStatus);
rStatDevSignalDPOList.add(rStatDevSignalDPO);
});
this.saveOrUpdateBatchByMultiId(rStatDevSignalDPOList,500);
}
}

View File

@@ -63,6 +63,8 @@ public class RMpMonitorEvaluateDServiceImpl extends MppServiceImpl<RMpMonitorEva
indexLists.forEach (temp -> { indexLists.forEach (temp -> {
LineDetailDataVO data = lineFeignClient.getLineDetailData (temp).getData ( ); LineDetailDataVO data = lineFeignClient.getLineDetailData (temp).getData ( );
String devid = lineFeignClient.getLineIdByDevId(temp).getData();
/*todo 统计间隔电压等级取值方式后期提供融合版本接口获取不然pmspqs系统取值方式不一样*/ /*todo 统计间隔电压等级取值方式后期提供融合版本接口获取不然pmspqs系统取值方式不一样*/
/*统计间隔*/ /*统计间隔*/
@@ -84,6 +86,7 @@ public class RMpMonitorEvaluateDServiceImpl extends MppServiceImpl<RMpMonitorEva
return; return;
} }
rMpMonitorEvaluateDPO.setAllMinuteCount (fiveItems.size ()); rMpMonitorEvaluateDPO.setAllMinuteCount (fiveItems.size ());
rMpMonitorEvaluateDPO.setDeviceId(devid);
rMpMonitorEvaluateDPO.setDataDate (date); rMpMonitorEvaluateDPO.setDataDate (date);
rMpMonitorEvaluateDPO.setMeasurementPointId (temp); rMpMonitorEvaluateDPO.setMeasurementPointId (temp);
rMpMonitorEvaluateDPO.setPltCount (twoFlickerData.getPltCount ()); rMpMonitorEvaluateDPO.setPltCount (twoFlickerData.getPltCount ());

View File

@@ -2,6 +2,7 @@ package com.njcn.prepare.harmonic.service.mysql.Impl.line;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.utils.PubUtils;
import com.njcn.device.pq.api.LineFeignClient; import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.pojo.vo.LineDetailDataVO; import com.njcn.device.pq.pojo.vo.LineDetailDataVO;
import com.njcn.prepare.harmonic.mapper.mysql.line.ROperatingMonitorDMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.ROperatingMonitorDMapper;
@@ -108,7 +109,7 @@ public class ROperatingMonitorDServiceImpl extends MppServiceImpl<ROperatingMoni
) )
); );
rOperatingMonitorDPO.setDevId (devid); rOperatingMonitorDPO.setDevId (devid);
rOperatingMonitorDPO.setMonitorState (data.getRunFlag()); rOperatingMonitorDPO.setMonitorState (PubUtils.getRunFlag(data.getRunFlag())+"");
rOperatingMonitorDPOList.add (rOperatingMonitorDPO); rOperatingMonitorDPOList.add (rOperatingMonitorDPO);
}); });
this.saveOrUpdateBatchByMultiId (rOperatingMonitorDPOList,500); this.saveOrUpdateBatchByMultiId (rOperatingMonitorDPOList,500);

View File

@@ -2,6 +2,9 @@ package com.njcn.prepare.harmonic.service.mysql.area;
import com.github.jeffreyning.mybatisplus.service.IMppService; import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.harmonic.pojo.po.RMpDevEvaluateDetailPO; import com.njcn.harmonic.pojo.po.RMpDevEvaluateDetailPO;
import com.njcn.prepare.harmonic.pojo.param.DeviceParam;
import java.util.List;
/** /**
* *
@@ -15,4 +18,5 @@ import com.njcn.harmonic.pojo.po.RMpDevEvaluateDetailPO;
public interface RMpDevEvaluateDetailPOService extends IMppService<RMpDevEvaluateDetailPO> { public interface RMpDevEvaluateDetailPOService extends IMppService<RMpDevEvaluateDetailPO> {
void handler(List<DeviceParam> deviceParamList);
} }

View File

@@ -0,0 +1,17 @@
package com.njcn.prepare.harmonic.service.mysql.device;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.prepare.harmonic.pojo.po.RMpDevSolveDetailPO;
import com.baomidou.mybatisplus.extension.service.IService;
/**
*
* Description:
* Date: 2023/5/9 15:43【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RMpDevSolveDetailPOService extends IMppService<RMpDevSolveDetailPO> {
}

View File

@@ -0,0 +1,22 @@
package com.njcn.prepare.harmonic.service.mysql.device;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.prepare.harmonic.pojo.param.DeviceParam;
import com.njcn.prepare.harmonic.pojo.po.RStatDevSignalDPO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
*
* Description:
* Date: 2023/5/4 14:25【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RStatDevSignalDPOService extends IMppService<RStatDevSignalDPO> {
void eventdetailHandler(List<DeviceParam> deviceParamList);
}