| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644 |
- $(function () {
- // 道管中心选择变化
- $("#center-manager").change(function () {
- $("#fsList").empty();
- if (GV(this) != '') {
- getFsStationList(GV(this), function (options) {
- $("#fsList").append(options);
- });
- }
- })
- // end
- })
- 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) {
- return;
- }
- if (start_date == '' || end_date == '') {
- tip("请选择起止日期");
- return;
- } else {
- start_date += " 23:00:00";
- end_date += " 23:00:00";
- }
- var startStr = start_date.replace(/-/g, '/');
- var endStr = end_date.replace(/-/g, '/');
- var start = new Date(startStr);
- //开始日期取前一天的23:00
- start.setDate(start.getDate() - 1);
- start_date = start.Format("yyyy-MM-dd HH:mm:ss");
- var end = new Date(endStr);
- if (start > end) {
- tip("开始时间不能比结束时间大");
- return;
- }
- var param = {
- "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)
- }
- 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_score = $("#start-score").val();
- var end_score = $("#end-score").val();
- setJobSelect("#jobSelect");
- //默认初始化时间页面回显
- $("#start-time").val("2017-6-09");//start_time);
- $("#end-time").val("2017-6-25");//end_time);
- 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_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);
- }
- /**
- * 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) {
- html = "<button id=\"user_" + data[i].user.id + "\" onClick='addTask(" + data[i].user.id + ",\"" + data[i].user.truename + "\",\"" + 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 "";
- });
- }
- function addTask(userid, username, 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 = 1100;
- //计算日期
- 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-success";
- if(hasmin){
- classname = "disabled";
- }
- if(hasin){
- classname = "btn-danger 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-danger disabled";
- var name = (new Date(usercounttemp.start_time)).Format("HH:mm") + "--"+(new Date(usercounttemp.end_time)).Format("HH:mm")+"<span class=\"label label-badge\">删</span>";
- if(hasin){
- continue;
- }
- if(taskfail){
- classname = "btn-info disabled";
- // name+="<span class=\"label label-badge\">无效</span>";
- }
-
- 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:#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:#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>'+
- '<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:#f2f2f2"/><div class="col-xs-10">排班未满15分钟</div></div>'+
- '<div class="row" style="text-align: left;"><span class=\"label label-badge\">删</span> 排班已删除</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: "生成稽查任务:"+username,
- 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;
- }
- $.ajax({
- type: 'GET',
- url: url,
- contentType: "application/json",
- dataType: "json",
- async: true,
- success: function(response){
- var data = response;
- if (data.result_code == 0) {
- tip("生成成功",null)
- } else {
- tip(data.result_desc,null)
- }
- },
- error: function(error) {
- tip("网络错误",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 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;
- }
- var jobSelect = $("#jobSelect").val();
- if (jobSelect) {
- if (data[i].user.positionid == jobSelect) {
- flag3 = true;
- } else {
- flag3 = false;
- }
- } else {
- flag3 = true;
- }
- 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')
- }
- }
- /**
- * 过滤undefined
- * @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 "";
- }
- }
- /**
- * 获取扣分详情
- * @param {*} obj
- * @param {*} check_item_name
- */
- 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];
- }
- }
- return 0;
- }
- /**
- * 过滤除数为0和保留二位小数时出现的0.00
- * @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 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) {
- return;
- }
- if (start_date == '' || end_date == '') {
- tip("请选择起止日期");
- return;
- } else {
- start_date += " 23:00:00";
- end_date += " 23:00:00";
- var start = new Date(start_date);
- //开始日期取前一天的23:00
- 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);
- }
- 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)) {
- tip("数字不合法!");
- return false;
- } 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) {
- tip("得分只能在0-1000之间");
- return false;
- } else {
- return true;
- }
- }
|