diff --git a/influx-data/influx-source/src/main/java/com/njcn/influx/bo/po/PmsMonitor.java b/influx-data/influx-source/src/main/java/com/njcn/influx/bo/po/PmsMonitor.java new file mode 100644 index 0000000..7245d73 --- /dev/null +++ b/influx-data/influx-source/src/main/java/com/njcn/influx/bo/po/PmsMonitor.java @@ -0,0 +1,319 @@ +package com.njcn.influx.bo.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * + *

+ * + * @author wr + * @since 2024-03-05 + */ +@Getter +@Setter +@TableName("pms_monitor") +public class PmsMonitor implements Serializable { + private static final long serialVersionUID = 1L; + /** + * 监测点ID + */ + @TableId("Id") + private String id; + + /** + * 监测点编码 + */ + @TableField("monitor_Id") + private String monitorId; + + /** + * 监测点名称 + */ + @TableField("Name") + private String name; + + /** + * 组织机构名称 + */ + @TableField("Org_Name") + private String orgName; + + /** + * 组织机构ID(外键) + */ + @TableField("Org_Id") + private String orgId; + + /** + * 运维单位名称 + */ + @TableField("Operation_Name") + private String operationName; + + /** + * 运维单位ID(外键) + */ + @TableField("Operation_Id") + private String operationId; + + /** + * 变电站名称 + */ + @TableField("Powerr_Name") + private String powerrName; + + /** + * 电站ID(外键) + */ + @TableField("Powerr_Id") + private String powerrId; + + /** + * 监测母线 + */ + @TableField("Line_Name") + private String lineName; + + /** + * 监测母线ID + */ + @TableField("Line_Id") + private String lineId; + + /** + * 电压等级(字典) + */ + @TableField("Voltage_Level") + private String voltageLevel; + + /** + * 监测点状态(字典) + */ + @TableField("Monitor_State") + private String monitorState; + + /** + * 监测点类型 + */ + @TableField("Monitor_Type") + private String monitorType; + + /** + * 最小短路容量 + */ + @TableField("Min_Short_Circuit_Capacity") + private Float minShortCircuitCapacity; + + /** + * 供电设备容量 + */ + @TableField("Power_Supply_Eq_Capacity") + private Float powerSupplyEqCapacity; + + /** + * 用户协议容量 + */ + @TableField("User_Agreement_Capacity") + private Float userAgreementCapacity; + + /** + * 电压偏差限值(上) + */ + @TableField("Voltage_Deviation_Upper_Limit") + private Float voltageDeviationUpperLimit; + + /** + * 电压偏差限值(下) + */ + @TableField("Voltage_Deviation_Lower_Limit") + private Float voltageDeviationLowerLimit; + + /** + * 电压互感器类型(字典) + */ + @TableField("Potential_Trans_Former_Type") + private String potentialTransFormerType; + + /** + * 中性点接地方式(字典) + */ + @TableField("Neutral_Grounding_Mode") + private String neutralGroundingMode; + + /** + * 监测点标签(字典) + */ + @TableField("Monitor_Tag") + private String monitorTag; + + /** + * 是否用户专线0-否 1-是 + */ + @TableField("Is_Special_Supply_Electricity") + private Boolean isSpecialSupplyElectricity; + + /** + * 检测点对象类型(字典) + */ + @TableField("Obj_Type") + private String objType; + + /** + * 101 电网侧,102 用户侧 + */ + @TableField("Power_Flag") + private String powerFlag; + + /** + * 监测对象编号 + */ + @TableField("Monitor_Object_Id") + private String monitorObjectId; + + /** + * 监测对象名称 + */ + @TableField("Monitor_Object_Name") + private String monitorObjectName; + + /** + * 统计间隔 + */ + @TableField("Statistical_Interval") + private Integer statisticalInterval; + + /** + * 关联的监测终端编号(外键) + */ + @TableField("Terminal_Id") + private String terminalId; + + /** + * 监测终端接线方式(字典) + */ + @TableField("Terminal_Wiring_Method") + private String terminalWiringMethod; + + /** + * 是否是上送国网监测点,0-否 1-是 + */ + @TableField("Is_Up_To_Grid") + private Boolean isUpToGrid; + + /** + * 是否专项分析监测点 0-否 1-是 + */ + @TableField("Is_Special_Monitor") + private Boolean isSpecialMonitor; + + /** + * 数据状态:0-删除;1-正常; + */ + @TableField("Status") + private Boolean status; + + /** + * 创建用户 + */ + @TableField("Create_By") + private String createBy; + + /** + * 创建时间 + */ + @TableField("Create_Time") + private LocalDateTime createTime; + + /** + * 更新用户 + */ + @TableField("Update_By") + private String updateBy; + + /** + * 更新时间 + */ + @TableField("Update_Time") + private LocalDateTime updateTime; + + /** + * PT变比1 + */ + @TableField("Pt1") + private Float pt1; + + /** + * PT变比2 + */ + @TableField("Pt2") + private Float pt2; + + /** + * CT变比1 + */ + @TableField("Ct1") + private Float ct1; + + /** + * CT变比2 + */ + @TableField("Ct2") + private Float ct2; + + /** + * 监测点接线相别(0,单相,1,三相,默认三相 + */ + @TableField("PT_Phase_Type") + private String ptPhaseType; + + /** + * 是否发电用户:0-否;1-是; + */ + @TableField("If_Power_User") + private Boolean ifPowerUser; + + /** + * 场站属性 + */ + @TableField("Field_Station") + private String fieldStation; + + /** + * 0.未上送 1.上送 2.取消上送 3.待重新上送(用于典型负荷) + */ + @TableField("is_upload_head") + private Boolean isUploadHead; + + /** + * 0.未上送 1.上送 2.取消上送 3.待重新上送(用于主网监测点) + */ + @TableField("monitor_upload_status") + private Boolean monitorUploadStatus; + + /** + * 0.未上送 1.上送 2.取消上送 3.待重新上送(限值) + */ + @TableField("Monitor_Overlimit_Status") + private Boolean monitorOverlimitStatus; + + /** + * 行业分类 + */ + @TableField("trade_Code") + private String tradeCode; + + /** + * 牵引站id + */ + @TableField("traction_Id") + private String tractionId; + + +} diff --git a/influx-data/influx-source/src/main/java/com/njcn/influx/bo/po/PmsTerminal.java b/influx-data/influx-source/src/main/java/com/njcn/influx/bo/po/PmsTerminal.java new file mode 100644 index 0000000..904e65f --- /dev/null +++ b/influx-data/influx-source/src/main/java/com/njcn/influx/bo/po/PmsTerminal.java @@ -0,0 +1,184 @@ +package com.njcn.influx.bo.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * + *

+ * + * @author wr + * @since 2024-03-05 + */ +@Getter +@Setter +@TableName("pms_terminal") +public class PmsTerminal implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 终端编号 + */ + @TableId("Id") + private String id; + + /** + * 终端名称 + */ + @TableField("Name") + private String name; + + /** + * 组织机构名称 + */ + @TableField("Org_Name") + private String orgName; + + /** + * 组织机构ID(外键) + */ + @TableField("Org_Id") + private String orgId; + + /** + * 运维单位名称 + */ + @TableField("Operation_Name") + private String operationName; + + /** + * 运维单位ID(外键) + */ + @TableField("Operation_Id") + private String operationId; + + /** + * 变电站名称 + */ + @TableField("Powerr_Name") + private String powerrName; + + /** + * 所属电站ID(外键) + */ + @TableField("Power_Station_Id") + private String powerStationId; + + /** + * 终端状态(字典) + */ + @TableField("Terminal_State") + private String terminalState; + + /** + * 终端级别(字典) + */ + @TableField("Terminal_Level") + private String terminalLevel; + + /** + * 装置型号(字典) + */ + @TableField("Device_Model") + private String deviceModel; + + /** + * 装置类别 + */ + @TableField("Device_Category") + private String deviceCategory; + + /** + * 生产厂家(字典) + */ + @TableField("Manufacture") + private String manufacture; + + /** + * 检定日期 + */ + @TableField("Verification_Date") + private LocalDate verificationDate; + + /** + * 投运日期 + */ + @TableField("Use_Date") + private LocalDate useDate; + + /** + * 测量信号输入形式(字典) + */ + @TableField("Input_Type") + private String inputType; + + /** + * IP地址 + */ + @TableField("Ip") + private String ip; + + /** + * 通信端口 + */ + @TableField("Port") + private String port; + + /** + * 0.中断 1.正常 + */ + @TableField("com_flag") + private Boolean comFlag; + + /** + * 是否是上送国网监测点,0-否 1-是 + */ + @TableField("Is_Up_To_Grid") + private Boolean isUpToGrid; + + /** + * 数据状态:0-删除;1-正常; + */ + @TableField("Status") + private Boolean status; + + /** + * 中台终端编号 + */ + @TableField("terminal_Code") + private String terminalCode; + + /** + * 创建用户 + */ + @TableField("Create_By") + private String createBy; + + /** + * 创建时间 + */ + @TableField("Create_Time") + private LocalDateTime createTime; + + /** + * 更新用户 + */ + @TableField("Update_By") + private String updateBy; + + /** + * 更新时间 + */ + @TableField("Update_Time") + private LocalDateTime updateTime; + + +} diff --git a/influx-data/influx-source/src/main/java/com/njcn/influx/bo/po/PqDevice.java b/influx-data/influx-source/src/main/java/com/njcn/influx/bo/po/PqDevice.java new file mode 100644 index 0000000..9028479 --- /dev/null +++ b/influx-data/influx-source/src/main/java/com/njcn/influx/bo/po/PqDevice.java @@ -0,0 +1,125 @@ +package com.njcn.influx.bo.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 lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; +import java.util.Date; + +/** + * @author wr + * @description + * @date 2024/3/5 15:53 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("PQ_DEVICE") +public class PqDevice { + + /** + * 装置序号 + */ + @TableId(value = "DEV_INDEX", type = IdType.ASSIGN_ID) + private Long devIndex; + + /** + * 供电公司序号 + */ + @TableField("GD_INDEX") + private Long gdIndex; + + /** + * 变电站序号 + */ + @TableField("SUB_INDEX") + private Long subIndex; + + /** + * 装置名称(唯一性判断) + */ + @TableField("NAME") + private String name; + + /** + * 装置通讯状态(0:中断;1:正常) + */ + @TableField("STATUS") + private Integer status; + + /** + * (关联表PQS_Dicdata)装置型号Guid + */ + @TableField("DEVTYPE") + private String devType; + + /** + * IP地址 + */ + @TableField("IP") + private String ip; + + /** + * 登录时间 + */ + @TableField("LOGONTIME") + private LocalDateTime logonTime; + + /** + * 数据更新时间 + */ + @TableField("UPDATETIME") + private LocalDateTime updateTime; + + /** + * (关联表NodeInformation)服务器表序号,表明这台设备运行在哪台服务器上 + */ + @TableField("NODE_INDEX") + private Long nodeIndex; + + /** + * 已召唤标志 + */ + @TableField("CALLFLAG") + private Integer callFlag; + + /** + * 端口ID,用于端口映射 + */ + @TableField("PORTID") + private Long portId; + + /** + * 装置状态(0:投运;1:热备用;2:停运) + */ + @TableField("DEVFLAG") + private Integer devFlag; + + + /** + * 装置模型(0:虚拟设备;1:实际设备;2:离线设备;)默认是实际设备 + */ + @TableField("DEVMODEL") + private Long devmodel; + + /** + * 数据类型(0:暂态系统;1:稳态系统;2:两个系统) + */ + @TableField("DATATYPE") + private Long datatype; + + /** + * 装置识别码,采用3ds加密 + */ + @TableField("DEV_SERIES") + private String series; + + /** + * 装置秘钥,采用3ds加密 + */ + @TableField("DEV_KEY") + private String key; +} diff --git a/influx-data/influx-source/src/main/java/com/njcn/influx/bo/po/PqDeviceBak.java b/influx-data/influx-source/src/main/java/com/njcn/influx/bo/po/PqDeviceBak.java new file mode 100644 index 0000000..f695788 --- /dev/null +++ b/influx-data/influx-source/src/main/java/com/njcn/influx/bo/po/PqDeviceBak.java @@ -0,0 +1,38 @@ +package com.njcn.influx.bo.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * + *

+ * + * @author wr + * @since 2024-03-05 + */ +@Getter +@Setter +@TableName("pq_device_bak") +public class PqDeviceBak implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 现终端Id + */ + @TableId("Id") + private String id; + + /** + * 原oracle终端Id + */ + @TableField("Dev_Id") + private Long devId; + + +} diff --git a/influx-data/influx-source/src/main/java/com/njcn/influx/mapper/PmsMonitorMapper.java b/influx-data/influx-source/src/main/java/com/njcn/influx/mapper/PmsMonitorMapper.java new file mode 100644 index 0000000..25479de --- /dev/null +++ b/influx-data/influx-source/src/main/java/com/njcn/influx/mapper/PmsMonitorMapper.java @@ -0,0 +1,18 @@ +package com.njcn.influx.mapper; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.njcn.influx.bo.po.PmsMonitor; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author wr + * @since 2024-03-05 + */ +@DS("target") +public interface PmsMonitorMapper extends BaseMapper { + +} diff --git a/influx-data/influx-source/src/main/java/com/njcn/influx/mapper/PmsTerminalMapper.java b/influx-data/influx-source/src/main/java/com/njcn/influx/mapper/PmsTerminalMapper.java new file mode 100644 index 0000000..5f9e4fd --- /dev/null +++ b/influx-data/influx-source/src/main/java/com/njcn/influx/mapper/PmsTerminalMapper.java @@ -0,0 +1,18 @@ +package com.njcn.influx.mapper; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.njcn.influx.bo.po.PmsTerminal; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author wr + * @since 2024-03-05 + */ +@DS("target") +public interface PmsTerminalMapper extends BaseMapper { + +} diff --git a/influx-data/influx-source/src/main/java/com/njcn/influx/mapper/PqDeviceBakMapper.java b/influx-data/influx-source/src/main/java/com/njcn/influx/mapper/PqDeviceBakMapper.java new file mode 100644 index 0000000..b6f06ff --- /dev/null +++ b/influx-data/influx-source/src/main/java/com/njcn/influx/mapper/PqDeviceBakMapper.java @@ -0,0 +1,18 @@ +package com.njcn.influx.mapper; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.njcn.influx.bo.po.PqDeviceBak; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author wr + * @since 2024-03-05 + */ +@DS("target") +public interface PqDeviceBakMapper extends BaseMapper { + +} diff --git a/influx-data/influx-source/src/main/java/com/njcn/influx/mapper/PqDeviceMapper.java b/influx-data/influx-source/src/main/java/com/njcn/influx/mapper/PqDeviceMapper.java new file mode 100644 index 0000000..14c9324 --- /dev/null +++ b/influx-data/influx-source/src/main/java/com/njcn/influx/mapper/PqDeviceMapper.java @@ -0,0 +1,19 @@ +package com.njcn.influx.mapper; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.influx.bo.po.PqDevice; +import com.njcn.influx.bo.po.PqDeviceBak; + +/** + *

+ * Mapper 接口 + *

+ * + * @author wr + * @since 2024-03-05 + */ +@DS("master") +public interface PqDeviceMapper extends BaseMapper { + +} diff --git a/influx-data/influx-source/src/main/java/com/njcn/influx/mapper/mapping/OracleRmpEventDetailPOMapper.xml b/influx-data/influx-source/src/main/java/com/njcn/influx/mapper/mapping/OracleRmpEventDetailPOMapper.xml index e9608c7..cf5ab65 100644 --- a/influx-data/influx-source/src/main/java/com/njcn/influx/mapper/mapping/OracleRmpEventDetailPOMapper.xml +++ b/influx-data/influx-source/src/main/java/com/njcn/influx/mapper/mapping/OracleRmpEventDetailPOMapper.xml @@ -14,7 +14,7 @@ PQS_DICTYPE sys_dict_type WHERE sys_dict_data.DIC_TYPE = sys_dict_type.DICTYPE_INDEX - AND sys_dict_type.DICTYPE_NUMBER = #{code} + AND sys_dict_type.DICTYPE_NAME = #{code} ORDER BY DIC_NUMBER diff --git a/influx-data/influx-source/src/main/java/com/njcn/influx/service/IPmsMonitorService.java b/influx-data/influx-source/src/main/java/com/njcn/influx/service/IPmsMonitorService.java new file mode 100644 index 0000000..52754d1 --- /dev/null +++ b/influx-data/influx-source/src/main/java/com/njcn/influx/service/IPmsMonitorService.java @@ -0,0 +1,18 @@ +package com.njcn.influx.service; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.influx.bo.po.PmsMonitor; + +/** + *

+ * 服务类 + *

+ * + * @author wr + * @since 2024-03-05 + */ +@DS("target") +public interface IPmsMonitorService extends IService { + +} diff --git a/influx-data/influx-source/src/main/java/com/njcn/influx/service/IPmsTerminalService.java b/influx-data/influx-source/src/main/java/com/njcn/influx/service/IPmsTerminalService.java new file mode 100644 index 0000000..863b780 --- /dev/null +++ b/influx-data/influx-source/src/main/java/com/njcn/influx/service/IPmsTerminalService.java @@ -0,0 +1,18 @@ +package com.njcn.influx.service; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.influx.bo.po.PmsTerminal; + +/** + *

+ * 服务类 + *

+ * + * @author wr + * @since 2024-03-05 + */ +@DS("target") +public interface IPmsTerminalService extends IService { + +} diff --git a/influx-data/influx-source/src/main/java/com/njcn/influx/service/IPqDeviceBakService.java b/influx-data/influx-source/src/main/java/com/njcn/influx/service/IPqDeviceBakService.java new file mode 100644 index 0000000..199a4db --- /dev/null +++ b/influx-data/influx-source/src/main/java/com/njcn/influx/service/IPqDeviceBakService.java @@ -0,0 +1,17 @@ +package com.njcn.influx.service; + +import com.njcn.influx.bo.po.PqDeviceBak; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author wr + * @since 2024-03-05 + */ + +public interface IPqDeviceBakService extends IService { + +} diff --git a/influx-data/influx-source/src/main/java/com/njcn/influx/service/OracleMonitorStatusToMysqlService.java b/influx-data/influx-source/src/main/java/com/njcn/influx/service/OracleMonitorStatusToMysqlService.java new file mode 100644 index 0000000..1e02283 --- /dev/null +++ b/influx-data/influx-source/src/main/java/com/njcn/influx/service/OracleMonitorStatusToMysqlService.java @@ -0,0 +1,12 @@ +package com.njcn.influx.service; + + +/** + * @author wr + * @description + * @date 2024/3/5 15:03 + */ +public interface OracleMonitorStatusToMysqlService { + + void monitorStatusSync(); +} diff --git a/influx-data/influx-source/src/main/java/com/njcn/influx/service/impl/OracleEventDetailToMysqlServiceImpl.java b/influx-data/influx-source/src/main/java/com/njcn/influx/service/impl/OracleEventDetailToMysqlServiceImpl.java index 2b4936a..d912e9b 100644 --- a/influx-data/influx-source/src/main/java/com/njcn/influx/service/impl/OracleEventDetailToMysqlServiceImpl.java +++ b/influx-data/influx-source/src/main/java/com/njcn/influx/service/impl/OracleEventDetailToMysqlServiceImpl.java @@ -49,8 +49,8 @@ public class OracleEventDetailToMysqlServiceImpl extends ServiceImpl oracleRelationMysql = list.stream().collect(Collectors.toMap(PqLineBak::getLineId, PqLineBak::getId)); //获取Oracle字典 暂降类型:12 暂降原因:13 - List oracleReason= oracleRmpEventDetailPOMapper.selectByDicCodeList("13"); - List oracleType= oracleRmpEventDetailPOMapper.selectByDicCodeList("12"); + List oracleReason= oracleRmpEventDetailPOMapper.selectByDicCodeList("暂降原因"); + List oracleType= oracleRmpEventDetailPOMapper.selectByDicCodeList("暂降类型"); //获取Mysql字典 List eventType = rmpEventDetailPOMapper.selectByDicCodeList("Event_Statis"); List mysqlReason = rmpEventDetailPOMapper.selectByDicCodeList("Event_Reason"); diff --git a/influx-data/influx-source/src/main/java/com/njcn/influx/service/impl/OracleMonitorStatusToMysqlServiceImpl.java b/influx-data/influx-source/src/main/java/com/njcn/influx/service/impl/OracleMonitorStatusToMysqlServiceImpl.java new file mode 100644 index 0000000..8ecc288 --- /dev/null +++ b/influx-data/influx-source/src/main/java/com/njcn/influx/service/impl/OracleMonitorStatusToMysqlServiceImpl.java @@ -0,0 +1,125 @@ +package com.njcn.influx.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.njcn.influx.bo.po.*; +import com.njcn.influx.mapper.PqDeviceMapper; +import com.njcn.influx.mapper.RmpEventDetailPOMapper; +import com.njcn.influx.service.IPmsMonitorService; +import com.njcn.influx.service.IPmsTerminalService; +import com.njcn.influx.service.IPqDeviceBakService; +import com.njcn.influx.service.OracleMonitorStatusToMysqlService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @author wr + * @description + * @date 2024/3/5 15:04 + */ +@RequiredArgsConstructor +@Service +public class OracleMonitorStatusToMysqlServiceImpl implements OracleMonitorStatusToMysqlService { + + private final RmpEventDetailPOMapper rmpEventDetailPOMapper; + private final IPqDeviceBakService pqDeviceBakService; + private final PqDeviceMapper pqDeviceMapper; + private final IPmsMonitorService pmsMonitorService; + private final IPmsTerminalService pmsTerminalService; + + /** + * 1.查询oracle装置表信息 + * 2.查询pq_device_bak->mysql匹配oracle所对应的装置 + * 3.更改mysql监测点信息和装置信息 + */ + @Override + public void monitorStatusSync() { + List monitorDicList = rmpEventDetailPOMapper.selectByDicCodeList("Line_State"); + List devDicList = rmpEventDetailPOMapper.selectByDicCodeList("Dev_Status"); + List list = pqDeviceBakService.list(); + //lineId:Oracle终端ID id:Mysql终端ID + Map oracleDevMysql = list.stream().collect(Collectors.toMap(PqDeviceBak::getDevId, PqDeviceBak::getId)); + List pqDevices = pqDeviceMapper.selectList(null); + + Map> oracleDevMap = pqDevices.stream().collect(Collectors.groupingBy(PqDevice::getDevFlag + , Collectors.mapping(PqDevice::getDevIndex, Collectors.toList()))); + oracleDevMap.forEach((key, value) -> { + List info = new ArrayList<>(); + for (Long aLong : value) { + if (oracleDevMysql.containsKey(aLong)) { + info.add(oracleDevMysql.get(aLong)); + } + } + String devStatus = devStatusId(key, devDicList); + String monitorStatus = monitorStatusId(key, monitorDicList); + if (StrUtil.isNotBlank(devStatus) && CollUtil.isNotEmpty(info)) { + //修改终端状态 + pmsTerminalService.update(new LambdaUpdateWrapper() + .set(PmsTerminal::getTerminalState, devStatusId(key, devDicList)) + .in(PmsTerminal::getId, info) + ); + } + if (StrUtil.isNotBlank(monitorStatus) && CollUtil.isNotEmpty(info)) { + //修改监测点状态 + pmsMonitorService.update(new LambdaUpdateWrapper() + .set(PmsMonitor::getMonitorState, monitorStatusId(key, monitorDicList)) + .in(PmsMonitor::getTerminalId, info) + ); + } + }); + + } + + private String monitorStatusId(Integer data, List list) { + //装置状态(0:投运;1:热备用;2:停运) + String code = ""; + switch (data) { + case 0: + code = "Run"; + break; + case 1: + code = "Overhaul"; + break; + case 2: + code = "Decommissioning"; + break; + } + String finalCode = code; + DictData dictData = list.stream().filter(x -> finalCode.equals(x.getCode())).findFirst().get(); + if (ObjectUtil.isNotNull(dictData)) { + return dictData.getId(); + } + return ""; + } + + private String devStatusId(Integer data, List list) { + //装置状态(0:投运;1:热备用;2:停运) + String code = ""; + switch (data) { + case 0: + code = "Running"; + break; + case 1: + code = "Not_Operation"; + break; + case 2: + code = "Retire"; + break; + } + String finalCode = code; + DictData dictData = list.stream().filter(x -> finalCode.equals(x.getCode())).findFirst().get(); + if (ObjectUtil.isNotNull(dictData)) { + return dictData.getId(); + } + return ""; + } + + +} diff --git a/influx-data/influx-source/src/main/java/com/njcn/influx/service/impl/PmsMonitorServiceImpl.java b/influx-data/influx-source/src/main/java/com/njcn/influx/service/impl/PmsMonitorServiceImpl.java new file mode 100644 index 0000000..f2a3a4c --- /dev/null +++ b/influx-data/influx-source/src/main/java/com/njcn/influx/service/impl/PmsMonitorServiceImpl.java @@ -0,0 +1,22 @@ +package com.njcn.influx.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.njcn.influx.bo.po.PmsMonitor; +import com.njcn.influx.mapper.PmsMonitorMapper; +import com.njcn.influx.service.IPmsMonitorService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author wr + * @since 2024-03-05 + */ +@DS("target") +@Service +public class PmsMonitorServiceImpl extends ServiceImpl implements IPmsMonitorService { + +} diff --git a/influx-data/influx-source/src/main/java/com/njcn/influx/service/impl/PmsTerminalServiceImpl.java b/influx-data/influx-source/src/main/java/com/njcn/influx/service/impl/PmsTerminalServiceImpl.java new file mode 100644 index 0000000..48345ec --- /dev/null +++ b/influx-data/influx-source/src/main/java/com/njcn/influx/service/impl/PmsTerminalServiceImpl.java @@ -0,0 +1,22 @@ +package com.njcn.influx.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.njcn.influx.bo.po.PmsTerminal; +import com.njcn.influx.mapper.PmsTerminalMapper; +import com.njcn.influx.service.IPmsTerminalService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author wr + * @since 2024-03-05 + */ +@DS("target") +@Service +public class PmsTerminalServiceImpl extends ServiceImpl implements IPmsTerminalService { + +} diff --git a/influx-data/influx-source/src/main/java/com/njcn/influx/service/impl/PqDeviceBakServiceImpl.java b/influx-data/influx-source/src/main/java/com/njcn/influx/service/impl/PqDeviceBakServiceImpl.java new file mode 100644 index 0000000..f33a93c --- /dev/null +++ b/influx-data/influx-source/src/main/java/com/njcn/influx/service/impl/PqDeviceBakServiceImpl.java @@ -0,0 +1,22 @@ +package com.njcn.influx.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.njcn.influx.bo.po.PqDeviceBak; +import com.njcn.influx.mapper.PqDeviceBakMapper; +import com.njcn.influx.service.IPqDeviceBakService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author wr + * @since 2024-03-05 + */ +@DS("target") +@Service +public class PqDeviceBakServiceImpl extends ServiceImpl implements IPqDeviceBakService { + +} diff --git a/influx-data/influx-target/src/main/java/com/njcn/influx/job/OracleToInfluxDBJob.java b/influx-data/influx-target/src/main/java/com/njcn/influx/job/OracleToInfluxDBJob.java index 035e7c7..be8d8d4 100644 --- a/influx-data/influx-target/src/main/java/com/njcn/influx/job/OracleToInfluxDBJob.java +++ b/influx-data/influx-target/src/main/java/com/njcn/influx/job/OracleToInfluxDBJob.java @@ -2,10 +2,9 @@ package com.njcn.influx.job; import com.njcn.influx.bo.param.TableEnum; import com.njcn.influx.service.OracleEventDetailToMysqlService; +import com.njcn.influx.service.OracleMonitorStatusToMysqlService; import com.njcn.influx.service.OracleToInfluxDBService; -import com.njcn.influx.service.impl.OracleEventDetailToMysqlServiceImpl; import com.njcn.oracle.bo.param.DataAsynParam; -import com.njcn.oracle.bo.param.ServiceTypeEnum; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.EnableScheduling; @@ -33,7 +32,8 @@ public class OracleToInfluxDBJob { private final OracleToInfluxDBService oracleToInfluxDBService; private final OracleEventDetailToMysqlService oracleEventDetailToMysqlService; - /* @Scheduled(cron="0 5 0 * * ?") + private final OracleMonitorStatusToMysqlService oracleMonitorStatusToMysqlService; + /*@Scheduled(cron="0 5 0 * * ?") public void execute() { DataAsynParam dataAsynParam = new DataAsynParam(); dataAsynParam.setStartTime(LocalDate.now().plusDays(-1)); @@ -88,7 +88,6 @@ public class OracleToInfluxDBJob { */ @Scheduled(cron="0 20 0 * * ?") public void synLedgerRunFlag() { - - + oracleMonitorStatusToMysqlService.monitorStatusSync(); } }