添加pq同步设备状态批处理

This commit is contained in:
hzj
2024-05-13 15:36:20 +08:00
parent 5c94531830
commit 6b352d62e1
9 changed files with 302 additions and 9 deletions

View File

@@ -0,0 +1,180 @@
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 java.time.LocalDate;
import java.time.LocalDateTime;
import lombok.Data;
/**
*
* Description:
* Date: 2024/5/13 11:37【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
@TableName(value = "pq_device")
public class PqDeviceMysql {
/**
* 装置序号
*/
@TableId(value = "Id", type = IdType.INPUT)
private String id;
/**
* 装置模型0虚拟设备1实际设备2离线设备默认是实际设备
*/
@TableField(value = "Dev_Model")
private Boolean devModel;
/**
* 数据类型0暂态系统1稳态系统2两个系统
*/
@TableField(value = "Dev_Data_Type")
private Boolean devDataType;
/**
* 终端运行状态0投运1热备用2停运
*/
@TableField(value = "Run_Flag")
private Boolean runFlag;
/**
* 通讯状态0中断1正常
*/
@TableField(value = "Com_Flag")
private Boolean comFlag;
/**
* 设备制造商,字典表
*/
@TableField(value = "Manufacturer")
private String manufacturer;
/**
* 定检状态0未检 1已检
*/
@TableField(value = "Check_Flag")
private Boolean checkFlag;
/**
* 前置类型MMS、CLD字典表
*/
@TableField(value = "Front_Type")
private String frontType;
/**
* 终端型号570、580……字典表
*/
@TableField(value = "Dev_Type")
private String devType;
/**
* 网络参数
*/
@TableField(value = "IP")
private String ip;
/**
* 召唤标志0周期触发1变为触发
*/
@TableField(value = "Call_Flag")
private Boolean callFlag;
/**
* 端口
*/
@TableField(value = "Port")
private Integer port;
/**
* 装置识别码3ds加密
*/
@TableField(value = "Series")
private String series;
/**
* 装置秘钥3ds加密
*/
@TableField(value = "Dev_Key")
private String devKey;
/**
* 前置序号Id,前置表
*/
@TableField(value = "Node_Id")
private String nodeId;
/**
* 投运时间
*/
@TableField(value = "Login_Time")
private LocalDate loginTime;
/**
* 数据更新时间
*/
@TableField(value = "Update_Time")
private LocalDateTime updateTime;
/**
* 本次定检时间,默认等于投运时间
*/
@TableField(value = "This_Time_Check")
private LocalDate thisTimeCheck;
/**
* 下次定检时间,默认为投运时间后推3年假如时间小于3个月则为待检
*/
@TableField(value = "Next_Time_Check")
private LocalDate nextTimeCheck;
/**
* 电镀功能 0关闭 1开启 默认关闭
*/
@TableField(value = "Electroplate")
private Boolean electroplate;
/**
* 对时功能标识符0关闭1开启默认开启
*/
@TableField(value = "On_Time")
private Boolean onTime;
/**
* 合同号
*/
@TableField(value = "Contract")
private String contract;
/**
* 装置SIM卡号
*/
@TableField(value = "Sim")
private String sim;
/**
* 装作安装位置描述
*/
@TableField(value = "Dev_Location")
private String devLocation;
/**
* 装置编号
*/
@TableField(value = "Dev_No")
private String devNo;
@TableField(value = "Dev_Series")
private String devSeries;
/**
* 告警功能 0:关闭 null、1:开启
*/
@TableField(value = "Is_Alarm")
private Boolean isAlarm;
}

View File

@@ -0,0 +1,15 @@
package com.njcn.influx.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.influx.bo.po.PqDeviceMysql;
/**
*
* Description:
* Date: 2024/5/13 11:37【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface PqDeviceMysqlMapper extends BaseMapper<PqDeviceMysql> {
}

View File

@@ -0,0 +1,42 @@
<?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.influx.mapper.PqDeviceMysqlMapper">
<resultMap id="BaseResultMap" type="com.njcn.influx.bo.po.PqDeviceMysql">
<!--@mbg.generated-->
<!--@Table pq_device-->
<id column="Id" jdbcType="CHAR" property="id" />
<result column="Dev_Model" jdbcType="BIT" property="devModel" />
<result column="Dev_Data_Type" jdbcType="BIT" property="devDataType" />
<result column="Run_Flag" jdbcType="BIT" property="runFlag" />
<result column="Com_Flag" jdbcType="BIT" property="comFlag" />
<result column="Manufacturer" jdbcType="CHAR" property="manufacturer" />
<result column="Check_Flag" jdbcType="BIT" property="checkFlag" />
<result column="Front_Type" jdbcType="CHAR" property="frontType" />
<result column="Dev_Type" jdbcType="CHAR" property="devType" />
<result column="IP" jdbcType="CHAR" property="ip" />
<result column="Call_Flag" jdbcType="BIT" property="callFlag" />
<result column="Port" jdbcType="INTEGER" property="port" />
<result column="Series" jdbcType="VARCHAR" property="series" />
<result column="Dev_Key" jdbcType="VARCHAR" property="devKey" />
<result column="Node_Id" jdbcType="CHAR" property="nodeId" />
<result column="Login_Time" jdbcType="DATE" property="loginTime" />
<result column="Update_Time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="This_Time_Check" jdbcType="DATE" property="thisTimeCheck" />
<result column="Next_Time_Check" jdbcType="DATE" property="nextTimeCheck" />
<result column="Electroplate" jdbcType="BIT" property="electroplate" />
<result column="On_Time" jdbcType="BIT" property="onTime" />
<result column="Contract" jdbcType="VARCHAR" property="contract" />
<result column="Sim" jdbcType="VARCHAR" property="sim" />
<result column="Dev_Location" jdbcType="VARCHAR" property="devLocation" />
<result column="Dev_No" jdbcType="VARCHAR" property="devNo" />
<result column="Dev_Series" jdbcType="VARCHAR" property="devSeries" />
<result column="Is_Alarm" jdbcType="BIT" property="isAlarm" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
Id, Dev_Model, Dev_Data_Type, Run_Flag, Com_Flag, Manufacturer, Check_Flag, Front_Type,
Dev_Type, IP, Call_Flag, Port, Series, Dev_Key, Node_Id, Login_Time, Update_Time,
This_Time_Check, Next_Time_Check, Electroplate, On_Time, Contract, Sim, Dev_Location,
Dev_No, Dev_Series, Is_Alarm
</sql>
</mapper>

View File

@@ -0,0 +1,18 @@
package com.njcn.influx.service;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.njcn.influx.bo.po.PqDeviceMysql;
import com.baomidou.mybatisplus.extension.service.IService;
/**
*
* Description:
* Date: 2024/5/13 11:37【需求编号】
*
* @author clam
* @version V1.0.0
*/
@DS("target")
public interface PqDeviceMysqlService extends IService<PqDeviceMysql>{
}

View File

@@ -138,7 +138,7 @@ public class OracleEventDetailToMysqlServiceImpl extends ServiceImpl<RmpEventDet
Map<String,String> map=new HashMap<>(); Map<String,String> map=new HashMap<>();
for (DictData dictData : oracleReason) { for (DictData dictData : oracleReason) {
for (DictData data : mysqlReason) { for (DictData data : mysqlReason) {
if(dictData.getAlgoDescribe()==data.getAlgoDescribe()){ if(dictData.getAlgoDescribe().equals(data.getAlgoDescribe())){
map.put(dictData.getId(),data.getId()); map.put(dictData.getId(),data.getId());
} }
} }

View File

@@ -5,12 +5,10 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.njcn.influx.bo.po.*; import com.njcn.influx.bo.po.*;
import com.njcn.influx.config.IdMappingCache;
import com.njcn.influx.mapper.PqDeviceMapper; import com.njcn.influx.mapper.PqDeviceMapper;
import com.njcn.influx.mapper.RmpEventDetailPOMapper; import com.njcn.influx.mapper.RmpEventDetailPOMapper;
import com.njcn.influx.service.IPmsMonitorService; import com.njcn.influx.service.*;
import com.njcn.influx.service.IPmsTerminalService;
import com.njcn.influx.service.IPqDeviceBakService;
import com.njcn.influx.service.OracleMonitorStatusToMysqlService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -34,6 +32,8 @@ public class OracleMonitorStatusToMysqlServiceImpl implements OracleMonitorStatu
private final PqDeviceMapper pqDeviceMapper; private final PqDeviceMapper pqDeviceMapper;
private final IPmsMonitorService pmsMonitorService; private final IPmsMonitorService pmsMonitorService;
private final IPmsTerminalService pmsTerminalService; private final IPmsTerminalService pmsTerminalService;
private final PqDeviceMysqlService pqDeviceMysqlService;
/** /**
* 1.查询oracle装置表信息 * 1.查询oracle装置表信息
@@ -48,6 +48,21 @@ public class OracleMonitorStatusToMysqlServiceImpl implements OracleMonitorStatu
//lineId:Oracle终端ID id:Mysql终端ID //lineId:Oracle终端ID id:Mysql终端ID
Map<Long, String> oracleDevMysql = list.stream().collect(Collectors.toMap(PqDeviceBak::getDevId, PqDeviceBak::getId)); Map<Long, String> oracleDevMysql = list.stream().collect(Collectors.toMap(PqDeviceBak::getDevId, PqDeviceBak::getId));
List<PqDevice> pqDevices = pqDeviceMapper.selectList(null); List<PqDevice> pqDevices = pqDeviceMapper.selectList(null);
//pq的设备表更改通信状态
List<PqDeviceMysql> tempList = new ArrayList<>();
pqDevices.stream().forEach(temp->{
String id ="";
if (!IdMappingCache.IdMapping.containsKey(temp.getDevIndex()+"")){
return;
}else {
id=IdMappingCache.IdMapping.get(temp.getDevIndex()+"");
}
pqDeviceMysqlService.update(new LambdaUpdateWrapper<PqDeviceMysql>()
.set(PqDeviceMysql::getRunFlag,temp.getDevFlag())
.set(PqDeviceMysql::getComFlag,temp.getStatus())
.eq(PqDeviceMysql::getId,id));
});
Map<Integer, List<Long>> oracleDevMap = pqDevices.stream().collect(Collectors.groupingBy(PqDevice::getDevFlag Map<Integer, List<Long>> oracleDevMap = pqDevices.stream().collect(Collectors.groupingBy(PqDevice::getDevFlag
, Collectors.mapping(PqDevice::getDevIndex, Collectors.toList()))); , Collectors.mapping(PqDevice::getDevIndex, Collectors.toList())));

View File

@@ -0,0 +1,23 @@
package com.njcn.influx.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.influx.mapper.PqDeviceMysqlMapper;
import com.njcn.influx.bo.po.PqDeviceMysql;
import com.njcn.influx.service.PqDeviceMysqlService;
/**
*
* Description:
* Date: 2024/5/13 11:37【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
@DS("target")
public class PqDeviceMysqlServiceImpl extends ServiceImpl<PqDeviceMysqlMapper, PqDeviceMysql> implements PqDeviceMysqlService{
}

View File

@@ -100,7 +100,7 @@ public class OracleToInfluxDBJob {
* 每天同步台账装置的运行状态,监测点的运行状态 * 每天同步台账装置的运行状态,监测点的运行状态
* @date 2024/3/5 * @date 2024/3/5
*/ */
@Scheduled(cron="0 20 0 * * ?") @Scheduled(cron="0 0/10 * * * ?")
public void synLedgerRunFlag() { public void synLedgerRunFlag() {
oracleMonitorStatusToMysqlService.monitorStatusSync(); oracleMonitorStatusToMysqlService.monitorStatusSync();
} }

View File

@@ -72,7 +72,7 @@ spring:
password: Pqsadmin123 password: Pqsadmin123
driver-class-name: oracle.jdbc.driver.OracleDriver driver-class-name: oracle.jdbc.driver.OracleDriver
target: target:
url: jdbc:mysql://192.168.1.102:13306/pqsinfo?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=CTT url: jdbc:mysql://192.168.1.24:13306/pqsinfo_jb?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=CTT
username: root username: root
password: njcnpqs password: njcnpqs
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
@@ -85,9 +85,9 @@ mybatis-plus:
#驼峰命名 #驼峰命名
map-underscore-to-camel-case: true map-underscore-to-camel-case: true
#配置sql日志输出 #配置sql日志输出
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#关闭日志输出 #关闭日志输出
log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl # log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
global-config: global-config:
db-config: db-config:
#指定主键生成策略 #指定主键生成策略