feat: 新增事务回填

This commit is contained in:
yarnom 2025-11-13 22:08:13 +08:00
parent 87135fdaf0
commit 3b20c2396e
3 changed files with 49 additions and 3 deletions

View File

@ -16,4 +16,7 @@ public interface GnssDeviceMapper extends MPJBaseMapper<GnssDevice> {
@Update({"update gnssdevices set iccid=#{iccid} where deviceid=#{deviceId}"}) @Update({"update gnssdevices set iccid=#{iccid} where deviceid=#{deviceId}"})
int updateIccidByDeviceId(String deviceId, String iccid); int updateIccidByDeviceId(String deviceId, String iccid);
@Update({"update gnssdevices set ecefx=#{ecefx}, ecefy=#{ecefy}, ecefz=#{ecefz} where deviceid=#{deviceId}"})
int updateEcefByDeviceId(String deviceId, Double ecefx, Double ecefy, Double ecefz);
} }

View File

@ -18,6 +18,8 @@ import javax.servlet.http.HttpSession;
public class RtkTransactionController extends BasicController { public class RtkTransactionController extends BasicController {
@Autowired @Autowired
RtkTransactionMapper mapper; RtkTransactionMapper mapper;
@Autowired
com.imdroid.secapi.dto.GnssDeviceMapper gnssDeviceMapper;
@RequestMapping("/page/rtk_transactions") @RequestMapping("/page/rtk_transactions")
public String page(Model m, HttpSession session){ public String page(Model m, HttpSession session){
@ -39,5 +41,17 @@ public class RtkTransactionController extends BasicController {
json.put("data", cs.getRecords()); json.put("data", cs.getRecords());
return json; return json;
} }
}
@RequestMapping("/rtk/transaction/check")
@ResponseBody
public String check(Integer id, Boolean apply){
RtkTransaction t = mapper.selectById(id);
if(t==null) return com.imdroid.beidou.common.HttpResult.failed();
t.setChecked((short)1);
mapper.updateById(t);
if(Boolean.TRUE.equals(apply)){
try{ gnssDeviceMapper.updateEcefByDeviceId(t.getDevice_id(), t.getEcef_x(), t.getEcef_y(), t.getEcef_z()); }catch(Exception ignored){}
}
return com.imdroid.beidou.common.HttpResult.ok();
}
}

View File

@ -31,12 +31,18 @@
</div> </div>
</fieldset> </fieldset>
<table class="layui-hide" id="txTable" lay-filter="txTableFilter"></table> <table class="layui-hide" id="txTable" lay-filter="txTableFilter"></table>
<script type="text/html" id="txBar">
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="check">检查</a>
</script>
</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> <script>
layui.use(['form','table'], function(){ layui.use(['form','table'], function(){
var $=layui.$, form=layui.form, table=layui.table; var $=layui.$, form=layui.form, table=layui.table;
function toHexSp(str){
var s=''; for(var i=0;i<str.length;i++){ var h=str.charCodeAt(i).toString(16).toUpperCase(); if(h.length<2) h='0'+h; s+=h+(i<str.length-1?' ':''); } return s;
}
function render(params){ function render(params){
table.render({ table.render({
elem:'#txTable', url:'/rtk/transaction/list', where: params||{}, elem:'#txTable', url:'/rtk/transaction/list', where: params||{},
@ -49,14 +55,37 @@ layui.use(['form','table'], function(){
{field:'ecef_y', title:'ECEF_Y'}, {field:'ecef_y', title:'ECEF_Y'},
{field:'ecef_z', title:'ECEF_Z'}, {field:'ecef_z', title:'ECEF_Z'},
{field:'status', title:'状态', width:80, templet:function(d){ return d.status==1?'<span class="layui-badge layui-bg-green">固定</span>':'<span class="layui-badge layui-bg-orange">浮点</span>'; }}, {field:'status', title:'状态', width:80, templet:function(d){ return d.status==1?'<span class="layui-badge layui-bg-green">固定</span>':'<span class="layui-badge layui-bg-orange">浮点</span>'; }},
{field:'checked', title:'已检查', width:80, templet:function(d){ return d.checked?'<span class="layui-badge layui-bg-blue"></span>':'<span class="layui-badge"></span>'; }} {field:'checked', title:'已检查', width:80, templet:function(d){ return d.checked?'<span class="layui-badge layui-bg-blue"></span>':'<span class="layui-badge"></span>'; }},
{title:'操作', toolbar:'#txBar', width:100}
] ], page:true, limits:[10,20,50,100], limit:10 ] ], page:true, limits:[10,20,50,100], limit:10
}); });
} }
render({}); render({});
form.on('submit(tx-search-btn)', function(data){ render(data.field); return false; }); form.on('submit(tx-search-btn)', function(data){ render(data.field); return false; });
table.on('tool(txTableFilter)', function(obj){
var d = obj.data;
if(obj.event==='check'){
var cmd = '$POLCFGBASE,' + d.latitude + ',' + d.longitude + ',' + d.altitude + '\r\n\r\n';
var hex = toHexSp(cmd);
var html = '<div style="padding:10px;">' +
'<div class="layui-text">命令</div><pre class="layui-code">'+cmd.replace(/</g,'&lt;')+'</pre>'+
'<div class="layui-text">十六进制</div><pre class="layui-code">'+hex+'</pre>'+
'</div>';
layer.open({
title:'检查', type:1, area:['600px','420px'], content: html,
btn:['生效','取消'],
yes: function(index){
$.post('/rtk/transaction/check',{id:d.id, apply:true}, function(){ layer.close(index); table.reload('txTable'); });
},
btn2: function(index){
$.post('/rtk/transaction/check',{id:d.id, apply:false}, function(){ layer.close(index); table.reload('txTable'); });
return false;
}
});
}
});
}); });
</script> </script>
</body> </body>
</html> </html>