You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
349 lines
18 KiB
349 lines
18 KiB
11 months ago
|
<!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">
|
||
|
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
||
|
<meta name="format-detection" content="telephone=no">
|
||
|
<link rel="stylesheet" href="/js/layui/css/layui.css" media="all" />
|
||
|
<link rel="stylesheet" href="/css/public.css" media="all" />
|
||
|
<script src="/js/jquery-2.1.3.min.js" type="text/javascript"></script>
|
||
|
</head>
|
||
|
<body style="border: 1px solid #0c6f89;
|
||
|
background: rgba(12, 70, 100, 0.8);
|
||
|
padding: 20px;
|
||
|
box-sizing: border-box;
|
||
|
">
|
||
|
<div class="layui-col-lg10 layui-col-md10 layui-col-xs10" style=" position: absolute; z-index: 998; width: 98%; overflow: hidden; overflow-y: auto; box-sizing: border-box; border: 1px solid #0c6f89; background: rgba(12, 70, 100, 0.8); border-radius: 4px; padding: 20px; ">
|
||
|
|
||
|
<div style="width:100%;">
|
||
|
|
||
|
|
||
|
<div class="layui-inline">
|
||
|
<label class="layui-form-label">查询时间</label>
|
||
|
<div class="layui-input-inline">
|
||
|
<input type="text" class="layui-input" id="ipt_month" placeholder="yyyy-MM">
|
||
|
</div>
|
||
|
</div>
|
||
|
<button class="layui-btn" id="btn_seach">查询</button>
|
||
|
|
||
|
<div class="layui-tab">
|
||
|
<ul class="layui-tab-title">
|
||
|
<li class="layui-this">综合统计</li>
|
||
|
<li>人员信息缺失名单</li>
|
||
|
<li>一次未考勤信息</li>
|
||
|
<li>考勤每日数据</li>
|
||
|
<li>统计表</li>
|
||
|
</ul>
|
||
|
<div class="layui-tab-content">
|
||
|
<div class="layui-tab-item layui-show">
|
||
|
<table id="tbl_Month_Stat" lay-filter="tbl_Month_Stat"></table>
|
||
|
</div>
|
||
|
<div class="layui-tab-item">
|
||
|
<table id="tbl_Emp_Err" lay-filter="tbl_Emp_Err"></table>
|
||
|
</div>
|
||
|
<div class="layui-tab-item">
|
||
|
<table id="tbl_EmpAttendOneNot" lay-filter="tbl_EmpAttendOneNot"></table>
|
||
|
</div>
|
||
|
<div class="layui-tab-item">
|
||
|
<table id="tbl_Month_Day_attend" lay-filter="tbl_Month_Day_attend"></table>
|
||
|
</div>
|
||
|
<div class="layui-tab-item">
|
||
|
<table id="tbl_Month_Yoy" lay-filter="tbl_Month_Yoy"></table>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
</div>
|
||
|
<script type="text/javascript" src="/js/layui/layui.js"></script>
|
||
|
<link rel="stylesheet" href="/css/right-list.css" media="all" />
|
||
|
<link rel="stylesheet" href="/css/bulletframebg.css" media="all" />
|
||
|
</div>
|
||
|
<script type="text/javascript">
|
||
|
layui.use(['laydate', 'form', 'layer', 'table'], function () {
|
||
|
var table = layui.table;
|
||
|
var laydate = layui.laydate;
|
||
|
//年月选择器
|
||
|
laydate.render({
|
||
|
elem: '#ipt_month'
|
||
|
, type: 'month'
|
||
|
, max: 1
|
||
|
, min: '2024-03-01'
|
||
|
});
|
||
|
|
||
|
$("#btn_seach").click(function () {
|
||
|
//alert($("#ipt_month").val());
|
||
|
|
||
|
var dtm = $("#ipt_month").val();
|
||
|
if (dtm.length < 1) {
|
||
|
layer.open({ title: '信息', content: '请选择查询时间' });
|
||
|
return;
|
||
|
}
|
||
|
// 获取当前时间
|
||
|
var today = new Date();
|
||
|
// 获取当前时间(today)的年份
|
||
|
var year = today.getFullYear();
|
||
|
// 获取月份
|
||
|
var month = String(today.getMonth() + 1).padStart(2, '0');
|
||
|
|
||
|
if (dtm == year + '-' + month) {
|
||
|
layer.open({ title: '信息', content: '查询时间请提前一个月' });
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
|
||
|
//综合统计
|
||
|
var tableIns = table.render({
|
||
|
elem: '#tbl_Month_Stat',
|
||
|
title: dtm + '综合统计',
|
||
|
url: '/ashx/CommonHandler.ashx',
|
||
|
where: {
|
||
|
Action: 'GetZDZHTJ'
|
||
|
, dtm: dtm
|
||
|
, random: new Date().getTime()//随机参数
|
||
|
},
|
||
|
cellMinWidth: 95,
|
||
|
async: false,
|
||
|
toolbar: true,
|
||
|
defaultToolbar: ['filter', 'print', 'exports'],
|
||
|
limit: 15,
|
||
|
cols: [[
|
||
|
{ field: 'ORG_NAME', title: '支队', minWidth: 80, align: "center" },
|
||
|
{ field: 'N1', title: '总人数', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N2', title: '考勤总数', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N3', title: '正常考勤', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N4', title: '考勤率', align: 'center', minWidth: 60, templet: function (d) { return d.N4 + "%"; } },
|
||
|
{ field: 'N5', title: '一次未考勤人数', align: 'center', minWidth: 150 },
|
||
|
{ field: 'N6', title: '信息缺失人数', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N7', title: '人员信息缺失率', align: 'center', minWidth: 60, templet: function (d) { return d.N7 + "%"; } },
|
||
|
{ field: 'N8', title: '计划出操总人数', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N9', title: '出操人数', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N10', title: '未出操人数', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N11', title: '出操率', align: 'center', minWidth: 60, templet: function (d) { return d.N11 + "%"; } },
|
||
|
{ field: 'N16', title: '查铺查哨完成率', align: 'center', minWidth: 60, templet: function (d) { return d.N16 + "%"; } },
|
||
|
{ field: 'N17', title: '巡查巡检完成率', align: 'center', minWidth: 60, templet: function (d) { return d.N17 + "%"; } },
|
||
|
{ field: 'N18', title: '未排班', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N19', title: '未一日安排', align: 'center', minWidth: 60 },
|
||
|
]]
|
||
|
});
|
||
|
|
||
|
|
||
|
//考勤每日数据
|
||
|
var tableIns = table.render({
|
||
|
elem: '#tbl_Month_Day_attend',
|
||
|
title: dtm + '考勤每日数据',
|
||
|
url: '/ashx/CommonHandler.ashx',
|
||
|
where: {
|
||
|
Action: 'GetDayAttend'
|
||
|
, dtm: dtm
|
||
|
, random: new Date().getTime()//随机参数
|
||
|
},
|
||
|
cellMinWidth: 95,
|
||
|
toolbar: true,
|
||
|
defaultToolbar: ['filter', 'print', 'exports'],
|
||
|
limit: 15,
|
||
|
cols: [[
|
||
|
{ field: 'ORG_NAME', title: '支队', minWidth: 80, align: "center" },
|
||
|
{ field: 'N01', title: '01', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N02', title: '02', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N03', title: '03', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N04', title: '04', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N05', title: '05', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N06', title: '06', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N07', title: '07', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N08', title: '08', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N09', title: '09', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N10', title: '10', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N11', title: '11', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N12', title: '12', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N13', title: '13', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N14', title: '14', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N15', title: '15', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N16', title: '16', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N17', title: '17', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N18', title: '18', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N19', title: '19', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N20', title: '20', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N21', title: '21', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N22', title: '22', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N23', title: '23', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N24', title: '24', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N25', title: '25', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N26', title: '26', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N27', title: '27', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N28', title: '28', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N29', title: '29', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N30', title: '30', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N31', title: '31', align: 'center', minWidth: 60 },
|
||
|
]]
|
||
|
});
|
||
|
|
||
|
|
||
|
//一次未考勤人员
|
||
|
var tableIns = table.render({
|
||
|
elem: '#tbl_EmpAttendOneNot',
|
||
|
title: dtm + '一次未考勤人员',
|
||
|
url: '/ashx/CommonHandler.ashx',
|
||
|
where: {
|
||
|
Action: 'GetEmpAttendOneNot'
|
||
|
, dtm: dtm
|
||
|
, random: new Date().getTime()//随机参数
|
||
|
},
|
||
|
cellMinWidth: 95,
|
||
|
toolbar: true,
|
||
|
defaultToolbar: ['filter', 'print', 'exports'],
|
||
|
limit: 15,
|
||
|
//
|
||
|
cols: [[
|
||
|
{ field: 'ORG_NAME1', title: '支队', minWidth: 80, align: "center" },
|
||
|
{ field: 'ORG_NAME', title: '营区', minWidth: 80, align: "center" },
|
||
|
{ field: 'EMP_NAME', title: '人员', align: 'center', minWidth: 60 },
|
||
|
]]
|
||
|
});
|
||
|
|
||
|
|
||
|
//考勤每日数据
|
||
|
var tableIns = table.render({
|
||
|
elem: '#tbl_Emp_Err',
|
||
|
title: dtm + '考勤每日数据',
|
||
|
url: '/ashx/CommonHandler.ashx',
|
||
|
where: {
|
||
|
Action: 'GetEmpInfoErr'
|
||
|
, dtm: dtm
|
||
|
, random: new Date().getTime()//随机参数
|
||
|
},
|
||
|
cellMinWidth: 95,
|
||
|
toolbar: true,
|
||
|
defaultToolbar: ['filter', 'print', 'exports'],
|
||
|
limit: 15,
|
||
|
//
|
||
|
cols: [[
|
||
|
{ field: 'ONAME', title: '营区', minWidth: 80, align: "center" },
|
||
|
{ field: 'N2', title: '性别', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N3', title: '身份证号', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N4', title: '手机号', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N5', title: '编号', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N8', title: '学历', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N9', title: '民族', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N10', title: '血型', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N11', title: '政治面貌', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N12', title: '在岗', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N13', title: '职位类型', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N14', title: '消防救援衔', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N15', title: '入伍时间', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N16', title: '标签', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N17', title: '账号', align: 'center', minWidth: 60 },
|
||
|
{ field: 'N18', title: '照片', align: 'center', minWidth: 60 },
|
||
|
]]
|
||
|
});
|
||
|
|
||
|
|
||
|
//上月同比
|
||
|
var tableIns = table.render({
|
||
|
elem: '#tbl_Month_Yoy',
|
||
|
title: dtm + '上月同比',
|
||
|
url: '/ashx/CommonHandler.ashx',
|
||
|
where: {
|
||
|
Action: 'GetMonthYoy'
|
||
|
, dtm: dtm
|
||
|
, random: new Date().getTime()//随机参数
|
||
|
},
|
||
|
cellMinWidth: 95,
|
||
|
toolbar: true,
|
||
|
defaultToolbar: ['filter', 'print', 'exports'],
|
||
|
limit: 15,
|
||
|
//
|
||
|
cols: [[
|
||
|
{ field: 'ORG_NAME', title: '营区', minWidth: 80, align: "center" },
|
||
|
{
|
||
|
field: 'N4', title: '考勤率', align: 'center', minWidth: 60, templet: function (d) {
|
||
|
switch (d.N4_UD) {
|
||
|
case '持平':
|
||
|
return d.N4 + "%" + '(持平)';
|
||
|
break;
|
||
|
case '1':
|
||
|
return d.N4 + "%" + '(' + d.N4_ABS + '%↑)';
|
||
|
case '0':
|
||
|
return '<span style="color:red;"> ' + d.N4 + "%" + '(' + d.N4_ABS + '%↓)</span>';
|
||
|
default:
|
||
|
return '参数错误';
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
{
|
||
|
field: 'N7', title: '人员信息缺失率', align: 'center', minWidth: 60, templet: function (d) {
|
||
|
switch (d.N7_UD) {
|
||
|
case '持平':
|
||
|
return d.N7 + "%" + '(持平)';
|
||
|
break;
|
||
|
case '1':
|
||
|
return d.N7 + "%" + '(' + d.N7_ABS + '%↑)';
|
||
|
case '0':
|
||
|
return '<span style="color:red;"> ' + d.N7 + "%" + '(' + d.N7_ABS + '%↓)</span>';
|
||
|
default:
|
||
|
return '参数错误';
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
field: 'N11', title: '出操率', align: 'center', minWidth: 60, templet: function (d) {
|
||
|
switch (d.N11_UD) {
|
||
|
case '持平':
|
||
|
return d.N11 + "%" + '(持平)';
|
||
|
break;
|
||
|
case '1':
|
||
|
return d.N11 + "%" + '(' + d.N11_ABS + '%↑)';
|
||
|
case '0':
|
||
|
return '<span style="color:red;"> ' + d.N11 + "%" + '(' + d.N11_ABS + '%↓)</span>';
|
||
|
default:
|
||
|
return '参数错误';
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
field: 'N16', title: '查铺查哨完成率', align: 'center', minWidth: 60, templet: function (d) {
|
||
|
switch (d.N16_UD) {
|
||
|
case '持平':
|
||
|
return d.N16 + "%" + '(持平)';
|
||
|
break;
|
||
|
case '1':
|
||
|
return d.N16 + "%" + '(' + d.N16_ABS + '%↑)';
|
||
|
case '0':
|
||
|
return '<span style="color:red;"> ' + d.N16 + "%" + '(' + d.N16_ABS + '%↓)</span>';
|
||
|
default:
|
||
|
return '参数错误';
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
field: 'N17', title: '巡查巡检完成率', align: 'center', minWidth: 60, templet: function (d) {
|
||
|
switch (d.N17_UD) {
|
||
|
case '持平':
|
||
|
return d.N17 + "%" + '(持平)';
|
||
|
break;
|
||
|
case '1':
|
||
|
return d.N17 + "%" + '(' + d.N17_ABS + '%↑)';
|
||
|
case '0':
|
||
|
return '<span style="color:red;"> ' + d.N17 + "%" + '(' + d.N17_ABS + '%↓)</span>';
|
||
|
default:
|
||
|
return '参数错误';
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
]]
|
||
|
});
|
||
|
|
||
|
});
|
||
|
|
||
|
});
|
||
|
|
||
|
</script>
|
||
|
</body>
|
||
|
</html>
|