1、增加推送两个平台的功能

This commit is contained in:
weidong 2024-01-22 20:27:19 +08:00
parent 02c4b14110
commit 75215c410e
9 changed files with 49 additions and 25 deletions

View File

@ -40,6 +40,7 @@ public class GnssDevice {
private Integer group_id = 1; //组参数缓存自动下发 private Integer group_id = 1; //组参数缓存自动下发
private Integer calc_group_id = 1; private Integer calc_group_id = 1;
private String fwd_group_id; private String fwd_group_id;
private String fwd_group_id2;
private Boolean syn; //组参数是否同步 private Boolean syn; //组参数是否同步
private String pictures; private String pictures;
private Double b562e; //初始位置 private Double b562e; //初始位置

View File

@ -94,7 +94,7 @@ public class TCPClient {
} }
private void flush(){ private void flush(){
if(sendBuffer.readableBytes()>0){ if(sendBuffer!=null && sendBuffer.readableBytes()>0){
channel.writeAndFlush(sendBuffer).addListener(future -> { channel.writeAndFlush(sendBuffer).addListener(future -> {
if (future.isSuccess()) { if (future.isSuccess()) {
logger.info("send to xfz server succeed."); logger.info("send to xfz server succeed.");

View File

@ -15,6 +15,7 @@ public class Forwarder {
String name; String name;
String description; String description;
Integer tenantId; Integer tenantId;
boolean useFwdId;
@Autowired @Autowired
private GnssDeviceMapper deviceMapper; private GnssDeviceMapper deviceMapper;
@ -30,10 +31,11 @@ public class Forwarder {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
void init(String name, String desc, Integer tenantId){ void init(String name, String desc, Integer tenantId, boolean useFwdId){
this.name = name; this.name = name;
this.description = desc; this.description = desc;
this.tenantId = tenantId; this.tenantId = tenantId;
this.useFwdId = useFwdId;
QueryWrapper<GnssGroupFwd> queryWrapper = new QueryWrapper<>(); QueryWrapper<GnssGroupFwd> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name",name); queryWrapper.eq("name",name);
GnssGroupFwd gnssGroupFwd = fwdMapper.selectOne(queryWrapper); GnssGroupFwd gnssGroupFwd = fwdMapper.selectOne(queryWrapper);
@ -58,7 +60,9 @@ public class Forwarder {
String sendAfterTime = nowTime.minusMinutes(30).format(formatter); String sendAfterTime = nowTime.minusMinutes(30).format(formatter);
QueryWrapper<GnssDevice> queryWrapper = new QueryWrapper<>(); QueryWrapper<GnssDevice> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("fwd_group_id", fwdGroupId); queryWrapper.eq("fwd_group_id", fwdGroupId)
.or()
.eq("fwd_group_id2", fwdGroupId);
List<GnssDevice> gnssDeviceList = deviceMapper.selectList(queryWrapper); List<GnssDevice> gnssDeviceList = deviceMapper.selectList(queryWrapper);
List<GnssCalcData> recordsToSend; List<GnssCalcData> recordsToSend;
for(GnssDevice device:gnssDeviceList){ for(GnssDevice device:gnssDeviceList){
@ -87,7 +91,7 @@ public class Forwarder {
record.setRb562n(record.getRb562n()-device.getB562n()); record.setRb562n(record.getRb562n()-device.getB562n());
record.setRb562d(record.getRb562d()-device.getB562d()); record.setRb562d(record.getRb562d()-device.getB562d());
} }
if(device.getFwddeviceid()!=null && device.getFwddeviceid().trim().length()>0) { if(useFwdId && device.getFwddeviceid()!=null && device.getFwddeviceid().trim().length()>0) {
record.setDeviceid(device.getFwddeviceid()); record.setDeviceid(device.getFwddeviceid());
} }
recordsToSend.add(record); recordsToSend.add(record);
@ -162,7 +166,7 @@ public class Forwarder {
// 推送 // 推送
lastTime = calcData.getCreatetime(); lastTime = calcData.getCreatetime();
// 替换推送名和值 // 替换推送名和值
if(device.getFwddeviceid()!=null && device.getFwddeviceid().trim().length()>0) { if(useFwdId && device.getFwddeviceid()!=null && device.getFwddeviceid().trim().length()>0) {
calcData.setDeviceid(device.getFwddeviceid()); calcData.setDeviceid(device.getFwddeviceid());
} }
if(device.getB562e()!=null && if(device.getB562e()!=null &&

View File

@ -33,14 +33,14 @@ public class GZYForwarder extends Forwarder{
@PostConstruct @PostConstruct
void registerMe(){ void registerMe(){
init(FORWARDER_NAME, host+":"+port,2); init(FORWARDER_NAME, host+":"+port,2,true);
udpClient = new UDPClient(); udpClient = new UDPClient();
udpClient.init(host, port); udpClient.init(host, port);
} }
/** /**
* 每半小时转发GNSS解算结果 * 每半小时转发GNSS解算结果
*/ */
@Scheduled(cron = "0 0/5 * * * ?") // 每30分钟执行一次 @Scheduled(cron = "0 0/30 * * * ?") // 每30分钟执行一次
private void forwardGnss() { private void forwardGnss() {
forwardCurrentGnss(FORWARDER_NAME); forwardCurrentGnss(FORWARDER_NAME);
} }

View File

@ -43,7 +43,7 @@ public class KingMaForwarder extends Forwarder{
@PostConstruct @PostConstruct
void registerMe(){ void registerMe(){
init(FORWARDER_NAME, data_host,3); init(FORWARDER_NAME, data_host,3,true);
} }
/** /**
* 每半小时转发GNSS解算结果 * 每半小时转发GNSS解算结果

View File

@ -64,7 +64,8 @@ public class GnssDeviceController extends BasicController{
} }
@RequestMapping("/page/table/gnss_add_dev") @RequestMapping("/page/table/gnss_add_dev")
public String gnssUpdateDev(Model m){ public String gnssUpdateDev(Model m, HttpSession session) {
initModel(m, session);
//以下用于下拉框数据 //以下用于下拉框数据
List<GnssGroup> gnssGroups = gnssGroupMapper.selectList(null); List<GnssGroup> gnssGroups = gnssGroupMapper.selectList(null);
List<GnssGroupCalc> gnssGroupCalcs = gnssGroupCalcMapper.selectList(null); List<GnssGroupCalc> gnssGroupCalcs = gnssGroupCalcMapper.selectList(null);

View File

@ -52,6 +52,7 @@ CREATE TABLE IF NOT EXISTS `gnssdevices` (
`group_id` int DEFAULT 1, `group_id` int DEFAULT 1,
`calc_group_id` int DEFAULT 1, `calc_group_id` int DEFAULT 1,
`fwd_group_id` varchar(64) DEFAULT NULL, `fwd_group_id` varchar(64) DEFAULT NULL,
`fwd_group_id2` varchar(64) DEFAULT NULL,
`syn` bit(1) DEFAULT 0 COMMENT '是否已同步', `syn` bit(1) DEFAULT 0 COMMENT '是否已同步',
`pictures` varchar(100) DEFAULT NULL, `pictures` varchar(100) DEFAULT NULL,
`b562e` double DEFAULT NULL COMMENT '初始位置东E', `b562e` double DEFAULT NULL COMMENT '初始位置东E',

View File

@ -79,11 +79,29 @@
</div> </div>
</div> </div>
<script src="../lib/layui-v2.6.3/layui.js" charset="utf-8"></script> <script src="../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script th:inline="none"> <script th:inline="javascript">
layui.use(['form', 'table'], function () { layui.use(['form', 'table'], function () {
var $ = layui.$, var $ = layui.$,
form = layui.form, form = layui.form,
table = layui.table; table = layui.table;
var cfg_cols = [
{field: 'deviceid', title: '设备号', sort: true},
{field: 'name', title: '设备名称'},
{field: 'devicetype', title: '类型',templet: '#typeTrans'},
{field: 'parentid', title: '父设备号'},
{field: 'tenantname', title: '所属组织'},
{field: 'project_id', title: '项目号'},
{field: 'group_id', title: '基本参数组'},
{field: 'calc_group_id', title: '解算参数组'},
{field: 'fwd_group_id', title: '推送组'},
{field: 'fwd_group_id2', title: '推送2'},
{field: 'opmode', title: '使用状态',templet: '#modeTrans'},
{field: 'syn', title: '参数同步',templet: '#synTrans'},
{title: '操作', toolbar: '#currentTableBar', align: "center", minWidth: 120}
];
if([[${role}]] != "ADMIN" && [[${role}]] != "SUPER_ADMIN") {
cfg_cols[9].hide = true;
}
/** /**
* 初始化表单,要加上,不然刷新部分组件可能会不加载 * 初始化表单,要加上,不然刷新部分组件可能会不加载
*/ */
@ -94,20 +112,9 @@
url: '/gnss/device/list', url: '/gnss/device/list',
toolbar: '#toolbarTop', toolbar: '#toolbarTop',
defaultToolbar: ['filter'], defaultToolbar: ['filter'],
cols: [[ cols: [
{field: 'deviceid', title: '设备号', sort: true}, cfg_cols
{field: 'name', title: '设备名称'}, ],
{field: 'devicetype', title: '类型',templet: '#typeTrans'},
{field: 'parentid', title: '父设备号'},
{field: 'tenantname', title: '所属组织'},
{field: 'project_id', title: '项目号'},
{field: 'group_id', title: '基本参数组'},
{field: 'calc_group_id', title: '解算参数组'},
{field: 'fwd_group_id', title: '推送组'},
{field: 'opmode', title: '使用状态',templet: '#modeTrans'},
{field: 'syn', title: '参数同步',templet: '#synTrans'},
{title: '操作', toolbar: '#currentTableBar', align: "center", minWidth: 120}
]],
limits: [10, 15, 20, 25, 50, 100], limits: [10, 15, 20, 25, 50, 100],
limit: 15, limit: 15,
page: true, page: true,

View File

@ -102,7 +102,16 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">推送至</label> <label class="layui-form-label">推送至</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select name="fwd_group_id" id="fwd_group_id" lay-verify="required" lay-search=""> <select name="fwd_group_id" id="fwd_group_id" lay-search="">
<option value="不推送">不推送</option>
<option th:each="item : ${gnss_group_fwd_list}" th:text="${item.name}" th:value="${item.name}"></option>
</select>
</div>
</div>
<div class="layui-inline" th:if="${role=='SUPER_ADMIN' || role=='ADMIN'}">
<label class="layui-form-label">推送2</label>
<div class="layui-input-inline">
<select name="fwd_group_id2" id="fwd_group_id2" lay-search="">
<option value="不推送">不推送</option> <option value="不推送">不推送</option>
<option th:each="item : ${gnss_group_fwd_list}" th:text="${item.name}" th:value="${item.name}"></option> <option th:each="item : ${gnss_group_fwd_list}" th:text="${item.name}" th:value="${item.name}"></option>
</select> </select>
@ -210,6 +219,7 @@
$('#group_id').val(data.group_id); $('#group_id').val(data.group_id);
$('#calc_group_id').val(data.calc_group_id); $('#calc_group_id').val(data.calc_group_id);
$('#fwd_group_id').val(data.fwd_group_id); $('#fwd_group_id').val(data.fwd_group_id);
$('#fwd_group_id2').val(data.fwd_group_id2);
$('#opmode').val(data.opmode); $('#opmode').val(data.opmode);
$('#fwddeviceid').val(data.fwddeviceid); $('#fwddeviceid').val(data.fwddeviceid);
$('#b562e').val(data.b562e); $('#b562e').val(data.b562e);