Kaynağa Gözat

报修工单统计报表

zhaomin 4 yıl önce
ebeveyn
işleme
cb088af2ab

+ 115 - 45
WebUI/CallCenterWeb.UI/equipmentOperationManage/js/warrantyWorkOrder.js

@@ -3,7 +3,10 @@
3 3
  * */
4 4
 var state = ''; // state tab页的 data-index(工单状态参数);
5 5
 var stateVal = ''; //默认为所有,”day”今天,”week”本周,”month”本月,”year”本年
6
+var showdatas = [];
6 7
 $(document).ready(function() {
8
+	stateVal = 'week';
9
+	initTable1();
7 10
 	$('.tool_bars').authorizeButton();
8 11
 	//搜索
9 12
 	$('#sc_btns').click(function() {
@@ -22,40 +25,41 @@ $(document).ready(function() {
22 25
 		range: '~',
23 26
 		theme: '#249fea'
24 27
 	});
25
-// function getPreDatetime(pdate = 3600 * 1000 * 24 * 30) {
26
-// 		  const start = new Date()
27
-// 		  start.setTime(start.getTime() - pdate)
28
-// 		  start.getYear() // 获取当前年份(2位)
29
-// 		  const YY = start.getFullYear() // 获取完整的年份(4位,1970-????)
30
-// 		  let MM = start.getMonth() + 1 // 获取当前月份(0-11,0代表1月)
31
-// 		  MM = MM > 9 ? MM : ('0' + MM)
32
-// 		  let DD = start.getDate() // 获取当前日(1-31)
33
-// 		  DD = DD > 9 ? DD : ('0' + DD)
34
-// 		  var lastmonth=YY + '-' + MM + '-' + DD
35
-// 		  return lastmonth
36
-// 		}
37
-	if ($('#startTime').val()=="") {
38
-			// function p(s) {
39
-			//     return s < 10 ? '0' + s: s;
40
-			// }
41
-			// var currentYear=new Date().getFullYear();
42
-			// var currentMonth=new Date().getMonth()+1;  
43
-			// var currentDate=new Date().getDate();
44
-		 //    var prevCurrentYear=0;
45
-		 //    var prevCurrentMonth=0;
46
-		 //    if(currentMonth==1){
47
-		 //        prevCurrentYear=currentYear-1;
48
-		 //        prevCurrentMonth=12;
49
-		 //    }else{
50
-		 //        prevCurrentYear=currentYear;
51
-		 //        prevCurrentMonth=currentMonth-1;
52
-		 //    }
53
-		 //    var current =currentYear+"-"+p(currentMonth)+"-"+p(currentDate);
54
-		 //    // var lastmonth=prevCurrentYear+"-"+p(prevCurrentMonth)+"-"+p(currentDate)
55
-		 //    $('#startTime').val(getPreDatetime()+" ~ "+current)
56
-		    initTable1() ;
28
+	if($('#startTime').val() == "") {
29
+		function p(s) {
30
+			return s < 10 ? '0' + s : s;
57 31
 		}
32
+		var currentYear = new Date().getFullYear();
33
+		var currentMonth = new Date().getMonth() + 1;
34
+		var currentDate = new Date().getDate();
35
+		var prevCurrentYear = 0;
36
+		var prevCurrentMonth = 0;
37
+		if(currentMonth == 1) {
38
+			prevCurrentYear = currentYear - 1;
39
+			prevCurrentMonth = 12;
40
+		} else {
41
+			prevCurrentYear = currentYear;
42
+			prevCurrentMonth = currentMonth - 1;
43
+		}
44
+		var current = currentYear + "-" + p(currentMonth) + "-" + p(currentDate);
45
+		// var lastmonth=prevCurrentYear+"-"+p(prevCurrentMonth)+"-"+p(currentDate)
46
+		$('#startTime').val(getPreDatetime(3600 * 1000 * 24 * 6) + " ~ " + current)
47
+		initTable1();
48
+	}
58 49
 });
50
+//前一周
51
+function getPreDatetime(pdate) {
52
+	var start = new Date()
53
+	start.setTime(start.getTime() - pdate)
54
+	start.getYear(); // 获取当前年份(2位)
55
+	var YY = start.getFullYear() // 获取完整的年份(4位,1970-????)
56
+	var MM = start.getMonth() + 1 // 获取当前月份(0-11,0代表1月)
57
+	MM = MM > 9 ? MM : ('0' + MM);
58
+	var DD = start.getDate() // 获取当前日(1-31)
59
+	DD = DD > 9 ? DD : ('0' + DD)
60
+	var lastmonth = YY + '-' + MM + '-' + DD;
61
+	return lastmonth;
62
+}
59 63
 
60 64
 function initTable1() {
61 65
 	//先销毁表格
@@ -64,9 +68,9 @@ function initTable1() {
64 68
 	$('#table1').bootstrapTable({
65 69
 		method: "get", //使用get请求到服务器获取数据
66 70
 		url: huayi.config.callcenter_url + "equipmentapi/api/WoRepairBase/gettjlist", //获取数据的Servlet地址
67
-        contentType: "application/x-www-form-urlencoded",
71
+		contentType: "application/x-www-form-urlencoded",
68 72
 		striped: true, //表格显示条纹
69
-        smartDisplay:false,
73
+		smartDisplay: false,
70 74
 		pagination: false, //启动分页
71 75
 		pageSize: 10, //每页显示的记录数
72 76
 		pageNumber: 1, //当前第几页
@@ -81,8 +85,8 @@ function initTable1() {
81 85
 		queryParams: function queryParams(params) { //设置查询参数
82 86
 			var param = {
83 87
 				daytype: stateVal,
84
-				isdjtype:$("#isdjtype").val(),
85
-                Jwocode: $('#teamName').val(), //班组名称
88
+				isdjtype: $("#isdjtype").val(),
89
+				Jwocode: $('#teamName').val(), //班组名称
86 90
 				stime: $('#startTime').val() && $('#startTime').val().split(' ~ ')[0], //开始时间
87 91
 				etime: $('#startTime').val() && $('#startTime').val().split(' ~ ')[1], //结束时间
88 92
 			};
@@ -90,9 +94,53 @@ function initTable1() {
90 94
 		},
91 95
 		responseHandler: function(res) {
92 96
 			//格式化数据
97
+			let len = res.data.lists.length
98
+			let newData = res.data.lists
99
+			var changecount = newData.reduce((sum, e) => sum + parseInt(e.changecount), 0) //改派量
100
+			var comfrom = newData.reduce((sum, e) => sum + parseInt(e.comfrom), 0) //本院量
101
+			var daycounts = newData.reduce((sum, e) => sum + parseInt(e.daycounts), 0) //总接单量
102
+			var finishcount = newData.reduce((sum, e) => sum + parseInt(e.finishcount), 0) //已完结量
103
+			var jsfinishcount = newData.reduce((sum, e) => sum + parseInt(e.jsfinishcount), 0) //及时完成
104
+			var csfinishcount = newData.reduce((sum, e) => sum + parseInt(e.csfinishcount), 0) //超时完成
105
+			var nfinishcount = newData.reduce((sum, e) => sum + parseInt(e.nfinishcount), 0) //未完结单量
106
+			var finishlv = newData.reduce((sum, e) => sum + parseInt(e.finishlv), 0) //完成率
107
+			var nofinnishlv = newData.reduce((sum, e) => sum + parseInt(e.nofinnishlv), 0) //未完成率
108
+			var mywocode = newData.reduce((sum, e) => sum + parseInt(e.mywocode), 0) //满意
109
+			var cwocode = newData.reduce((sum, e) => sum + parseInt(e.cwocode), 0) //差
110
+			var mydinfo = newData.reduce((sum, e) => sum + parseFloat(e.mydinfo), 0) //满意度
111
+			var comfrombl = newData.reduce((sum, e) => sum + parseInt(e.comfrombl), 0) //本院量率
112
+			var comfroms = newData.reduce((sum, e) => sum + parseInt(e.comfroms), 0) //第三方量
113
+			var comfromsbl = newData.reduce((sum, e) => sum + parseInt(e.comfromsbl), 0) //第三方量率
114
+			console.log(finishlv,nofinnishlv);
115
+			var newhzdata = [{
116
+				deptname: '合计',
117
+				daycounts: daycounts, //随访总数
118
+				finishcount: finishcount,
119
+				jsfinishcount: jsfinishcount,
120
+				csfinishcount: csfinishcount,
121
+				nfinishcount: nfinishcount, //满意数
122
+//				finishlv: (finishlv / len).toFixed(2) + '%',
123
+//				nofinnishlv: (nofinnishlv / len).toFixed(2) + '%', 
124
+				mywocode: mywocode,
125
+				cwocode: cwocode,
126
+//				mydinfo: (mydinfo / len).toFixed(2) + '%', 
127
+				comfrom: comfrom,
128
+//				comfrombl: (comfrombl / len).toFixed(2) + '%',
129
+				comfroms: comfroms,
130
+//				comfromsbl: (comfromsbl / len).toFixed(2) + '%',
131
+				changecount: changecount
132
+			}]
133
+			if(newData.length > 0) {
134
+				showdatas = newData.concat(newhzdata)
135
+			} else {
136
+				showdatas = []
137
+			}
93 138
 			return {
94
-				"rows": res.data && res.data.lists, //数据
139
+				"rows": showdatas //数据
95 140
 			};
141
+			//			return {
142
+			//				"rows": res.data && res.data.lists, //数据
143
+			//			};
96 144
 		},
97 145
 		onLoadSuccess: function(res) { //加载成功时执行
98 146
 		},
@@ -114,7 +162,7 @@ function initTable1() {
114 162
 function btn_add() {
115 163
 	layer.open({
116 164
 		type: 2,
117
-		content: "template/addEquipmentRepair.html", 
165
+		content: "template/addEquipmentRepair.html",
118 166
 		title: '添加设备维修',
119 167
 		area: ['70%', '80%'], //宽高
120 168
 	});
@@ -152,19 +200,41 @@ function btn_assign(proId, wocode) {
152 200
 
153 201
 //导出
154 202
 function btn_export() {
155
-    var Jwocode = $('#teamName').val() //班组名称
156
-	var isdjtype=$("#isdjtype").val()
157
-    var stime = $('#startTime').val() && $('#startTime').val().split(' ~ ')[0] //开始时间
158
-    var etime = $('#startTime').val() && $('#startTime').val().split(' ~ ')[1] //结束时间
159
-    window.location.href = huayi.config.callcenter_url + "equipmentapi/api/WoRepairBase/exportexcel?Jwocode=" + Jwocode + "&stime=" + stime + "&etime=" + etime+"&isdjtype=" + isdjtype 
203
+	//  var Jwocode = $('#teamName').val() //班组名称
204
+	//	var isdjtype=$("#isdjtype").val()
205
+	//  var stime = $('#startTime').val() && $('#startTime').val().split(' ~ ')[0] //开始时间
206
+	//  var etime = $('#startTime').val() && $('#startTime').val().split(' ~ ')[1] //结束时间
207
+	//  window.location.href = huayi.config.callcenter_url + "equipmentapi/api/WoRepairBase/exportexcel?Jwocode=" + Jwocode + "&stime=" + stime + "&etime=" + etime+"&isdjtype=" + isdjtype 
208
+	//要导出的json数据
209
+	const jsonData = showdatas
210
+	//列标题,逗号隔开,每一个逗号就是隔开一个单元格
211
+	var str = `班组名称,总接单量,已完结量,及时完成,超时完成,未完结单量,完成率,未完成率,满意,差,满意度,本院量,本院量率,第三方量,第三方量率,改派量\n`;
212
+	//增加\t为了不让表格显示科学计数法或者其他格式
213
+	for(let i = 0; i < jsonData.length; i++) {
214
+
215
+		for(let item in jsonData[i]) {
216
+			str += `${jsonData[i][item] + '\t'},`;
217
+		}
218
+		str += '\n';
219
+	}
220
+	//encodeURIComponent解决中文乱码
221
+	let uri = 'data:text/csv/xls;charset=utf-8,\ufeff' + encodeURIComponent(str);
222
+	//通过创建a标签实现
223
+	let link = document.createElement("a");
224
+	link.href = uri;
225
+	//对下载的文件命名
226
+	link.download = "报修工单统计表.xls";
227
+	document.body.appendChild(link);
228
+	link.click();
229
+	document.body.removeChild(link);
160 230
 }
161 231
 
162 232
 //详情
163 233
 function btn_detail(deptname) {
164 234
 	layer.open({
165 235
 		type: 2,
166
-		content: "template/warrantyWorkOrderDetail.html?deptname=" + encodeURIComponent(deptname), 
236
+		content: "template/warrantyWorkOrderDetail.html?deptname=" + encodeURIComponent(deptname),
167 237
 		title: '报修工单详情',
168 238
 		area: ['70%', '80%'], //宽高
169 239
 	});
170
-}
240
+}

+ 3 - 3
WebUI/CallCenterWeb.UI/equipmentOperationManage/warrantyWorkOrder.html

@@ -47,13 +47,13 @@
47 47
 			<div class="th-box">
48 48
 				<div class="col-md-12">
49 49
 					<div class="btn-group" data-toggle="buttons" id="sc_statebtn">
50
-						<label class="btn btn-primary active">
50
+						<!--<label class="btn btn-primary active">
51 51
 							<input type="radio" name="options" value="" autocomplete="off" checked> 全部
52
-						</label>
52
+						</label>-->
53 53
 						<label class="btn btn-primary">
54 54
 							<input type="radio" name="options" value="day" autocomplete="off"> 今天
55 55
 						</label>
56
-						<label class="btn btn-primary">
56
+						<label class="btn btn-primary active">
57 57
 							<input type="radio" name="options" value="week" autocomplete="off"> 本周
58 58
 						</label>
59 59
 						<label class="btn btn-primary">