diff --git a/groups.zip b/groups.zip new file mode 100644 index 00000000..59b0273d Binary files /dev/null and b/groups.zip differ diff --git a/groups/templates/groups/exam.html b/groups/templates/groups/exam.html index d6bba27c..c9a4ffc7 100644 --- a/groups/templates/groups/exam.html +++ b/groups/templates/groups/exam.html @@ -1,13 +1,19 @@ {% extends "./base.html" %} -{% block title %}隐患统计{% endblock %} +{% block title %}在线考试统计{% endblock %} +{% block pagehead %} + +{% endblock %} {% block content %} {% load static %} -
-

未遂事件统计

+
+

在线考试统计

-
+
开始日期: 结束日期: @@ -62,25 +68,25 @@ url: "/groups/api/examChart?code=exam&start=" + start + "&end=" + end, //请求发送 dataType: "json", //返回数据形式为json success: function (data) { - console.log(data); + console.log(data.data.number); //请求成功时执行该函数内容,data即为服务器返回的json对象 var examChart = echarts.init(document.getElementById("examchart")); - var examnum = []; + + var exnum = []; var companyName = []; - if (data.data.examlist != null) { - $.each(data.data.examlist, function (i, item) { + if (data.data != null) { + $.each(data.data, function (i, item) { - examnum.push(item.number); + exnum.push(item.number); - companyName.push(item.usecomp__partname); + companyName.push(item.companyName); }) - examChart.setOption( option = { - color: ['#FFA500'], + color: ['#32CD32'], tooltip: { trigger: 'axis', axisPointer: { // 坐标轴指示器,坐标轴触发有效 @@ -89,11 +95,11 @@ }, title: { - text: '本集团各公司未遂事件统计图' + text: '本集团各公司在线考试统计图' }, tooltip: {}, legend: { - data: ['公司未遂事件总数'] + data: ['公司在线考试总数'] }, grid: { y2: 140 @@ -111,8 +117,8 @@ }, yAxis: {}, series: [{ - name: '公司未遂事件总数', - data: examnum, + name: '公司在线考试总数', + data: exnum, type: 'bar' }] diff --git a/groups/templates/groups/miss.html b/groups/templates/groups/miss.html index 0c07cdd5..df2dae57 100644 --- a/groups/templates/groups/miss.html +++ b/groups/templates/groups/miss.html @@ -1,13 +1,19 @@ {% extends "./base.html" %} -{% block title %}隐患统计{% endblock %} +{% block title %}未遂事件统计{% endblock %} +{% block pagehead %} + +{% endblock %} {% block content %} {% load static %} -
+

未遂事件统计

-
+
开始日期: 结束日期: diff --git a/groups/templates/groups/observe.html b/groups/templates/groups/observe.html index 1660bb1e..1d166545 100644 --- a/groups/templates/groups/observe.html +++ b/groups/templates/groups/observe.html @@ -1,13 +1,19 @@ {% extends "./base.html" %} -{% block title %}隐患统计{% endblock %} +{% block title %}行为统计{% endblock %} +{% block pagehead %} + +{% endblock %} {% block content %} {% load static %} -
+

行为统计

-
+
开始日期: 结束日期: diff --git a/groups/templates/groups/risk.html b/groups/templates/groups/risk.html index c5e442d6..68455ca4 100644 --- a/groups/templates/groups/risk.html +++ b/groups/templates/groups/risk.html @@ -1,13 +1,19 @@ {% extends "./base.html" %} {% block title %}风险管控{% endblock %} +{% block pagehead %} + +{% endblock %} {% block content %} {% load static %} -
-

风险管控统计

+
+

风险统计

-
+
开始日期: 结束日期: @@ -56,74 +62,109 @@ var start = $("#test").val(); var end = $("#test2").val(); + var myChart = echarts.init(document.getElementById("riskchart")); + myChart.setOption(option = { + title: { + text: '集团公司风险点统计图', + }, + legend: { + data: ['风险点', '低风险点', '一般风险点', '较大风险点', '重大风险点'] + }, + + + tooltip: { + trigger: 'axis', + axisPointer: { // 坐标轴指示器,坐标轴触发有效 + type: 'shadow' // 默认为直线,可选为:'line' | 'shadow' + } + }, + xAxis: { + type: 'category', + data: [], + }, + yAxis: { + type: 'value', + }, + series: [], + + }); + myChart.showLoading(); $.ajax({ type: "get", async: true, //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行) - url: "/groups/api/riskChart?code=risk&start=" + start + "&end=" + end, //请求发送 + url: "/groups/api/riskChart?code=risk&start=" + start + "&end=" + end, //请求发送 dataType: "json", //返回数据形式为json success: function (data) { console.log(data); //请求成功时执行该函数内容,data即为服务器返回的json对象 - var riskChart = echarts.init(document.getElementById("riskchart")); - var risknum = []; + var datariskact = []; + var datariskact1 = []; + var datariskact2 = []; + var datariskact3 = []; + var datariskact4 = []; var companyName = []; - if (data.data.risklist != null) { - $.each(data.data.risklist, function (i, item) { + if (data!= null) { + $.each(data.risks, function (i, item) { - risknum.push(item.number); - - companyName.push(item.usecomp__partname); + datariskact.push(item.datariskact); + datariskact1.push(item.datariskact1); + datariskact2.push(item.datariskact2); + datariskact3.push(item.datariskact3); + datariskact4.push(item.datariskact4); + companyName.push(item.companyName); }) - - riskChart.setOption( - - option = { - color: ['#FFA500'], - tooltip: { - trigger: 'axis', - axisPointer: { // 坐标轴指示器,坐标轴触发有效 - type: 'shadow' // 默认为直线,可选为:'line' | 'shadow' - } - }, - - title: { - text: '本集团各公司风险管控统计图' - }, - tooltip: {}, - legend: { - data: ['公司风险管控总数'] - }, - grid: { - y2: 140 - }, + if (data) { + myChart.hideLoading(); //隐藏加载动画 + myChart.setOption({ xAxis: { - type: 'category', data: companyName, boundaryGap: [0, 0.01], axisLabel: { interval: 0,//横轴信息全部显示 - rotate: -30,//-30度角倾斜显示 + rotate: -10,//-30度角倾斜显示 } - - }, - yAxis: {}, series: [{ - name: '公司风险管控总数', - data: risknum, - type: 'bar' + name: '风险点', + type: 'bar', + + data: datariskact + }, { + name: '低风险点', + type: 'bar', + stack: '风险点', + color: 'blue', + data: datariskact1 + }, + { + name: '一般风险点', + type: 'bar', + stack: '风险点', + color: 'yellow', + data: datariskact2 + }, { + name: '较大风险点', + type: 'bar', + stack: '风险点', + color: 'orange', + data: datariskact3 + }, { + name: '重大风险点', + type: 'bar', + stack: '风险点', + color: 'red', + data:datariskact4 }] + }); - } - - ); - + } } }, error: function (errorMsg) { - riskChart.hideLoading(); + + myChart.hideLoading(); } }); diff --git a/groups/templates/groups/train.html b/groups/templates/groups/train.html index b0a18930..4bfc311e 100644 --- a/groups/templates/groups/train.html +++ b/groups/templates/groups/train.html @@ -1,15 +1,21 @@ {% extends "./base.html" %} {% block title %}教育培训统计{% endblock %} +{% block pagehead %} + +{% endblock %} {% block content %} {% load static %} -
+

教育培训统计

-
+
- 开始日期: + 开始日期: 结束日期: @@ -42,11 +48,11 @@ , format: 'yyyy-MM-dd' //可任意组合 }); train(); - + }); function funTypeChange() { - + train(); } diff --git a/groups/templates/groups/troublepic.html b/groups/templates/groups/troublepic.html index e79004bd..27cc4816 100644 --- a/groups/templates/groups/troublepic.html +++ b/groups/templates/groups/troublepic.html @@ -1,10 +1,16 @@ {% extends "./base.html" %} {% block title %}隐患统计{% endblock %} +{% block pagehead %} + +{% endblock %} {% block content %} {% load static %} -
+

隐患统计

@@ -55,7 +61,7 @@ $.ajax({ type: "get", async: true, //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行) - url: "/groups/api/troubleChart?code=tbpic&start=" + start + "&end=" + end, //请求发送 + url: "/groups/api/troubleChart?code=tbpic&start=" + start + "&end=" + end, //请求发送 dataType: "json", //返回数据形式为json success: function (data) { console.log(data.data.troublelist); @@ -77,7 +83,7 @@ yhChart.setOption( option = { - color: ['#f39c12'], + color: ['#FF7F50'], tooltip: { trigger: 'axis', axisPointer: { // 坐标轴指示器,坐标轴触发有效 diff --git a/groups/views.py b/groups/views.py index 68e58cae..dbbe2962 100644 --- a/groups/views.py +++ b/groups/views.py @@ -167,18 +167,27 @@ def missChart(request):#未遂事件 return HttpResponse(json.dumps({'code':1,'data':{'misslist':list(misslist)}}), content_type='application/json') def riskChart(request):#风险管控 + code = request.GET.get('code') start = request.GET.get('start') end = request.GET.get('end') + risks = [] if code=='risk': - - companys = GroupUser.objects.get(id = request.session['user_id']).group.members.all() - risklist = s_models.Risk.objects.filter(usecomp__in=companys).values('usecomp__partid','usecomp__partname').annotate(number = Count('id')) - if start: - risklist = risklist.filter(createtime__gte=start) - if end: - risklist = risklist.filter(createtime__lte=end) - return HttpResponse(json.dumps({'code':1,'data':{'risklist':list(risklist)}}), content_type='application/json') + companys = GroupUser.objects.get(id = request.session['user_id']).group.members.all() + for i in companys: + risk= s_models.RiskAct.objects.filter(usecomp__partid=i.partid) + if start: + risk = risk.filter(createtime__gte=start) + if end: + risk = risk.filter(createtime__lte=end) + datariskact=risk.count() + datariskact1=risk.filter(level="低风险").count() + datariskact2=risk.filter(level="一般风险").count() + datariskact3=risk.filter(level="较大风险").count() + datariskact4=risk.filter(level="重大风险").count() + risks.append({'companyName':i.partname,'datariskact':datariskact,'datariskact1':datariskact1,'datariskact2':datariskact2,'datariskact3':datariskact3,'datariskact4':datariskact4}) + return HttpResponse(json.dumps({'code':1,'risks':risks}), content_type='application/json') + def trainChart(request):#教育培训 code = request.GET.get('code') start = request.GET.get('start') @@ -201,10 +210,11 @@ def examChart(request):#在线考试 companys = GroupUser.objects.get(id = request.session['user_id']).group.members.all() for i in companys: - examlist = s_models.ExamTest.objects.filter(usecomps__contains=','+i+',').annotate(number = Count('id')) + examnumber = s_models.ExamTest.objects.filter(usecomps__contains=','+str(i.partid)+',').count() if start: - examlist = examlist.filter(starttime__gte=start) + examnumber = s_models.ExamTest.objects.filter(usecomps__contains=','+str(i.partid)+',',starttime__gte=start).count() if end: - examlist = examlist.filter(starttime__lte=end) - examjson.append({'companyName':i,'number':examlist.number}) - return HttpResponse(json.dumps({'code':1,'data':examjson}), content_type='application/json') \ No newline at end of file + examnumber = s_models.ExamTest.objects.filter(usecomps__contains=','+str(i.partid)+',',starttime__lte=end).count() + examjson.append({'companyName':i.partname,'number':examnumber}) + return HttpResponse(json.dumps({'code':1,'data':examjson}), content_type='application/json') +