assess_ranking.js 29 KB

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