package com.ruoyi.alarm.steal.service.impl;
|
|
|
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSONObject;
|
import com.ruoyi.alarm.steal.domain.ArdAlarmStealelec;
|
import com.ruoyi.alarm.steal.service.IStealElecAlarmService;
|
import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell;
|
import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper;
|
import com.ruoyi.alarm.steal.mapper.ArdAlarmStealelecMapper;
|
import com.ruoyi.system.service.ISysConfigService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
import org.springframework.web.client.RestTemplate;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @ClassName StealElecAlarmServiceImpl
|
* @Description:盗电警报服务实现类
|
* @Author 刘苏义
|
* @Date 2022/12/26 16:34
|
* @Version 1.0
|
*/
|
@Slf4j(topic = "alarm")
|
@Service
|
public class IStealElecAlarmServiceImpl implements IStealElecAlarmService {
|
@Resource
|
ArdAlarmStealelecMapper ardAlarmStealelecMapper;
|
@Resource
|
ArdAlarmpointsWellMapper ardAlarmpointsWellMapper;
|
@Resource
|
RestTemplate restTemplate;
|
@Resource
|
private ISysConfigService configService;
|
|
/**
|
* @描述 获取api数据写入数据库
|
* @参数 [url]
|
* @返回值 void
|
* @创建人 刘苏义
|
* @创建时间 2023/1/6 8:55
|
* @修改人和其它信息
|
*/
|
@Override
|
@SuppressWarnings("unchecked")
|
public void getAlarmByApi() {
|
try {
|
String stealElecUrl = configService.selectConfigByKey("stealElecUrl");
|
String allAlarmData = restTemplate.getForObject(stealElecUrl, String.class);
|
//剔除所有\符号
|
String message = allAlarmData.replaceAll("\\\\", "");
|
//剔除整个字符串首尾双引号
|
if (message.startsWith("\"")) {
|
message = message.substring(1);
|
}
|
if (message.endsWith("\"")) {
|
message = message.substring(0, message.length() - 1);
|
}
|
Map<String, Object> result = (Map<String, Object>) JSON.parse(message);
|
//获取到json对象list集合
|
List<JSONObject> list = (List<JSONObject>) result.get("data");
|
if (list.size() > 0) {
|
for (JSONObject object : list) {
|
String JSONStr = JSON.toJSONString(object);
|
//转成实体对象
|
ArdAlarmStealelec wd = JSON.parseObject(JSONStr, ArdAlarmStealelec.class);
|
ArdAlarmStealelec ardAlarmStealelec = ardAlarmStealelecMapper.selectByPrimaryKey(wd.getId());
|
if (ardAlarmStealelec == null) {
|
//同时插入到数据库中
|
wd.setCommand(1001);
|
wd.setCreateTime(new Date());
|
ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(wd.getDescribe());
|
if(well!=null)
|
{
|
wd.setLongitude(well.getLongitude());
|
wd.setLatitude(well.getLatitude());
|
wd.setDeptId(well.getDeptId());
|
}
|
int insert = ardAlarmStealelecMapper.insertArdAlarmStealelec(wd);
|
if (insert > 0) {
|
log.info("数据插入成功:" + wd.getId());
|
} else {
|
log.info("数据插入失败:" + wd.getId());
|
}
|
}
|
}
|
}
|
} catch (Exception ex) {
|
log.error("拉取盗电报警数据异常:" + ex.getMessage());
|
}
|
}
|
|
/**
|
* @描述 获取实时数据
|
* @参数 []
|
* @返回值 java.util.List<cn.easyuse.ssm.po.ArdAlarmStealelec>
|
* @创建人 刘苏义
|
* @创建时间 2023/1/6 8:59
|
* @修改人和其它信息
|
*/
|
@Override
|
public List<ArdAlarmStealelec> getRealAlarm(Long deptId) {
|
try {
|
String refreshTime = configService.selectConfigByKey("refreshTime");
|
return ardAlarmStealelecMapper.selectRealByCondition(refreshTime,deptId);
|
} catch (Exception ex) {
|
log.error(ex.getMessage());
|
return null;
|
}
|
}
|
/**
|
* @描述 更新井号已读时间
|
* @参数 [describe, DirectLE]
|
* @返回值 int
|
* @创建人 刘苏义
|
* @创建时间 2023/1/6 9:00
|
* @修改人和其它信息
|
*/
|
@Override
|
public int updateViewTimeByDescribe(String describe, String alarmTime,String viewTime) {
|
return ardAlarmStealelecMapper.updateViewTimeByDescribe(describe,alarmTime, viewTime);
|
}
|
}
|