assess_ranking.js 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755
  1. $(function () {
  2. setVisit();
  3. var road_manager;
  4. if (roleContains("STATION")) {
  5. road_manager = getCurrentUser().road_manager_id;
  6. }
  7. if (roleContains("ROAD_MANAGER")) {
  8. road_manager = getCurrentUser().organid;
  9. }
  10. setRoadManagerSelect("#center-manager", road_manager, true);
  11. if (road_manager) {
  12. var dept;
  13. if (roleContains("STATION")) {
  14. dept = getCurrentUser().organid;
  15. }
  16. var feeList = cache_road_manager_fee_list_map.get(road_manager);
  17. // $("#fsList").html(obj);
  18. setRoadManagerValue(feeList, "#fsList", dept, true);
  19. // $("#fsList").val(dept);
  20. // 初始化查询
  21. initQueryEmp(road_manager, dept);
  22. } else {
  23. // 初始化查询
  24. initQueryEmp(null, null);
  25. }
  26. // 道管中心选择变化
  27. $("#center-manager").change(function () {
  28. $("#fsList").empty();
  29. if (GV(this) != '') {
  30. getFsStationList(GV(this), function (options) {
  31. $("#fsList").append(options);
  32. var dept;
  33. if (roleContains("STATION")) {
  34. dept = getCurrentUser().organid;
  35. }
  36. $("#fsList").val(dept);
  37. });
  38. }
  39. })
  40. // end
  41. })
  42. function queryEmpClick() {
  43. //每次点击前清空表格数据
  44. $(".table-tbody").empty('');
  45. var start_date = $("#start-time").val();
  46. var end_date = $("#end-time").val();
  47. var start_score = $("#start-score").val();
  48. var end_score = $("#end-score").val();
  49. var start_num = $("#start-num").val() != '' ? $("#start-num").val() : 0;
  50. var end_num = $("#end-num").val() != '' ? $("#end-num").val() : 100;
  51. var flag = param_method(start_score, end_score);
  52. if (flag == false) {
  53. return;
  54. }
  55. if (start_date == '' || end_date == '') {
  56. tip("请选择起止日期");
  57. return;
  58. } else {
  59. start_date += " 23:00:00";
  60. end_date += " 23:00:00";
  61. }
  62. var startStr = start_date.replace(/-/g, '/');
  63. var endStr = end_date.replace(/-/g, '/');
  64. var start = new Date(startStr);
  65. //开始日期取前一天的23:00
  66. start.setDate(start.getDate() - 1);
  67. start_date = start.Format("yyyy-MM-dd HH:mm:ss");
  68. var end = new Date(endStr);
  69. if (start > end) {
  70. tip("开始时间不能比结束时间大");
  71. return;
  72. }
  73. var param = {
  74. "parent_dept_id": GV("#center-manager"),
  75. "dept_id": GV("#fsList"),
  76. "start_date": start_date,
  77. "end_date": end_date,
  78. }
  79. var url = "statistics/employee/order";
  80. getEmployeeInfosClick(url, param, start_score, end_score, start_num, end_num)
  81. }
  82. function initQueryEmp(parent_dept_id, dept_id) {
  83. //默认初始化前一周查所有
  84. var endD = new Date();
  85. var now = new Date();
  86. var startD = new Date(now.getTime() - 7 * 24 * 3600 * 1000);
  87. var start_time = startD.getFullYear() + "-" + (startD.getMonth()) + "-26";
  88. var end_time = endD.getFullYear() + "-" + (endD.getMonth() + 1) + "-25";
  89. var start_score = $("#start-score").val();
  90. var end_score = $("#end-score").val();
  91. var start_num = $("#start-num").val() != '' ? $("#start-num").val() : 0;
  92. var end_num = $("#end-num").val() != '' ? $("#end-num").val() : 100;
  93. setJobSelect("#jobSelect");
  94. //默认初始化时间页面回显
  95. $("#start-time").val(start_time);
  96. $("#end-time").val(end_time);
  97. var start_date = start_time + " 23:00:00";
  98. var end_date = end_time + " 23:00:00";
  99. var start = new Date(start_date);
  100. //开始日期取前一天的23:00
  101. start.setDate(start.getDate() - 1);
  102. start_date = start.Format("yyyy-MM-dd HH:mm:ss");
  103. // alert("dd");
  104. var param = {
  105. "parent_dept_id": parent_dept_id,
  106. "dept_id": dept_id,
  107. "start_date": start_date,
  108. "end_date": end_date,
  109. }
  110. var url = "statistics/employee/order";
  111. getEmployeeInfosClick(url, param, start_score, end_score, start_num, end_num);
  112. }
  113. /**
  114. * click
  115. * @param {*} url
  116. * @param {*} param
  117. */
  118. function getEmployeeInfosClick(url, param, start_score, end_score, start_num, end_num) {
  119. post_common_service(url, param, function (data) {
  120. var strTbody = '';
  121. var count = 0;
  122. for (var i = 0; i < data.length; i++) {
  123. var score = 1000 - filterByZeroHandle(average(data[i]).toFixed(2), '0');
  124. var check_number = filter(data[i].checked_num, '0');
  125. var flag = judgeParamFilter(data, i, score, start_score, end_score, check_number, start_num, end_num)
  126. if (flag) {
  127. html = "";
  128. if (hasRole(ROLE_JICHA_ADMIN) || hasRole(ROLE_ADMIN)) {
  129. html += "<button id=\"user_" + data[i].user.id + "\" onClick='addTask(" + data[i].user.id + ",\"" + data[i].user.truename + "\",\"" + data[i].user.fee_station_name + "\",\"" + data[i].checked_num + "\",\"" + 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>"
  130. }
  131. strTbody += "<tr><td width='4%;'>" + (count + 1) + "</td><td width='6%;'>" + data[i].user.fee_station_name + "</td>"
  132. + "<td width='6%;'>" + data[i].user.truename + "</td><td width='6%;'>" + data[i].user.position_name + "</td>"
  133. + "<td width='6%;'>" + data[i].user.workno + "</td><td width='4%;'>" + filter(data[i].company_ranking, '/') + "</td>"
  134. + "<td width='4%;'>" + filter(data[i].center_ranking, '/') + "</td><td width='4%;'>" + filter(data[i].fee_station_ranking, '/')
  135. + "</td><td width='4%;'>" + getItemScore(data[i], '环境') + "</td>"
  136. + "<td width='4%;'>" + getItemScore(data[i], '仪容仪表') + "</td><td width='4%;'>" + getItemScore(data[i], '表情') + "</td>"
  137. + "<td width='4%;'>" + getItemScore(data[i], '动作') + "</td><td width='4%;'>" + getItemScore(data[i], '文明用语') + "</td>"
  138. + "<td width='4%;'>" + getItemScore(data[i], '工作纪律') + "</td><td width='4%'>" + getItemScore(data[i], '便民服务') + "</td><td width='4%;'>"
  139. + getItemScore(data[i], '安全管理') + "</td><td width='4%;'>" + data[i].check_all_score + "</td>"
  140. + "<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 + data[i].checked_m_num, '0')) + "</td>"
  141. + "<td width='4%;'>" + filterSlash(score, filter(data[i].checked_num + data[i].checked_m_num, '0')) + "</td><td width='4%;'>" + "</td><td width='4%;'>" + "</td></tr>";
  142. count++;
  143. }
  144. }
  145. $(".table-tbody").append(strTbody);
  146. $("tr:gt(1):odd").css("background", "#EFEFEF");
  147. }, function (error) {
  148. return "";
  149. });
  150. }
  151. function showAddTaskListView(data, widthtemp, heighttemp, start_date, end_date) {
  152. var tasklist = data.teamClasseList;
  153. var userclasslist = data.userClassCountList;
  154. var allheight = heighttemp;
  155. var height = allheight - 150 - 45;
  156. var allwidth = widthtemp;
  157. //计算日期
  158. var satrtday = new Date(start_date);
  159. var endday = new Date(end_date);
  160. var taskmap = new Map();
  161. var userClassmap = new Map();
  162. for (var i = 0; i < tasklist.length; i++) {
  163. var task = tasklist[i];
  164. if (!taskmap.get(task.work_date)) {
  165. taskmap.put(task.work_date, []);
  166. }
  167. var arr = taskmap.get(task.work_date);
  168. arr.push(task);
  169. taskmap.put(task.work_date, arr);
  170. }
  171. for (var i = 0; i < userclasslist.length; i++) {
  172. var usercount = userclasslist[i];
  173. var daytime = new Date(usercount.start_time)
  174. if (daytime.getHours() >= 23) {
  175. daytime = new Date(daytime.valueOf() + (1000 * 60 * 60 * 24))
  176. }
  177. var work_date = daytime.Format("yyyy-MM-dd") + " 00:00";
  178. if (!userClassmap.get(work_date)) {
  179. userClassmap.put(work_date, []);
  180. }
  181. var arr = userClassmap.get(work_date);
  182. arr.push(usercount);
  183. userClassmap.put(work_date, arr);
  184. }
  185. var days = (endday.valueOf() - satrtday.valueOf()) / (1000 * 60 * 60 * 24);
  186. var header = "<td></td>"
  187. var nighttd = "<td>夜班</td>"
  188. var middletd = "<td>中班</td>"
  189. var morningtd = "<td>早班</td>"
  190. for (var i = 1; i <= days; i++) {
  191. var daytime = new Date(satrtday.valueOf() + i * 1000 * 60 * 60 * 24 - 1000 * 60 * 60 * 23);
  192. var workday = daytime.Format("yyyy-MM-dd HH:mm");
  193. var html1 = ""
  194. var html2 = ""
  195. var html3 = ""
  196. if (taskmap.get(workday)) {
  197. var userclassarry = null;
  198. if (userClassmap.get(workday)) {
  199. userclassarry = userClassmap.get(workday);
  200. }
  201. var arry = taskmap.get(workday);
  202. for (var j = 0; j < arry.length; j++) {
  203. var hasin = false;
  204. var tasktemp = arry[j];
  205. var hasmin = false;
  206. var taskfail = false;
  207. if (userclassarry != null) {
  208. var d = hasinList(tasktemp, userclassarry)
  209. hasin = d != null
  210. if (hasin) {
  211. if (d.check_status == 22) {
  212. taskfail = true;
  213. }
  214. }
  215. }
  216. if ((new Date(tasktemp.end_time)).valueOf() - (new Date(tasktemp.start_time)).valueOf() < 1000 * 60 * 15) {
  217. hasmin = true;
  218. }
  219. var name = (new Date(tasktemp.start_time)).Format("HH:mm") + "--" + (new Date(tasktemp.end_time)).Format("HH:mm")
  220. var classname = "btn-success";
  221. if (hasmin) {
  222. //放开15分钟限制
  223. classname = "btn-success";
  224. // classname = "btn-success disabled";
  225. name += "<span class=\"label label-badge\">未</span>";
  226. }
  227. if (hasin) {
  228. classname = "btn-danger disabled";
  229. }
  230. if (taskfail) {
  231. classname = "btn-info disabled";
  232. }
  233. var teamid = tasktemp.class_id + "_" + (typeof (tasktemp.unregular_id) == "undefined" ? "" : tasktemp.unregular_id)
  234. if (tasktemp.class_type == 1) {
  235. html2 += "<div class='row'><button class=\"btn " + classname + " classbtn\" id=" + teamid + " data=" + workday + " onclick='selectTeamClass(this)' type=\"button\">" + name + "</button></div>"
  236. // html1 +='<div class="row"><label class="btn '+classname+'"><input type="radio" name="options" id="option2">'+name+'</label></div>'
  237. continue;
  238. }
  239. if (tasktemp.class_type == 2) {
  240. html1 += "<div class='row'><button class=\"btn " + classname + " classbtn\" id=" + teamid + " data=" + workday + " onclick='selectTeamClass(this)' type=\"button\">" + name + "</button></div>"
  241. continue;
  242. }
  243. if (tasktemp.class_type == 3) {
  244. html3 += "<div class='row'><button class=\"btn " + classname + " classbtn\" id=" + teamid + " data=" + workday + " onclick='selectTeamClass(this)' type=\"button\">" + name + "</button></div>"
  245. continue;
  246. }
  247. }
  248. }
  249. if (userClassmap.get(workday)) {
  250. var teamclassarry = null;
  251. if (taskmap.get(workday)) {
  252. teamclassarry = taskmap.get(workday);
  253. }
  254. var arry = userClassmap.get(workday);
  255. for (var j = 0; j < arry.length; j++) {
  256. var hasin = false;
  257. var usercounttemp = arry[j];
  258. var taskfail = false;
  259. if (teamclassarry != null) {
  260. var d = hasinList(usercounttemp, teamclassarry)
  261. hasin = d != null
  262. if (usercounttemp.check_status == 22) {
  263. taskfail = true;
  264. }
  265. }
  266. if (usercounttemp.check_status == 22) {
  267. taskfail = true;
  268. }
  269. var classname = "btn-danger disabled";
  270. var name = (new Date(usercounttemp.start_time)).Format("HH:mm") + "--" + (new Date(usercounttemp.end_time)).Format("HH:mm") + "<span class=\"label label-badge\">删</span>";
  271. if (hasin) {
  272. continue;
  273. }
  274. if (taskfail) {
  275. classname = "btn-info disabled";
  276. // name+="<span class=\"label label-badge\">无效</span>";
  277. }
  278. if (usercounttemp.class_type == 1) {
  279. html2 += "<div class='row'><button class=\"btn " + classname + " classbtn\" type=\"button\">" + name + "</button></div>"
  280. continue;
  281. }
  282. if (usercounttemp.class_type == 2) {
  283. html1 += "<div class='row'><button class=\"btn " + classname + " classbtn\" type=\"button\">" + name + "</button></div>"
  284. continue;
  285. }
  286. if (usercounttemp.class_type == 3) {
  287. html3 += "<div class='row'><button class=\"btn " + classname + " classbtn\" type=\"button\">" + name + "</button></div>"
  288. continue;
  289. }
  290. }
  291. }
  292. nighttd += "<td>" + (html3 == "" ? "无" : html3) + "</td>"
  293. middletd += "<td>" + (html1 == "" ? "无" : html1) + "</td>"
  294. morningtd += "<td>" + (html2 == "" ? "无" : html2) + "</td>"
  295. header += "<td>" + daytime.Format("dd") + "</td>"
  296. }
  297. var css = '<style lang="css">' +
  298. '.row{' +
  299. ' margin-right: 0px; ' +
  300. ' margin-left: 0px;' +
  301. '}' +
  302. '.selecttag{' +
  303. ' line-height:32px' +
  304. '}' +
  305. '.table td {' +
  306. ' vertical-align: middle;' +
  307. ' text-align: center;' +
  308. ' border-left: 1px solid #ddd;' +
  309. ' border-right: 1px solid #ddd;' +
  310. ' border-top: 1px solid #ddd;' +
  311. '}' +
  312. '.classbtn{' +
  313. ' font-size:10px;' +
  314. ' text-align: center;' +
  315. ' padding: 0;' +
  316. '}' +
  317. '.spanclass{' +
  318. ' width:10px;' +
  319. ' height: 10px;' +
  320. '}' +
  321. '.gimportant{' +
  322. ' background:#BD7B46 !important;' +
  323. ' color:#ffffff !important' +
  324. '}' +
  325. '</style>';
  326. 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">' +
  327. ' <tbody>' +
  328. ' <tr style="height:10px" >' +
  329. header +
  330. ' </tr>' +
  331. ' <tr class="danger">' +
  332. nighttd +
  333. ' </tr>' +
  334. ' <tr class="warning">' +
  335. morningtd +
  336. ' </tr>' +
  337. ' <tr class="active">' +
  338. middletd +
  339. ' </tr>' +
  340. ' </tbody>' +
  341. '</table></div>';
  342. var tips = '<div class="row" style="text-align: left;"><div class="spanclass col-xs-2 " style="background:#ea644a"/><div class="col-xs-10">排班已被稽查</div></div>' +
  343. // '<div class="row" style="text-align: left;"><div class="spanclass col-xs-2 " style="background:#F1A325"/><div class="col-xs-10">已稽查但排班被删除</div></div>'+
  344. '<div class="row" style="text-align: left;"><div class="spanclass col-xs-2 " style="background:#03B8CF"/><div class="col-xs-10">排班已稽查但任务无效</div></div>' +
  345. // '<div class="row" style="text-align: left;"><div class="spanclass col-xs-2 " style="background:#BD7B46"/><div class="col-xs-10">已稽查但任务无效且排班已删除</div></div>'+
  346. '<div class="row" style="text-align: left;"><div class="spanclass col-xs-2 " style="background:#38B03F"/><div class="col-xs-10">排班可被稽查</div></div>' +
  347. // '<div class="row" style="text-align: left;"><div class="spanclass col-xs-2 " style="background:#7EC377"/><div class="col-xs-10">排班未满15分钟</div></div>'+
  348. '<div class="row" style="text-align: left;"><span class=\"label label-badge\">删</span> 排班已删除</div>' +
  349. '<div class="row" style="text-align: left;"><span class=\"label label-badge\">未</span> 排班未满15分钟</div>';
  350. var selectdiv = '<div class="row" style="text-align: left;"><div class="col-xs-10">已选择的排班:</div></div>' +
  351. '<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>';
  352. var optlist = "";
  353. var userlist = data.userList;
  354. for (var q = 0; q < userlist.length; q++) {
  355. var user = userlist[q];
  356. optlist += ' <option value="' + user.id + '">' + user.truename + '</option>'
  357. }
  358. 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;}">' +
  359. '<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" >' +
  360. optlist +
  361. '</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>';
  362. return html;
  363. }
  364. var data_p = null;
  365. var layerindex = null;
  366. function addTask(userid, username, stationname, checknum, start_date, end_date) {
  367. data_p = {
  368. "userid": userid,
  369. "username": username,
  370. "stationname": stationname,
  371. "checknum": checknum,
  372. "start_date": start_date,
  373. "end_date": end_date
  374. }
  375. //获取该人员排班
  376. var url = "teamClass/getUserClasss"
  377. var param = {
  378. "user_id": userid,
  379. "start_time": start_date,
  380. "end_time": end_date
  381. }
  382. post_common_service(url, param, function (data) {
  383. var allheight = 600;
  384. var height = allheight - 150 - 45;
  385. var allwidth = 1100;
  386. var html = showAddTaskListView(data, allwidth, allheight, start_date, end_date);
  387. layerindex = layer.open({
  388. type: 1,
  389. title: "生成稽查任务:" + stationname + "--" + username + " 已稽查:" + checknum + "次",
  390. skin: 'layui-layer-rim', //加上边框
  391. area: [allwidth + 'px', allheight + 'px'], //宽高
  392. scrollbar: false,
  393. content: "<div id ='layerhtml'>" + html + "</div>",
  394. cancel: function (index, layero) {
  395. layer.close(index);
  396. // queryEmpClick();
  397. return false;
  398. }
  399. });
  400. });
  401. }
  402. function selectTeamClass(obj) {
  403. $("#selectedclass").html($(obj).attr('data') + " " + $(obj).html() + "的排班");
  404. $("#selectedclass").attr('data', obj.id);
  405. }
  406. function creatTask() {
  407. if (parseInt(data_p.checknum) >= 6) {
  408. tip("已经生成了6次");
  409. return;
  410. }
  411. //获取classid
  412. var id = $("#selectedclass").attr('data');
  413. //获取userid
  414. var userid = $("#selectusers").val();
  415. if (id != null && typeof (id) != "undefined") {
  416. var ids = id.split("_");
  417. var classid = ids[0];
  418. var unregular_id = ids[1];
  419. var url = task_server_url + "/task/add"
  420. if (unregular_id == null || unregular_id == "") {
  421. url += '?classid=' + classid + '&userid=' + userid;
  422. } else {
  423. url += '?classid=' + classid + '&unregularid=' + unregular_id + '&userid=' + userid;
  424. }
  425. $.ajax({
  426. type: 'GET',
  427. url: url,
  428. contentType: "application/json",
  429. dataType: "json",
  430. async: true,
  431. success: function (response) {
  432. var data = response;
  433. if (data.result_code == 0) {
  434. tip("生成成功", null)
  435. if ($("#layerhtml").length > 0 && data_p != null) {
  436. //获取该人员排班
  437. var url = "teamClass/getUserClasss"
  438. var param = {
  439. "user_id": data_p.userid,
  440. "start_time": data_p.start_date,
  441. "end_time": data_p.end_date
  442. }
  443. post_common_service(url, param, function (data) {
  444. var allheight = 600;
  445. var height = allheight - 150 - 45;
  446. var allwidth = 1100;
  447. var html = showAddTaskListView(data, allwidth, allheight, data_p.start_date, data_p.end_date);
  448. $("#layerhtml").html(html);
  449. data_p.checknum = parseInt(data_p.checknum) + 1;
  450. var nanme = "生成稽查任务:" + data_p.stationname + "--" + data_p.username + " 已稽查:" + (data_p.checknum) + "次";
  451. layer.title(nanme, layerindex)
  452. });
  453. }
  454. } else {
  455. tip(data.result_desc, null)
  456. }
  457. },
  458. error: function (error) {
  459. tip("网络错误", null)
  460. }
  461. })
  462. } else {
  463. tip("未选择任务", null)
  464. }
  465. }
  466. function hasinList(task, list) {
  467. var hasin = false;
  468. for (var p = 0; p < list.length; p++) {
  469. var userclasscount = list[p];
  470. if (typeof (task.unregular_id) == "undefined") {
  471. if (typeof (userclasscount.unregular_id) == "undefined") {
  472. if (task.class_id == userclasscount.class_id) {
  473. return userclasscount;
  474. } else {
  475. continue;
  476. }
  477. } else {
  478. continue;
  479. }
  480. } else {
  481. if (typeof (userclasscount.unregular_id) == "undefined") {
  482. continue;
  483. } else {
  484. if (task.class_id == userclasscount.class_id && userclasscount.unregular_id == task.unregular_id) {
  485. return userclasscount;
  486. }
  487. }
  488. }
  489. }
  490. return null;
  491. }
  492. /**
  493. * 对于受检次数为0,扣分和得分都为 /
  494. * @param {*} value , check_num 受此次数
  495. * @return value or /
  496. */
  497. function filterSlash(value, check_num) {
  498. if (check_num == 0) {
  499. return '/';
  500. } else {
  501. return value;
  502. }
  503. }
  504. function judgeParamFilter(data, i, score, start_score, end_score, check_number, start_num, end_num) {
  505. var flag1 = false;
  506. if (score >= parseFloat(start_score) && score <= parseFloat(end_score)) {
  507. flag1 = true;
  508. } else {
  509. flag1 = false;
  510. }
  511. var flag2 = false;
  512. if (check_number >= parseFloat(start_num) && check_number <= parseFloat(end_num)) {
  513. flag2 = true;
  514. } else {
  515. flag2 = false;
  516. }
  517. var jobSelect = $("#jobSelect").val();
  518. if (jobSelect) {
  519. if (data[i].user.positionid == jobSelect) {
  520. flag3 = true;
  521. } else {
  522. flag3 = false;
  523. }
  524. } else {
  525. flag3 = true;
  526. }
  527. return flag1 & flag2 & flag3;
  528. }
  529. function average(obj) {
  530. if (filter(obj.checked_num + obj.checked_m_num, '0') == 0) {
  531. return 0;
  532. } else {
  533. return (obj.check_all_score + obj.check_all_m_score) / filter(obj.checked_num + obj.checked_m_num, '1')
  534. }
  535. }
  536. /**
  537. * 过滤undefined
  538. * @param {*} value
  539. * @param {*} default_display_value
  540. */
  541. function filter(value, default_display_value) {
  542. if (value != '' && value != undefined) {
  543. return value;
  544. } else if (default_display_value != undefined) {
  545. return default_display_value;
  546. } else {
  547. return "";
  548. }
  549. }
  550. /**
  551. * 获取扣分详情
  552. * @param {*} obj
  553. * @param {*} check_item_name
  554. */
  555. function getItemScore(obj, check_item_name) {
  556. var names = obj.checked_socre_name;
  557. var scores = obj.checked_score;
  558. for (var i = 0; i < names.length; i++) {
  559. if (names[i].indexOf(check_item_name) > -1) {
  560. return scores[i];
  561. }
  562. }
  563. return 0;
  564. }
  565. /**
  566. * 过滤除数为0和保留二位小数时出现的0.00
  567. * @param {*} value
  568. * @param {*} default_display_value
  569. */
  570. function filterByZeroHandle(value, default_display_value) {
  571. if (isNaN(value)) {
  572. return default_display_value;
  573. } else {
  574. if ((value + '').endsWith('.00')) {
  575. return value.substring(0, value.length - 3);
  576. }
  577. return value;
  578. }
  579. }
  580. function exportExcel() {
  581. var dept_id = $("#fsList").val();
  582. var start_date = $("#start-time").val();
  583. var end_date = $("#end-time").val();
  584. var start_score = $("#start-score").val();
  585. var end_score = $("#end-score").val();
  586. var flag = param_method(start_score, end_score);
  587. if (flag == false) {
  588. return;
  589. }
  590. if (start_date == '' || end_date == '') {
  591. tip("请选择起止日期");
  592. return;
  593. } else {
  594. start_date += " 23:00:00";
  595. end_date += " 23:00:00";
  596. var start = new Date(start_date);
  597. //开始日期取前一天的23:00
  598. start.setDate(start.getDate() - 1);
  599. start_date = start.Format("yyyy-MM-dd HH:mm:ss");
  600. }
  601. if (!dept_id) dept_id = "";
  602. window.open(getserveraddr() + "/file/employee/order?dept_id=" + dept_id +
  603. "&start_date=" + start_date + "&end_date=" + end_date + "&start_score=" + start_score + "&end_score=" + end_score);
  604. }
  605. function param_method(start_score, end_score) {
  606. if (start_score == '' || end_score == '') {
  607. tip("请输入得分区间");
  608. return false;
  609. } else if (!(/^[0-9]*$/).test(start_score) || !(/^[0-9]*$/).test(end_score)) {
  610. tip("数字不合法!");
  611. return false;
  612. } else if (parseInt(start_score) > parseInt(end_score)) {
  613. tip("开始得分不能比结束得分大");
  614. return false;
  615. } else if (start_score < 0 || start_score > 1000 || end_score < 0 || end_score > 1000) {
  616. tip("得分只能在0-1000之间");
  617. return false;
  618. } else {
  619. return true;
  620. }
  621. }
  622. function setVisit() {
  623. if (roleContains("STATION")) {
  624. $("#center-manager").attr("disabled", "disabled");
  625. $("#fsList").attr("disabled", "disabled");
  626. }
  627. // if(roleContains("ROAD_MANAGER")){
  628. // $("#center-manager").attr("disabled","disabled");
  629. // }
  630. }