win代码上传

detached
zouyiqing 2024-02-02 16:49:16 +08:00
parent 0821deef01
commit 6fc4de5e43
19 changed files with 322 additions and 256 deletions

View File

@ -6,6 +6,7 @@ import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.PrimaryRadarData;
import com.ruoyi.common.core.domain.entity.RadarTableVO;
import com.ruoyi.common.core.domain.entity.SysDiscern;
import com.ruoyi.common.core.domain.entity.TagRadarData;
import com.ruoyi.common.core.page.PageDomain;
import com.ruoyi.common.core.page.TableDataInfo;
@ -18,6 +19,7 @@ import com.ruoyi.quartz.domain.SysJob;
import com.ruoyi.quartz.service.ISysJobService;
import com.ruoyi.quartz.util.CronUtils;
import com.ruoyi.quartz.util.ScheduleUtils;
import com.ruoyi.system.service.ISysDiscernService;
import com.ruoyi.system.service.PrimaryRadarDataService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.quartz.SchedulerException;
@ -44,6 +46,8 @@ public class SysDiscernController extends BaseController {
@Autowired
private ISysJobService jobService;
@Autowired
private ISysDiscernService sysDiscernService;
@Autowired
private PrimaryRadarDataService primaryRadarDataService;
@ -56,20 +60,17 @@ public class SysDiscernController extends BaseController {
// @RequiresPermissions("monitor:job:list")
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(PrimaryRadarData primaryRadarData) {
public TableDataInfo list(SysDiscern sysDiscern) {
startPage();
List<PrimaryRadarData> list = primaryRadarDataService.selectRadarTable(primaryRadarData);
list.stream().forEach(primaryRadarData1 -> {
if (StringUtils.isNotEmpty(primaryRadarData1.getType())){
if (("0").equals(primaryRadarData1.getType())){
List<SysDiscern> list = sysDiscernService.selectDiscernList(sysDiscern);
list.stream().forEach(sysDiscernList -> {
if (sysDiscernList.getType()!=null){
if (sysDiscernList.getType()==0){
primaryRadarData1.setType("铁包");
} else if (primaryRadarData1.getLadleNumber().contains("铁")) {
primaryRadarData1.setType("铁包");
}else {
primaryRadarData1.setType(null);
sysDiscernList.setName("铁包");
} else if (sysDiscernList.getType()==(1)) {
sysDiscernList.setName("车架");
}
}
});
return getDataTable(list);

View File

@ -16,8 +16,8 @@
<li>
识别类型:<select type="select" name="type">
<option value="" selected>所有</option>
<option value="">铁包</option>
<option value="">车架</option>
<option value="0">铁包</option>
<option value="1">车架</option>
</select>
</li>
<li>
@ -75,7 +75,7 @@
title: '雷达位置',
},
{
field: 'type',
field: 'name',
title: '识别类型',
formatter: function(value, row, index) {
return $.table.selectDictLabel(datas, value);
@ -98,7 +98,7 @@
title: '信号值'
},
{
field: 'totalCount',
field: 'count',
title: '读取次数'
},
{

View File

@ -113,12 +113,13 @@
},
{
field: 'id',
title: '序号'
title: '序号',
sortable: true,
},
{
field: 'identifierId',
title: '高温标识器ID1',
sortable: true,
},
{
field: 'identifierTwo',

View File

@ -90,12 +90,12 @@
},
{
field: 'id',
title: '序号'
title: '序号',
sortable: true,
},
{
field: 'identifierId',
title: '常温温标识器ID1',
sortable: true,
},
{
field: 'identifierTwo',

View File

@ -131,12 +131,13 @@
},
{
field: 'id',
title: '表格序号'
title: '表格序号',
sortable: true
},
{
field: 'radarIp',
title: '雷达IP',
sortable: true,
},
{
field: 'radarLocation',

View File

@ -3,6 +3,7 @@ package com.ruoyi.common.core.domain.entity;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.annotation.Excel.ColumnType;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
@ -11,10 +12,12 @@ import org.apache.commons.lang3.builder.ToStringStyle;
*
* @author ruoyi
*/
@Data
public class PrimaryRadarData extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 用户ID */
@Excel(name = "数据序号", cellType = ColumnType.NUMERIC)
private Long id;
@ -23,6 +26,9 @@ public class PrimaryRadarData extends BaseEntity
*/
@Excel(name = "标签id号")
private String tagId;
private Integer radarId;
/**
* 1·
*/
@ -85,8 +91,6 @@ public class PrimaryRadarData extends BaseEntity
/** 删除标志0代表存在 2代表删除 */
private String delFlag;
private Integer stationCode;
private String type;
public String getType() {

View File

@ -3,6 +3,7 @@ package com.ruoyi.common.core.domain.entity;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.annotation.Excel.ColumnType;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
@ -13,6 +14,7 @@ import java.util.Date;
*
* @author ruoyi
*/
@Data
public class SysDiscern extends BaseEntity
{
private static final long serialVersionUID = 1L;
@ -55,6 +57,7 @@ public class SysDiscern extends BaseEntity
*/
private Integer type;
private String name;
/**
*
*/

View File

@ -2,7 +2,7 @@ package com.ruoyi.common.core.domain.entity;
import lombok.Data;
import java.sql.Date;
import java.util.Date;
@Data
@ -15,9 +15,9 @@ public class TsanaRadar {
public String labelNum;
public Date timeBegin;
public String timeBegin;
public Date timeEnd;
public String timeEnd;
public Integer timeCount;
@ -26,7 +26,7 @@ public class TsanaRadar {
}
public TsanaRadar() {
public TsanaRadar(String radarCode, String labelCode, String locationIp, String labelNum, String timeBegin, String timeEnd, Integer timeCount) {
this.radarCode = radarCode;
this.labelCode = labelCode;
this.locationIp = locationIp;

View File

@ -11,10 +11,11 @@ import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class SocketUtil {
public static DataResponse getData(Socket socket , String radarLocation , String radarIp) {
public static DataResponse getData(Socket socket , String radarLocation , String radarIp,Integer radarId) {
DataResponse dataResponse = new DataResponse();
dataResponse.setRadarIp(radarIp);
dataResponse.setRadarLocation(radarLocation);
@ -44,14 +45,14 @@ public class SocketUtil {
int s = BitUtils.covert(string);
decimal.add(s);
}
dataResponse.setData(decimal);
if (Objects.equals(radarId, decimal.get(0))) {
dataResponse.setData(decimal);
}
return dataResponse;
}
} catch (Exception e) {
System.out.println("读取数据异常:" + radarIp);
// System.out.println("读取数据异常:" + radarIp);
}
dataResponse.setRadarIp(radarIp);

View File

@ -3,6 +3,7 @@ package com.ruoyi.system.mapper;
import com.ruoyi.common.core.domain.entity.SysIdentifier;
import com.ruoyi.common.core.domain.entity.SysRadar;
import com.ruoyi.common.core.domain.entity.SysUser;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -42,4 +43,10 @@ public interface SysRadarMapper
public int updateStatus(SysRadar radar);
int deleteRadarByIds(String ids);
SysRadar selectRadarByNumber(@Param("number") Integer number,
@Param("radarIp") String radarIp,
@Param("radarId") Integer radarId);
SysRadar selectRadarByRadarId(@Param("radarId")Integer radarId,@Param("radarIp") String radarIp);
}

View File

@ -35,4 +35,7 @@ public interface ISysIdentifierService
String importNormalData(List<NormalExcel> normalList, boolean isUpdateSupport);
String importData(List<IdentifierExcel> identifierList, boolean isUpdateSupport);
List<SysIdentifier> selectAllIdentifierList();
}

View File

@ -2,8 +2,6 @@ package com.ruoyi.system.service;
import com.ruoyi.common.core.domain.entity.RadarExcel;
import com.ruoyi.common.core.domain.entity.SysRadar;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.system.domain.SysUserRole;
import java.util.List;
@ -37,4 +35,8 @@ public interface ISysRadarService
int deleteRadarByIds(String ids);
String importData(List<RadarExcel> radarList, boolean isUpdateSupport);
SysRadar selectRadarByNumber(Integer number, String radarIp, Integer radarId);
SysRadar selectRadarByRadarId(Integer radarId, String radarIp);
}

View File

@ -80,51 +80,51 @@ public class PrimaryRadarDataServiceImpl implements PrimaryRadarDataService
}
private static void oracleInsert(TsanaRadar tsanaRadar) {
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@172.16.18.195:1523:xccb";
String user = "radartest";
String password = "radartest";
connection = DriverManager.getConnection(url,user,password);
System.out.println(" ============= 连接数据库成功 ==========");
String insertStatement = "INSERT INTO xccb.TS_ANARADAR (RADARCODE, LABELCODE, LOCATIONIP , LABELNUM , TIMEBEGIN , TIMEEND , TIMECOUNT) VALUES (?, ?, ?, ?, ?, ?, ?)";
preparedStatement = connection.prepareStatement(insertStatement);
preparedStatement.setString(1,tsanaRadar.getRadarCode());
preparedStatement.setString(2,tsanaRadar.getLabelCode());
preparedStatement.setString(3,tsanaRadar.getLocationIp());
preparedStatement.setString(4,tsanaRadar.getLabelNum());
preparedStatement.setDate(5,tsanaRadar.getTimeBegin());
preparedStatement.setDate(6,tsanaRadar.getTimeEnd());
preparedStatement.setInt(7,tsanaRadar.getTimeCount());
int i = preparedStatement.executeUpdate();
System.out.println("新增数据成功,新增数量: " + i);
}catch (Exception e){
System.out.println("连接异常======" + e);
}finally {
// 关闭连接和statement
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
//
// private static void oracleInsert(TsanaRadar tsanaRadar) {
// Connection connection = null;
// PreparedStatement preparedStatement = null;
// try {
// Class.forName("oracle.jdbc.driver.OracleDriver");
//
// String url = "jdbc:oracle:thin:@172.16.18.195:1523:xccb";
// String user = "radartest";
// String password = "radartest";
// connection = DriverManager.getConnection(url,user,password);
// System.out.println(" ============= 连接数据库成功 ==========");
// String insertStatement = "INSERT INTO xccb.TS_ANARADAR (RADARCODE, LABELCODE, LOCATIONIP , LABELNUM , TIMEBEGIN , TIMEEND , TIMECOUNT) VALUES (?, ?, ?, ?, ?, ?, ?)";
//
// preparedStatement = connection.prepareStatement(insertStatement);
//
// preparedStatement.setString(1,tsanaRadar.getRadarCode());
// preparedStatement.setString(2,tsanaRadar.getLabelCode());
// preparedStatement.setString(3,tsanaRadar.getLocationIp());
// preparedStatement.setString(4,tsanaRadar.getLabelNum());
// preparedStatement.setDate(5,tsanaRadar.getTimeBegin());
// preparedStatement.setDate(6,tsanaRadar.getTimeEnd());
// preparedStatement.setInt(7,tsanaRadar.getTimeCount());
//
// int i = preparedStatement.executeUpdate();
// System.out.println("新增数据成功,新增数量: " + i);
// }catch (Exception e){
// System.out.println("连接异常======" + e);
// }finally {
// // 关闭连接和statement
// if (preparedStatement != null) {
// try {
// preparedStatement.close();
// } catch (SQLException e) {
// e.printStackTrace();
// }
// }
// if (connection != null) {
// try {
// connection.close();
// } catch (SQLException e) {
// e.printStackTrace();
// }
// }
// }
// }
}

View File

@ -1,11 +1,13 @@
package com.ruoyi.system.service.impl;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.domain.entity.*;
import com.ruoyi.common.utils.SocketModel;
import com.ruoyi.common.utils.SocketUtil;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.bean.ModbusResponse;
import com.ruoyi.system.service.*;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.RandomUtils;
import org.apache.commons.lang3.StringUtils;
@ -14,12 +16,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.net.Socket;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Date;
import java.util.concurrent.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@Service
@ -39,17 +41,17 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
public static CopyOnWriteArrayList<String> allRadar = new CopyOnWriteArrayList<>();
// public static Integer count = 0 ;
//
// private Integer consecutiveZeros = 0;
private Map<Long, String> radarDelMap = new HashMap<>();
@Override
public void afterPropertiesSet() {
List<SysRadar> radarList = service.selectRadarList(new SysRadar());
// List<SysIdentifier> sysIdentifiers = identifierService.selectAllIdentifierList();
// Map<String, SysIdentifier> identifierHashMap = new HashMap<>();
// if (CollectionUtils.isNotEmpty(sysIdentifiers)){
// identifierHashMap = sysIdentifiers.stream().collect(Collectors.toMap(SysIdentifier::getIdentifierId, Function.identity()));
// }
CompletableFuture.runAsync(() -> {
radarWebSocket(radarList);
});
@ -64,12 +66,6 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
CompletableFuture.runAsync(() -> {
task(radar, socket);
// try {
// Thread.sleep(3000);
// } catch (InterruptedException e) {
// throw new RuntimeException(e);
// }
});
} catch (Exception e) {
e.printStackTrace();
@ -80,143 +76,181 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
private void task(SysRadar radar, Socket socket) {
long noDataStart = System.currentTimeMillis();
long noDataEnd = noDataStart;
long start = noDataStart;
int consecutiveZeros = 0;
int readCount = 1;
Map<String, List<PrimaryRadarData>> map = new HashMap<>();
while (StringUtils.equals("0", radarDelMap.get(radar.getId()))) {
// int count = 0;
// int consecutiveZeros = 0;
List<PrimaryRadarData> dataList = new ArrayList<>();
try {
// socket连接成功返回数据
DataResponse data = SocketUtil.getData(socket, radar.getRadarLocation(), radar.getRadarIp());
DataResponse data = SocketUtil.getData(socket, radar.getRadarLocation(), radar.getRadarIp(), radar.getRadarId());
long current = System.currentTimeMillis();
// 没数据返回data.data == null
if (Objects.isNull(data.getData())) {
// 连续2秒没读到数据结束
if (current - noDataStart >= 2000) {
long dataNullTime = System.currentTimeMillis();
// todo:存数据
if (CollectionUtils.isNotEmpty(map.get(getMapKey(radar)))) {
// 雷达数据返回封装类赋值
ModbusResponse modbusResponse = getModbusResponse(data);
String tag = modbusResponse.getTagId();
// 雷达原始数据对象
PrimaryRadarData primaryRadarData = new PrimaryRadarData();
// 标识器对象
SysIdentifier sysIdentifier = new SysIdentifier();
// 拷贝封装类属性到雷达原始数据对象
BeanUtils.copyProperties(modbusResponse, primaryRadarData);
primaryRadarData.setRadarIp(radar.getRadarIp());
primaryRadarData.setStationCode(radar.getStationCode());
primaryRadarData.setRadarLocation(radar.getRadarLocation());
//判断读取数据中是否携带标签
if (readCount > 1) {
saveData(radar, map, readCount, noDataEnd, dataNullTime);
if (!"0".equals(modbusResponse.getTagId())) {
// 根据标签去数据库查询标签列表
sysIdentifier = identifierService.selectIdentifierByTag(tag);
//判断数据库查询结果是否有数据
if (sysIdentifier != null) {
// 有数据将查询到的标识器配置属性放进原始数据对象
primaryRadarData.setLadleNumber(sysIdentifier.getLadleNumber());
primaryRadarData.setRadarIp(radar.getRadarIp());
primaryRadarData.setType(sysIdentifier.getType().toString());
for (int i = 0; i < 20; i++) {
dataList.add(primaryRadarData);
}
int count = 0;
while (true){
map.put(getMapKey(radar), dataList);
if (count == 20){
Date date = new Date();
long milliseconds = date.getTime(); // 获取当前日期的毫秒数
long newMilliseconds = milliseconds + (count * 200); // 加上次数乘以200毫秒
Date newDate = new Date(newMilliseconds); // 转换成新的 Date 类型
resolveDiscern(radar, primaryRadarData, map ,count,newDate ,date);
readCount = 1;
}
count++;
}
// 给雷达识别报表赋值
// TsanaRadar tsanaRadar = new TsanaRadar();
// tsanaRadar.setRadarCode(null);
// tsanaRadar.setLabelCode(null);
// tsanaRadar.setLocationIp(sysDiscern.getStationCode().toString());
// tsanaRadar.setLabelNum(sysDiscern.getTagId());
// tsanaRadar.setTimeBegin((java.sql.Date) sysDiscern.getCreateTime());
// tsanaRadar.setTimeEnd((java.sql.Date) sysDiscern.getUpdateTime());
// tsanaRadar.setTimeCount(count);
//
// oracleInsert(tsanaRadar);
// 没数据返回data.data == null
// if (Objects.isNull(data.getData())) {
// // 连续5秒没读到数据结束
// if (current - noDataStart >= 5000) {
// // todo:存数据
// List<PrimaryRadarData> primaryRadarDataList = map.get(getMapKey(radar));
//// primaryRadarDataList.stream().filter()
// noDataStart = current;
// continue;
// }
// }
// // 有数据返回数据
// // 有id且时间>=20000
// if (data.getData().get(3) != 0 && current - start >= 20000) {
// // todo:存数据
//
// start = current;
// continue;
// }
map.get(getMapKey(radar)).clear();
noDataStart = current;
}
} else {
//连续10次读取标签号为0
// 没有配置过将铁包号置空
primaryRadarData.setLadleNumber(null);
primaryRadarData.setRadarIp(radar.getRadarIp());
continue;
}
SysRadar sysRadar = service.selectRadarByRadarId(radar.getRadarId(), radar.getRadarIp());
if (sysRadar != null) { // 雷达数据返回封装类赋值
ModbusResponse modbusResponse = getModbusResponse(data);
String tag = modbusResponse.getTagId();
// 雷达原始数据对象
PrimaryRadarData primaryRadarData = new PrimaryRadarData();
// 拷贝封装类属性到雷达原始数据对象
BeanUtils.copyProperties(modbusResponse, primaryRadarData);
primaryRadarData.setRadarIp(radar.getRadarIp());
// if (primaryRadarData.getNumber()==(Integer.parseInt(radar.getRadarNum()))) {
primaryRadarData.setStationCode(radar.getStationCode());
// }else if (Objects.equals(radar.getRadarId(), data.getData().get(0))){
// primaryRadarData.setStationCode(radar.getStationCode());
// }
primaryRadarData.setRadarId(data.getData().get(0));
primaryRadarData.setRadarLocation(radar.getRadarLocation());
List<PrimaryRadarData> dataList = map.get(getMapKey(radar));
//判断读取数据中是否携带标签
if (!"0".equals(modbusResponse.getTagId())) {
// 根据标签去数据库查询标签列表
SysIdentifier sysIdentifier = identifierService.selectIdentifierByTag(tag);
//判断数据库查询结果是否有数据
if (sysIdentifier != null) {
// 有数据将查询到的标识器配置属性放进原始数据对象
primaryRadarData.setLadleNumber(sysIdentifier.getLadleNumber());
primaryRadarData.setRadarIp(radar.getRadarIp());
primaryRadarData.setType(sysIdentifier.getType().toString());
if (CollectionUtils.isEmpty(dataList)) {
dataList = new ArrayList<>();
dataList.add(primaryRadarData);
map.put(getMapKey(radar), dataList);
}
if (StringUtils.equals(modbusResponse.getTagId(), dataList.get(dataList.size() - 1).getTagId()) && Objects.equals(primaryRadarData.getRadarId(), dataList.get(dataList.size() - 1).getRadarId()) && Objects.equals(primaryRadarData.getRadarIp(), dataList.get(dataList.size() - 1).getRadarIp())) {
if (current - start >= 20000) {
// todo存数据
if (readCount > 100) {
saveData(radar, map, readCount, start, current);
readCount = 1;
}
start = System.currentTimeMillis();
}
dataList.clear();
dataList.add(primaryRadarData);
}
if (!StringUtils.equals(modbusResponse.getTagId(), dataList.get(dataList.size() - 1).getTagId()) && !StringUtils.equals("0", dataList.get(dataList.size() - 1).getTagId()) && Objects.equals(primaryRadarData.getRadarId(), dataList.get(dataList.size() - 1).getRadarId()) && Objects.equals(primaryRadarData.getRadarIp(), dataList.get(dataList.size() - 1).getRadarIp())) {
// todo存数据
long currentTimeMillis = System.currentTimeMillis();
saveData(radar, map, readCount, start, currentTimeMillis);
dataList.clear();
dataList.add(primaryRadarData);
readCount = 1;
}
readCount++;
List<Date> readTime = map.get(getMapKey(radar))
.stream().map(PrimaryRadarData::getCreateTime).collect(Collectors.toList());
if (readTime.get(0) != null) {
readTime.set(0, new Date(System.currentTimeMillis()));
}
if (!Objects.equals(data.getData().get(0), dataList.get(dataList.size() - 1).getRadarId())) {
long end = System.currentTimeMillis();
saveData(radar, map, readCount, start, end);
dataList.clear();
dataList.add(primaryRadarData);
readCount = 1;
}
}
consecutiveZeros = 0;
} else {
//连续10次读取标签号为0
consecutiveZeros++;
if (10 == consecutiveZeros) {
// todo存数据
long nullTime = System.currentTimeMillis();
saveData(radar, map, readCount, start, noDataStart);
readCount = 1;
map.get(getMapKey(radar)).clear();
dataList.clear();
consecutiveZeros = 0;
start = System.currentTimeMillis();
}
// 没有配置过将铁包号置空
primaryRadarData.setLadleNumber(null);
primaryRadarData.setRadarIp(radar.getRadarIp());
}
CompletableFuture.runAsync(() -> {
primaryRadarDataService.insertPrimaryRadarData(primaryRadarData);
});
noDataStart = current;
}
CompletableFuture.runAsync(() -> {
// primaryRadarDataService.insertPrimaryRadarData(primaryRadarData);
});
noDataStart = current;
} catch (Exception e) {
}
}
}
private static String getMapKey(SysRadar radar) {
return radar.getRadarIp() + "-" + radar.getRadarNum();
private void saveData(SysRadar radar, Map<String, List<PrimaryRadarData>> map, int count, long noStartTime, long endTime) {
Date start = new Date(noStartTime);
Date end = new Date(endTime);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sqlStart = sdf.format(start);
String sqlEnd = sdf.format(end);
try {
List<PrimaryRadarData> primaryRadarDataList = map.get(getMapKey(radar));
if (CollectionUtils.isNotEmpty(primaryRadarDataList)) {
PrimaryRadarData maxData = primaryRadarDataList.stream().max(Comparator.comparingInt(PrimaryRadarData::getValue4)).get();
SysDiscern sysDiscern = new SysDiscern();
sysDiscern.setStationCode(maxData.getStationCode());
sysDiscern.setCount(count);
sysDiscern.setType(Integer.parseInt(maxData.getType()));
sysDiscern.setNumber(maxData.getNumber());
sysDiscern.setCreateTime(start);
sysDiscern.setUpdateTime(end);
sysDiscern.setTagId(maxData.getTagId());
sysDiscern.setValue4(maxData.getValue4());
sysDiscern.setRadarLocation(maxData.getRadarLocation());
sysDiscern.setLadleNumber(maxData.getLadleNumber());
discernService.insertDiscern(sysDiscern);
TsanaRadar tsanaRadar = new TsanaRadar();
tsanaRadar.setRadarCode("");
tsanaRadar.setLabelCode("");
tsanaRadar.setLocationIp(maxData.getStationCode().toString());
tsanaRadar.setLabelNum(maxData.getTagId());
tsanaRadar.setTimeBegin(sqlStart);
tsanaRadar.setTimeEnd(sqlEnd);
tsanaRadar.setTimeCount(count);
oracleInsert(tsanaRadar);
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void resolveDiscern(SysRadar radar, PrimaryRadarData primaryRadarData, Map<String, List<PrimaryRadarData>> map , int count,Date newDate ,Date date) {
List<PrimaryRadarData> primaryRadarDataList1 = map.get(getMapKey(radar));
List<PrimaryRadarData> primaryRadarDataList = new ArrayList<>();
primaryRadarDataList.add(primaryRadarData);
map.put(getMapKey(radar), primaryRadarDataList);
List<String> numberList = convertStringToList(radar.getRadarNum());
SysDiscern sysDiscern = copyDataToDiscern(primaryRadarData);
// 给雷达识别报表赋值
sysDiscern.setType(Integer.parseInt(primaryRadarData.getType()));
sysDiscern.setRadarLocation(radar.getRadarLocation());
sysDiscern.setLadleNumber(primaryRadarData.getLadleNumber());
sysDiscern.setCreateTime(date );
sysDiscern.setTagId(primaryRadarData.getTagId());
sysDiscern.setCount(count);
sysDiscern.setUpdateTime(newDate);
sysDiscern.setStationCode(radar.getStationCode());
discernService.insertDiscern(sysDiscern);
// TsanaRadar tsanaRadar = new TsanaRadar();
// tsanaRadar.setRadarCode(null);
// tsanaRadar.setLabelCode(null);
// tsanaRadar.setLocationIp(sysDiscern.getStationCode().toString());
// tsanaRadar.setLabelNum(sysDiscern.getTagId());
// tsanaRadar.setTimeBegin((java.sql.Date) sysDiscern.getCreateTime());
// tsanaRadar.setTimeEnd((java.sql.Date) sysDiscern.getUpdateTime());
// tsanaRadar.setTimeCount(count);
//
// oracleInsert(tsanaRadar);
private static String getMapKey(SysRadar radar) {
return radar.getRadarIp() + "-" + radar.getRadarNum() + "-" + radar.getId();
}
@Override
@ -230,18 +264,6 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
radarDelMap.put(id, "1");
}
public static List<String> convertStringToList(String input) {
List<String> list = new ArrayList<>();
if (input.contains(",")) {
String[] array = input.split(",");
list.addAll(Arrays.asList(array));
} else {
list.add(input);
}
return list;
}
/**
*
*
@ -287,26 +309,40 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
String url = "jdbc:oracle:thin:@172.16.18.195:1523:xccb";
String user = "radartest";
String password = "radartest";
connection = DriverManager.getConnection(url,user,password);
connection = DriverManager.getConnection(url, user, password);
System.out.println(" ============= 连接数据库成功 ==========");
// ====================================================雷达编号, 标签编号, 工位代号, 标签号, 开始时间, 结束时间, 读取次数
String insertStatement = "INSERT INTO xccb.TS_ANARADAR (RADARCODE, LABELCODE, LOCATIONIP , LABELNUM , TIMEBEGIN , TIMEEND , TIMECOUNT) VALUES (?, ?, ?, ?, ?, ?, ?)";
String insertStatement = "INSERT INTO xccb.TS_ANARADAR (RADARCODE, LABELCODE, LOCATIONIP , LABELNUM , TIMEBEGIN , TIMEEND , TIMECOUNT) VALUES (?, ?, ?, ?, to_date(?,'yyyy-mm-dd hh24:mi:ss'), to_date(?,'yyyy-mm-dd hh24:mi:ss'), ?)";
System.out.println("insertStatement = " + insertStatement);
preparedStatement = connection.prepareStatement(insertStatement);
preparedStatement.setString(1,null);
preparedStatement.setString(2,null);
preparedStatement.setString(3,tsanaRadar.getLocationIp());
preparedStatement.setString(4,tsanaRadar.getLabelNum());
preparedStatement.setDate(5,tsanaRadar.getTimeBegin());
preparedStatement.setDate(6,tsanaRadar.getTimeEnd());
preparedStatement.setInt(7,tsanaRadar.getTimeCount());
System.out.println("SQL语句初始化完成");
preparedStatement.setString(1, tsanaRadar.getRadarCode());
System.out.println("=======RadarCode初始化完成=======" + tsanaRadar.getRadarCode());
preparedStatement.setString(2, tsanaRadar.getLabelCode());
System.out.println("=======LabelCode初始化完成=======" + tsanaRadar.getLabelCode());
preparedStatement.setString(3, tsanaRadar.getLocationIp());
System.out.println("=======LocationIp初始化完成=======" + tsanaRadar.getLocationIp());
preparedStatement.setString(4, tsanaRadar.getLabelNum());
System.out.println("=======LabelNum语句初始化完成=======" + tsanaRadar.getLabelNum());
preparedStatement.setString(5, tsanaRadar.getTimeBegin());
System.out.println("=======TimeBegin语句初始化完成=======" + tsanaRadar.getTimeBegin());
preparedStatement.setString(6, tsanaRadar.getTimeEnd());
System.out.println("=======TimeEnd语句初始化完成=======" + tsanaRadar.getTimeEnd());
preparedStatement.setInt(7, tsanaRadar.getTimeCount());
System.out.println("=======TimeCount初始化完成=======" + tsanaRadar.getTimeCount());
System.out.println("准备执行新增操作.........");
int i = preparedStatement.executeUpdate();
System.out.println("新增数据成功,新增数量: " + i);
}catch (Exception e){
System.out.println("连接异常======" + e);
}finally {
if (i == 0) {
System.out.println("新增数据成功,新增数量: = " + i);
} else {
System.out.println("新增数据,新增数量: " + i);
}
} catch (Exception e) {
System.out.println("新增失败。。。。。。");
e.printStackTrace();
} finally {
// 关闭连接和statement
if (preparedStatement != null) {
try {

View File

@ -226,6 +226,12 @@ public class SysIdentifierServiceImpl implements ISysIdentifierService
return successMsg.toString();
}
@Override
public List<SysIdentifier> selectAllIdentifierList() {
return identifierMapper.selectAllIdentifierList();
}
@Override
public SysIdentifier selectIdentifierById(Long id) {

View File

@ -1,35 +1,20 @@
package com.ruoyi.system.service.impl;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.domain.entity.RadarExcel;
import com.ruoyi.common.core.domain.entity.SysRadar;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.bean.BeanValidators;
import com.ruoyi.common.utils.security.Md5Utils;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.system.domain.SysPost;
import com.ruoyi.system.domain.SysUserPost;
import com.ruoyi.system.domain.SysUserRole;
import com.ruoyi.system.mapper.*;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysRadarService;
import com.ruoyi.system.service.ISysUserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.validation.Validator;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@ -173,6 +158,16 @@ public class SysRadarServiceImpl implements ISysRadarService
return successMsg.toString();
}
@Override
public SysRadar selectRadarByNumber(Integer number, String radarIp, Integer radarId) {
return radarMapper.selectRadarByNumber(number,radarIp,radarId);
}
@Override
public SysRadar selectRadarByRadarId(Integer radarId, String radarIp) {
return radarMapper.selectRadarByRadarId(radarId,radarIp);
}
}

View File

@ -80,7 +80,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SELECT d.id,d.tag_id,d.ladle_number,d.radar_location,d.count,d.type,d.value4,d.number,d.create_time,d.update_time
FROM sys_discern d
where
where 1=1
<if test="tagId != null and tagId != ''">
AND tag_id like concat('%',#{tagId}, '%')
</if>

View File

@ -132,8 +132,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where id = #{id}
</update>
<select id="selectAllIdentifierList" resultMap="SysIdentifierResult">
select i.id,i.identifier_id,i.identifier_two,i.ladle_number,i.create_by,i.create_time,i.update_by,i.update_time,i.remark,i.del_flag from sys_identifier i
where i.del_flag = '0' and i.type = 0
select i.id,i.identifier_id,i.identifier_two,i.identifier_three,i.identifier_four,i.type,i.ladle_number,i.create_by,i.create_time,i.update_by,i.update_time,i.remark,i.del_flag from sys_identifier i
where i.del_flag = '0'
</select>
<select id="selectIdentifierByTag" resultMap="SysIdentifierResult">

View File

@ -121,7 +121,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update sys_radar set del_flag = 1 where id in (#{ids})
</update>
<select id="selectRadarByNumber" resultMap="SysRadarResult">
select r.id,r.radar_ip,r.radar_location,r.station_code,r.alarm_value1,r.alarm_value2,r.alarm_value3,r.alarm_value4,r.radar_id,r.radar_num,r.status,r.sort,r.create_by,r.create_time,r.update_by,r.update_time,r.remark from sys_radar r
where r.radar_num = #{number} and r.radar_ip = #{radarIp} and r.radar_id = #{radarId}
</select>
</mapper>
<select id="selectRadarByRadarId" resultMap="SysRadarResult">
select r.id,r.radar_ip,r.radar_location,r.station_code,r.sort,r.alarm_value1,r.alarm_value2,r.alarm_value3,r.alarm_value4,r.status,r.radar_id,r.radar_num,r.create_by,r.create_time,r.update_by,r.update_time,r.remark from sys_radar r
where r.del_flag = '0' and r.radar_id = #{radarId} and r.radar_ip = #{radarIp}
</select>
</mapper>