Browse Source

git-svn-id: https://192.168.57.71/svn/jsgkj@547 931142cf-59ea-a443-aa0e-51397b428577

ld_zhoutl 9 years ago
parent
commit
65cde458bb

+ 103 - 0
xtdsp/trunk/src/main/java/com/xt/dsp/controller/LogCtl.java

@@ -0,0 +1,103 @@
+package com.xt.dsp.controller;
+
+import java.util.List;
+
+import org.h2.util.StringUtils;
+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 com.xt.dsp.model.LogBean;
+import com.xt.dsp.service.LogService;
+import com.xt.dsp.vo.LogVo;
+import com.yuanxd.tools.pagehelper.PageHelper;
+import com.yuanxd.tools.pagehelper.PageInfo;
+
+@Controller
+@RequestMapping("log")
+public class LogCtl {
+	@Autowired
+	private LogService logService;
+
+	/**
+	 * 主画面
+	 * 
+	 * @return
+	 */
+	@RequestMapping("main")
+	public String main() {
+		return "sys/log/log";
+	}
+
+	/**
+	 * 初始化页面加载数据
+	 */
+	@RequestMapping("initLog")
+	@ResponseBody
+	public PageInfo<LogBean> initLog(Model model, LogVo vo) {
+		// 初始化参数
+		if (vo.getPage() < 1) {
+			vo.setPage(1);
+		}
+		if (vo.getRows() < 1) {
+			vo.setRows(1);
+		}
+		PageHelper.startPage(vo.getPage(), vo.getRows());
+		List<LogBean> list = logService.selectAll();
+		PageInfo<LogBean> pageResult = new PageInfo<>(list);
+		return pageResult;
+	}
+
+	/**
+	 * 保存实体
+	 * 
+	 * @param vo
+	 * @return
+	 */
+	@RequestMapping("save")
+	@ResponseBody
+	public LogBean saveLog(Model model, LogVo vo) {
+		LogBean saveBean = new LogBean();
+		return saveBean;
+	}
+
+	/**
+	 * 初始化页面加载数据
+	 */
+	@RequestMapping("initEditLog")
+	@ResponseBody
+	public LogBean initEditLog(Model model, Long id) {
+		LogBean bean = logService.selectByPrimaryKey(id);
+		return bean;
+	}
+
+	/**
+	 * 删除数据
+	 */
+	@RequestMapping("delLog")
+	@ResponseBody
+	public int delLog(Model model, String ids) {
+		int cnt = 0;
+		if (!StringUtils.isNullOrEmpty(ids)) {
+			String[] idArr = ids.split(",");
+			for(String id : idArr) {
+				if(!StringUtils.isNullOrEmpty(id)) {
+					cnt += logService.deleteByPrimaryKey(Long.parseLong(id));
+				}
+			}
+		}
+		return cnt;
+	}
+	
+	/**
+     * 获取任务下拉数据
+     */
+	@RequestMapping("getLogForDdl")
+	@ResponseBody
+    public List<LogBean> getLogForDdl(Model model) {
+		List<LogBean> list = logService.selectAll();
+    	return list;
+    }
+}

+ 55 - 0
xtdsp/trunk/src/main/java/com/xt/dsp/vo/LogVo.java

@@ -0,0 +1,55 @@
+package com.xt.dsp.vo;
+
+import com.xt.dsp.common.BaseVo;
+
+public class LogVo extends BaseVo{
+	private String id;
+	private String busKey;
+	private String taskCode;
+	private String logTime;
+	private String logTxt;
+	private String taskCost;
+	private String state;
+	public String getId() {
+		return id;
+	}
+	public void setId(String id) {
+		this.id = id;
+	}
+	public String getBusKey() {
+		return busKey;
+	}
+	public void setBusKey(String busKey) {
+		this.busKey = busKey;
+	}
+	public String getTaskCode() {
+		return taskCode;
+	}
+	public void setTaskCode(String taskCode) {
+		this.taskCode = taskCode;
+	}
+	public String getLogTime() {
+		return logTime;
+	}
+	public void setLogTime(String logTime) {
+		this.logTime = logTime;
+	}
+	public String getLogTxt() {
+		return logTxt;
+	}
+	public void setLogTxt(String logTxt) {
+		this.logTxt = logTxt;
+	}
+	public String getTaskCost() {
+		return taskCost;
+	}
+	public void setTaskCost(String taskCost) {
+		this.taskCost = taskCost;
+	}
+	public String getState() {
+		return state;
+	}
+	public void setState(String state) {
+		this.state = state;
+	}
+}

+ 189 - 0
xtdsp/trunk/src/main/webapp/WEB-INF/view/sys/log/log.jsp

@@ -0,0 +1,189 @@
+<%@ page contentType="text/html;charset=UTF-8"%>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>日志管理</title>
+<%@ include file="../../layouts/header.jsp"%>
+
+<link rel="stylesheet"
+	href="<%=base%>/js/common/zTree_v3/css/zTreeStyle/zTreeStyle.css"
+	type="text/css">
+<script
+	src="<%=base%>/js/common/zTree_v3/js/jquery.ztree.core-3.5.min.js"></script>
+<script type="text/javascript" src="<%=base%>/js/sys/log/log.js"></script>
+</head>
+
+<body class="no-skin">
+	<!-- #section:basics/navbar.layout -->
+	<%@ include file="../../layouts/navbar.jsp"%>
+
+	<div class="main-container" id="main-container">
+		<script type="text/javascript">
+			try {
+				ace.settings.check('main-container', 'fixed')
+			} catch (e) {
+			}
+		</script>
+
+		<!-- #section:basics/sidebar -->
+		<%@ include file="../../layouts/sidebar.jsp"%>
+		<div class="main-content">
+			<div class="breadcrumbs" id="breadcrumbs">
+				<ul class="breadcrumb">
+					<li><i class="ace-icon fa fa-home home-icon"></i> <a
+						href="<%=home%>">首页</a></li>
+
+					<li class="active">系统管理</li>
+					<li class="active">日志管理</li>
+				</ul>
+			</div>
+			<div class="col-xs-12"></div>
+			<div class="main-content-inner">
+				<div class="page-content">
+					<div class="widget-box">
+						<div class="widget-header">
+							<h4 class="widget-title">日志查询</h4>
+							<div class="widget-toolbar">
+								<a href="#" data-action="collapse"> <i
+									class="ace-icon fa fa-chevron-up"></i>
+								</a> <a href="#" data-action="close"> <i
+									class="ace-icon fa fa-times"></i>
+								</a>
+							</div>
+						</div>
+
+						<div class="widget-body">
+							<div class="widget-main">
+								<form class="form-horizontal" onsubmit="return false">
+									<label class="col-sm-12 control-label"></label>
+									<div class="form-group">
+										<label for="srchName" class="col-sm-2 control-label">业务KEY</label>
+										<div class="col-sm-2">
+											<input type="text" class="form-control limited"
+												id="srchName" placeholder="">
+										</div>
+										<label for="srchCode" class="col-sm-2 control-label">任务编码</label>
+										<div class="col-sm-2">
+											<input type="text" class="form-control limited"
+												id="srchCode" placeholder="">
+										</div>
+										<div class="col-sm-2">
+											<button class="btn btn-purple btn-round btn-sm"
+												onclick="searchRecord()">
+												<i class="ace-icon fa fa-search"></i> 查询
+											</button>
+
+										</div>
+										<label class="col-sm-1 control-label"></label>
+									</div>
+								</form>
+							</div>
+						</div>
+					</div>
+					<!--列表部分-->
+					<div>
+						<div>
+							<table id="grid-table"></table>
+							<div id="grid-pager"></div>
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+		<!--弹出新增界面-->
+		<div id="modal-table" class="modal fade" tabindex="-1">
+			<div class="modal-dialog" style="width: 700px; height: 500px;">
+				<div class="modal-content">
+					<div class="modal-header no-padding">
+						<div class="table-header">
+							<button type="button" class="close" data-dismiss="modal"
+								aria-hidden="true">
+								<span class="white">&times;</span>
+							</button>
+							<label class="modal-title" id="myModalLabel"></label>
+						</div>
+					</div>
+					<div class="modal-body no-padding">
+						<form class="form-horizontal" id="form" method="post"
+							onsubmit="return false;">
+							<input type="hidden" id="id" name="id">
+							<div class="form-group">
+								<label for="busKey" class="col-sm-2 control-label">业务主键</label>
+								<div class="col-sm-3">
+									<input type="text" class="form-control limited"
+										id="busKey" name="busKey" maxlength="100">
+								</div>
+								<div class="col-sm-1"></div>
+								<label for="taskCode" class="col-sm-2 control-label">任务编码</label>
+								<div class="col-sm-3">
+									<input type="text" class="form-control limited"
+										id="taskCode" name="taskCode" maxlength="100"
+										placeholder="">
+								</div>
+								<div class="col-sm-1"></div>
+							</div>
+							<div class="form-group">
+								<label for="logTime" class="col-sm-2 control-label">任务执行时间</label>
+								<div class="col-sm-3">
+									<input type="text" class="form-control limited"
+										id="logTime" name="logTime" maxlength="100">
+								</div>
+								<div class="col-sm-1"></div>
+								<label for="taskCost" class="col-sm-2 control-label">任务耗时(毫秒数)</label>
+								<div class="col-sm-3">
+									<input type="text" class="form-control limited"
+										id="taskCost" name="taskCost" maxlength="100"
+										placeholder="">
+								</div>
+								<div class="col-sm-1"></div>
+							</div>
+							<div class="form-group">
+								<label for="state" class="col-sm-2 control-label">任务状态</label>
+								<div class="col-sm-3">
+                                    <select class="form-control" id="state" name="state">
+	                                    <option selected value='0'>正常</option>
+	                                    <option selected value='1'>异常</option>
+                                    </select>
+								</div>
+							</div>
+							<div class="form-group">
+								<label for="logTxt" class="col-sm-2 control-label">任务内容</label>
+								<div class="col-sm-9">
+									<textarea rows="5" cols="" id="logTxt" class="form-control"
+										name="logTxt" maxlength="2000">
+									</textarea>
+								</div>
+							</div>
+					
+					<div class="modal-footer no-margin-top center modal-foot-border">
+						<button id="btnSave" class="btn btn-success btn-round btn-sm">
+							<i class="ace-icon fa fa-save"></i> 保存
+						</button>
+						<button type="button" class="btn btn-grey btn-round btn-sm"
+							onclick="closeWin()">
+							<i class="ace-icon fa fa-remove"></i> 关闭
+						</button>
+					</div>
+					</form>
+				</div>
+			</div>
+		</div>
+	</div>
+
+	<!-- #section:basics/footer -->
+	<%@ include file="../../layouts/footer.jsp"%>
+	</div>
+
+	<script type="text/javascript">
+		$(function() {
+			$("#form").validate({
+				submitHandler : function(form) {
+					submitForm();
+				}
+			});
+		});
+	</script>
+	<!-- /.main-container -->
+</body>
+</html>
+

+ 340 - 0
xtdsp/trunk/src/main/webapp/js/sys/log/log.js

@@ -0,0 +1,340 @@
+/**
+ * 日志管理定义引用的js
+ */
+
+var grid_selector = "#grid-table";
+var pager_selector = "#grid-pager";
+jQuery(function($) {
+	//初始化日期控件
+	initDateTime();
+	// 初始化Grid
+	initGrid();
+	// 初始化下拉列表
+	initDdl();
+});
+
+/**
+ * 初始化Grid
+ */
+function initGrid() {
+	//resize to fit page size
+	$(window).on('resize.jqGrid', function() {
+		$(grid_selector).jqGrid('setGridWidth', $(".page-content").width()-1);
+	});
+	//resize on sidebar collapse/expand
+	var parent_column = $(grid_selector).closest('[class*="col-"]');
+	$(document).on(
+			'settings.ace.jqGrid',
+			function(ev, event_name, collapsed) {
+				if (event_name === 'sidebar_collapsed'
+						|| event_name === 'main_container_fixed') {
+					//setTimeout is for webkit only to give time for DOM changes and then redraw!!!
+					setTimeout(function() {
+						$(grid_selector).jqGrid('setGridWidth',
+								parent_column.width());
+					}, 0);
+				}
+			});
+
+	// 数据表格初始化
+	jQuery(grid_selector).jqGrid({
+		url : basePath + '/log/initLog',
+		mtype : "POST", //提交方式
+		datatype : "json",
+		autowidth: false,
+		height :"auto",
+	    shrinkToFit: true,
+		sortname : "", //默认的排序列
+		sortorder : "", //默认的排序列
+		colNames : [ 'id','业务KEY', '任务编码','记录时间','日志内容','执行时间'],
+		colModel : [ {
+			name : 'id',
+			index : 'id',
+			key : true,
+			hidden:true,
+			editable : false,
+			sortable : false
+		},{
+			name : 'busKey',
+			index : 'busKey',
+            width:60,
+			editable : false,
+			sortable : true
+			,formatter:function(cellvalue, options, rowObject){
+				return "<a onclick=\"viewInfo('"+rowObject["id"]+"')\" class='viewbtn'>"+cellvalue+"</a>";
+			}
+		},{
+			name : 'taskCode',
+			index : 'taskCode',
+            width:120,
+			editable : false,
+			sortable : true
+		},  {
+			name : 'logTime',
+			index : 'logTime', 
+            width:120,
+			formatter:function(cellvalue, options, rowObject){
+				return fmtColToDateSeconds(cellvalue);
+			},
+			editable : false,
+			sortable : true
+		},  {
+			name : 'logTxt',
+			index : 'logTxt',
+            width:320,
+			editable : false,
+			sortable : true
+		},  {
+			name : 'taskCost',
+			index : 'taskCost',
+            width:60,
+			editable : false,
+			sortable : true
+		} ],
+		rowNum : _rowNum, //每页显示记录数
+		rowList : _rowList, //用于改变显示行数的下拉列表框的元素数组。
+		pager : pager_selector, //定义翻页用的导航栏
+		page : 1, //设置初始的页码,初始为1
+		pagerpos : 'right', //指定分页栏的位置
+		altRows : true, //设置为交替行表格,默认为false
+		multiselect : false, //可以多选
+		multiboxonly : true, //只有选择checkbox才会起作用 
+		loadComplete : function() {
+			var table = this;
+			setTimeout(function() {
+				updatePagerIcons(table);
+				enableTooltips(table);
+			}, 0);
+		},
+		prmNames : {
+             oper : "oper",
+             page : "page",
+             rows : "rows",
+             sort : "sidx",
+             order : "sord"
+        },
+		postData :{
+			wldwCode : function(){ return ""; },//问题内容
+			wldwName : function(){ return ""; }//服务类型
+		},
+		jsonReader : {
+			root : "list", // json中代表实际模型数据的入口
+			page : "page", // json中代表当前页码的数据
+			total : "pages", // json中代表页码总数的数据
+			records : "total", // json中代表数据行总数的数据
+			repeatitems : false// 如果设为false,则jqGrid在解析json时,会根据name来搜索对应的数据元素
+		},
+        gridComplete: function () {
+            comGridComplete("grid-table", "editRecord");
+        },
+		onPaging: function(){
+			comGridPage("grid-table");
+		}
+	});
+
+	$(window).triggerHandler('resize.jqGrid');//trigger window resize to make the grid get the correct size
+	// 隐藏水平垂直滚动条
+	jQuery(grid_selector).closest(".ui-jqgrid-bdiv").css({ 'overflow-x' : 'hidden' ,'overflow-y':'hidden'});
+	//navButtons
+	jQuery(grid_selector).jqGrid(
+			'navGrid',
+			pager_selector,
+			{ //navbar options
+				edit : false,
+				editicon : 'ace-icon fa fa-pencil blue',
+				add : false,
+				addicon : 'ace-icon fa fa-plus-circle purple',
+				del : false,
+				delicon : 'ace-icon fa fa-trash-o red',
+				search : false,
+				searchicon : 'ace-icon fa fa-search orange',
+				refresh : false,
+				refreshicon : 'ace-icon fa fa-refresh green',
+				view : false,
+				viewicon : 'ace-icon fa fa-search-plus grey',
+			});
+	//初始化操作按钮
+	intOperButton();
+	$(document).one('ajaxloadstart.page', function(e) {
+		$(grid_selector).jqGrid('GridUnload');
+		$('.ui-jqdialog').remove();
+	});
+	
+	setMulti();
+
+};
+
+
+/**
+ * 初始化下拉列表
+ */
+function initDdl() {
+	// 初始化所在工作
+	$.ajax({
+		type : "POST",
+		url : basePath + '/job/getJobForDdl',//请求的路径
+		dataType : "json",
+		success : function(data) {
+			var option1="<option selected value=''>----请选择----</option>";
+			$("#jobCode").append(option1);
+			if(data) {
+			    var length=data.length;
+			    if(length > 0) {
+				    for(var i=0;i<length;i++){
+				    	$("<option/>").html(data[i].name).val(data[i].code).appendTo("#jobCode");
+				    }
+			    }
+			}
+		}
+	});
+}
+
+/**
+ * 初始化操作按钮
+ */
+function intOperButton() {
+	
+}
+
+/**
+ * 初始化日期控件
+ */
+function initDateTime() {
+	$('#startTime').datetimepicker({
+		format : 'yyyy-mm-dd hh:ii:ss',
+		minView: 1
+	}).next().on(ace.click_event, function(){
+		$(this).prev().focus();
+	});
+	
+	$('#endTime').datetimepicker({
+		format : 'yyyy-mm-dd hh:ii:ss',
+		minView: 1
+	}).next().on(ace.click_event, function(){
+		$(this).prev().focus();
+	});
+};
+
+/**
+ * 编辑
+ * @param rid
+ */
+function editRecord(rid) {
+	var data = jQuery("#grid-table").jqGrid('getRowData', rid);
+	$("#btnSave").show();
+	// 隐藏校验图标
+	hideValidateTip();
+	// 启用元素
+	comEnableElements("modal-table");
+	$("#modal-table #myModalLabel").text("编辑日志");
+	initBaseInfo(rid);
+}
+
+/**
+ *	获取多行选中的id 
+ */
+function getMultiData(opt){
+	var ids = "";
+	//获取选择行的id
+	var row = jQuery(grid_selector).jqGrid('getGridParam','selarrrow');
+	if (row.length >= 1) {
+		for (var i = 0; i < row.length; i++) {
+			//获取选择的行的数据,只要传入rowId即可
+			var data = jQuery(grid_selector).jqGrid('getRowData', row[i]);
+			ids += data.id +",";
+		}
+		ids = ids.substr(0, ids.length - 1);
+	}
+	return ids;
+}
+
+/**
+ * 查询事件
+ */
+function searchRecord() {
+	
+	 //$.extend(jQuery(grid_selector)[0].p.postData);
+	 jQuery("#grid-table").trigger("reloadGrid", [{ page: 1 }]);
+};
+
+
+/**
+ * form提交事件
+ */
+function submitForm() {
+	$.ajax({
+		async:false,
+		type : "post",
+		url : basePath + '/log/save',
+		dataType:'json',
+		data : $('#form').serialize()
+		, //表单序列化,获取数据
+		success : function(data) {
+			// 成功删除后刷新页面
+			if (data) {
+				showMsgDialog("数据已成功保存!");
+				closeWin();
+				searchRecord();
+			} else {
+				showMsgDialog("数据保存失败!");
+			}
+		}, //操作成功后的操作!data是后台传过来的值 
+		error: function (XMLHttpRequest, textStatus, errorThrown) {
+            showMsgDialog("error:" + errorThrown);
+        }
+	});
+};
+
+// 关闭弹出窗口,刷新列表
+function closeWin(){
+	$('.layui-layer').hide();
+	$('#modal-table').modal('hide');
+}
+
+/**
+ * 根据id查询所有信息并赋值
+ */
+function initBaseInfo(rowid, flg){
+	// 后台获取
+	$.ajax({
+		async : true,
+		type : 'POST',
+		dataType : "json",
+		data : {id:rowid},
+		url : basePath + '/log/initEditLog', //请求的路径				
+		success : function(data) {
+			// 填充信息
+			$('#id').val(data.id);
+			$('#busKey').val(data.busKey);
+			$('#taskCode').val(data.taskCode);
+			$('#logTime').val(fmtColToDateSeconds(data.logTime));
+			$('#logTxt').val(data.logTxt);
+			$('#taskCost').val(data.taskCost);
+			$('#state').val(data.state);
+			if(flg && flg=="VIEW") {
+				comDisableElements("modal-table");
+			}
+		},
+		error: function (XMLHttpRequest, textStatus, errorThrown) {
+            showMsgDialog("error:" + errorThrown);
+        }
+	});		
+	$('#modal-table').modal('show');					
+};
+
+/**
+ * 隐藏校验图标
+ */
+function hideValidateTip() {
+}
+
+/**
+ * 查看
+ */
+function viewInfo(rid) {
+	$("#btnSave").hide();
+	// 隐藏校验图标
+	hideValidateTip();
+	$("#modal-table #myModalLabel").text("查看日志");
+	initBaseInfo(rid,"VIEW");
+}