1、增加手工添加补传记录
This commit is contained in:
parent
1875b5e848
commit
032ab5c46b
@ -19,7 +19,8 @@ public class OpLogManager {
|
||||
public final static Short OP_OBJ_GROUP = 6;
|
||||
public final static Short OP_OBJ_WARNING = 7;
|
||||
public final static Short OP_OBJ_SYS = 8;
|
||||
public final static Short OP_OBJ_DEVICE_MSG = 9;
|
||||
public final static Short OP_OBJ_FWD_RECORD = 9;
|
||||
|
||||
|
||||
@Autowired
|
||||
OpLogMapper opLogMapper;
|
||||
|
||||
@ -2,18 +2,16 @@ package com.imdroid.beidou.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.imdroid.beidou.common.HttpResult;
|
||||
import com.imdroid.beidou.service.CommonExcelService;
|
||||
import com.imdroid.secapi.dto.GnssGroupFwd;
|
||||
import com.imdroid.secapi.dto.GnssGroupFwdMapper;
|
||||
import com.imdroid.secapi.dto.ResendRecord;
|
||||
import com.imdroid.secapi.dto.ResendRecordMapper;
|
||||
import com.imdroid.secapi.dto.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpSession;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Controller
|
||||
@ -22,6 +20,10 @@ public class GnssResendController extends BasicController implements CommonExcel
|
||||
GnssGroupFwdMapper gnssGroupFwdMapper;
|
||||
@Autowired
|
||||
ResendRecordMapper resendRecordMapper;
|
||||
@Autowired
|
||||
TenantMapper tenantMapper;
|
||||
@Autowired
|
||||
OpLogManager opLogManager;
|
||||
|
||||
/********* 推送页面 *********/
|
||||
@RequestMapping("/page/resend_records")
|
||||
@ -33,6 +35,19 @@ public class GnssResendController extends BasicController implements CommonExcel
|
||||
|
||||
return "/page/resend_records";
|
||||
}
|
||||
@RequestMapping("/page/table/resend_record_add")
|
||||
public String gnssAddDev(Model m, HttpSession session) {
|
||||
initModel(m, session);
|
||||
//以下用于下拉框数据
|
||||
List<Tenant> tenants = tenantMapper.selectList(null);
|
||||
List<GnssGroupFwd> gnssGroupFwds = gnssGroupFwdMapper.selectList(null);
|
||||
|
||||
m.addAttribute("tenant_list", tenants);
|
||||
m.addAttribute("gnss_group_fwd_list", gnssGroupFwds);
|
||||
m.addAttribute("device", new GnssDevice());
|
||||
|
||||
return "/page/table/resend_record_add";
|
||||
}
|
||||
|
||||
/********* 推送数据 *********/
|
||||
@RequestMapping("/fwd/resend_records")
|
||||
@ -41,6 +56,40 @@ public class GnssResendController extends BasicController implements CommonExcel
|
||||
return this.pageList(session, page, limit, searchParams);
|
||||
}
|
||||
|
||||
@PostMapping("/fwd/resend_records/add")
|
||||
@ResponseBody
|
||||
public String update(HttpSession session, @RequestBody JSONObject object) throws Exception {
|
||||
// 从请求参数中创建对象
|
||||
ResendRecord resendRecord = JSONObject.toJavaObject(object,ResendRecord.class);
|
||||
resendRecord.setCreatetime(LocalDateTime.now());
|
||||
resendRecord.setState(ResendRecord.STATE_BREAK_POINT);
|
||||
int num = resendRecordMapper.insert(resendRecord);
|
||||
if (num == 0) {
|
||||
return HttpResult.failed();
|
||||
} else {
|
||||
opLogManager.addLog(getLoginUser(session),getTenantId(session),
|
||||
OpLogManager.OP_TYPE_ADD,
|
||||
OpLogManager.OP_OBJ_FWD_RECORD,
|
||||
"create new resend record");
|
||||
return HttpResult.ok();
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping("/fwd/resend_records/delete")
|
||||
@ResponseBody
|
||||
public String delete(HttpSession session, @RequestParam String del_id) throws Exception {
|
||||
int num = resendRecordMapper.deleteById(del_id);
|
||||
opLogManager.addLog(getLoginUser(session),getTenantId(session),
|
||||
OpLogManager.OP_TYPE_DEL,
|
||||
OpLogManager.OP_OBJ_FWD_RECORD,
|
||||
del_id + " deleted");
|
||||
if (num == 0) {
|
||||
return HttpResult.failed();
|
||||
} else{
|
||||
return HttpResult.ok();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取实体类的class
|
||||
*
|
||||
|
||||
@ -53,16 +53,38 @@
|
||||
</fieldset>
|
||||
|
||||
<table class="layui-hide" id="forwardParaTableId" lay-filter="forwardParaTableFilter"></table>
|
||||
<script type="text/html" id="currentTableBar">
|
||||
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
|
||||
</script>
|
||||
<script type="text/html" id="toolbarTop">
|
||||
<div class="layui-btn-container" th:if="${role=='SUPER_ADMIN'}">
|
||||
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add">添加</button>
|
||||
</div>
|
||||
</script>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<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 () {
|
||||
var $ = layui.$,
|
||||
form = layui.form,
|
||||
table = layui.table,
|
||||
laydate = layui.laydate;
|
||||
var cfg_cols = [
|
||||
{field: 'projectid', title: '项目号', sort: true},
|
||||
{field: 'deviceid', title: '设备号'},
|
||||
{field: 'createtime', title: '推送时间', templet: "<div>{{layui.util.toDateString(d.createtime, 'yyyy-MM-dd HH:mm:ss')}}</div>"},
|
||||
{field: 'starttime', title: '数据开始时间', templet: "<div>{{layui.util.toDateString(d.starttime, 'yyyy-MM-dd HH:mm:ss')}}</div>"},
|
||||
{field: 'endtime', title: '数据结束时间', templet: "<div>{{layui.util.toDateString(d.endtime, 'yyyy-MM-dd HH:mm:ss')}}</div>"},
|
||||
{field: 'fwd_group_id', title: '推送组'},
|
||||
{field: 'state', title: '状态',templet: '#stateTrans'},
|
||||
{title: '操作', toolbar: '#currentTableBar', fixed: "right", width: 120}
|
||||
];
|
||||
if([[${role}]] != "SUPER_ADMIN") {
|
||||
cfg_cols[7].hide = true;
|
||||
}
|
||||
|
||||
laydate.render({
|
||||
elem: '#ID-laydate-start-date1',
|
||||
type: 'datetime'
|
||||
@ -85,17 +107,11 @@
|
||||
table.render({
|
||||
elem: '#forwardParaTableId',
|
||||
url: '/fwd/resend_records',
|
||||
toolbar: '#toolbarTable',
|
||||
toolbar: '#toolbarTop',
|
||||
defaultToolbar: ['filter'],
|
||||
cols: [[
|
||||
{field: 'projectid', title: '项目号', sort: true},
|
||||
{field: 'deviceid', title: '设备号'},
|
||||
{field: 'createtime', title: '推送时间', templet: "<div>{{layui.util.toDateString(d.createtime, 'yyyy-MM-dd HH:mm:ss')}}</div>"},
|
||||
{field: 'starttime', title: '数据开始时间', templet: "<div>{{layui.util.toDateString(d.starttime, 'yyyy-MM-dd HH:mm:ss')}}</div>"},
|
||||
{field: 'endtime', title: '数据结束时间', templet: "<div>{{layui.util.toDateString(d.endtime, 'yyyy-MM-dd HH:mm:ss')}}</div>"},
|
||||
{field: 'fwd_group_id', title: '推送组'},
|
||||
{field: 'state', title: '状态',templet: '#stateTrans'}
|
||||
]],
|
||||
cols: [
|
||||
cfg_cols
|
||||
],
|
||||
limits: [10, 20, 50, 100, 150],
|
||||
limit: 10,
|
||||
page: true,
|
||||
@ -119,8 +135,50 @@
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
table.on('toolbar(forwardParaTableFilter)', function (obj) {
|
||||
if (obj.event === 'add') { // 监听添加操作
|
||||
var index = layer.open({
|
||||
title: '添加补传记录',
|
||||
type: 2,
|
||||
shade: 0.2,
|
||||
maxmin:true,
|
||||
shadeClose: true,
|
||||
area: ['100%', '100%'],
|
||||
content: '../page/table/resend_record_add'
|
||||
});
|
||||
$(window).on("resize", function () {
|
||||
layer.full(index);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
table.on('tool(forwardParaTableFilter)', function (obj) {
|
||||
var data = obj.data;
|
||||
if (obj.event === 'delete') {
|
||||
layer.confirm('确定删除?', function(index){
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url:"/fwd/resend_records/delete",
|
||||
data:{
|
||||
'del_id':data.id
|
||||
},
|
||||
success: function (data) {
|
||||
table.reload('forwardParaTableId');
|
||||
},
|
||||
error: function () {
|
||||
console.log("ajax error");
|
||||
}
|
||||
});
|
||||
layer.close(index);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function onUpdated(){
|
||||
layui.table.reload('forwardParaTableId');
|
||||
}
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="stateTrans">
|
||||
@ -129,9 +187,9 @@
|
||||
{{# } else if(d.state == 1){ }}
|
||||
<span class="layui-badge layui-bg-red">推送失败</span>
|
||||
{{# } else if(d.state == 2){ }}
|
||||
<span class="layui-badge layui-bg-red">断点补传</span>
|
||||
<span class="layui-badge layui-bg-orange">断点补传</span>
|
||||
{{# } else { }}
|
||||
<span class="layui-badge layui-bg-orange">推送中</span>
|
||||
<span class="layui-badge layui-bg-blue">推送中</span>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
|
||||
@ -0,0 +1,136 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>补传数据</title>
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="stylesheet" href="../../lib/layui-v2.6.3/css/layui.css" media="all">
|
||||
<link rel="stylesheet" href="../../css/public.css" media="all">
|
||||
<style>
|
||||
body {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="layui-form layuimini-form">
|
||||
<input type="hidden" name="id" id="id">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">所属部门</label>
|
||||
<div class="layui-input-inline">
|
||||
<select name="tenantid" id="tenantid" lay-search="" lay-filter="tenant">
|
||||
<option value="">全部</option>
|
||||
<option th:each="item : ${tenant_list}" th:text="${item.name}" th:value="${item.id}"></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">所属项目</label>
|
||||
<div class="layui-input-inline">
|
||||
<select name="project_id" id="projectid" lay-search="" lay-filter="project">
|
||||
<option value="">全部</option>
|
||||
<option th:each="item : ${project_list}" th:text="${item.project_id}" th:value="${item.project_id}"></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">设备编号</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="deviceid" id="deviceid" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label required">推送组</label>
|
||||
<div class="layui-input-inline">
|
||||
<select name="fwd_group_id" id="fwd_group_id" lay-verify="required" lay-reqtext="不能为空" lay-search="">
|
||||
<option th:each="item : ${gnss_group_fwd_list}" th:text="${item.name}" th:value="${item.name}"></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label required">时间段</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="starttime" autocomplete="off" lay-verify="required" lay-reqtext="不能为空" id="ID-laydate-start-date" class="layui-input" placeholder="开始日期">
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="endtime" autocomplete="off" lay-verify="required" lay-reqtext="不能为空" id="ID-laydate-end-date" class="layui-input" placeholder="结束日期">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="../../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
|
||||
<script>
|
||||
layui.use(['form'], function () {
|
||||
var form = layui.form,
|
||||
$ = layui.$,
|
||||
laydate = layui.laydate;
|
||||
var iframeIndex = parent.layer.getFrameIndex(window.name);
|
||||
|
||||
laydate.render({
|
||||
elem: '#ID-laydate-start-date',
|
||||
type: 'datetime'
|
||||
});
|
||||
laydate.render({
|
||||
elem: '#ID-laydate-end-date',
|
||||
type: 'datetime'
|
||||
});
|
||||
// 所属部门下拉框改变,修改项目下拉框
|
||||
form.on('select(tenant)', function (data) {
|
||||
console.log(data.value);
|
||||
$.ajax({
|
||||
type:"GET",
|
||||
url:"/gnss/device/q_project",
|
||||
data:{
|
||||
'tenantid':data.value
|
||||
},
|
||||
success: function(result) {
|
||||
$('#projectid').empty();
|
||||
$('#projectid').append(new Option("全部", ""));
|
||||
$('#deviceid').empty();
|
||||
//console.log(result);
|
||||
$.each(result.data, function (index, item) {
|
||||
$('#projectid')
|
||||
.append(new Option(item.project_id, item.project_id));
|
||||
});
|
||||
layui.form.render("select");
|
||||
},
|
||||
error: function () {
|
||||
console.log("ajax error");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//监听提交
|
||||
form.on('submit(saveBtn)', function (data) {
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url:"/fwd/resend_records/add",
|
||||
contentType: "application/json;charset=UTF-8",
|
||||
data: JSON.stringify(data.field),
|
||||
success: function (result) {
|
||||
parent.onUpdated();
|
||||
parent.layer.close(iframeIndex);
|
||||
},
|
||||
error: function () {
|
||||
console.log("ajax error");
|
||||
parent.layer.close(iframeIndex);
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Loading…
x
Reference in New Issue
Block a user