Explorar o código

Merge branch 'master' of http://git_xt.jsxt.jsjtyxt.com/wenhongquan/VisualInspection

# Conflicts:
#	VisualInspection/view/mytask/check.html
minitiger %!s(int64=8) %!d(string=hai) anos
pai
achega
bc62e4c0de
Modificáronse 53 ficheiros con 2908 adicións e 82 borrados
  1. 206 0
      VisualInspection/css/statistics/check_workload_statistics.css
  2. 230 0
      VisualInspection/css/statistics/personal_data_statistics.css
  3. 205 0
      VisualInspection/css/statistics/road_manage_statistics.css
  4. 212 0
      VisualInspection/css/statistics/toll_station_statistics.css
  5. 198 0
      VisualInspection/css/statistics/total_company_statistics.css
  6. BIN=BIN
      VisualInspection/images/movie.png
  7. 1 1
      VisualInspection/js/config.js
  8. 0 0
      VisualInspection/js/lib/echarts/build/dist/chart/bar.js
  9. 0 0
      VisualInspection/js/lib/echarts/build/dist/chart/chord.js
  10. 0 0
      VisualInspection/js/lib/echarts/build/dist/chart/eventRiver.js
  11. 0 0
      VisualInspection/js/lib/echarts/build/dist/chart/force.js
  12. 0 0
      VisualInspection/js/lib/echarts/build/dist/chart/funnel.js
  13. 0 0
      VisualInspection/js/lib/echarts/build/dist/chart/gauge.js
  14. 0 0
      VisualInspection/js/lib/echarts/build/dist/chart/heatmap.js
  15. 0 0
      VisualInspection/js/lib/echarts/build/dist/chart/k.js
  16. 0 0
      VisualInspection/js/lib/echarts/build/dist/chart/line.js
  17. 0 0
      VisualInspection/js/lib/echarts/build/dist/chart/map.js
  18. 0 0
      VisualInspection/js/lib/echarts/build/dist/chart/pie.js
  19. 0 0
      VisualInspection/js/lib/echarts/build/dist/chart/radar.js
  20. 0 0
      VisualInspection/js/lib/echarts/build/dist/chart/scatter.js
  21. 0 0
      VisualInspection/js/lib/echarts/build/dist/chart/tree.js
  22. 0 0
      VisualInspection/js/lib/echarts/build/dist/chart/treemap.js
  23. 0 0
      VisualInspection/js/lib/echarts/build/dist/chart/venn.js
  24. 0 0
      VisualInspection/js/lib/echarts/build/dist/chart/wordCloud.js
  25. 0 0
      VisualInspection/js/lib/echarts/build/dist/echarts-all.js
  26. 0 0
      VisualInspection/js/lib/echarts/build/dist/echarts.js
  27. 86 0
      VisualInspection/js/lib/echarts/build/echarts-optimize-conf.js
  28. 12 0
      VisualInspection/js/mytask/check.js
  29. 12 10
      VisualInspection/js/statistics/assess_ranking.js
  30. 6 4
      VisualInspection/js/statistics/assess_type.js
  31. 139 0
      VisualInspection/js/statistics/personal_data_statistics.js
  32. 414 0
      VisualInspection/js/statistics/road_manage_statistics.js
  33. 343 0
      VisualInspection/js/statistics/toll_station_statistics.js
  34. 346 0
      VisualInspection/js/statistics/total_company_statistics.js
  35. 36 2
      VisualInspection/js/util/video.js
  36. 3 2
      VisualInspection/view/statistics/assess_type.html
  37. 98 0
      VisualInspection/view/statistics/check_workload_statistics.html
  38. 7 8
      VisualInspection/view/statistics/emp_ranking.html
  39. 116 0
      VisualInspection/view/statistics/personal_data_statistics.html
  40. 58 0
      VisualInspection/view/statistics/road_manage_statistics.html
  41. 0 5
      VisualInspection/view/statistics/static1.html
  42. 0 5
      VisualInspection/view/statistics/static2.html
  43. 0 5
      VisualInspection/view/statistics/static3.html
  44. 0 5
      VisualInspection/view/statistics/static4.html
  45. 0 5
      VisualInspection/view/statistics/static5.html
  46. 53 0
      VisualInspection/view/statistics/toll_station_statistics.html
  47. 53 0
      VisualInspection/view/statistics/total_company_statistics.html
  48. 1 0
      VisualInspection_server/src/main/java/com/xintong/visualinspection/mapper/cluster/UserInfoMapper.xml
  49. 11 7
      VisualInspection_server/src/main/java/com/xintong/visualinspection/mapper/master/StatisticsMapper.xml
  50. 62 23
      VisualInspection_server/src/main/java/com/xintong/visualinspection/service/impl/StatisticsServiceImpl.java
  51. BIN=BIN
      VisualInspection_server/src/main/resources/checked_info.xls
  52. BIN=BIN
      VisualInspection_server/src/main/resources/checked_item_info.xls
  53. BIN=BIN
      VisualInspection_server/src/main/resources/employee_order.xls

+ 206 - 0
VisualInspection/css/statistics/check_workload_statistics.css

@@ -0,0 +1,206 @@
+.container-right{
+    width:98%;
+    padding-bottom: 0px;
+    margin:15px auto;
+    border:1px solid #d9d9d9;
+    font-family: '宋体';
+    border-radius: 4px;
+    font-size: 12px;
+}
+.row-1{
+    width:100%;
+    height:35px;
+    background-color: #f5f5f5;
+}
+.row-2{
+    width:100%;
+    height:50px;
+}
+.row-3{
+    width:100%;
+    height:80px;
+}
+.col-1{
+    width:49%;
+    height:40px;
+    float:left;
+    line-height: 40px;
+    text-align: center;
+    font-weight: bold;
+}
+.row-1 span{
+    margin-left: 20px;
+    line-height: 35px;
+}
+.line-1{
+    width:100%;
+    height: 1px;
+    background-color: #d9d9d9;
+}
+.line-2{
+    width:1px;
+    height:40px;
+    background-color: #d9d9d9;
+    float:left;
+}
+.line-3{
+    width:1px;
+    height:400px;
+    background-color: #d9d9d9;
+    float:left;
+}
+.name1{
+    width:30px;
+    height:50px;
+    float:left;
+    margin-left: 20px;
+    line-height: 50px;
+}
+.name2{
+    width:50px;
+    height:50px;
+    float:left;
+    line-height: 50px;
+}             
+.div-start{
+    width:160px;
+    height:50px;
+    float:left;
+    margin-left: 20px;
+    line-height: 50px;
+}
+.div-to{
+    width:20px;
+    height:50px;
+    float:left;
+    margin-left: 15px;
+    line-height: 50px;
+}
+.div-start select{
+    width:160px;
+    height:30px;
+}
+.div-end{
+    width:150px;
+    height:50px;
+    float:left;
+    margin-left: 5px;
+    line-height: 50px;
+}
+.div-end select{
+    width:160px;
+    height:30px;
+}
+.div-check{
+    width:190px;
+    height:50px;
+    float:left;
+    margin-left: 50px;
+    line-height: 50px;
+}
+.div-check select{
+    width:190px;
+    height:30px;
+}
+.div-select{
+    width:80px;
+    height:50px;
+    float:left;
+    margin-left: 20px;
+}
+.query{
+    width:80px;
+    height:50px;
+    float:left;
+    margin-left: 40px;
+}
+.export{
+    width:80px;
+    height:50px;
+    float:right;
+    margin-right: 40px;
+}
+
+.div-button button{
+    width:80px;
+    height:30px;
+    color: #fff;
+    background-color: #3280fc;
+    border-color: #1970fc;
+    border:1px solid transparent;
+    border-radius: 4px;
+    margin-top: 10px;
+}
+.row-7{
+    width:100%;
+    height:40px;
+    background-color: #328dc7;
+    color: white;
+}
+
+.row-8{
+    height: 100%;
+    height:400px;
+    background-color: #f5f5f5;
+}.container-right{
+    width:98%;
+    padding-bottom: 0px;
+    margin:15px auto;
+    border:1px solid #d9d9d9;
+    font-family: '宋体';
+}
+.row-1{
+    width:100%;
+    height:35px;
+    background-color: #f5f5f5;
+}
+
+.row-1 span{
+    margin-left: 20px;
+    line-height: 35px;
+}
+.line-1{
+    width:100%;
+    height: 1px;
+    background-color: #d9d9d9;
+}
+.row-2{
+    width:100%;
+    height:50px;
+}
+
+.row-7{
+    width:100%;
+    height:40px;
+}
+.col-1{
+    width:49%;
+    height:40px;
+    float:left;
+    line-height: 40px;
+    text-align: center;
+    font-weight: bold;
+}
+.line-2{
+    width:1px;
+    height:40px;
+    background-color: #d9d9d9;
+    float:left;
+}
+.line-3{
+    width:1px;
+    height:400px;
+    background-color: #328dc7;
+    float:left;
+}
+.row-8{
+    height: 100%;
+    height:400px;
+    background-color: #f5f5f5;
+}
+.border-line{
+    width:100%;
+    height: 442px;
+    margin:15px auto;
+    border:1px solid #328dc7;
+}

+ 230 - 0
VisualInspection/css/statistics/personal_data_statistics.css

@@ -0,0 +1,230 @@
+.container-right{
+    width:98%;
+    padding-bottom: 0px;
+    margin:15px auto;
+    border:1px solid #d9d9d9;
+    font-family: '宋体';
+    border-radius: 4px;
+    font-size: 12px;
+}
+.row-1{
+    width:100%;
+    height:35px;
+    background-color: #f5f5f5;
+}
+.row-2{
+    width:100%;
+    height:50px;
+}
+.row-3{
+    width:100%;
+    height:80px;
+}
+.col-1{
+    width:49%;
+    height:40px;
+    float:left;
+    line-height: 40px;
+    text-align: center;
+    font-weight: bold;
+}
+.row-1 span{
+    margin-left: 20px;
+    line-height: 35px;
+}
+.line-1{
+    width:100%;
+    height: 1px;
+    background-color: #d9d9d9;
+}
+.line-2{
+    width:1px;
+    height:40px;
+    background-color: #d9d9d9;
+    float:left;
+}
+.line-3{
+    width:1px;
+    height:400px;
+    background-color: #d9d9d9;
+    float:left;
+}
+.line-4,.line-5{
+    width:1px;
+    height:80px;
+    background-color: #d9d9d9;
+    float:left;
+}
+.line-6{
+    width:79.8%;
+    height:1px;
+    background-color:#d9d9d9;
+    float:right;
+}
+.dept,.job{
+    width:10%;
+    height:80px;
+    float:left;
+    text-align: center;
+}
+.current-month{
+    width:79.8%;
+    height:40px;
+    float:right;
+    line-height: 40px;
+}
+.next-month{
+    width:79.8%;
+    height:40px;
+    float:right;
+    line-height: 40px;
+}
+.name{
+    width:30px;
+    height:50px;
+    float:left;
+    margin-left: 20px;
+    line-height: 50px;
+}            
+.div-start{
+    width:160px;
+    height:50px;
+    float:left;
+    margin-left: 20px;
+    line-height: 50px;
+}
+.div-to{
+    width:20px;
+    height:50px;
+    float:left;
+    margin-left: 15px;
+    line-height: 50px;
+}
+.div-start select{
+    width:160px;
+    height:30px;
+}
+.div-end{
+    width:150px;
+    height:50px;
+    float:left;
+    margin-left: 5px;
+    line-height: 50px;
+}
+.div-end select{
+    width:160px;
+    height:30px;
+}
+.div-check{
+    width:190px;
+    height:50px;
+    float:left;
+    margin-left: 50px;
+    line-height: 50px;
+}
+.div-check select{
+    width:190px;
+    height:30px;
+}
+.div-select{
+    width:80px;
+    height:50px;
+    float:left;
+    margin-left: 20px;
+}
+.query{
+    width:80px;
+    height:50px;
+    float:left;
+    margin-left: 40px;
+}
+.export{
+    width:80px;
+    height:50px;
+    float:right;
+    margin-right: 40px;
+}
+
+.div-button button{
+    width:80px;
+    height:30px;
+    color: #fff;
+    background-color: #3280fc;
+    border-color: #1970fc;
+    border:1px solid transparent;
+    border-radius: 4px;
+    margin-top: 10px;
+}
+.row-7{
+    width:100%;
+    height:40px;
+    background-color: #328dc7;
+    color: white;
+}
+
+.row-8{
+    height: 100%;
+    height:400px;
+    background-color: #f5f5f5;
+}.container-right{
+    width:98%;
+    padding-bottom: 0px;
+    margin:15px auto;
+    border:1px solid #d9d9d9;
+    font-family: '宋体';
+}
+.row-1{
+    width:100%;
+    height:35px;
+    background-color: #f5f5f5;
+}
+
+.row-1 span{
+    margin-left: 20px;
+    line-height: 35px;
+}
+.line-1{
+    width:100%;
+    height: 1px;
+    background-color: #d9d9d9;
+}
+.row-2{
+    width:100%;
+    height:50px;
+}
+
+.row-7{
+    width:100%;
+    height:40px;
+}
+.col-1{
+    width:49%;
+    height:40px;
+    float:left;
+    line-height: 40px;
+    text-align: center;
+    font-weight: bold;
+}
+.line-2{
+    width:1px;
+    height:40px;
+    background-color: #d9d9d9;
+    float:left;
+}
+.line-3{
+    width:1px;
+    height:400px;
+    background-color: #328dc7;
+    float:left;
+}
+.row-8{
+    height: 100%;
+    height:400px;
+    background-color: #f5f5f5;
+}
+.border-line{
+    width:100%;
+    height: 442px;
+    margin:15px auto;
+    border:1px solid #328dc7;
+}

+ 205 - 0
VisualInspection/css/statistics/road_manage_statistics.css

@@ -0,0 +1,205 @@
+.container-right{
+    width:98%;
+    padding-bottom: 0px;
+    margin:15px auto;
+    border:1px solid #d9d9d9;
+    font-family: '宋体';
+    border-radius: 4px;
+    font-size: 15px;
+}
+.row-1{
+    width:100%;
+    height:35px;
+    background-color: #f5f5f5;
+}
+
+.row-1 span{
+    margin-left: 20px;
+    line-height: 35px;
+}
+.line-1{
+    width:100%;
+    height: 1px;
+    background-color: #d9d9d9;
+}
+
+.row-2{
+    width:100%;
+    height:50px;
+}
+.row-2 div:eq(0){
+   width:300px;
+   height:50px; 
+   line-height: 50px;
+
+}
+.div-month {
+    width:80px;
+    height:50px;
+    float:left;
+    margin-left: 20px;
+    line-height: 50px;
+}
+.div-roadManage{
+    width:80px;
+    height:50px;
+    float:left;
+    margin-left: 20px;
+    line-height: 50px;
+}
+.div-button{
+    width:80px;
+    height:50px;
+    float:left;
+    margin-left: 20px;
+}
+
+.div-button button{
+    width:80px;
+    height:30px;
+    color: #fff;
+    background-color: #3280fc;
+    border-color: #1970fc;
+    border:1px solid transparent;
+    border-radius: 4px;
+    margin-top: 10px;
+}
+.row-3,.row-4,.row-6,.row-7{
+    width:100%;
+    height:40px;
+    background-color: #328dc7;
+    color: white;
+}
+.row-3 div,.row-6 div{
+    line-height: 40px;
+    text-align: center;
+    font-weight: bold;
+}
+.row-4 span{
+    line-height: 40px;
+    margin-left: 20px;
+}
+.row-4 a{
+    line-height: 40px;
+    margin-left: 84%;
+}
+.col-1{
+    width:49%;
+    height:40px;
+    float:left;
+    line-height: 40px;
+    text-align: center;
+    font-weight: bold;
+}
+.line-2{
+    width:1px;
+    height:40px;
+    background-color: #d9d9d9;
+    float:left;
+}
+.line-3{
+    width:1px;
+    height:400px;
+    background-color: #d9d9d9;
+    float:left;
+}
+.row-8{
+    height: 100%;
+    height:400px;
+    background-color: #f5f5f5;
+}.container-right{
+    width:98%;
+    padding-bottom: 0px;
+    margin:15px auto;
+    border:1px solid #d9d9d9;
+    font-family: '宋体';
+}
+.row-1{
+    width:100%;
+    height:35px;
+    background-color: #f5f5f5;
+}
+
+.row-1 span{
+    margin-left: 20px;
+    line-height: 35px;
+}
+.line-1{
+    width:100%;
+    height: 1px;
+    background-color: #d9d9d9;
+}
+.row-2{
+    width:100%;
+    height:50px;
+}
+
+.select-scope{
+    width:95px;
+    height:20px; 
+    line-height: 50px;
+    float:left;
+    margin-left: 20px;
+}
+
+.select-all{
+   width:80px;
+   height:20px; 
+   line-height: 50px;
+   float:left;
+   margin-left: 5px;
+}
+
+.select-month{
+   width:80px;
+   height:20px; 
+   line-height: 50px;
+   float:left;
+   margin-left: 20px;
+}
+.query-total{
+   width:70px;
+   height:20px; 
+   line-height: 50px;
+   float:right;
+   margin-right: 20px;
+}
+.row-2 select{
+    width:80px;
+    height:25px;
+}
+.row-7{
+    width:100%;
+    height:40px;
+}
+.col-1{
+    width:49%;
+    height:40px;
+    float:left;
+    line-height: 40px;
+    text-align: center;
+    font-weight: bold;
+}
+.line-2{
+    width:1px;
+    height:40px;
+    background-color: #d9d9d9;
+    float:left;
+}
+.line-3{
+    width:1px;
+    height:400px;
+    background-color: #328dc7;
+    float:left;
+}
+.row-8{
+    height: 100%;
+    height:400px;
+    background-color: #f5f5f5;
+}
+.border-line{
+    width:100%;
+    height: 442px;
+    margin:15px auto;
+    border:1px solid #328dc7;
+}

+ 212 - 0
VisualInspection/css/statistics/toll_station_statistics.css

@@ -0,0 +1,212 @@
+.container-right{
+    width:98%;
+    padding-bottom: 0px;
+    margin:15px auto;
+    border:1px solid #d9d9d9;
+    font-family: '宋体';
+    border-radius: 4px;
+    font-size: 15px;
+}
+.row-1{
+    width:100%;
+    height:35px;
+    background-color: #f5f5f5;
+}
+
+.row-1 span{
+    margin-left: 20px;
+    line-height: 35px;
+}
+.line-1{
+    width:100%;
+    height: 1px;
+    background-color: #d9d9d9;
+}
+
+.row-2{
+    width:100%;
+    height:50px;
+}
+.row-2 div:eq(0){
+   width:300px;
+   height:50px; 
+   line-height: 50px;
+
+}
+.div-month{
+    width:80px;
+    height:50px;
+    float:left;
+    margin-left: 20px;
+    line-height: 50px;
+}
+.div-roadManage{
+    width:80px;
+    height:50px;
+    float:left;
+    margin-left: 20px;
+    line-height: 50px;
+}
+.div-station{
+    width:80px;
+    height:50px;
+    float:left;
+    margin-left: 20px;
+    line-height: 50px;
+}
+.div-button{
+    width:80px;
+    height:50px;
+    float:left;
+    margin-left: 20px;
+}
+
+.div-button button{
+    width:80px;
+    height:30px;
+    color: #fff;
+    background-color: #3280fc;
+    border-color: #1970fc;
+    border:1px solid transparent;
+    border-radius: 4px;
+    margin-top: 10px;
+}
+.row-3,.row-4,.row-6,.row-7{
+    width:100%;
+    height:40px;
+    background-color: #328dc7;
+    color: white;
+}
+.row-3 div,.row-6 div{
+    line-height: 40px;
+    text-align: center;
+    font-weight: bold;
+}
+.row-4 span{
+    line-height: 40px;
+    margin-left: 20px;
+}
+.row-4 a{
+    line-height: 40px;
+    margin-left: 84%;
+}
+.col-1{
+    width:49%;
+    height:40px;
+    float:left;
+    line-height: 40px;
+    text-align: center;
+    font-weight: bold;
+}
+.line-2{
+    width:1px;
+    height:40px;
+    background-color: #d9d9d9;
+    float:left;
+}
+.line-3{
+    width:1px;
+    height:400px;
+    background-color: #d9d9d9;
+    float:left;
+}
+.row-8{
+    height: 100%;
+    height:400px;
+    background-color: #f5f5f5;
+}.container-right{
+    width:98%;
+    padding-bottom: 0px;
+    margin:15px auto;
+    border:1px solid #d9d9d9;
+    font-family: '宋体';
+}
+.row-1{
+    width:100%;
+    height:35px;
+    background-color: #f5f5f5;
+}
+
+.row-1 span{
+    margin-left: 20px;
+    line-height: 35px;
+}
+.line-1{
+    width:100%;
+    height: 1px;
+    background-color: #d9d9d9;
+}
+.row-2{
+    width:100%;
+    height:50px;
+}
+
+.select-scope{
+    width:95px;
+    height:20px; 
+    line-height: 50px;
+    float:left;
+    margin-left: 20px;
+}
+
+.select-all{
+   width:80px;
+   height:20px; 
+   line-height: 50px;
+   float:left;
+   margin-left: 5px;
+}
+
+.select-month{
+   width:80px;
+   height:20px; 
+   line-height: 50px;
+   float:left;
+   margin-left: 20px;
+}
+.query-total{
+   width:70px;
+   height:20px; 
+   line-height: 50px;
+   float:right;
+   margin-right: 20px;
+}
+.row-2 select{
+    width:80px;
+    height:25px;
+}
+.row-7{
+    width:100%;
+    height:40px;
+}
+.col-1{
+    width:49%;
+    height:40px;
+    float:left;
+    line-height: 40px;
+    text-align: center;
+    font-weight: bold;
+}
+.line-2{
+    width:1px;
+    height:40px;
+    background-color: #d9d9d9;
+    float:left;
+}
+.line-3{
+    width:1px;
+    height:400px;
+    background-color: #328dc7;
+    float:left;
+}
+.row-8{
+    height: 100%;
+    height:400px;
+    background-color: #f5f5f5;
+}
+.border-line{
+    width:100%;
+    height: 442px;
+    margin:15px auto;
+    border:1px solid #328dc7;
+}

+ 198 - 0
VisualInspection/css/statistics/total_company_statistics.css

@@ -0,0 +1,198 @@
+.container-right{
+    width:98%;
+    padding-bottom: 0px;
+    margin:15px auto;
+    border:1px solid #d9d9d9;
+    font-family: '宋体';
+    border-radius: 4px;
+    font-size: 15px;
+}
+.row-1{
+    width:100%;
+    height:35px;
+    background-color: #f5f5f5;
+}
+
+.row-1 span{
+    margin-left: 20px;
+    line-height: 35px;
+}
+.line-1{
+    width:100%;
+    height: 1px;
+    background-color: #d9d9d9;
+}
+
+.row-2{
+    width:100%;
+    height:50px;
+}
+.row-2 div:eq(0){
+   width:300px;
+   height:50px; 
+   line-height: 50px;
+
+}
+.div-month{
+    width:80px;
+    height:50px;
+    float:left;
+    margin-left: 20px;
+    line-height: 50px;
+}
+.div-button{
+    width:80px;
+    height:50px;
+    float:left;
+    margin-left: 20px;
+}
+
+.div-button button{
+    width:80px;
+    height:30px;
+    color: #fff;
+    background-color: #3280fc;
+    border-color: #1970fc;
+    border:1px solid transparent;
+    border-radius: 4px;
+    margin-top: 10px;
+}
+.row-3,.row-4,.row-6,.row-7{
+    width:100%;
+    height:40px;
+    background-color: #328dc7;
+    color: white;
+}
+.row-3 div,.row-6 div{
+    line-height: 40px;
+    text-align: center;
+    font-weight: bold;
+}
+.row-4 span{
+    line-height: 40px;
+    margin-left: 20px;
+}
+.row-4 a{
+    line-height: 40px;
+    margin-left: 84%;
+}
+.col-1{
+    width:49%;
+    height:40px;
+    float:left;
+    line-height: 40px;
+    text-align: center;
+    font-weight: bold;
+}
+.line-2{
+    width:1px;
+    height:40px;
+    background-color: #d9d9d9;
+    float:left;
+}
+.line-3{
+    width:1px;
+    height:400px;
+    background-color: #d9d9d9;
+    float:left;
+}
+.row-8{
+    height: 100%;
+    height:400px;
+    background-color: #f5f5f5;
+}.container-right{
+    width:98%;
+    padding-bottom: 0px;
+    margin:15px auto;
+    border:1px solid #d9d9d9;
+    font-family: '宋体';
+}
+.row-1{
+    width:100%;
+    height:35px;
+    background-color: #f5f5f5;
+}
+
+.row-1 span{
+    margin-left: 20px;
+    line-height: 35px;
+}
+.line-1{
+    width:100%;
+    height: 1px;
+    background-color: #d9d9d9;
+}
+.row-2{
+    width:100%;
+    height:50px;
+}
+
+.select-scope{
+    width:95px;
+    height:20px; 
+    line-height: 50px;
+    float:left;
+    margin-left: 20px;
+}
+
+.select-all{
+   width:80px;
+   height:20px; 
+   line-height: 50px;
+   float:left;
+   margin-left: 5px;
+}
+
+.select-month{
+   width:80px;
+   height:20px; 
+   line-height: 50px;
+   float:left;
+   margin-left: 20px;
+}
+.query-total{
+   width:70px;
+   height:20px; 
+   line-height: 50px;
+   float:right;
+   margin-right: 20px;
+}
+.row-2 select{
+    width:80px;
+    height:25px;
+}
+.row-7{
+    width:100%;
+    height:40px;
+}
+.col-1{
+    width:49%;
+    height:40px;
+    float:left;
+    line-height: 40px;
+    text-align: center;
+    font-weight: bold;
+}
+.line-2{
+    width:1px;
+    height:40px;
+    background-color: #d9d9d9;
+    float:left;
+}
+.line-3{
+    width:1px;
+    height:400px;
+    background-color: #328dc7;
+    float:left;
+}
+.row-8{
+    height: 100%;
+    height:400px;
+    background-color: #f5f5f5;
+}
+.border-line{
+    width:100%;
+    height: 442px;
+    margin:15px auto;
+    border:1px solid #328dc7;
+}

BIN=BIN
VisualInspection/images/movie.png


+ 1 - 1
VisualInspection/js/config.js

@@ -15,7 +15,7 @@ function getserveraddr(){
         return "http://server_yanhai.jsxt.jsjtyxt.com/";
     }
     else if(base_ui_url.indexOf("localhost")!=-1){
-        return "http://localhost:8089/"
+        return "http://server_yanhai.jsxt.jsjtyxt.com/"
     }
     else if(base_ui_url.indexOf("192.168.8.236")!=-1){
         return "http://192.168.8.236:8089/"

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
VisualInspection/js/lib/echarts/build/dist/chart/bar.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
VisualInspection/js/lib/echarts/build/dist/chart/chord.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
VisualInspection/js/lib/echarts/build/dist/chart/eventRiver.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
VisualInspection/js/lib/echarts/build/dist/chart/force.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
VisualInspection/js/lib/echarts/build/dist/chart/funnel.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
VisualInspection/js/lib/echarts/build/dist/chart/gauge.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
VisualInspection/js/lib/echarts/build/dist/chart/heatmap.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
VisualInspection/js/lib/echarts/build/dist/chart/k.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
VisualInspection/js/lib/echarts/build/dist/chart/line.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
VisualInspection/js/lib/echarts/build/dist/chart/map.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
VisualInspection/js/lib/echarts/build/dist/chart/pie.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
VisualInspection/js/lib/echarts/build/dist/chart/radar.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
VisualInspection/js/lib/echarts/build/dist/chart/scatter.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
VisualInspection/js/lib/echarts/build/dist/chart/tree.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
VisualInspection/js/lib/echarts/build/dist/chart/treemap.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
VisualInspection/js/lib/echarts/build/dist/chart/venn.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
VisualInspection/js/lib/echarts/build/dist/chart/wordCloud.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
VisualInspection/js/lib/echarts/build/dist/echarts-all.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
VisualInspection/js/lib/echarts/build/dist/echarts.js


+ 86 - 0
VisualInspection/js/lib/echarts/build/echarts-optimize-conf.js

@@ -0,0 +1,86 @@
+exports.modules = {
+    main: {
+        name: 'echarts/echarts',
+        includeShallow: [
+            'echarts/component/dataRange'
+        ]
+    },
+    parts: [
+        {name: 'echarts/chart/line', weight: 100},
+        {name: 'echarts/chart/bar', weight: 100},
+        {name: 'echarts/chart/scatter', weight: 90},
+        {name: 'echarts/chart/k', weight: 30},
+        {name: 'echarts/chart/pie', weight: 90},
+        {name: 'echarts/chart/radar', weight: 30},
+        {name: 'echarts/chart/chord', weight: 30},
+        {name: 'echarts/chart/force', weight: 30},
+        {
+            name: 'echarts/chart/map',
+            weight: 90,
+            includeShallow: [
+                'echarts/util/mapData/geoJson/an_hui_geo',
+                'echarts/util/mapData/geoJson/ao_men_geo',
+                'echarts/util/mapData/geoJson/bei_jing_geo',
+                'echarts/util/mapData/geoJson/china_geo',
+                'echarts/util/mapData/geoJson/chong_qing_geo',
+                'echarts/util/mapData/geoJson/fu_jian_geo',
+                'echarts/util/mapData/geoJson/gan_su_geo',
+                'echarts/util/mapData/geoJson/guang_dong_geo',
+                'echarts/util/mapData/geoJson/guang_xi_geo',
+                'echarts/util/mapData/geoJson/gui_zhou_geo',
+                'echarts/util/mapData/geoJson/hai_nan_geo',
+                'echarts/util/mapData/geoJson/hei_long_jiang_geo',
+                'echarts/util/mapData/geoJson/he_bei_geo',
+                'echarts/util/mapData/geoJson/he_nan_geo',
+                'echarts/util/mapData/geoJson/hu_bei_geo',
+                'echarts/util/mapData/geoJson/hu_nan_geo',
+                'echarts/util/mapData/geoJson/jiang_su_geo',
+                'echarts/util/mapData/geoJson/jiang_xi_geo',
+                'echarts/util/mapData/geoJson/ji_lin_geo',
+                'echarts/util/mapData/geoJson/liao_ning_geo',
+                'echarts/util/mapData/geoJson/nei_meng_gu_geo',
+                'echarts/util/mapData/geoJson/ning_xia_geo',
+                'echarts/util/mapData/geoJson/qing_hai_geo',
+                'echarts/util/mapData/geoJson/shang_hai_geo',
+                'echarts/util/mapData/geoJson/shan_dong_geo',
+                'echarts/util/mapData/geoJson/shan_xi_1_geo',
+                'echarts/util/mapData/geoJson/shan_xi_2_geo',
+                'echarts/util/mapData/geoJson/si_chuan_geo',
+                'echarts/util/mapData/geoJson/tai_wan_geo',
+                'echarts/util/mapData/geoJson/tian_jin_geo',
+                'echarts/util/mapData/geoJson/world_geo',
+                'echarts/util/mapData/geoJson/xiang_gang_geo',
+                'echarts/util/mapData/geoJson/xin_jiang_geo',
+                'echarts/util/mapData/geoJson/xi_zang_geo',
+                'echarts/util/mapData/geoJson/yun_nan_geo',
+                'echarts/util/mapData/geoJson/zhe_jiang_geo'
+            ]
+        },
+        {name: 'echarts/chart/gauge', weight: 30},
+        {name: 'echarts/chart/funnel', weight: 30},
+        {name: 'echarts/chart/eventRiver', weight: 10},
+        {name: 'echarts/chart/venn', weight: 10},
+        {name: 'echarts/chart/treemap', weight: 10},
+        {name: 'echarts/chart/tree', weight: 10},
+        {name: 'echarts/chart/wordCloud', weight: 10},
+        {name: 'echarts/chart/heatmap', weight: 10, includeShallow: [
+            'echarts/layer/heatmap'
+        ]}
+    ]
+};
+
+exports.amd = {
+    baseUrl: process.cwd(),
+    packages: [
+        {
+            name: 'echarts',
+            location: '../src',
+            main: 'echarts'
+        },
+        {
+            name: 'zrender',
+            location: '../../zrender/src',
+            main: 'zrender'
+        }
+    ]
+};

+ 12 - 0
VisualInspection/js/mytask/check.js

@@ -125,11 +125,21 @@ function fullscreen() {
         '                                </div>' +
         '                                <div class="row" style="padding:0px 5px 0px 5px;text-align:center;margin:0px">' +
         '                                    <select class="form-control" id="full_video_list" style="width:200px;float:left;display:none;"></select>' +
+        '                                      <div class="col-md-4" style="padding-left:0">' +
+        '                                                                      <div class="input-group" style="padding-left:0">' +
+        '                                                                          <input type="text" id="full_video_pos" style="height:42px" class="form-control" placeholder="时间偏移值">' +
+        '                                                                         <span class="input-group-btn">' +
+        '                                                                              <button class="btn btn-default" onclick="setVideoPos()" style="height:42px" type="button">校正</button>' +
+        '                                                                          </span>' +
+        '                                                                      </div>' +
+        '                                                                     </div>' +
         '                                    <div class="btn-group" style="float:right;">' +
         '                                        <button type="button" class="btn btn-info" onclick="doAction(\'start\')"><i class="icon icon-play-circle icon-2x"></i></button>' +
         '                                        <button type="button" class="btn btn-info" onclick="doAction(\'stop\')"><i class="icon icon-pause icon-2x"></i></button>' +
         '                                        <button type="button" class="btn btn-info" onclick="doAction(\'fast\')"><i class="icon icon-forward icon-2x"></i><span id=\"full_fast_info\"></span></button>' +
         '                                        <button type="button" class="btn btn-info" onclick="doAction(\'slow\')"><span id=\"full_slow_info\"></span><i class="icon icon-backward icon-2x"></i></button>' +
+        '                                        <button type="button" class="btn btn-danger " style="width:51px;height:42px" id="full_video_btn_start" onclick="doAction(\'video_start\')"><img style="width:30px" src="/images/movie.png"></img></i></button>'+
+        '                                        <button type="button" class="btn btn-danger hidden" style="width:51px;height:42px" id="full_video_btn_stop" onclick="doAction(\'video_stop\')"><i class="icon icon-stop icon-2x"></i></button>'+
         '                                        <button type="button" class="btn btn-success" onclick="doAction(\'screenshot\')"><i class="icon icon-camera icon-2x"></i></button>' +
         '                                    </div>' +
         '                                </div>';
@@ -145,6 +155,8 @@ function fullscreen() {
         content: "<div id='layer_content' >" + contenthtml + "</div>",
         success: function (layero, index) {
 
+            $("#full_video_pos").val($("#video_pos").val());
+
             $('#full_ex1').slider({ tooltip: 'hide' });
             $("#full_ex1").on("slideStop", function (slideEvt) {
                 setVideoProcess(slideEvt.value);

+ 12 - 10
VisualInspection/js/statistics/assess_ranking.js

@@ -59,12 +59,13 @@ function getEmployeeInfosClick(url,param,start_score,end_score){
             if(score>=parseFloat(start_score) && score<=parseFloat(end_score)){
             strTbody+="<tr><td width='67px;'>"+(i+1)+"</td><td width='87px;'>"+data[i].user.fee_station_name+"</td>"
                 +"<td width='67px;'>"+data[i].user.truename+"</td><td width='67px;'>"+"</td>"
-                +"<td width='87px;'>"+data[i].user.workno+"</td><td width='55px;'>"+ getItemScore(data[i], '环境') +"</td>"
-                +"<td width='55px;'>"+getItemScore(data[i], '仪容仪表')+"</td><td width='55px;'>"+getItemScore(data[i], '表情')+"</td>"
-                +"<td width='55px;'>"+getItemScore(data[i], '动作')+"</td><td width='55px;'>"+getItemScore(data[i], '文明用语')+"</td>"
-                +"<td width='55px;'>"+ getItemScore(data[i], '工作纪律') +"</td><td width='55px;'>"+data[i].check_all_score+"</td>"
+                +"<td width='87px;'>"+data[i].user.workno+"</td><td width='58px;'>"+ getItemScore(data[i], '环境') +"</td>"
+                +"<td width='58px;'>"+getItemScore(data[i], '仪容仪表')+"</td><td width='58px;'>"+getItemScore(data[i], '表情')+"</td>"
+                +"<td width='58px;'>"+getItemScore(data[i], '动作')+"</td><td width='58px;'>"+getItemScore(data[i], '文明用语')+"</td>"
+                +"<td width='58px;'>"+ getItemScore(data[i], '工作纪律') +"</td><td width='58px'>"+getItemScore(data[i], '便民服务')+"</td><td width='58px'>"
+                +getItemScore(data[i], '安全管理')+"</td><td width='58px;'>"+data[i].check_all_score+"</td>"
                 +"<td width='67px;'>"+filter(data[i].checked_num,'0')+"</td><td width='67px;'>"+filterByZeroHandle(average(data[i]).toFixed(2),'0')+"</td>"
-                +"<td width='55px;'>"+score+"</td><td width='55px;'>"+"</td><td>"+"</td></tr>";
+                +"<td width='55px;'>"+score+"</td><td width='58px;'>"+"</td><td>"+"</td></tr>";
         }
     }
        $(".table-tbody").append(strTbody);   
@@ -84,12 +85,13 @@ function getEmployeeInfos(url,param){
         for(var i=0;i<data.length;i++){
             strTbody+="<tr><td width='67px;'>"+(i+1)+"</td><td width='87px;'>"+data[i].user.fee_station_name+"</td>"
                 +"<td width='67px;'>"+data[i].user.truename+"</td><td width='67px;'>"+"</td>"
-                +"<td width='87px;'>"+data[i].user.workno+"</td><td width='55px;'>"+ getItemScore(data[i], '环境') +"</td>"
-                +"<td width='55px;'>"+getItemScore(data[i], '仪容仪表')+"</td><td width='55px;'>"+getItemScore(data[i], '表情')+"</td>"
-                +"<td width='55px;'>"+getItemScore(data[i], '动作')+"</td><td width='55px;'>"+getItemScore(data[i], '文明用语')+"</td>"
-                +"<td width='55px;'>"+ getItemScore(data[i], '工作纪律') +"</td><td width='55px;'>"+data[i].check_all_score+"</td>"
+                +"<td width='87px;'>"+data[i].user.workno+"</td><td width='58px;'>"+ getItemScore(data[i], '环境') +"</td>"
+                +"<td width='58px;'>"+getItemScore(data[i], '仪容仪表')+"</td><td width='58px;'>"+getItemScore(data[i], '表情')+"</td>"
+                +"<td width='58px;'>"+getItemScore(data[i], '动作')+"</td><td width='58px;'>"+getItemScore(data[i], '文明用语')+"</td>"
+                +"<td width='58px;'>"+ getItemScore(data[i], '工作纪律') +"</td><td width='58px'>"+getItemScore(data[i], '便民服务')+"</td><td width='58px'>"
+                +getItemScore(data[i], '安全管理')+"</td><td width='58px'>"+data[i].check_all_score+"</td>"
                 +"<td width='67px;'>"+filter(data[i].checked_num,'0')+"</td><td width='67px;'>"+filterByZeroHandle(average(data[i]).toFixed(2),'0')+"</td>"
-                +"<td width='55px;'>"+(1000-filterByZeroHandle(average(data[i]).toFixed(2),'0'))+"</td><td width='55px;'>"+"</td><td>"+"</td></tr>";
+                +"<td width='55px;'>"+(1000-filterByZeroHandle(average(data[i]).toFixed(2),'0'))+"</td><td width='58px;'>"+"</td><td>"+"</td></tr>";
         }
        $(".table-tbody").append(strTbody);   
     },function(error){

+ 6 - 4
VisualInspection/js/statistics/assess_type.js

@@ -81,7 +81,7 @@ function gethtml(data,i,avg,lists){
             name = "连云港";
             rowspan = 7;
             for(var i=0;i<lists.length;i++){
-                if(avg < lists[i]){
+                if(avg > lists[i]){
                     order = order + 1;
                 }
             }
@@ -89,7 +89,7 @@ function gethtml(data,i,avg,lists){
             name = "盐城";
             rowspan = 6;
             for(var i=0;i<lists.length;i++){
-                if(avg < lists[i]){
+                if(avg > lists[i]){
                     order = order + 1;
                 }
             }
@@ -97,7 +97,7 @@ function gethtml(data,i,avg,lists){
             name = "南通";
             rowspan = 8;
             for(var i=0;i<lists.length;i++){
-                if(avg < lists[i]){
+                if(avg > lists[i]){
                     order = order + 1;
                 }
             }
@@ -108,7 +108,8 @@ function gethtml(data,i,avg,lists){
                    +"</td><td>"+filter(data.checked_num,'0')+"</td><td>"+getItemScore(data, '环境卫生')
                    +"</td> <td>"+getItemScore(data, '仪容仪表')+"</td><td>"+getItemScore(data, '表情')
                    +"</td><td>"+getItemScore(data, '收费动作')+"</td><td>"+getItemScore(data, '文明用语')
-                   +"</td><td>"+getItemScore(data, '工作纪律')+"</td><td>"+data.all_check_score+"</td><td>"
+                   +"</td><td>"+getItemScore(data, '工作纪律')+"</td><td>"+getItemScore(data, '便民服务')
+                   +"</td><td>"+getItemScore(data, '安全管理')+"</td><td>"+data.all_check_score+"</td><td>"
                    +filterByZeroHandle(filterJudge(data.all_check_score,data.checked_num),'0')
                    +"</td><td rowspan="+rowspan+">"+avg+"</td>";
         strTbody += "</tr>";
@@ -121,6 +122,7 @@ function gethtml(data,i,avg,lists){
                   +"</td><td>"+getItemScore(data, '环境卫生')+"</td><td>"+getItemScore(data, '仪容仪表')
                   +"</td><td>"+getItemScore(data, '表情')+"</td><td>"+getItemScore(data, '收费动作')
                   +"</td><td>"+getItemScore(data, '文明用语')+"</td><td>"+getItemScore(data, '工作纪律')
+                  +"</td><td>"+getItemScore(data, '便民服务')+"</td><td>"+getItemScore(data, '安全管理')
                   +"</td><td>"+data.all_check_score+"</td><td>"
                   +filterByZeroHandle(filterJudge(data.all_check_score,data.checked_num),'0')+"</td>";
         strTbody += "</tr>";

+ 139 - 0
VisualInspection/js/statistics/personal_data_statistics.js

@@ -0,0 +1,139 @@
+$(function(){
+        // 路径配置
+        require.config({
+            paths: {
+                echarts: '/js/lib/echarts/build/dist'
+            }
+        }); 
+        // 使用
+	    require(
+		[
+			'echarts',
+			'echarts/chart/line', 
+			'echarts/chart/pie'
+		],
+	function (ec) {
+			// 基于准备好的dom,初始化echarts图表
+			var score_statistics = ec.init(document.getElementById('personal-score-statistics')); 
+			var check_type = ec.init(document.getElementById('personal-check-type'));
+			
+			// 为echarts对象加载数据 
+			score_statistics.setOption(personal_score_statistics()); 
+			check_type.setOption(personal_check_type()); 
+		
+
+			/**
+			 * 图一
+			 */
+	    	function personal_score_statistics(){
+			
+				option = {
+					color : [ '#00ced1' ],
+					tooltip : {
+						trigger: 'axis'
+					},
+					legend: {
+						data:['平均分']
+					},
+					toolbox: {
+						show : true,
+					},
+					calculable : true,
+					xAxis : [
+						{
+							type : 'category',
+							boundaryGap : false,
+							data : ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月']
+						}
+					],
+					yAxis : [
+						{
+							type : 'value',
+							min : 700 ,
+						    max : 1000,
+							axisLabel : {
+								formatter: '{value}'
+							}
+						}
+					],
+					series : [
+						{
+							name:'平均分',
+							type:'line',
+							data:[800, 790, 780, 900, 1000,780, 1000,880,900,950,900,800,790],
+							markPoint : {
+								data : [
+									{type : 'max', name: '最大值'},
+									{type : 'min', name: '最小值'}
+								]
+							},
+							markLine : {
+								data : [
+									{type : 'average', name: '平均值'}
+								]
+							}
+						},
+						
+					]
+				};
+						return option;
+		}
+			
+
+        /**
+		 * 图二
+		 */
+		function personal_check_type(){
+			option = {
+				tooltip : {
+					trigger: 'item',
+					formatter: "{a} <br/>{b} : {c} ({d}%)"
+				},
+				toolbox: {
+					show : true,
+					feature : {
+					
+						magicType : {
+						
+							type: ['pie', 'funnel'],
+							option: {
+								funnel: {
+									x: '25%',
+									width: '50%',
+									funnelAlign: 'left',
+									max: 1548
+								}
+							}
+						},
+					}
+				},
+				calculable : true,
+				series : [
+					{
+						name:'访问来源',
+						type:'pie',
+						radius : '65%',
+						center: ['50%', '50%'],
+						data:[
+							{value:335, name:'环境卫生'},
+							{value:310, name:'仪容仪表'},
+							{value:234, name:'表情'},
+							{value:135, name:'收费动作'},
+							{value:335, name:'文明用语'},
+							{value:310, name:'工作纪律'},
+							{value:234, name:'便民服务'},
+							{value:135, name:'安全管理'}
+						]
+					}
+				]
+			};
+			return option;
+		}
+
+       
+			
+		}
+  ); 
+
+   
+});

+ 414 - 0
VisualInspection/js/statistics/road_manage_statistics.js

@@ -0,0 +1,414 @@
+$(function(){
+        // 路径配置
+        require.config({
+            paths: {
+                echarts: '/js/lib/echarts/build/dist'
+            }
+        }); 
+        // 使用
+	    require(
+		[
+			'echarts',
+			'echarts/chart/line', 
+			'echarts/chart/bar',
+			'echarts/chart/pie'
+		],
+	function (ec) {
+			// 基于准备好的dom,初始化echarts图表
+			var year_assess = ec.init(document.getElementById('roadManager-year-assess')); 
+			var points_assess = ec.init(document.getElementById('roadManager-points-assess'));
+			var score_rank = ec.init(document.getElementById('tollStation-score-rank'));
+			var rank_pre = ec.init(document.getElementById('people-rank-pre'));
+            var rank_suf = ec.init(document.getElementById('people-rank-suf'));
+			var check_type = ec.init(document.getElementById('server-check-type'));
+			var people_points = ec.init(document.getElementById('each-people-points'));
+			// 为echarts对象加载数据 
+			year_assess.setOption(roadManager_year_assess()); 
+			points_assess.setOption(roadManager_points_assess()); 
+			score_rank.setOption(tollStation_score_rank());
+			rank_pre.setOption(people_rank_pre());
+            rank_suf.setOption(people_rank_suf());
+			check_type.setOption(server_check_type());
+			people_points.setOption(each_people_points());
+
+			/**
+			 * 图一
+			 */
+	    	function roadManager_year_assess(){
+			
+				option = {
+					color : [ '#00ced1' ],
+					tooltip : {
+						trigger: 'axis'
+					},
+					legend: {
+						data:['平均分']
+					},
+					toolbox: {
+						show : true,
+					},
+					calculable : true,
+					xAxis : [
+						{
+							type : 'category',
+							boundaryGap : false,
+							data : ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月']
+						}
+					],
+					yAxis : [
+						{
+							type : 'value',
+							min : 700 ,
+						    max : 1000,
+							axisLabel : {
+								formatter: '{value}'
+							}
+						}
+					],
+					series : [
+						{
+							name:'平均分',
+							type:'line',
+							data:[800, 790, 780, 900, 1000,780, 1000,880,900,950,900,800,790],
+							markPoint : {
+								data : [
+									{type : 'max', name: '最大值'},
+									{type : 'min', name: '最小值'}
+								]
+							},
+							markLine : {
+								data : [
+									{type : 'average', name: '平均值'}
+								]
+							}
+						},
+						
+					]
+				};
+						return option;
+		}
+			
+
+        /**
+		 * 图二
+		 */
+		function roadManager_points_assess(){
+			option = {
+				tooltip : {
+					trigger: 'item',
+					formatter: "{a} <br/>{b} : {c} ({d}%)"
+				},
+				toolbox: {
+					show : true,
+					feature : {
+					
+						magicType : {
+						
+							type: ['pie', 'funnel'],
+							option: {
+								funnel: {
+									x: '25%',
+									width: '50%',
+									funnelAlign: 'left',
+									max: 1548
+								}
+							}
+						},
+					}
+				},
+				calculable : true,
+				series : [
+					{
+						name:'访问来源',
+						type:'pie',
+						radius : '65%',
+						center: ['50%', '50%'],
+						data:[
+							{value:335, name:'0-15分'},
+							{value:310, name:'15-50分'},
+							{value:234, name:'50分以上'},
+							{value:135, name:'满分'}
+						]
+					}
+				]
+			};
+                    
+			return option;
+		}
+
+        /**
+		 * 图三 
+		 */
+		function tollStation_score_rank(){
+			option = {
+				color : [ '#00ced1' ],// 条形图颜色
+				tooltip : {
+					trigger: 'axis'
+				},
+				
+				calculable : true,
+				xAxis : [
+					{
+						type : 'category',
+						data : ['灌云北','灌云东','灌南东','响水','六套','滨海','蔡桥',]
+					}
+				],
+				yAxis : [
+					{
+						type : 'value',
+						min : 900 ,
+						max : 1000
+					}
+				],
+				series : [
+					{
+						
+						type:'bar',
+						data:[980, 950, 1000,944,988,963,949],
+					    itemStyle: {
+						normal: {
+							label: {
+								show: true,
+								position: 'insideTop'
+							}
+						}
+					},
+						markLine : {
+							data : [
+								{type : 'average', name: '平均值'}
+							]
+						}
+					}   
+				]
+			};
+                    		
+					return option;
+	   }
+
+        /**
+		 * 图四
+		 */
+		function people_rank_pre(){
+					option = {
+				color : [ '#00ced1' ],// 条形图颜色
+				tooltip : {
+					trigger: 'axis'
+				},
+				legend: {
+					data:['平均分']
+				},
+				calculable : true,
+				xAxis : [
+					{
+						type : 'category',
+						data : ['小明\n(灌云北)','小明\n(灌云北)','小明\n(灌云北)','小明\n(灌云北)','小明\n(灌云北)',
+                        '小明\n(灌云北)','小明\n(灌云北)','小明\n(灌云北)','小明\n(灌云北)','小明\n(灌云北)']
+					}
+				],
+				yAxis : [
+					{
+						type : 'value',
+						min : 900 ,
+						max : 1000
+					}
+				],
+				series : [
+					{
+						name:'平均分',
+						type:'bar',
+						data:[910.0, 920, 945, 930, 970, 950, 955, 945, 985.6, 990.0],
+					    itemStyle: {
+						normal: {
+							label: {
+								show: true,
+								position: 'insideTop'
+							}
+                                    }
+                                },
+                                markPoint : {
+                                data : [
+                                {type : 'max', name: '最大值'},
+                                {type : 'min', name: '最小值'}
+                                ]
+                                },
+						markLine : {
+							data : [
+								{type : 'average', name: '平均值'}
+							]
+						}
+					}   
+				]
+			};
+							
+					return option;
+				}
+
+
+        /**
+		 * 图五
+		 */
+		function people_rank_suf(){
+					option = {
+				color : [ '#00ced1' ],// 条形图颜色
+				tooltip : {
+					trigger: 'axis'
+				},
+				legend: {
+					data:['平均分']
+				},
+				calculable : true,
+				xAxis : [
+					{
+						type : 'category',
+						data : ['小明\n(灌云北)','小明1\n(灌云北)','小明2\n(灌云北)','小明3\n(灌云北)','小明4\n(灌云北)',
+                        '小明5\n(灌云北)','小明6\n(灌云北)','小明7\n(灌云北)','小明8\n(灌云北)','小明9\n(灌云北)']
+					}
+				],
+				yAxis : [
+					{
+						type : 'value',
+						min : 900 ,
+						max : 1000
+					}
+				],
+				series : [
+					{
+						name:'平均分',
+						type:'bar',
+						data:[910.0, 920, 945, 930, 970, 950, 955, 945, 985.6, 990.0],
+					    itemStyle: {
+						normal: {
+							label: {
+								show: true,
+								position: 'insideTop'
+							}
+						}
+					},
+                        markPoint : {
+                                data : [
+                                {type : 'max', name: '最大值'},
+                                {type : 'min', name: '最小值'}
+                                ]
+                                },
+						markLine : {
+							data : [
+								{type : 'average', name: '平均值'}
+							]
+						}
+					}   
+				]
+			};
+							
+					return option;
+				}
+
+         /**
+		 * 图六
+		 */
+		function server_check_type(){
+			option = {
+				tooltip : {
+					trigger: 'item',
+					formatter: "{a} <br/>{b} : {c} ({d}%)"
+				},
+				toolbox: {
+					show : true,
+					feature : {
+					
+						magicType : {
+						
+							type: ['pie', 'funnel'],
+							option: {
+								funnel: {
+									x: '25%',
+									width: '50%',
+									funnelAlign: 'left',
+									max: 1548
+								}
+							}
+						},
+					}
+				},
+				calculable : true,
+				series : [
+					{
+						name:'访问来源',
+						type:'pie',
+						radius : '65%',
+						center: ['50%', '50%'],
+						data:[
+							{value:335, name:'环境卫生'},
+							{value:310, name:'仪容仪表'},
+							{value:234, name:'表情'},
+							{value:135, name:'收费动作'},
+							{value:335, name:'文明用语'},
+							{value:310, name:'工作纪律'},
+							{value:234, name:'便民服务'},
+							{value:135, name:'安全管理'}
+						]
+					}
+				]
+			};
+			return option;
+		}
+
+        /**
+		 * 图七
+		 */
+		function each_people_points(){
+					option = {
+			tooltip : {
+				trigger: 'axis'
+			},
+			legend: {
+				data:['上月','本月']
+			},
+			calculable : true,
+			xAxis : [
+				{
+					type : 'category',
+					data : ['环境卫生','仪容仪表','表情','收费动作','文明用语','工作纪律','便民服务','安全管理']
+				}
+			],
+			yAxis : [
+				{
+					type : 'value'
+				}
+			],
+			series : [
+				{
+					name:'上月',
+					type:'bar',
+					data:[200.0, 400.9, 700.0, 230.2, 253.6, 760.7,880,500],
+					itemStyle: {
+						normal: {
+							label: {
+								show: true,
+								position: 'insideTop'
+							}
+						}
+					},
+				},
+				{
+					name:'本月',
+					type:'bar',
+					data:[200.6, 500.9, 900.0, 260.4, 280.7, 700.7,500,800],
+					itemStyle: {
+						normal: {
+							label: {
+								show: true,
+								position: 'insideTop'
+							}
+						}
+					},
+				}
+			]
+		};					
+					return option;
+			}
+			
+		}
+  ); 
+
+   
+});

+ 343 - 0
VisualInspection/js/statistics/toll_station_statistics.js

@@ -0,0 +1,343 @@
+$(function(){
+        // 路径配置
+        require.config({
+            paths: {
+                echarts: '/js/lib/echarts/build/dist'
+            }
+        }); 
+        // 使用
+	    require(
+		[
+			'echarts',
+			'echarts/chart/line', 
+			'echarts/chart/bar',
+			'echarts/chart/pie'
+		],
+	function (ec) {
+			// 基于准备好的dom,初始化echarts图表
+			var year_assess = ec.init(document.getElementById('tollStation-year-assess')); 
+			var points_assess = ec.init(document.getElementById('tollStation-points-assess'));
+			var rank_assess = ec.init(document.getElementById('progress-rank-assess'));
+			var score_rank = ec.init(document.getElementById('people-score-rank'));
+			var check_type = ec.init(document.getElementById('server-check-type'));
+			var people_points = ec.init(document.getElementById('each-people-points'));
+			// 为echarts对象加载数据 
+			year_assess.setOption(tollStation_year_assess()); 
+			points_assess.setOption(tollStation_points_assess()); 
+			rank_assess.setOption(progress_rank_assess());
+			score_rank.setOption(people_score_rank());
+			check_type.setOption(server_check_type());
+			people_points.setOption(each_people_points());
+
+			/**
+			 * 图一
+			 */
+	    	function tollStation_year_assess(){
+			
+				option = {
+					color : [ '#00ced1' ],
+					tooltip : {
+						trigger: 'axis'
+					},
+					legend: {
+						data:['平均分']
+					},
+					toolbox: {
+						show : true,
+					},
+					calculable : true,
+					xAxis : [
+						{
+							type : 'category',
+							boundaryGap : false,
+							data : ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月']
+						}
+					],
+					yAxis : [
+						{
+							type : 'value',
+							min : 700 ,
+						    max : 1000,
+							axisLabel : {
+								formatter: '{value}'
+							}
+						}
+					],
+					series : [
+						{
+							name:'平均分',
+							type:'line',
+							data:[800, 790, 780, 900, 1000,780, 1000,880,900,950,900,800,790],
+							markPoint : {
+								data : [
+									{type : 'max', name: '最大值'},
+									{type : 'min', name: '最小值'}
+								]
+							},
+							markLine : {
+								data : [
+									{type : 'average', name: '平均值'}
+								]
+							}
+						},
+						
+					]
+				};
+						return option;
+		}
+			
+
+        /**
+		 * 图二
+		 */
+		function tollStation_points_assess(){
+			option = {
+				tooltip : {
+					trigger: 'item',
+					formatter: "{a} <br/>{b} : {c} ({d}%)"
+				},
+				toolbox: {
+					show : true,
+					feature : {
+					
+						magicType : {
+						
+							type: ['pie', 'funnel'],
+							option: {
+								funnel: {
+									x: '25%',
+									width: '50%',
+									funnelAlign: 'left',
+									max: 1548
+								}
+							}
+						},
+					}
+				},
+				calculable : true,
+				series : [
+					{
+						name:'访问来源',
+						type:'pie',
+						radius : '65%',
+						center: ['50%', '50%'],
+						data:[
+							{value:335, name:'0-15分'},
+							{value:310, name:'15-50分'},
+							{value:234, name:'50分以上'},
+							{value:135, name:'满分'}
+						]
+					}
+				]
+			};
+                    
+			return option;
+		}
+
+        /**
+		 * 图三 
+		 */
+		function progress_rank_assess(){
+			option = {
+				color : [ '#00ced1' ],// 条形图颜色
+				tooltip : {
+					trigger: 'axis'
+				},
+				legend: {
+					data:['进步名次']
+				},
+				calculable : true,
+				xAxis : [
+					{
+						type : 'category',
+						data : ['小明','小白','小龙','大白菜','小蛇']
+					}
+				],
+				yAxis : [
+					{
+						type : 'value'
+					}
+				],
+				series : [
+					{
+						name:'进步名次',
+						type:'bar',
+						data:[4, 9, 10,8,6],
+					    itemStyle: {
+						normal: {
+							label: {
+								show: true,
+								position: 'insideTop'
+							}
+						}
+					},  						
+					}   
+				]
+			};
+                    		
+					return option;
+	   }
+
+        /**
+		 * 图四
+		 */
+		function people_score_rank(){
+					option = {
+				color : [ '#00ced1' ],// 条形图颜色
+				tooltip : {
+					trigger: 'axis'
+				},
+				legend: {
+					data:['平均分']
+				},
+				calculable : true,
+				xAxis : [
+					{
+						type : 'category',
+						data : ['小明','小红','小白','小兰','小紫','小青','小明','小红','小白','小兰','小紫','小青',
+                                '小明','小红','小白','小兰','小紫','小青','小明','小红','小白','小兰','小紫','小青']
+					}
+				],
+				yAxis : [
+					{
+						type : 'value',
+						min : 900 ,
+						max : 1000
+					}
+				],
+				series : [
+					{
+						name:'平均分',
+						type:'bar',
+						data:[950.0, 920, 945, 930, 970, 950, 955, 945, 985.6, 990.0, 975.4, 950.3,
+                              980.0, 920, 945, 930, 970, 950, 955, 995, 985.6, 990.0, 975.4, 950.3],
+					    itemStyle: {
+						normal: {
+							label: {
+								show: true,
+								position: 'insideTop'
+							}
+						}
+					},
+						markLine : {
+							data : [
+								{type : 'average', name: '平均值'}
+							]
+						}
+					}   
+				]
+			};
+							
+					return option;
+				}
+
+         /**
+		 * 图五
+		 */
+		function server_check_type(){
+			option = {
+				tooltip : {
+					trigger: 'item',
+					formatter: "{a} <br/>{b} : {c} ({d}%)"
+				},
+				toolbox: {
+					show : true,
+					feature : {
+					
+						magicType : {
+						
+							type: ['pie', 'funnel'],
+							option: {
+								funnel: {
+									x: '25%',
+									width: '50%',
+									funnelAlign: 'left',
+									max: 1548
+								}
+							}
+						},
+					}
+				},
+				calculable : true,
+				series : [
+					{
+						name:'访问来源',
+						type:'pie',
+						radius : '65%',
+						center: ['50%', '50%'],
+						data:[
+							{value:335, name:'环境卫生'},
+							{value:310, name:'仪容仪表'},
+							{value:234, name:'表情'},
+							{value:135, name:'收费动作'},
+							{value:335, name:'文明用语'},
+							{value:310, name:'工作纪律'},
+							{value:234, name:'便民服务'},
+							{value:135, name:'安全管理'}
+						]
+					}
+				]
+			};
+			return option;
+		}
+
+        /**
+		 * 图六 
+		 */
+		function each_people_points(){
+					option = {
+			tooltip : {
+				trigger: 'axis'
+			},
+			legend: {
+				data:['上月','本月']
+			},
+			calculable : true,
+			xAxis : [
+				{
+					type : 'category',
+					data : ['环境卫生','仪容仪表','表情','收费动作','文明用语','工作纪律','便民服务','安全管理']
+				}
+			],
+			yAxis : [
+				{
+					type : 'value'
+				}
+			],
+			series : [
+				{
+					name:'上月',
+					type:'bar',
+					data:[200.0, 400.9, 700.0, 230.2, 253.6, 760.7,880,500],
+					itemStyle: {
+						normal: {
+							label: {
+								show: true,
+								position: 'insideTop'
+							}
+						}
+					},
+				},
+				{
+					name:'本月',
+					type:'bar',
+					data:[200.6, 500.9, 900.0, 260.4, 280.7, 700.7,500,800],
+					itemStyle: {
+						normal: {
+							label: {
+								show: true,
+								position: 'insideTop'
+							}
+						}
+					},
+				}
+			]
+		};					
+					return option;
+			}
+			
+		}
+  ); 
+
+   
+});

+ 346 - 0
VisualInspection/js/statistics/total_company_statistics.js

@@ -0,0 +1,346 @@
+$(function(){
+        // 路径配置
+        require.config({
+            paths: {
+                echarts: '/js/lib/echarts/build/dist'
+            }
+        }); 
+        // 使用
+	    require(
+		[
+			'echarts',
+			'echarts/chart/line', 
+			'echarts/chart/bar',
+			'echarts/chart/pie'
+		],
+	function (ec) {
+			// 基于准备好的dom,初始化echarts图表
+			var year_assess = ec.init(document.getElementById('company-year-assess')); 
+			var points_assess = ec.init(document.getElementById('company-points-assess'));
+			var score_rank = ec.init(document.getElementById('roadManager-score-rank'));
+			var stationAll_rank = ec.init(document.getElementById('company-stationAll-rank'));
+			var check_type = ec.init(document.getElementById('server-check-type'));
+			var people_points = ec.init(document.getElementById('each-people-points'));
+			// 为echarts对象加载数据 
+			year_assess.setOption(company_year_assess()); 
+			points_assess.setOption(company_points_assess()); 
+			score_rank.setOption(road_manager_score_rank());
+			stationAll_rank.setOption(company_stationAll_rank());
+			check_type.setOption(server_check_type());
+			people_points.setOption(each_people_points());
+
+			/**
+			 * 图一
+			 */
+	    	function company_year_assess(){
+			
+				option = {
+					color : [ '#00ced1' ],
+					tooltip : {
+						trigger: 'axis'
+					},
+					legend: {
+						data:['平均分']
+					},
+					toolbox: {
+						show : true,
+					},
+					calculable : true,
+					xAxis : [
+						{
+							type : 'category',
+							boundaryGap : false,
+							data : ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月']
+						}
+					],
+					yAxis : [
+						{
+							type : 'value',
+							min : 700 ,
+						    max : 1000,
+							axisLabel : {
+								formatter: '{value}'
+							}
+						}
+					],
+					series : [
+						{
+							name:'平均分',
+							type:'line',
+							data:[800, 790, 780, 900, 1000,780, 1000,880,900,950,900,800,790],
+							markPoint : {
+								data : [
+									{type : 'max', name: '最大值'},
+									{type : 'min', name: '最小值'}
+								]
+							},
+							markLine : {
+								data : [
+									{type : 'average', name: '平均值'}
+								]
+							}
+						},
+						
+					]
+				};
+						return option;
+		}
+			
+
+        /**
+		 * 图二
+		 */
+		function company_points_assess(){
+			option = {
+				tooltip : {
+					trigger: 'item',
+					formatter: "{a} <br/>{b} : {c} ({d}%)"
+				},
+				toolbox: {
+					show : true,
+					feature : {
+					
+						magicType : {
+						
+							type: ['pie', 'funnel'],
+							option: {
+								funnel: {
+									x: '25%',
+									width: '50%',
+									funnelAlign: 'left',
+									max: 1548
+								}
+							}
+						},
+					}
+				},
+				calculable : true,
+				series : [
+					{
+						name:'访问来源',
+						type:'pie',
+						radius : '65%',
+						center: ['50%', '50%'],
+						data:[
+							{value:335, name:'0-15分'},
+							{value:310, name:'15-50分'},
+							{value:234, name:'50分以上'},
+							{value:135, name:'满分'}
+						]
+					}
+				]
+			};
+                    
+			return option;
+		}
+
+        /**
+		 * 图三 
+		 */
+		function road_manager_score_rank(){
+			option = {
+				color : [ '#00ced1' ],// 条形图颜色
+				tooltip : {
+					trigger: 'axis'
+				},
+				
+				calculable : true,
+				xAxis : [
+					{
+						type : 'category',
+						data : ['连云港','南通','盐城']
+					}
+				],
+				yAxis : [
+					{
+						type : 'value',
+						min : 900 ,
+						max : 1000
+					}
+				],
+				series : [
+					{
+						
+						type:'bar',
+						data:[980, 950, 1000],
+					    itemStyle: {
+						normal: {
+							label: {
+								show: true,
+								position: 'insideTop'
+							}
+						}
+					},
+						markLine : {
+							data : [
+								{type : 'average', name: '平均值'}
+							]
+						}
+					}   
+				]
+			};
+                    		
+					return option;
+	   }
+
+        /**
+		 * 图四
+		 */
+		function company_stationAll_rank(){
+					option = {
+				color : [ '#00ced1' ],// 条形图颜色
+				tooltip : {
+					trigger: 'axis'
+				},
+				legend: {
+					data:['平均分']
+				},
+				calculable : true,
+				xAxis : [
+					{
+						type : 'category',
+						data : ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
+					}
+				],
+				yAxis : [
+					{
+						type : 'value',
+						min : 900 ,
+						max : 1000
+					}
+				],
+				series : [
+					{
+						name:'平均分',
+						type:'bar',
+						data:[910.0, 920, 945, 930, 970, 950, 955, 945, 985.6, 990.0, 975.4, 950.3],
+					    itemStyle: {
+						normal: {
+							label: {
+								show: true,
+								position: 'insideTop'
+							}
+						}
+					},
+						markLine : {
+							data : [
+								{type : 'average', name: '平均值'}
+							]
+						}
+					}   
+				]
+			};
+							
+					return option;
+				}
+
+         /**
+		 * 图五
+		 */
+		function server_check_type(){
+			option = {
+				tooltip : {
+					trigger: 'item',
+					formatter: "{a} <br/>{b} : {c} ({d}%)"
+				},
+				toolbox: {
+					show : true,
+					feature : {
+					
+						magicType : {
+						
+							type: ['pie', 'funnel'],
+							option: {
+								funnel: {
+									x: '25%',
+									width: '50%',
+									funnelAlign: 'left',
+									max: 1548
+								}
+							}
+						},
+					}
+				},
+				calculable : true,
+				series : [
+					{
+						name:'访问来源',
+						type:'pie',
+						radius : '65%',
+						center: ['50%', '50%'],
+						data:[
+							{value:335, name:'环境卫生'},
+							{value:310, name:'仪容仪表'},
+							{value:234, name:'表情'},
+							{value:135, name:'收费动作'},
+							{value:335, name:'文明用语'},
+							{value:310, name:'工作纪律'},
+							{value:234, name:'便民服务'},
+							{value:135, name:'安全管理'}
+						]
+					}
+				]
+			};
+			return option;
+		}
+
+        /**
+		 * 图六 
+		 */
+		function each_people_points(){
+					option = {
+			tooltip : {
+				trigger: 'axis'
+			},
+			legend: {
+				data:['上月','本月']
+			},
+			calculable : true,
+			xAxis : [
+				{
+					type : 'category',
+					data : ['环境卫生','仪容仪表','表情','收费动作','文明用语','工作纪律','便民服务','安全管理']
+				}
+			],
+			yAxis : [
+				{
+					type : 'value'
+				}
+			],
+			series : [
+				{
+					name:'上月',
+					type:'bar',
+					data:[200.0, 400.9, 700.0, 230.2, 253.6, 760.7,880,500],
+					itemStyle: {
+						normal: {
+							label: {
+								show: true,
+								position: 'insideTop'
+							}
+						}
+					},
+				},
+				{
+					name:'本月',
+					type:'bar',
+					data:[200.6, 500.9, 900.0, 260.4, 280.7, 700.7,500,800],
+					itemStyle: {
+						normal: {
+							label: {
+								show: true,
+								position: 'insideTop'
+							}
+						}
+					},
+				}
+			]
+		};					
+					return option;
+			}
+			
+		}
+  ); 
+
+   
+});

+ 36 - 2
VisualInspection/js/util/video.js

@@ -4,7 +4,41 @@ function setProgress(percent){
 }
 
 function doAction(func){
-    callFunc(func, '');
+    if(func.indexOf("video")!=-1){
+       if(func.indexOf("start")!=-1){
+            $("#video_btn_start").addClass("hidden");
+            $("#video_btn_stop").removeClass("hidden");
+            if($("#full_video_btn_start").length>0){
+               $("#full_video_btn_start").addClass("hidden");
+               $("#full_video_btn_stop").removeClass("hidden");
+            }
+       }
+        if(func.indexOf("stop")!=-1){
+            $("#video_btn_start").removeClass("hidden");
+            $("#video_btn_stop").addClass("hidden");
+            if($("#full_video_btn_start").length>0){
+               $("#full_video_btn_stop").addClass("hidden");
+               $("#full_video_btn_start").removeClass("hidden");
+            }
+       }
+       callFunc(func, '');
+    }else{
+       callFunc(func, '');
+    }
+   
+}
+
+function setVideoPos(){
+
+   var pos = $("#video_pos").val();
+   if($("#full_video_pos").length >0){
+       pos = $("#full_video_pos").val();
+   }
+   
+   if(/^(\+|-)?\d+($|\.\d+$)/.test(pos)){
+       callFunc("video_pos", pos);
+   }
+
 }
 
 function queryVideoList(){
@@ -65,7 +99,7 @@ function setCurrentProcessValue(value){
     var vv =maxVV*(value/100)
 
     $("#ex1").slider('setValue',parseInt(vv));
-     if($("#full_ex1")){
+     if($("#full_ex1").length>0){
          $("#full_ex1").slider('setValue',parseInt(vv));
     }
 }

+ 3 - 2
VisualInspection/view/statistics/assess_type.html

@@ -30,12 +30,13 @@
                         <tr>
                         <th rowspan="2" width="67px">道管整体排名</th><th rowspan="2" width="67px">单位</th><th rowspan="2" width="67px">管道内收费站排名</th>
                         <th rowspan="2" width="85px">单位</th><th rowspan="2" width="67px">收费值机岗位人数</th><th rowspan="2" width="67px">被检查人数</th>
-                        <th rowspan="2" width="67px">受检次数</th><th colspan="7" height="40px">存在问题扣分详情</th>
+                        <th rowspan="2" width="67px">受检次数</th><th colspan="9" height="40px">存在问题扣分详情</th>
                         <th rowspan="2">受检人平均每人次扣分(千分制)</th><th rowspan="2">管道中心受检人平均每人次扣分(千分制)</th>
                         </tr>
                         <tr> 
                         <th width="67px">环境卫生</th><th width="67px">仪容仪表</th><th width="67px">表情</th>
-                        <th width="67px">收费动作</th><th width="67px">文明用语</th><th width="67px">工作纪律</th><th width="67px">扣分合计</th>
+                        <th width="67px">收费动作</th><th width="67px">文明用语</th><th width="67px">工作纪律</th>
+                        <th width="67px">便民服务</th><th width="67px">安全管理</th><th width="67px">扣分合计</th>
                         </tr>
                  </thead>
                     <tbody class="table-tbody" style="background:white" align="center">

+ 98 - 0
VisualInspection/view/statistics/check_workload_statistics.html

@@ -0,0 +1,98 @@
+<script src="/js/lib/echarts/build/dist/echarts.js"></script>
+<!--<script src="/js/statistics/check_workload_statistics.js"></script>-->
+<link rel="stylesheet" type="text/css" href="/css/statistics/check_workload_statistics.css">
+<div class="container-right">
+    <div class="row-1"><span>个人数据统计</span></div>
+    <div class="line-1"></div>
+    <div class="row-2">
+        <div>
+            <div class="name1"><span>刘娟</span></div>
+            <div class="name2"><span>、</span><span>王海</span></div>
+            <div class="div-select div-button"><button>选择人员</button></div>
+            <div class="div-start"><select><option>请选择考核开始时间</option></select></div>
+            <div class="div-to"><label>-</label></div>
+            <div class="div-end"><select><option>请选择考核结束时间</option></select></div>
+            <div class="query div-button"><button>查询</button></div>
+        </div>
+    </div> 
+
+    <div class="row-3">
+       <table class="table table-bordered" style="text-align:center;">
+           <tr><td>总稽查人数</td><td>总稽查任务数</td><td>总稽查时长</td><td>考核人员数量</td><td>总扣分数</td><td>平均人次扣分数</td></tr>
+           <tr><td>15</td><td>150</td><td>1小时20分</td><td>20</td><td>3000</td><td>200</td></tr>
+       </table>
+    </div>
+
+     <!-- 使用一个div来显示数据表格 -->
+<div class="datatable" data-checkable="false" data-sortable="false">
+        <table class="table table-bordered table-hover table-striped" style="text-align:center;">
+            <thead>
+                  <tr>
+                    <th width="6%" style="text-align:center;">序号</th>
+                    <th width="8%" style="text-align:center;">稽查人员</th>
+                    <th width="14%" style="text-align:center;">任务名称</th>
+                    <th width="14%" style="text-align:center;">时间段</th>
+                    <th width="8%" style="text-align:center;">考核人员</th>
+                    <th width="8%" style="text-align:center;">考核部门</th>
+                    <th width="8%" style="text-align:center;">扣分数</th>
+                    <th width="14%" style="text-align:center;">考核项</th>
+                    <th width="20%" style="text-align:center;">扣分凭证</th>
+                </tr>
+            </thead>
+            <tbody class="table-tbody">
+                <tr style="height:70px;">
+                    <td style="line-height:70px;">1</td>
+                    <td style="line-height:70px;">刘娟</td>
+                    <td style="line-height:70px;">20170626收费站稽查任务</td>
+                    <td style="line-height:70px;">2017-06-16 12:00~13:00</td>
+                    <td style="line-height:70px;">李艳芳</td>
+                    <td style="line-height:70px;">收费站</td>
+                    <td style="line-height:70px;">5分</td>
+                    <td style="line-height:70px;">光头、胡须、长鬓角</td>
+                    <td style="line-height:70px;">监控照片</td>
+                </tr>
+                <tr style="height:70px;">
+                    <td style="line-height:70px;">2</td>
+                    <td style="line-height:70px;">刘娟</td>
+                    <td style="line-height:70px;">20170626收费站稽查任务</td>
+                    <td style="line-height:70px;">2017-06-16 12:00~13:00</td>
+                    <td style="line-height:70px;">李艳芳</td>
+                    <td style="line-height:70px;">收费站</td>
+                    <td style="line-height:70px;">5分</td>
+                    <td style="line-height:70px;">光头、胡须、长鬓角</td>
+                    <td style="line-height:70px;">监控照片</td>
+                </tr>
+                <tr style="height:70px;">
+                    <td style="line-height:70px;">3</td>
+                    <td style="line-height:70px;">王海</td>
+                    <td style="line-height:70px;">20170626收费站稽查任务</td>
+                    <td style="line-height:70px;">2017-06-16 12:00~13:00</td>
+                    <td style="line-height:70px;">李艳芳</td>
+                    <td style="line-height:70px;">收费站</td>
+                    <td style="line-height:70px;">5分</td>
+                    <td style="line-height:70px;">光头、胡须、长鬓角</td>
+                    <td style="line-height:70px;">监控照片</td>
+                </tr>
+                <tr style="height:70px;">
+                    <td style="line-height:70px;">4</td>
+                    <td style="line-height:70px;">王海</td>
+                    <td style="line-height:70px;">20170626收费站稽查任务</td>
+                    <td style="line-height:70px;">2017-06-16 12:00~13:00</td>
+                    <td style="line-height:70px;">李艳芳</td>
+                    <td style="line-height:70px;">收费站</td>
+                    <td style="line-height:70px;">5分</td>
+                    <td style="line-height:70px;">光头、胡须、长鬓角</td>
+                    <td style="line-height:70px;">监控照片</td>
+                </tr>
+        
+            </tbody>
+        </table>             
+</div>
+<!--分页-->
+<div></div>
+
+  
+</div>
+
+
+       

+ 7 - 8
VisualInspection/view/statistics/emp_ranking.html

@@ -45,18 +45,17 @@
                         <thead class="table-thead" align="center">
                             <tr>
                             <th rowspan="2" width="67px;">序号</th><th rowspan="2" width="87px">站名</th><th rowspan="2" width="67px">姓名</th>
-                            <th rowspan="2" width="67px">岗位</th><th rowspan="2" width="87px">工号</th><th colspan="7" height="40px">考核扣分</th>
-                            <th rowspan="2" width="67px">受检次数</th><th rowspan="2" width="67px">平均扣分(千分制)</th><th width="55px">得分</th>
-                            <th rowspan="2" width="55px">服务评价</th><th rowspan="2">备注</th>
+                            <th rowspan="2" width="67px">岗位</th><th rowspan="2" width="87px">工号</th><th colspan="9" height="40px">考核扣分</th>
+                            <th rowspan="2" width="67px">受检次数</th><th rowspan="2" width="67px">平均扣分(千分制)</th><th rowspan="2" width="55px">得分</th>
+                            <th rowspan="2" width="58px">服务评价</th><th rowspan="2">备注</th>
                             </tr>
                             <tr> 
-                            <th width="55px">环境卫生</th><th width="55px">仪容仪表</th><th width="55px">表情</th>
-                            <th width="55px">收费动作</th><th width="55px">文明用语</th><th width="55px">工作纪律</th>
-                            <th width="55px">扣分合计</th>
+                            <th width="58px">环境卫生</th><th width="58px">仪容仪表</th><th width="58px">表情</th>
+                            <th width="58px">收费动作</th><th width="58px">文明用语</th><th width="58px">工作纪律</th>
+                            <th width="58px">便民服务</th><th width="58px">安全管理</th>
+                            <th width="58px">扣分合计</th>
                             </tr>
                         </thead>
-                       
-
                     </table>
                 </div>
             </div>

+ 116 - 0
VisualInspection/view/statistics/personal_data_statistics.html

@@ -0,0 +1,116 @@
+<script src="/js/lib/echarts/build/dist/echarts.js"></script>
+<script src="/js/statistics/personal_data_statistics.js"></script>
+<link rel="stylesheet" type="text/css" href="/css/statistics/personal_data_statistics.css">
+<div class="container-right">
+    <div class="row-1"><span>个人数据统计</span></div>
+    <div class="line-1"></div>
+    <div class="row-2">
+        <div>
+            <div class="name"><span>刘娟</span></div>
+            <div class="div-select div-button"><button>选择人员</button></div>
+            <div class="div-start"><select><option>请选择考核开始时间</option></select></div>
+            <div class="div-to"><label>-</label></div>
+            <div class="div-end"><select><option>请选择考核结束时间</option></select></div>
+            <div class="div-check"><select><option>请选择温馨服务检查类别</option></select></div>
+            <div class="query div-button"><button>查询</button></div>
+            <div class="export div-button"><button>导出</button></div>
+        </div>
+    </div> 
+    <div class="line-1"></div>
+    <div class="row-3">
+        <div class="dept">
+            <div style="margin-top:14px;">
+            <span>部门</span><br/><br/>   
+            <a>收费站</a>
+            </div>
+        </div>
+        <div class="line-4"></div>
+        <div class="job">
+            <div style="margin-top:14px;">
+            <span>职务</span><br/><br/>
+            <a>收费员</a>
+            </div>
+        </div>
+        <div class="line-5"></div>
+        <div class="current-month">
+            <span style="margin-left:20px;">本月:</span>
+            <span style="margin-left:50px;">部门排名:</span><span>6</span>
+            <span style="margin-left:50px;">总排名:</span><span>20</span>
+            <span style="margin-left:50px;">总扣分:</span><span>120</span>
+            <span style="margin-left:50px;">平均单项扣分:</span><span>11</span>
+        </div>
+        <div class="line-6"></div>
+        <div class="next-month">
+            <span style="margin-left:20px;">下月:</span>
+            <span style="margin-left:50px;">部门排名:</span><span>6</span>
+            <span style="margin-left:50px;">总排名:</span><span>20</span>
+            <span style="margin-left:50px;">总扣分:</span><span>120</span>
+            <span style="margin-left:50px;">平均单项扣分:</span><span>11</span>
+        </div>
+    </div>
+    <div class="line-1"></div>
+
+     <!-- 使用一个div来显示数据表格 -->
+<div class="datatable" data-checkable="false" data-sortable="false">
+        <table class="table table-bordered table-hover table-striped" style="text-align:center;">
+            <thead>
+                <tr>
+                    <th width="14%" style="text-align:center;">序号</th>
+                    <th width="24%" style="text-align:center;">时间段</th>
+                    <th width="14%" style="text-align:center;">扣分数</th>
+                    <th width="24%" style="text-align:center;">考核项</th>
+                    <th width="24%" style="text-align:center;">扣分凭证</th>
+                </tr>
+            </thead>
+            <tbody class="table-tbody">
+                <tr style="height:70px;">
+                    <td style="line-height:70px;">1</td>
+                    <td style="line-height:70px;">2017-06-16 12:00~13:00</td>
+                    <td style="line-height:70px;">5</td>
+                    <td style="line-height:70px;">光头、胡须、长鬓角</td>
+                    <td style="line-height:70px;">监控照片</td>
+                </tr>
+                <tr style="height:70px;">
+                    <td style="line-height:70px;">2</td>
+                    <td style="line-height:70px;">2017-06-16 12:00~13:00</td>
+                    <td style="line-height:70px;">5</td>
+                    <td style="line-height:70px;">光头、胡须、长鬓角</td>
+                    <td style="line-height:70px;">监控照片</td>
+                </tr>
+                <tr style="height:70px;">
+                    <td style="line-height:70px;">3</td>
+                    <td style="line-height:70px;">2017-06-16 12:00~13:00</td>
+                    <td style="line-height:70px;">5</td>
+                    <td style="line-height:70px;">光头、胡须、长鬓角</td>
+                    <td style="line-height:70px;">监控照片</td>
+                </tr>
+                <tr style="height:70px;">
+                    <td style="line-height:70px;">4</td>
+                    <td style="line-height:70px;">2017-06-16 12:00~13:00</td>
+                    <td style="line-height:70px;">5</td>
+                    <td style="line-height:70px;">光头、胡须、长鬓角</td>
+                    <td style="line-height:70px;">监控照片</td>
+                </tr>
+                
+            </tbody>
+        </table>             
+</div>
+<!--分页-->
+<div></div>
+    
+  <div class="border-line">
+    <div class="row-7">
+        <div class="col-1"><span>个人得分统计</span></div><div class="line-2"></div>
+        <div class="col-1"><span>个人温馨服务检查问题类别占比</span></div>
+    </div>
+    <div class="row-8">
+        <div id="personal-score-statistics" style="width:49%;height:400px;float:left;"></div>
+        <div class="line-3"></div>
+        <div id="personal-check-type" style="width:49%;height:400px;float:left;"></div>
+    </div>
+  </div>
+  
+</div>
+
+
+       

+ 58 - 0
VisualInspection/view/statistics/road_manage_statistics.html

@@ -0,0 +1,58 @@
+<script src="/js/lib/echarts/build/dist/echarts.js"></script>
+<script src="/js/statistics/road_manage_statistics.js"></script>
+<link rel="stylesheet" type="text/css" href="/css/statistics/road_manage_statistics.css">
+<div class="container-right">
+    <div class="row-1"><span>道管中心统计</span></div>
+    <div class="line-1"></div>
+    <div class="row-2">
+        <div><div class="div-month"><select><option>一月</option></select></div>
+        <div class="div-roadManage"><select><option>连云港</option></select></div>
+        <div class="div-button"><button>查询</button></div></div>
+    </div>
+    <div class="line-1"></div>
+
+    <div class="border-line">
+    <div class="row-3"><div><span>道管中心12个月考核得分总体变化趋势分析</span></div></div>
+    <div id="roadManager-year-assess" style="height: 100%;height:400px;"></div>
+    </div>
+
+    <div class="border-line">
+    <div class="row-4">
+        <div class="col-1"><span>道管中心考核扣分情况占比</span></div><div class="line-2"></div>
+        <div class="col-1"><span>收费站得分排名</span></div>
+    </div>
+    <div class="row-5">
+        <div id="roadManager-points-assess" style="width:49%;height:400px;float:left;"></div>
+        <div class="line-3"></div>
+        <div id="tollStation-score-rank" style="width:49%;height:400px;float:left;"></div>
+    </div>
+    </div>
+
+  <div class="border-line">
+    <div class="row-7">
+        <div class="col-1"><span>人员考核得分前十名</span></div><div class="line-2"></div>
+        <div class="col-1"><span>人员考核得分后十名</span></div>
+    </div>
+    <div class="row-8">
+        <div id="people-rank-pre" style="width:49%;height:400px;float:left;"></div>
+        <div class="line-3"></div>
+        <div id="people-rank-suf" style="width:49%;height:400px;float:left;"></div>
+    </div>
+  </div>
+
+  <div class="border-line">
+    <div class="row-7">
+        <div class="col-1"><span>温馨服务检查问题类别占比</span></div><div class="line-2"></div>
+        <div class="col-1"><span>各个问题类别的人均扣分情况</span></div>
+    </div>
+    <div class="row-8">
+        <div id="server-check-type" style="width:49%;height:400px;float:left;"></div>
+        <div class="line-3"></div>
+        <div id="each-people-points" style="width:49%;height:400px;float:left;"></div>
+    </div>
+  </div>
+  
+</div>
+
+
+       

+ 0 - 5
VisualInspection/view/statistics/static1.html

@@ -1,5 +0,0 @@
-<img src="/images/static1.png"></img>
-<script type="text/javascript">
-
-//  $("#main_content_title").html("总体考核分析")
-</script>

+ 0 - 5
VisualInspection/view/statistics/static2.html

@@ -1,5 +0,0 @@
-<img src="/images/static2.png"></img>
-<script type="text/javascript">
-
-//  $("#main_content_title").html("考核扣分等级分析")
-</script>

+ 0 - 5
VisualInspection/view/statistics/static3.html

@@ -1,5 +0,0 @@
-<img src="/images/static3.png"></img>
-<script type="text/javascript">
-
-//  $("#main_content_title").html("考核问题分布")
-</script>

+ 0 - 5
VisualInspection/view/statistics/static4.html

@@ -1,5 +0,0 @@
-<img src="/images/static4.png"></img>
-<script type="text/javascript">
-
-//  $("#main_content_title").html("员工排名分析")
-</script>

+ 0 - 5
VisualInspection/view/statistics/static5.html

@@ -1,5 +0,0 @@
-<img src="/images/static5.png"></img>
-<script type="text/javascript">
-
-//  $("#main_content_title").html("个人考核情况")
-</script>

+ 53 - 0
VisualInspection/view/statistics/toll_station_statistics.html

@@ -0,0 +1,53 @@
+<script src="/js/lib/echarts/build/dist/echarts.js"></script>
+<script src="/js/statistics/toll_station_statistics.js"></script>
+<link rel="stylesheet" type="text/css" href="/css/statistics/toll_station_statistics.css">
+<div class="container-right">
+    <div class="row-1"><span>收费站统计</span></div>
+    <div class="line-1"></div>
+    <div class="row-2">
+        <div><div class="div-month"><select><option>一月</option></select></div>
+        <div class="div-roadManage"><select><option>连云港</option></select></div>
+        <div class="div-station"><select><option>灌云北</option></select></div>
+        <div class="div-button"><button>查询</button></div></div>
+    </div>
+    <div class="line-1"></div>
+
+    <div class="border-line">
+    <div class="row-3"><div><span>收费站12个月考核得分总体变化趋势分析</span></div></div>
+    <div id="tollStation-year-assess" style="height: 100%;height:400px;"></div>
+    </div>
+
+    <div class="border-line">
+    <div class="row-4">
+        <div class="col-1"><span>收费站考核扣分情况占比</span></div><div class="line-2"></div>
+        <div class="col-1"><span>考核进步Top5排行榜</span></div>
+    </div>
+    <div class="row-5">
+        <div id="tollStation-points-assess" style="width:49%;height:400px;float:left;"></div>
+        <div class="line-3"></div>
+        <div id="progress-rank-assess" style="width:49%;height:400px;float:left;"></div>
+    </div>
+    </div>
+
+    
+    <div class="border-line">
+    <div class="row-6"><div><span>考核得分排行榜</span></div></div>
+    <div id="people-score-rank" style="height: 100%;height:400px;"></div>
+    </div>
+    
+  <div class="border-line">
+    <div class="row-7">
+        <div class="col-1"><span>温馨服务检查问题类别占比</span></div><div class="line-2"></div>
+        <div class="col-1"><span>各个问题类别的人均扣分情况</span></div>
+    </div>
+    <div class="row-8">
+        <div id="server-check-type" style="width:49%;height:400px;float:left;"></div>
+        <div class="line-3"></div>
+        <div id="each-people-points" style="width:49%;height:400px;float:left;"></div>
+    </div>
+  </div>
+  
+</div>
+
+
+       

+ 53 - 0
VisualInspection/view/statistics/total_company_statistics.html

@@ -0,0 +1,53 @@
+<script src="/js/lib/echarts/build/dist/echarts.js"></script>
+<script src="/js/statistics/total_company_statistics.js"></script>
+<link rel="stylesheet" type="text/css" href="/css/statistics/total_company_statistics.css">
+<div class="container-right">
+    <div class="row-1"><span>公司统计</span></div>
+    <div class="line-1"></div>
+    <div class="row-2">
+        <div>
+            <div class="div-month"><select><option>一月</option></select></div>
+            <div class="div-button"><button>查询</button></div>
+        </div>
+    </div>
+    <div class="line-1"></div>
+
+    <div class="border-line">
+    <div class="row-3"><div><span>公司12个月考核得分总体变化趋势分析</span></div></div>
+    <div id="company-year-assess" style="height: 100%;height:400px;"></div>
+    </div>
+
+    <div class="border-line">
+    <div class="row-4">
+        <div class="col-1"><span>公司考核扣分情况占比</span></div><div class="line-2"></div>
+        <div class="col-1"><span>道管中心得分排名</span></div>
+    </div>
+    <div class="row-5">
+        <div id="company-points-assess" style="width:49%;height:400px;float:left;"></div>
+        <div class="line-3"></div>
+        <div id="roadManager-score-rank" style="width:49%;height:400px;float:left;"></div>
+    </div>
+    </div>
+
+    
+    <div class="border-line">
+    <div class="row-6"><div><span>公司全体收费站排名</span></div></div>
+    <div id="company-stationAll-rank" style="height: 100%;height:400px;"></div>
+    </div>
+    
+  <div class="border-line">
+    <div class="row-7">
+        <div class="col-1"><span>温馨服务检查问题类别占比</span></div><div class="line-2"></div>
+        <div class="col-1"><span>各个问题类别的人均扣分情况</span></div>
+    </div>
+    <div class="row-8">
+        <div id="server-check-type" style="width:49%;height:400px;float:left;"></div>
+        <div class="line-3"></div>
+        <div id="each-people-points" style="width:49%;height:400px;float:left;"></div>
+    </div>
+  </div>
+  
+</div>
+
+
+       

+ 1 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/mapper/cluster/UserInfoMapper.xml

@@ -12,6 +12,7 @@
         <result property="idno" column="idno" jdbcType="VARCHAR"/>
         <result property="pic" column="pic" jdbcType="VARCHAR"/>
         <result column="workno" property="workno" jdbcType="VARCHAR" />
+        <result column="fee_station_name" property="fee_station_name" jdbcType="VARCHAR" />
     </resultMap>
     <resultMap id="userMap" type="com.xintong.visualinspection.bean.User">
         <id property="id" column="ID"/>

+ 11 - 7
VisualInspection_server/src/main/java/com/xintong/visualinspection/mapper/master/StatisticsMapper.xml

@@ -5,10 +5,11 @@
     <select id="selectStatistics" parameterType="com.xintong.visualinspection.bean.StatisticsBean" resultType="com.xintong.visualinspection.bean.StatisticsBean">
     	SELECT  u.checked_person AS user_id , u.checked_dept AS dept_id ,u.parent_id AS item_id ,sum(u.score) AS score ,s.name  FROM (
 			SELECT t.checked_person , t.checked_dept,ci.parent_id, ci.score  FROM check_score t 
-			LEFT JOIN check_item ci ON t.check_item_id = ci.id
+			LEFT JOIN check_item ci ON t.check_item_id = ci.id 
+			LEFT JOIN check_task ct ON ct.id = t.task_id
 			WHERE 1=1 
 			<if test="start_date!=null and end_date != null">
-		        AND	 t.update_time &gt;= #{start_date} AND t.update_time &lt;= #{end_date} 
+		        AND	 ct.start_time &gt;= #{start_date} AND ct.end_time &lt;= #{end_date} AND ct.check_status != 23
 			</if>
 			<if test="dept_id!=null">
 				AND t.checked_dept =#{dept_id}			
@@ -21,7 +22,7 @@
     	SELECT COUNT(1) AS checked_num , t.checked_person AS user_id FROM check_task t 
     	WHERE 1=1 
 			<if test="start_date!=null and end_date != null">
-		        AND	 t.start_time &gt;= #{start_date} AND t.end_time &lt;= #{end_date} 
+		        AND	 t.start_time &gt;= #{start_date} AND t.end_time &lt;= #{end_date}   AND t.check_status != 23
 			</if>
 			<if test="dept_id!=null">
 				AND t.checked_dept =#{dept_id}			
@@ -33,17 +34,19 @@
     	SELECT COUNT(DISTINCT( t.checked_person )) AS checked_people_num , COUNT(t.checked_person) AS checked_num  ,t.checked_dept AS dept_id FROM check_task  t
     	WHERE 1=1
     		<if test="start_date!=null and end_date != null">
-		        AND	 t.start_time &gt;= #{start_date} AND t.end_time &lt;= #{end_date} 
+		        AND	 t.start_time &gt;= #{start_date} AND t.end_time &lt;= #{end_date}   AND t.check_status != 23
 			</if>
     	 GROUP BY t.checked_dept
     </select>
     
     <select id="selectFeeStationCheckedScore" parameterType="com.xintong.visualinspection.bean.StatisticsBean" resultType="com.xintong.visualinspection.bean.StatisticsBean">
     	SELECT sum(c.score) AS score ,t.checked_dept AS dept_id 
-    		FROM check_score t LEFT JOIN check_item c ON t.check_item_id = c.id
+    		FROM check_score t 
+    		LEFT JOIN check_item c ON t.check_item_id = c.id
+    		LEFT JOIN check_task ct ON ct.id = t.task_id
     		WHERE 1=1
     		<if test="start_date!=null and end_date != null">
-		        AND	 t.update_time &gt;= #{start_date} AND t.update_time &lt;= #{end_date} 
+		        AND	 ct.start_time &gt;= #{start_date} AND ct.end_time &lt;= #{end_date}  AND ct.check_status != 23
 			</if>
     		GROUP BY t.checked_dept,t.checked_person
     </select>
@@ -52,9 +55,10 @@
     	    SELECT  u.checked_dept AS dept_id ,u.parent_id AS item_id ,sum(u.score) AS score ,s.name  FROM (
 			SELECT  t.checked_dept,ci.parent_id, ci.score  FROM check_score t 
 			LEFT JOIN check_item ci ON t.check_item_id = ci.id
+			LEFT JOIN check_task ct ON ct.id = t.task_id
 			WHERE 1=1
 			<if test="start_date!=null and end_date != null">
-		        AND	 t.update_time &gt;= #{start_date} AND t.update_time &lt;= #{end_date} 
+		        AND	 ct.start_time &gt;= #{start_date} AND ct.end_time &lt;= #{end_date}  AND ct.check_status != 23
 			</if> )
 			u LEFT JOIN check_item s ON u.parent_id = s.id GROUP  BY dept_id,item_id
     </select>

+ 62 - 23
VisualInspection_server/src/main/java/com/xintong/visualinspection/service/impl/StatisticsServiceImpl.java

@@ -98,12 +98,24 @@ public class StatisticsServiceImpl extends BaseService implements StatisticsServ
 		lists.sort(new Comparator<StatisticsBo>() {
 			@Override
 			public int compare(StatisticsBo o1, StatisticsBo o2) {
-				if (o1.getCheck_all_score() > o2.getCheck_all_score()) {
-					return 1;
-				} else if (o1.getCheck_all_score() < o2.getCheck_all_score()) {
-					return -1;
-				} else {
-					return 0;
+				if(o1.getChecked_num()!=0 && o2.getChecked_num()!=0){
+					double a = o1.getCheck_all_score() / (o1.getChecked_num()+0.00);
+					double b = o2.getCheck_all_score()/(o2.getChecked_num()+0.00);
+					if (a > b ) {
+						return 1;
+					} else if (a < b) {
+						return -1;
+					} else {
+						return 0;
+					}	
+				}else{
+					if(o1.getChecked_num() == 0){
+						return -1 ;
+					}else if(o2.getChecked_num() ==0){
+						return 1;
+					}else{
+						return 0;
+					}
 				}
 			}
 		});
@@ -118,13 +130,14 @@ public class StatisticsServiceImpl extends BaseService implements StatisticsServ
 		Map<Long, StatisticsBean> mapStationInfos = new HashMap<>();
 		int i = 0;
 		for (StatisticsBean sta : lists) {
-			if (i++ < 7) {
+			if (i < 7) {
 				sta.setId(1);
-			} else if (i++ < 13) {
+			} else if (i < 13) {
 				sta.setId(2);
 			} else {
 				sta.setId(3);
 			}
+			i++ ;
 			mapStationInfos.put(sta.getDept_id(), sta);
 		}
 
@@ -160,12 +173,22 @@ public class StatisticsServiceImpl extends BaseService implements StatisticsServ
 				if (o1.getId() > o2.getId()) {
 					return 1;
 				} else if (o1.getId() == o2.getId()) {
-					if (o1.getAll_check_score() > o2.getAll_check_score()) {
-						return 1;
-					} else if (o1.getAll_check_score() < o2.getAll_check_score()) {
-						return -1;
-					} else {
-						return 0;
+					if(o1.getChecked_num()!=0 && o2.getChecked_num()!=0){
+						if (o1.getAll_check_score()/(o1.getChecked_num()+0.0) > o2.getAll_check_score()/(o2.getChecked_num()+0.0) ) {
+							return 1;
+						} else if (o1.getAll_check_score()/(o1.getChecked_num()+0.0) < o2.getAll_check_score()/(o2.getChecked_num()+0.0)) {
+							return -1;
+						} else {
+							return 0;
+						}
+					}else{
+						if(o1.getChecked_num() == 0){
+							return -1 ;
+						}else if(o2.getChecked_num() ==0){
+							return 1;
+						}else{
+							return 0;
+						}
 					}
 				} else {
 					return -1;
@@ -184,13 +207,14 @@ public class StatisticsServiceImpl extends BaseService implements StatisticsServ
 		Map<Long, StatisticsBean> mapStationInfos = new HashMap<>();
 		int i = 0;
 		for (StatisticsBean sta : lists) {
-			if (i++ < 7) {
+			if (i < 7) {
 				sta.setId(1);
-			} else if (i++ < 13) {
+			} else if (i < 13) {
 				sta.setId(2);
 			} else {
 				sta.setId(3);
 			}
+			i++ ;
 			mapStationInfos.put(sta.getDept_id(), sta);
 		}
 
@@ -214,18 +238,29 @@ public class StatisticsServiceImpl extends BaseService implements StatisticsServ
 		}
 
 		List<StatisticsBean> sortList = new ArrayList<>(mapStationInfos.values());
+		
 		sortList.sort(new Comparator<StatisticsBean>() {
 			@Override
 			public int compare(StatisticsBean o1, StatisticsBean o2) {
 				if (o1.getId() > o2.getId()) {
 					return 1;
 				} else if (o1.getId() == o2.getId()) {
-					if (o1.getAll_check_score() > o2.getAll_check_score()) {
-						return 1;
-					} else if (o1.getAll_check_score() < o2.getAll_check_score()) {
-						return -1;
-					} else {
-						return 0;
+					if(o1.getChecked_num()!=0 && o2.getChecked_num()!=0){
+						if (o1.getAll_check_score()/(o1.getChecked_num()+0.0) > o2.getAll_check_score()/(o2.getChecked_num()+0.0) ) {
+							return 1;
+						} else if (o1.getAll_check_score()/(o1.getChecked_num()+0.0) < o2.getAll_check_score()/(o2.getChecked_num()+0.0)) {
+							return -1;
+						} else {
+							return 0;
+						}
+					}else{
+						if(o1.getChecked_num() == 0){
+							return -1 ;
+						}else if(o2.getChecked_num() ==0){
+							return 1;
+						}else{
+							return 0;
+						}
 					}
 				} else {
 					return -1;
@@ -284,6 +319,8 @@ public class StatisticsServiceImpl extends BaseService implements StatisticsServ
 				st.getEmp_item_score().add(getItemScore(st, "动作"));
 				st.getEmp_item_score().add(getItemScore(st, "文明用语"));
 				st.getEmp_item_score().add(getItemScore(st, "工作纪律"));
+				st.getEmp_item_score().add(getItemScore(st, "便民服务"));
+				st.getEmp_item_score().add(getItemScore(st, "安全管理"));
 			} else {
 				it.remove();
 			}
@@ -297,7 +334,7 @@ public class StatisticsServiceImpl extends BaseService implements StatisticsServ
 		List<StatisticsBean> list = getFeeStationCheckedScore(obj);
 		for (StatisticsBean st : list) {
 			st.setCheck_no_score(
-					st.getPeople_num() - st.getScore_fifteen() - st.getScore_fifteen() - st.getScore_over_fifty());
+					st.getPeople_num() - st.getScore_fifteen() - st.getScore_fifty() - st.getScore_over_fifty());
 			st.setCheck_score_avg(
 					(st.getChecked_num() != 0) ? st.getAll_check_score() / (st.getChecked_num() + 0.0f) : 0.00f);
 			st.setScore_avg(String.format("%.2f", 1000.0 - st.getCheck_score_avg()));
@@ -322,6 +359,8 @@ public class StatisticsServiceImpl extends BaseService implements StatisticsServ
 			st.getSeq_checked_score().add(getItemScore2(st, "动作"));
 			st.getSeq_checked_score().add(getItemScore2(st, "文明用语"));
 			st.getSeq_checked_score().add(getItemScore2(st, "工作纪律"));
+			st.getSeq_checked_score().add(getItemScore2(st, "便民服务"));
+			st.getSeq_checked_score().add(getItemScore2(st, "安全管理"));
 		}
 		exportExcel("温馨服务检查情况统计表", "checked_item_info", list, resp);
 	}

BIN=BIN
VisualInspection_server/src/main/resources/checked_info.xls


BIN=BIN
VisualInspection_server/src/main/resources/checked_item_info.xls


BIN=BIN
VisualInspection_server/src/main/resources/employee_order.xls


Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio