Parcourir la source

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

minitiger il y a 8 ans
Parent
commit
6fc9c96d20
18 fichiers modifiés avec 780 ajouts et 121 suppressions
  1. 12 0
      VisualInspection/js/config.js
  2. 481 114
      VisualInspection/js/statistics/assess_ranking.js
  3. 4 1
      VisualInspection/js/statistics/common_attendance.js
  4. 10 0
      VisualInspection/js/statistics/road_manage_statistics.js
  5. 10 2
      VisualInspection/js/statistics/toll_station_statistics.js
  6. 1 1
      VisualInspection_server/src/main/java/com/xintong/visualinspection/bean/StatisticsBean.java
  7. 23 0
      VisualInspection_server/src/main/java/com/xintong/visualinspection/controller/TeamClassController.java
  8. 3 0
      VisualInspection_server/src/main/java/com/xintong/visualinspection/dao/master/TeamClassDao.java
  9. 20 0
      VisualInspection_server/src/main/java/com/xintong/visualinspection/dao/master/UserCountDao.java
  10. 2 2
      VisualInspection_server/src/main/java/com/xintong/visualinspection/mapper/cluster/UserInfoMapper.xml
  11. 27 0
      VisualInspection_server/src/main/java/com/xintong/visualinspection/mapper/master/TeamClassMapper.xml
  12. 39 0
      VisualInspection_server/src/main/java/com/xintong/visualinspection/mapper/master/UserCountMapper.xml
  13. 63 0
      VisualInspection_server/src/main/java/com/xintong/visualinspection/pojo/TeamClass.java
  14. 18 0
      VisualInspection_server/src/main/java/com/xintong/visualinspection/pojo/UserClassCheck.java
  15. 33 0
      VisualInspection_server/src/main/java/com/xintong/visualinspection/pojo/UserClassCount.java
  16. 4 0
      VisualInspection_server/src/main/java/com/xintong/visualinspection/service/TeamClassService.java
  17. 1 1
      VisualInspection_server/src/main/java/com/xintong/visualinspection/service/impl/StatisticsServiceImpl.java
  18. 29 0
      VisualInspection_server/src/main/java/com/xintong/visualinspection/service/impl/TeamClassServiceImpl.java

+ 12 - 0
VisualInspection/js/config.js

@@ -5,6 +5,7 @@ var ISCLIENT = false;
 var base_ui_url = getCurrentaddr();
 var base_server_url = getserveraddr();
 var base_image_server_url = getImageaddr();
+var task_server_url = getTaskaddr();
 
 
 function getCurrentaddr() {
@@ -33,4 +34,15 @@ function getImageaddr() {
     } else {
         return "http://10.112.0.199/"
     }
+}
+
+function getTaskaddr() {
+    if (base_ui_url.indexOf("jsjtyxt.com") != -1) {
+        return "http://task_yanhai.jsxt.jsjtyxt.com/";
+    } else if (base_ui_url.indexOf("localhost") != -1) {
+        // return "http://10.112.0.199:7000/"
+        return "http://localhost:8099/"
+    } else {
+        return "http://10.112.0.199:8099/"
+    }
 }

+ 481 - 114
VisualInspection/js/statistics/assess_ranking.js

@@ -1,12 +1,12 @@
 
 
-$(function(){
+$(function () {
 
     // 道管中心选择变化
-    $("#center-manager").change(function(){
+    $("#center-manager").change(function () {
         $("#fsList").empty();
-        if(GV(this)!=''){
-            getFsStationList(GV(this),function(options){
+        if (GV(this) != '') {
+            getFsStationList(GV(this), function (options) {
                 $("#fsList").append(options);
             });
         }
@@ -14,21 +14,21 @@ $(function(){
     // end
 })
 
-function queryEmpClick(){
+function queryEmpClick() {
     //每次点击前清空表格数据
     $(".table-tbody").empty('');
     var start_date = $("#start-time").val();
     var end_date = $("#end-time").val();
     var start_score = $("#start-score").val();
     var end_score = $("#end-score").val();
-    var flag = param_method(start_score,end_score);
-    if(flag==false){
+    var flag = param_method(start_score, end_score);
+    if (flag == false) {
         return;
     }
-    if( start_date=='' || end_date==''){
+    if (start_date == '' || end_date == '') {
         tip("请选择起止日期");
         return;
-    }else{
+    } else {
         start_date += " 23:00:00";
         end_date += " 23:00:00";
     }
@@ -36,132 +36,499 @@ function queryEmpClick(){
     var endStr = end_date.replace(/-/g, '/');
     var start = new Date(startStr);
     //开始日期取前一天的23:00
-    start.setDate(start.getDate()-1);
+    start.setDate(start.getDate() - 1);
     start_date = start.Format("yyyy-MM-dd HH:mm:ss");
     var end = new Date(endStr);
-    if(start>end){
+    if (start > end) {
         tip("开始时间不能比结束时间大");
         return;
     }
     var param = {
-        "parent_dept_id":GV("#center-manager"),
+        "parent_dept_id": GV("#center-manager"),
         "dept_id": GV("#fsList"),
         "start_date": start_date,
         "end_date": end_date,
     }
     var url = "statistics/employee/order";
-    getEmployeeInfosClick(url,param,start_score,end_score)
+    getEmployeeInfosClick(url, param, start_score, end_score)
 }
 
-function initQueryEmp(){
+function initQueryEmp() {
     //默认初始化前一周查所有
     var endD = new Date();
     var now = new Date();
     var startD = new Date(now.getTime() - 7 * 24 * 3600 * 1000);
-    var start_time = startD.getFullYear()+"-"+(startD.getMonth()+1)+"-"+startD.getDate(); 
-    var end_time = endD.getFullYear()+"-"+(endD.getMonth()+1)+"-"+endD.getDate(); 
+    var start_time = startD.getFullYear() + "-" + (startD.getMonth() + 1) + "-" + startD.getDate();
+    var end_time = endD.getFullYear() + "-" + (endD.getMonth() + 1) + "-" + endD.getDate();
     var start_score = $("#start-score").val();
     var end_score = $("#end-score").val();
     setJobSelect("#jobSelect");
     //默认初始化时间页面回显
     $("#start-time").val(start_time);
     $("#end-time").val(end_time);
-    var start_date = start_time+" 23:00:00"; 
-    var end_date = end_time+" 23:00:00"; 
+    var start_date = start_time + " 23:00:00";
+    var end_date = end_time + " 23:00:00";
 
     var start = new Date(start_date);
     //开始日期取前一天的23:00
-    start.setDate(start.getDate()-1);
+    start.setDate(start.getDate() - 1);
     start_date = start.Format("yyyy-MM-dd HH:mm:ss");
     var param = {
         "start_date": start_date,
         "end_date": end_date,
     }
     var url = "statistics/employee/order";
-    getEmployeeInfosClick(url,param,start_score,end_score);
+    getEmployeeInfosClick(url, param, start_score, end_score);
 }
 /**
  * click
  * @param {*} url 
  * @param {*} param 
  */
-function getEmployeeInfosClick(url,param,start_score,end_score){
-    post_common_service( url,param,function(data){
-        
-        var strTbody='';
-        var count=0;
-        for(var i=0;i<data.length;i++){
-            var score = 1000-filterByZeroHandle(average(data[i]).toFixed(2),'0');
-            var flag = judgeParamFilter(data, i,score, start_score,end_score)
-            if(flag){
-                strTbody+="<tr><td width='4%;'>"+(count+1)+"</td><td width='6%;'>"+data[i].user.fee_station_name+"</td>"
-                +"<td width='6%;'>"+data[i].user.truename+"</td><td width='6%;'>"+data[i].user.position_name+"</td>"
-                +"<td width='6%;'>"+data[i].user.workno+"</td><td width='4%;'>"+data[i].company_ranking+"</td>"
-                +"<td width='4%;'>"+data[i].center_ranking+"</td><td width='4%;'>"+data[i].fee_station_ranking
-                +"</td><td width='4%;'>"+ getItemScore(data[i], '环境') +"</td>"
-                +"<td width='4%;'>"+getItemScore(data[i], '仪容仪表')+"</td><td width='4%;'>"+getItemScore(data[i], '表情')+"</td>"
-                +"<td width='4%;'>"+getItemScore(data[i], '动作')+"</td><td width='4%;'>"+getItemScore(data[i], '文明用语')+"</td>"
-                +"<td width='4%;'>"+ getItemScore(data[i], '工作纪律') +"</td><td width='4%'>"+getItemScore(data[i], '便民服务')+"</td><td width='4%;'>"
-                +getItemScore(data[i], '安全管理')+"</td><td width='4%;'>"+data[i].check_all_score+"</td>"
-                +"<td width='4%;'>"+filter(data[i].checked_num,'0')+"</td><td width='4%;'>"+filterSlash(filterByZeroHandle(average(data[i]).toFixed(2),'0'),filter(data[i].checked_num,'0'))+"</td>"
-                +"<td width='4%;'>"+filterSlash(score,filter(data[i].checked_num,'0'))+"</td><td width='4%;'>"+"</td><td width='4%;'>"+"</td></tr>";
+function getEmployeeInfosClick(url, param, start_score, end_score) {
+    post_common_service(url, param, function (data) {
+
+        var strTbody = '';
+        var count = 0;
+        for (var i = 0; i < data.length; i++) {
+            var score = 1000 - filterByZeroHandle(average(data[i]).toFixed(2), '0');
+            var flag = judgeParamFilter(data, i, score, start_score, end_score)
+            if (flag) {
+
+                html = "<button id=\"user_" + data[i].user.id + "\" onClick='addTask(" + data[i].user.id + ",\"" + param.start_date + "\",\"" + param.end_date + "\")'  class=\"btn\" style='margin-left: 10px;padding: 0px;border: 0;background: none;' type=\"button\"><i class=\"icon icon-plus-sign\"></i></button>"
+
+                strTbody += "<tr><td width='4%;'>" + (count + 1) + "</td><td width='6%;'>" + data[i].user.fee_station_name + "</td>"
+                    + "<td width='6%;'>" + data[i].user.truename + "</td><td width='6%;'>" + data[i].user.position_name + "</td>"
+                    + "<td width='6%;'>" + data[i].user.workno + "</td><td width='4%;'>" + data[i].company_ranking + "</td>"
+                    + "<td width='4%;'>" + data[i].center_ranking + "</td><td width='4%;'>" + data[i].fee_station_ranking
+                    + "</td><td width='4%;'>" + getItemScore(data[i], '环境') + "</td>"
+                    + "<td width='4%;'>" + getItemScore(data[i], '仪容仪表') + "</td><td width='4%;'>" + getItemScore(data[i], '表情') + "</td>"
+                    + "<td width='4%;'>" + getItemScore(data[i], '动作') + "</td><td width='4%;'>" + getItemScore(data[i], '文明用语') + "</td>"
+                    + "<td width='4%;'>" + getItemScore(data[i], '工作纪律') + "</td><td width='4%'>" + getItemScore(data[i], '便民服务') + "</td><td width='4%;'>"
+                    + getItemScore(data[i], '安全管理') + "</td><td width='4%;'>" + data[i].check_all_score + "</td>"
+                    + "<td width='6%;'>" + filter(data[i].checked_num, '0') + (data[i].checked_num < 6 ? html : "") + "</td><td width='4%;'>" + filterSlash(filterByZeroHandle(average(data[i]).toFixed(2), '0'), filter(data[i].checked_num, '0')) + "</td>"
+                    + "<td width='4%;'>" + filterSlash(score, filter(data[i].checked_num, '0')) + "</td><td width='4%;'>" + "</td><td width='4%;'>" + "</td></tr>";
                 count++;
             }
         }
-       $(".table-tbody").append(strTbody);   
-    },function(error){
-        return "" ;
+        $(".table-tbody").append(strTbody);
+    }, function (error) {
+        return "";
     });
 }
 
+
+
+function addTask(userid, start_date, end_date) {
+
+    //获取该人员排班
+    var url = "teamClass/getUserClasss"
+    var param = {
+        "user_id": userid,
+        "start_time": start_date,
+        "end_time": end_date
+    }
+    post_common_service(url, param, function (data) {
+        
+        console.log(data)
+      
+        var tasklist = data.teamClasseList;
+        var userclasslist = data.userClassCountList;
+
+        var allheight = 600;
+        var height = allheight - 150 - 45;
+        var allwidth = 920;
+
+
+        //计算日期
+        var satrtday = new Date(start_date);
+        var endday = new Date(end_date);
+
+        var taskmap= new Map();
+        var userClassmap= new Map();
+     
+
+        for(var i=0;i<tasklist.length;i++){
+            var task = tasklist[i];
+            if(!taskmap.get(task.work_date)){
+               taskmap.put(task.work_date,[]);
+            }
+            var arr = taskmap.get(task.work_date);
+            arr.push(task);
+            taskmap.put(task.work_date,arr);
+        }
+        for(var i=0;i<userclasslist.length;i++){
+            var usercount = userclasslist[i];
+
+            var daytime = new Date(usercount.start_time)
+            if(daytime.getHours()>=23){
+              daytime = new Date(daytime.valueOf()+(1000 * 60 * 60 * 24))
+            }
+            var work_date = daytime.Format("yyyy-MM-dd")+" 00:00";
+
+
+            if(!userClassmap.get(work_date)){
+               userClassmap.put(work_date,[]);
+            }
+            var arr = userClassmap.get(work_date);
+            arr.push(usercount);
+            userClassmap.put(work_date,arr);
+        }
+
+       
+
+       
+
+
+        var days = (endday.valueOf() - satrtday.valueOf()) / (1000 * 60 * 60 * 24);
+        var header = "<td></td>"
+        var nighttd = "<td>夜班</td>"
+        var middletd = "<td>中班</td>"
+        var morningtd = "<td>早班</td>"
+
+        for (var i = 1; i <= days; i++) {
+            var daytime = new Date(satrtday.valueOf() + i * 1000 * 60 * 60 * 24 -1000 * 60 * 60 * 23);
+            var workday = daytime.Format("yyyy-MM-dd HH:mm");
+
+            var html1 = ""
+            var html2 = ""
+            var html3 = ""
+         
+            if(taskmap.get(workday)){
+                var userclassarry = null;
+                if(userClassmap.get(workday)){
+                    userclassarry = userClassmap.get(workday);
+                }
+
+                
+                var arry = taskmap.get(workday);
+               
+                for(var j=0;j<arry.length;j++){
+                    var hasin = false;
+                    var tasktemp = arry[j];
+                    var hasmin = false;
+
+                    var taskfail = false;
+
+                    if(userclassarry!=null){
+                        var d = hasinList(tasktemp,userclassarry)
+                        hasin = d!=null
+
+                        if(hasin){
+                            if(d.check_status == 22){
+                                taskfail = true;
+                            }
+                        }
+                    }
+                    if((new Date(tasktemp.end_time)).valueOf() - (new Date(tasktemp.start_time)).valueOf()< 1000*60*15){
+                        hasmin = true;
+                    }
+
+                    var classname = "btn-primary";
+                    if(hasmin){
+                        classname = "btn-danger disabled";
+                    }
+                    if(hasin){
+                        classname = "btn-success disabled";
+                    }
+                    if(taskfail){
+                        classname = "btn-info disabled";
+                    }
+
+                     
+                    var teamid = tasktemp.class_id +"_"+ ( typeof(tasktemp.unregular_id)=="undefined"?"":tasktemp.unregular_id)
+                    
+                    var name = (new Date(tasktemp.start_time)).Format("HH:mm") + "--"+(new Date(tasktemp.end_time)).Format("HH:mm")
+                    if(tasktemp.class_type==1){
+                         html1+="<div class='row'><button class=\"btn "+classname+" classbtn\" id="+teamid+" data="+workday+" onclick='selectTeamClass(this)'  type=\"button\">"+name+"</button></div>"
+
+                        //  html1 +='<div class="row"><label class="btn '+classname+'"><input type="radio" name="options" id="option2">'+name+'</label></div>'
+                         continue;
+                    }
+                    if(tasktemp.class_type==2){
+                        html2+="<div class='row'><button class=\"btn "+classname+" classbtn\" id="+teamid+"  data="+workday+" onclick='selectTeamClass(this)'  type=\"button\">"+name+"</button></div>"
+                        continue;
+                    }
+                    if(tasktemp.class_type==3){
+                        html3+="<div class='row'><button class=\"btn "+classname+" classbtn\" id="+teamid+"  data="+workday+" onclick='selectTeamClass(this)'   type=\"button\">"+name+"</button></div>"
+                        continue;
+                    }
+                }
+            
+            }
+
+            if(userClassmap.get(workday)){
+                var teamclassarry = null;
+
+                if(taskmap.get(workday)){
+                    teamclassarry = taskmap.get(workday);
+                }
+                var arry = userClassmap.get(workday);
+               
+                for(var j=0;j<arry.length;j++){
+                    var hasin = false;
+                    var usercounttemp = arry[j];
+                    var taskfail = false;
+
+                    if(teamclassarry!=null){
+                        var d = hasinList(usercounttemp,teamclassarry)
+                        hasin = d!=null
+                        
+                        if(usercounttemp.check_status == 22){
+                            taskfail = true;
+                        } 
+                    }
+                     if(usercounttemp.check_status == 22){
+                            taskfail = true;
+                        }
+                    var classname = "btn-warning disabled";
+                    if(hasin){
+                       continue;
+                    }
+                    if(taskfail){
+                        classname = "gimportant disabled";
+                    }
+
+                    
+                    var name = (new Date(usercounttemp.start_time)).Format("HH:mm") + "--"+(new Date(usercounttemp.end_time)).Format("HH:mm")
+                    if(usercounttemp.class_type==1){
+                         html1+="<div class='row'><button class=\"btn "+classname+" classbtn\"  type=\"button\">"+name+"</button></div>"
+                         continue;
+                    }
+                    if(usercounttemp.class_type==2){
+                        html2+="<div class='row'><button class=\"btn "+classname+" classbtn\" type=\"button\">"+name+"</button></div>"
+                        continue;
+                    }
+                    if(usercounttemp.class_type==3){
+                        html3+="<div class='row'><button class=\"btn "+classname+" classbtn\"  type=\"button\">"+name+"</button></div>"
+                        continue;
+                    }
+                }
+            
+            }
+
+       
+
+
+            nighttd+="<td>" + (html3==""?"无":html3) + "</td>"
+            middletd+="<td>" + (html1==""?"无":html1) + "</td>"
+            morningtd+="<td>" + (html2==""?"无":html2) + "</td>"
+            
+
+
+            header += "<td>" + daytime.Format("dd") + "</td>"
+        }
+
+
+
+
+
+
+
+
+        var css = '<style lang="css">' +
+            '.row{' +
+            '     margin-right: 0px; ' +
+            '     margin-left: 0px;' +
+            '}' +
+            '.selecttag{' +
+            '     line-height:32px' +
+            '}' +
+            '.table td {' +
+            '     vertical-align: middle;' +
+            '     text-align: center;' +
+            '     border-left: 1px solid #ddd;' +
+            '     border-right: 1px solid #ddd;' +
+            '     border-top: 1px solid #ddd;' +
+            '}' +
+            '.classbtn{' +
+            '     font-size:10px;' +
+            '     text-align: center;' +
+            '     padding: 0;' +
+            '}' +
+            '.spanclass{' +
+            '     width:10px;' +
+            '     height: 10px;' +
+            '}' +
+            '.gimportant{' +
+            '    background:#BD7B46 !important;' +
+            '    color:#ffffff !important'+
+            '}' +
+            
+            '</style>';
+
+        var table1 = '<div class="row scrollbar" style="height:' + height + 'px;width:' + (allwidth - 21) + 'px;overflow:scroll;padding-top:10px;padding-bottom:10px"><table class="table"  style="height:' + height + 'px;margin:0px">' +
+            '  <tbody>' +
+            '    <tr style="height:10px" >' +
+            header +
+            '    </tr>' +
+            '    <tr class="danger">' +
+            nighttd+
+            '    </tr>' +
+            '    <tr class="warning">' +
+            morningtd+
+            '    </tr>' +
+            '    <tr class="active">' +
+            middletd+
+            '    </tr>' +
+            '  </tbody>' +
+            '</table></div>';
+
+
+        var tips = '<div class="row" style="text-align: left;"><div class="spanclass col-xs-2 " style="background:#38B03F"/><div class="col-xs-10">排班已被稽查</div></div>'+
+                   '<div class="row" style="text-align: left;"><div class="spanclass col-xs-2 " style="background:#3280FC"/><div class="col-xs-10">排班未被稽查</div></div>'+
+                   '<div class="row" style="text-align: left;"><div class="spanclass col-xs-2 " style="background:#F1A325"/><div class="col-xs-10">已稽查但排班被删除</div></div>'+
+                   '<div class="row" style="text-align: left;"><div class="spanclass col-xs-2 " style="background:#EA644A"/><div class="col-xs-10">排班未满15分钟</div></div>'+
+                   '<div class="row" style="text-align: left;"><div class="spanclass col-xs-2 " style="background:#03B8CF"/><div class="col-xs-10">排班已稽查但任务无效</div></div>'+
+                   '<div class="row" style="text-align: left;"><div class="spanclass col-xs-2 " style="background:#BD7B46"/><div class="col-xs-10">已稽查但任务无效且排班已删除</div></div>';
+
+        
+        var selectdiv = '<div class="row" style="text-align: left;"><div class="col-xs-10">已选择的排班:</div></div>'+
+                        '<div class="row" style="text-align: left;"><div class="col-xs-2"/><div class="col-xs-10"><span id="selectedclass" style="font-size:10px"></span></div></div>';
+        
+        var optlist = "";
+        var userlist = data.userList;
+        for(var q=0;q<userlist.length;q++){
+            var user = userlist[q];
+            optlist+='  <option value="'+user.id+'">'+user.truename+'</option>'
+
+        }
+        
+        var html = css + '<div class="row row_alert" style="padding-left:10px;padding-right:10px;">' + table1 + '</div><div class="row row_alert" style="bottom: 0;position: absolute;width: 100%;text-align: right;}">' +
+            '<div class="col-xs-4">'+tips+'</div><div class="col-xs-3">'+selectdiv+'</div><div class="col-xs-3"><span class="selecttag" style="text-align: right;">请分配对应的稽查人员:</span></div><div class="col-xs-2  class="selecttag""><select data-placeholder="选择稽查员" id="selectusers" class="chosen-select form-control" >' +
+            optlist+
+            '</select></div><div class="row row_alert"><button class="btn btn-primary" style="margin:20px;margin-right:10px" onclick="creatTask()" type="button">生成任务</button></div></div>';
+
+
+
+        layer.open({
+            type: 1,
+            title: "生成稽查任务",
+            skin: 'layui-layer-rim', //加上边框
+            area: [allwidth + 'px', allheight + 'px'], //宽高
+            scrollbar: false,
+            content: html
+        });
+
+    });
+
+
+
+
+}
+function selectTeamClass(obj){
+   $("#selectedclass").html( $(obj).attr('data') +" "+ $(obj).html() +"的排班");
+   $("#selectedclass").attr('data',obj.id);
+}
+
+function creatTask(){
+
+    //获取classid
+    var id =  $("#selectedclass").attr('data');
+
+    //获取userid
+    var userid = $("#selectusers").val();
+    if(id!=null && typeof(id)!="undefined"){
+        var ids=id.split("_");
+        var classid = ids[0];
+        var unregular_id = ids[1];
+        var url = task_server_url + "/task/add"
+        if(unregular_id==null||unregular_id==""){
+           url+='?classid='+classid+'&userid='+userid;
+        }else{
+           url+='?classid='+classid+'&unregularid='+unregular_id+'&userid='+userid;
+        }
+        get_common_service(url,'',function(data){
+             tip("已生成",null)
+        },function(error){
+             tip(error,null)
+        })
+
+
+    }else{
+        tip("未选择任务",null)
+    }
+}
+
+
+function hasinList(task,list){
+     var hasin = false;
+     for(var p=0;p<list.length;p++){
+         var userclasscount = list[p];    
+         if(typeof(task.unregular_id)=="undefined"){
+             if(typeof(userclasscount.unregular_id)=="undefined"){
+                if(task.class_id == userclasscount.class_id){
+                     return userclasscount;
+                }else{
+                    continue;
+                }
+            }else{
+                continue;
+            }
+         }else{
+            if(typeof(userclasscount.unregular_id)=="undefined"){
+                continue;
+             }else{
+                if(task.class_id == userclasscount.class_id && userclasscount.unregular_id==task.unregular_id){
+                    return userclasscount;
+                }
+            }
+                              
+        }
+    }
+    return null;
+
+}
+
+
 /**
  * 对于受检次数为0,扣分和得分都为 /
  * @param {*} value , check_num 受此次数
  * @return value or /
  */
-function filterSlash(value,check_num){
-    if(check_num == 0 ){
-        return '/' ;
-    }else{
-        return value ;
+function filterSlash(value, check_num) {
+    if (check_num == 0) {
+        return '/';
+    } else {
+        return value;
     }
 }
 
-function judgeParamFilter(data,i,score, start_score,end_score){
-    var flag1=false;
-    if(score>=parseFloat(start_score) && score<=parseFloat(end_score)){
-        flag1=true;
-    }else{
-        flag1=false; 
-    } 
-    var checkCount = $("#check_count").val();   
-    if(checkCount){
-        if(filter(data[i].checked_num,'0')==checkCount){
-            flag2=true;
-        }else{
-            flag2=false;
+function judgeParamFilter(data, i, score, start_score, end_score) {
+    var flag1 = false;
+    if (score >= parseFloat(start_score) && score <= parseFloat(end_score)) {
+        flag1 = true;
+    } else {
+        flag1 = false;
+    }
+    var checkCount = $("#check_count").val();
+    if (checkCount) {
+        if (filter(data[i].checked_num, '0') == checkCount) {
+            flag2 = true;
+        } else {
+            flag2 = false;
         }
-    }else{
-        flag2=true;
+    } else {
+        flag2 = true;
     }
     var jobSelect = $("#jobSelect").val();
-    if(jobSelect){
-        if(data[i].user.positionid==jobSelect){
-            flag3=true;
-        }else{
-            flag3=false;  
+    if (jobSelect) {
+        if (data[i].user.positionid == jobSelect) {
+            flag3 = true;
+        } else {
+            flag3 = false;
         }
-    }else{
-        flag3=true;
+    } else {
+        flag3 = true;
     }
-    return flag1&flag2&flag3;
+    return flag1 & flag2 & flag3;
 }
 
-function average(obj){
-    if(filter(obj.checked_num,'0') == 0){
-        return 0 ;
-    }else{
-        return obj.check_all_score / filter(obj.checked_num,'1')
+function average(obj) {
+    if (filter(obj.checked_num, '0') == 0) {
+        return 0;
+    } else {
+        return obj.check_all_score / filter(obj.checked_num, '1')
     }
 }
 
@@ -170,13 +537,13 @@ function average(obj){
  * @param {*} value 
  * @param {*} default_display_value 
  */
-function filter(value , default_display_value){
-    if(value!='' && value!=undefined ){
-        return value ;
-    }else if(default_display_value != undefined){
-        return default_display_value ;
-    }else{
-        return "" ;
+function filter(value, default_display_value) {
+    if (value != '' && value != undefined) {
+        return value;
+    } else if (default_display_value != undefined) {
+        return default_display_value;
+    } else {
+        return "";
     }
 }
 
@@ -185,16 +552,16 @@ function filter(value , default_display_value){
  * @param {*} obj 
  * @param {*} check_item_name 
  */
-function getItemScore(obj, check_item_name){
-    var names = obj.checked_socre_name ;
-    var scores = obj.checked_score ;
+function getItemScore(obj, check_item_name) {
+    var names = obj.checked_socre_name;
+    var scores = obj.checked_score;
 
-    for(var i=0;i<names.length ;i++){
-        if( names[i].indexOf(check_item_name) > -1){
-            return scores[i] ;
+    for (var i = 0; i < names.length; i++) {
+        if (names[i].indexOf(check_item_name) > -1) {
+            return scores[i];
         }
     }
-    return 0 ;
+    return 0;
 }
 
 /**
@@ -202,31 +569,31 @@ function getItemScore(obj, check_item_name){
  * @param {*} value 
  * @param {*} default_display_value 
  */
-function filterByZeroHandle(value , default_display_value){
-        if(isNaN(value)){
-            return default_display_value ;
-        }else{
-            if((value+'').endsWith('.00')){
-                return value.substring(0,value.length-3);
-            }
-            return value ;
+function filterByZeroHandle(value, default_display_value) {
+    if (isNaN(value)) {
+        return default_display_value;
+    } else {
+        if ((value + '').endsWith('.00')) {
+            return value.substring(0, value.length - 3);
         }
+        return value;
+    }
 }
 
-function exportExcel(){
+function exportExcel() {
     var dept_id = $("#fsList").val();
     var start_date = $("#start-time").val();
     var end_date = $("#end-time").val();
     var start_score = $("#start-score").val();
     var end_score = $("#end-score").val();
-    var flag = param_method(start_score,end_score);
-    if(flag==false){
+    var flag = param_method(start_score, end_score);
+    if (flag == false) {
         return;
     }
-    if( start_date=='' || end_date==''){
+    if (start_date == '' || end_date == '') {
         tip("请选择起止日期");
-        return ;
-    }else{
+        return;
+    } else {
         start_date += " 23:00:00";
         end_date += " 23:00:00";
         var start = new Date(start_date);
@@ -234,27 +601,27 @@ function exportExcel(){
         start.setDate(start.getDate()-1);
         start_date = start.Format("yyyy-MM-dd HH:mm:ss");
     }
-    if(!dept_id) dept_id="";
-    window.open( getserveraddr() + "/file/employee/order?dept_id="+dept_id+
-    "&start_date="+start_date+"&end_date="+end_date+"&start_score="+start_score+"&end_score="+end_score);
+    if (!dept_id) dept_id = "";
+    window.open(getserveraddr() + "/file/employee/order?dept_id=" + dept_id +
+        "&start_date=" + start_date + "&end_date=" + end_date + "&start_score=" + start_score + "&end_score=" + end_score);
 }
 
 
-function param_method(start_score,end_score){
-    
-    if(start_score==''||end_score==''){
+function param_method(start_score, end_score) {
+
+    if (start_score == '' || end_score == '') {
         tip("请输入得分区间");
         return false;
-    }else if(!(/^[0-9]*$/).test(start_score) || !(/^[0-9]*$/).test(end_score)){
+    } else if (!(/^[0-9]*$/).test(start_score) || !(/^[0-9]*$/).test(end_score)) {
         tip("数字不合法!");
         return false;
-    }else if(parseInt(start_score)>parseInt(end_score)){
+    } else if (parseInt(start_score) > parseInt(end_score)) {
         tip("开始得分不能比结束得分大");
         return false;
-    }else if(start_score<0 || start_score>1000 || end_score<0 || end_score>1000){
+    } else if (start_score < 0 || start_score > 1000 || end_score < 0 || end_score > 1000) {
         tip("得分只能在0-1000之间");
         return false;
-    }else{
+    } else {
         return true;
     }
 }

+ 4 - 1
VisualInspection/js/statistics/common_attendance.js

@@ -74,8 +74,11 @@ $(function(){
             monthChange();
             $("#c-a-tbody").empty();
             if(data.length >0){
+                var seq = 1 ;
                 for(var i=0;i< data.length;i++){
-                    $("#c-a-tbody").append( getTableContent(data[i],i+1));
+                    if(data[i].userName != undefined){
+                        $("#c-a-tbody").append( getTableContent(data[i],seq++));
+                    }
                 }
             }
         },function(error){

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

@@ -39,6 +39,9 @@ $(function(){
 	$(".div-button button").click(function(){	
 		var select_month = $(".div-month select").val();
 		var select_road = $(".div-roadManage select").val();
+		if(flag ==true ){
+			init_company_year_assess("statistics/score/year/info",select_road);
+		}
 		flag = false;
 		// 查询图二
 		init_company_points_assess("statistics/lost/score/rate",select_month+'',select_road);
@@ -52,9 +55,16 @@ $(function(){
 		init_server_check_type("statistics/lost/itemscore/rate",select_month+"",select_road);
         // 查询图七
 		init_each_people_points("statistics/lost/twice/itemscore/rate",select_month+"",select_road);
+		
+		
 		// 加载图配置
 		echart();
 	});
+    
+	// 如果道管中心下拉框改变,点击时加载图一
+	$(".div-roadManage").change(function(){
+		flag = true;
+	});
 
 	// 加载图配置
 		echart();

+ 10 - 2
VisualInspection/js/statistics/toll_station_statistics.js

@@ -38,6 +38,9 @@ $(function(){
 	$(".div-button button").click(function(){	
 		var select_month = $(".div-month select").val();
 		var select_station = $(".div-station select").val();
+		if(flag ==true ){
+			init_tollStation_year_assess("statistics/score/year/info",select_station);
+		}
 		flag = false;
 		// 加载图配置
 		echart();
@@ -56,7 +59,12 @@ $(function(){
 	});
 
 	// 加载图配置
-		echart();
+	echart();
+
+	// 如果道管中心下拉框改变,点击时加载图一
+	$(".div-station select").change(function(){
+		flag = true;
+	});	
     
 	/**
 	 * 初始化图一
@@ -464,7 +472,7 @@ $(function(){
 			init_people_score_rank("statistics/stuff/score/info",select_month+'',select_station);
 			init_server_check_type("statistics/lost/itemscore/rate",select_month+"",select_station);
 			init_each_people_points("statistics/lost/twice/itemscore/rate",select_month+"",select_station);
-			//init_backward_rank_assess("statistics/fs/up/five",select_month+'',select_station)
+			flag = false;
 		},function(error){
         	return "" ;
     	});

+ 1 - 1
VisualInspection_server/src/main/java/com/xintong/visualinspection/bean/StatisticsBean.java

@@ -145,7 +145,7 @@ public class StatisticsBean {
     // 比较大小 1 小 , -1 大 
     // 方法2
     public int compare2To(StatisticsBean o2){
-    	double a = 1000.0 ,b=1000.0 ;
+    	double a = -1 ,b=-1 ;
 		if(this.getChecked_num()!=0 ){
 			a = this.getAll_check_score() / (this.getChecked_num()+0.00);
 		}

+ 23 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/controller/TeamClassController.java

@@ -159,6 +159,29 @@ public class TeamClassController extends BaseController {
     	List<TeamClass> tcList = teamClassService.getClassList(teamClass);
     	return super.returnSuccessResult(tcList);
     }
+    
+    
+    /**
+     * 获取人员的排班
+     * @return
+     * String
+     * @exception
+     * @since  1.0.0
+     */
+    @RequestMapping(value = "/getUserClasss")
+    public String getClassList(@RequestBody com.xintong.visualinspection.pojo.TeamClass teamClass){
+    	
+    	if(teamClass.getStart_time()==null){
+    		throw new BusinessException(20902);
+    	}
+    	if(teamClass.getEnd_time()==null){
+    		throw new BusinessException(20903);
+    	}
+    	if(teamClass.getUser_id()==null){
+    		throw new BusinessException(20903);
+    	}
+    	return super.returnSuccessResult(teamClassService.getLaneClassListByUserAndTime(teamClass));
+    }
     /**
      * 查询值班信息和班组内的人员
      * @param teamClass

+ 3 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/dao/master/TeamClassDao.java

@@ -26,5 +26,8 @@ public interface TeamClassDao  {
     public List<TeamClass> getClassListForCharge(TeamClass teamClass);
     
     public List<TeamClass> getClassListForChargeUnRegular(TeamClass teamClass);
+    
+    public List<com.xintong.visualinspection.pojo.TeamClass> getLaneClassListByUserAndTime(com.xintong.visualinspection.pojo.TeamClass teamClass);
+    
    
 }

+ 20 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/dao/master/UserCountDao.java

@@ -0,0 +1,20 @@
+package com.xintong.visualinspection.dao.master;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.xintong.visualinspection.pojo.UserClassCount;
+
+/**
+ * 文件名:UserInfoDao
+ * 版本信息:日期:2017/3/30 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ */
+@Mapper
+public interface UserCountDao  {
+    public UserClassCount getByUserId(Long id);
+    public List<UserClassCount> getAllByPeriodId(Long period_id);
+    public List<UserClassCount> getAll(com.xintong.visualinspection.pojo.TeamClass teamClass);
+}

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

@@ -98,13 +98,13 @@
     <select id="getUsersCenterManageCount" parameterType="com.xintong.visualinspection.bean.StatisticsBean"  resultType="java.lang.Integer">
     	SELECT  count(1)  FROM t_sys_users t 
     			INNER JOIN t_br_layer_fee_station tf ON t.organid = tf.organ_id  
-    			WHERE t.status >0  AND t.positionid  in (1,6)  AND t.organid in ( SELECT id FROM t_sys_organ where parentid=#{dept_id} )  
+    			WHERE t.status >0  AND t.positionid  in (1,4,5,6)  AND t.organid in ( SELECT id FROM t_sys_organ where parentid=#{dept_id} )  
     </select>
     
     <select id="getUsersCountList"  resultType="com.xintong.visualinspection.bean.StatisticsBean">
     	SELECT t.organid AS dept_id , count(1) AS people_num,tf.name FROM t_sys_users t 
     			INNER JOIN t_br_layer_fee_station tf ON t.organid = tf.organ_id  
-    			WHERE t.status >0  AND t.positionid  in (1,6) GROUP BY t.organid
+    			WHERE t.status >0  AND t.positionid  in (1,4,5,6) GROUP BY t.organid
 			ORDER BY t.organid 
     </select>
     

+ 27 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/mapper/master/TeamClassMapper.xml

@@ -13,6 +13,22 @@
         <result column="end_time" property="end_time" jdbcType="DATE" />
         <result column="class_id" property="class_id" jdbcType="INTEGER" />
     </resultMap>
+    
+     <resultMap id="TeamClassResultMap" type="com.xintong.visualinspection.pojo.TeamClass" >
+        <id column="id" property="id" jdbcType="INTEGER" />
+        <result column="work_date" property="work_date" jdbcType="TIMESTAMP" />
+        <result column="dept_id" property="dept_id" jdbcType="INTEGER" />
+        <result column="team_name" property="team_name" jdbcType="VARCHAR" />
+        <result column="user_ids" property="user_ids" jdbcType="VARCHAR" />
+        <result column="user_id" property="user_id" jdbcType="INTEGER" />
+        <result column="class_type" property="class_type" jdbcType="VARCHAR" />
+        <result column="team_id" property="team_id" jdbcType="INTEGER" />
+        <result column="start_time" property="start_time" jdbcType="TIMESTAMP" />
+        <result column="end_time" property="end_time" jdbcType="TIMESTAMP" />
+        <result column="lane" property="lane" jdbcType="INTEGER" />
+        <result column="class_flag" property="class_flag" jdbcType="INTEGER" />
+        <result column="class_id" property="class_id" jdbcType="INTEGER" />
+    </resultMap>
 
     <select id="getAll" resultMap="BaseResultMap"  >
         SELECT *
@@ -112,4 +128,15 @@
     	</if>
     </select>
     
+    
+    <select id="getLaneClassListByUserAndTime" parameterType="com.xintong.visualinspection.pojo.TeamClass" resultMap="TeamClassResultMap" >
+        SELECT t.*
+        FROM v_user_class t
+        WHERE 1=1
+        <if test="user_id != null">AND t.user_id = #{user_id}</if>
+        <if test="start_time != null">AND t.work_date &gt;= #{start_time}</if>
+        <if test="end_time != null">AND t.work_date &lt;= #{end_time}</if>
+        ORDER BY t.work_date ASC ,t.class_type ASC
+    </select>
+    
 </mapper>

+ 39 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/mapper/master/UserCountMapper.xml

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xintong.visualinspection.dao.master.UserCountDao" >
+    <resultMap id="BaseResultMap" type="com.xintong.visualinspection.pojo.UserClassCount" >
+        <id column="id" property="id" jdbcType="INTEGER" />
+        <result column="user_id" property="user_id" jdbcType="INTEGER" />
+        <result column="class_type" property="class_type" jdbcType="INTEGER" />
+        <result column="class_id" property="class_id" jdbcType="INTEGER" />
+        <result column="unregular_id" property="unregular_id" jdbcType="INTEGER" />
+        <result column="period_id" property="period_id" jdbcType="INTEGER" />
+        <result column="create_time" property="create_time" jdbcType="TIMESTAMP" />
+        <result column="start_time" property="start_time" jdbcType="TIMESTAMP" />
+        <result column="end_time" property="end_time" jdbcType="TIMESTAMP" />
+        <result column="check_status" property="check_status" jdbcType="INTEGER" />
+    </resultMap>
+
+    <select id="getAll" parameterType="com.xintong.visualinspection.pojo.TeamClass" resultMap="BaseResultMap"   >
+
+        SELECT *
+        FROM (select `check_task`.`id` AS `id`, `check_task`.`check_status` AS `check_status` ,`check_task`.`checked_person` AS `user_id`,`check_task`.`class_type` AS `class_type`,`check_task`.`period_id` AS `period_id`,`check_task`.`create_time` AS `create_time`,`check_task`.`user_class_id` AS `class_id`,`check_task`.`user_class_unregular_id` AS `unregular_id`,`check_task`.`start_time` AS `start_time`,`check_task`.`end_time` AS `end_time` from `check_task`) a where a.user_id = #{user_id} and  a.start_time &gt;= #{start_time} and a.end_time &lt;= #{end_time}
+    </select>
+
+    <select id="getAllByPeriodId" parameterType="java.lang.Long" resultMap="BaseResultMap"   >
+
+        SELECT *
+        FROM v_user_count where period_id = #{period_id}
+    </select>
+
+    <select id="getByUserId" parameterType="java.lang.Long" resultMap="BaseResultMap" >
+        SELECT *
+        FROM v_user_count
+        WHERE user_id = #{user_id}
+    </select>
+
+
+
+
+
+</mapper>

+ 63 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/pojo/TeamClass.java

@@ -0,0 +1,63 @@
+package com.xintong.visualinspection.pojo;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.validation.constraints.NotNull;
+
+import org.springframework.format.annotation.DateTimeFormat;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import lombok.Data;
+
+/**
+ * 文件名:ScoreDeducting
+ * 版本信息:日期:2017/4/18 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ */
+@Data
+public class TeamClass {
+    //编号
+    private Long id;
+    //上班日期
+    @NotNull
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") 
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")  
+    private Date work_date;
+    //上班时间
+    @NotNull
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")  
+    private Date start_time;
+    //下班时间
+    @NotNull
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")  
+    private Date end_time;
+    //班组id
+    private Long team_id;
+    //人员ids
+    private String user_ids;
+    //人员id
+    private Long user_id;
+    //部门id
+    private Long dept_id;
+    //班次类型(早、中、晚、全天)
+    private Integer class_type;
+    
+    private String team_name ;
+    private Integer lane ;
+
+    //有无顶班
+    private Integer class_flag ;
+    
+    //人员id
+    private List<String> user_arr;
+
+    private Long class_id;
+    private Long unregular_id;
+
+
+    //该人员被稽查的频度
+    private int checkcount;
+}

+ 18 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/pojo/UserClassCheck.java

@@ -0,0 +1,18 @@
+package com.xintong.visualinspection.pojo;
+
+import java.util.List;
+
+import com.xintong.visualinspection.bean.User;
+
+import lombok.Data;
+
+@Data
+public class UserClassCheck {
+
+	//所有已稽查任务
+	private List<UserClassCount> userClassCountList;
+	//所有排班
+	private List<TeamClass> teamClasseList;
+	//稽查人员
+	private List<User> userList;
+}

+ 33 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/pojo/UserClassCount.java

@@ -0,0 +1,33 @@
+package com.xintong.visualinspection.pojo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 文件名:Job
+ * 版本信息:日期:2017/4/18 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ */
+@Data
+public class UserClassCount {
+    //编号
+    private Integer id;
+    //用户id
+    private Long user_id;
+    //班次类型
+    private Integer class_type;
+
+    private Date create_time;
+
+    private Date start_time;
+
+    private Date end_time;
+
+
+    private Integer period_id;
+
+    private Long class_id;
+
+    private  Long unregular_id;
+    private Integer check_status;
+}

+ 4 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/service/TeamClassService.java

@@ -4,6 +4,7 @@ import java.util.List;
 
 import com.xintong.visualinspection.bean.ClassCode;
 import com.xintong.visualinspection.bean.TeamClass;
+import com.xintong.visualinspection.pojo.UserClassCheck;
 
 /**
  * 
@@ -27,4 +28,7 @@ public interface TeamClassService {
     public void updateList(List<TeamClass> teamClasses);
     
     public List<TeamClass> getClassCode(ClassCode teamClass);
+    
+    public UserClassCheck getLaneClassListByUserAndTime(com.xintong.visualinspection.pojo.TeamClass teamClass);
+
 }

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

@@ -877,7 +877,7 @@ public class StatisticsServiceImpl extends BaseService implements StatisticsServ
 		lists.sort(new Comparator<StatisticsBean>() {
 			@Override
 			public int compare(StatisticsBean o1, StatisticsBean o2) {
-				return o2.compare2To(o1);
+				return o1.compare2To(o2);
 			}
 		});
 		

+ 29 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/service/impl/TeamClassServiceImpl.java

@@ -13,7 +13,11 @@ import com.github.pagehelper.util.StringUtil;
 import com.xintong.visualinspection.bean.ClassCode;
 import com.xintong.visualinspection.bean.TeamClass;
 import com.xintong.visualinspection.bean.User;
+import com.xintong.visualinspection.dao.cluster.UserInfoDao;
 import com.xintong.visualinspection.dao.master.TeamClassDao;
+import com.xintong.visualinspection.dao.master.UserCountDao;
+import com.xintong.visualinspection.dao.master.UserDao;
+import com.xintong.visualinspection.pojo.UserClassCheck;
 import com.xintong.visualinspection.service.BaseService;
 import com.xintong.visualinspection.service.TeamClassService;
 import com.xintong.visualinspection.util.CacheUtil;
@@ -30,6 +34,12 @@ public class TeamClassServiceImpl extends BaseService implements TeamClassServic
 
     @Autowired
     private TeamClassDao teamClassDao;
+    
+    @Autowired
+    private UserCountDao userCountDao;
+    
+    @Autowired
+    private UserInfoDao userInfoDao;
 
 
 	@Override
@@ -131,5 +141,24 @@ public class TeamClassServiceImpl extends BaseService implements TeamClassServic
 		// TODO Auto-generated method stub
 		return teamClassDao.getClassCode(teamClass);
 	}
+	
+	
+	@Override
+	public UserClassCheck getLaneClassListByUserAndTime(com.xintong.visualinspection.pojo.TeamClass teamClass) {
+		// TODO Auto-generated method stub
+		UserClassCheck u = new UserClassCheck();
+		
+		u.setUserClassCountList(userCountDao.getAll(teamClass));
+		u.setTeamClasseList(teamClassDao.getLaneClassListByUserAndTime(teamClass));
+		
+		User us = new User();
+		us.setOrganid(29);
+		List<Integer> pos = new ArrayList<>();
+		pos.add(2);
+		us.setPosition_ids(pos);
+		u.setUserList(userInfoDao.getUsers(us));
+		
+		return u;
+	}
 
 }