tudc před 4 roky
rodič
revize
e34af193ef

+ 4 - 0
src/main/java/com/minpay/common/constant/Constant.java

@@ -370,6 +370,10 @@ public class Constant implements IMINBusinessConstant{
 	 * 报表类型  DDY30T 低电压超30天
 	 */
 	public static final String REPORT_TYPE_12 = "DDY30T";
+	/**
+	 * 报表类型  DDYYB 低电压月报
+	 */
+	public static final String REPORT_TYPE_13 = "DDYYB";
 	
 	/**
 	 * 原始文件状态 0正常

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1011 - 93
src/main/java/com/minpay/common/service/impl/ReportServiceImpl.java


+ 11 - 1
src/main/java/com/minpay/db/table/own/mapper/ReportServiceMapper.java

@@ -27,7 +27,7 @@ public interface ReportServiceMapper extends IMINMybatisEntityMapper {
 	
 	List<Map<String, String>> selectDetail03ByDDYZLFXB(Map<String, Object> param, MINRowBounds rows);
 	
-	List<Map<String, String>> selectDetail03ByDDYRB(Map<String, String> param);
+	List<Map<String, String>> selectDetail03ByDDYRB(Map<String, Object> param, MINRowBounds rows);
 	
 	List<Map<String, String>> selectDetail04ByGDYZLFXB(Map<String, String> param);
 	
@@ -41,5 +41,15 @@ public interface ReportServiceMapper extends IMINMybatisEntityMapper {
 	List<String> selectDetail05GetArea(Map<String, Object> param);
 	// 95598工单区域统计
 	List<Map<String, Object>> selectDetail05ByArea(Map<String, Object> param);
+	
+	List<Map<String, String>> selectDdyFxbByXgsmc(Map<String, Object> param);
+
+	List<Map<String, String>> selectDdyFxbByXgsmcAndZl(Map<String, Object> param);
+
+	List<Map<String, String>> selectDdyFxbByXgsmcYuJing(Map<String, Object> param);
+
+	List<Map<String, String>> selectDdyFxbByDDYZYMC(Map<String, Object> param);
+
+	List<Map<String, String>> selectDdyFxbByTQID(Map<String, Object> param);
 
 }

+ 6 - 0
src/main/java/com/minpay/reportManage/action/TQTDReportAction.java

@@ -131,6 +131,12 @@ public class TQTDReportAction implements IMINAction {
 			
 			List<Map<String, String>> mountCountList = db.getMybatisMapper(ReportServiceMapper.class).selectMountCount00(param);
 			res.set(IMINBusinessConstant.F_PAGING_LAY, mountCountList);
+		// 台区停电时户数
+		} else if ("TQTD05".equals(chuantouType)) {
+			List<Map<String, String>> fileList00 = db.getMybatisMapper(ReportServiceMapper.class).selectReportType00(param);
+			fileList00 = Service.lookup(IFormatService.class).formatDate(fileList00, "date");
+			fileList00 = Service.lookup(IFormatService.class).formatDateTime(fileList00, "startTime", "endTime");
+			res.set(IMINBusinessConstant.F_PAGING_LAY, fileList00);
 		}
 		
 		return res;

+ 64 - 1
src/main/resources/com/minpay/db/table/own/mapper/ReportServiceMapper.xml

@@ -14,7 +14,8 @@
 			a.DFD0_TERMINAL_NUM terminalNum,
 			a.DFD0_TERMINAL_ADDRESS terminalAddress,
 			a.DFD0_START_TIME startTime,
-			a.DFD0_END_TIME endTime
+			a.DFD0_END_TIME endTime,
+			cast(TIMESTAMPDIFF(MINUTE,DFD0_START_TIME,DFD0_END_TIME) as char) 'time'
         from 
         	dw_file_detail_00 a
 		where
@@ -25,6 +26,7 @@
 			<if test="endTime != null  and endTime != ''">
 		    	and DFD0_START_TIME &lt; #{endTime,jdbcType=VARCHAR}
 		   	</if>
+		order by area
 	</select>
 	<select id="selectReportType00TqtdGS" resultType="hashmap" parameterType="java.util.Map">
 		select
@@ -417,4 +419,65 @@
 		DFD7_TYPE,
 		DFD7_TRIPTYPE
 	</select>
+	
+	<select id="selectDdyFxbByXgsmc" resultType="hashmap" parameterType="java.util.Map">
+		SELECT 
+			DDF_XGSMC 'area', 
+			cast(COUNT(1) as char) 'num' 
+		FROM dw_ddy_fxb
+		where DDF_REPORT_ID = #{reportId,jdbcType=VARCHAR}
+		GROUP BY DDF_XGSMC
+		order by COUNT(1) desc
+	</select>
+	<select id="selectDdyFxbByXgsmcAndZl" resultType="hashmap" parameterType="java.util.Map">
+		SELECT 
+			DDF_XGSMC 'area',
+			DDF_SFZL 'sfzl',
+			cast(COUNT(1) as char) 'num' 
+		FROM dw_ddy_fxb
+		where DDF_REPORT_ID = #{reportId,jdbcType=VARCHAR}
+		and DDF_DDYSJ &gt;= 48
+		<if test = "zlwc != null and zlwc != ''">
+			and DDF_SFZL = '是'
+		</if>
+		GROUP BY DDF_XGSMC
+		order by COUNT(1) desc
+	</select>
+	<select id="selectDdyFxbByXgsmcYuJing" resultType="hashmap" parameterType="java.util.Map">
+		SELECT 
+			DDF_XGSMC 'area',
+			DDF_SFXC 'sfxc',
+			cast(COUNT(1) as char) 'num' 
+		FROM dw_ddy_fxb
+		where DDF_REPORT_ID = #{reportId,jdbcType=VARCHAR}
+		and DDF_DDYSJ &gt;= 15 and DDF_DDYSJ &lt; 48
+		<if test = "zlxc != null and zlxc != ''">
+			and DDF_SFXC = '是'
+		</if>
+		GROUP BY DDF_XGSMC,DDF_SFXC
+		ORDER BY DDF_XGSMC
+	</select>
+	<select id="selectDdyFxbByDDYZYMC" resultType="hashmap" parameterType="java.util.Map">
+		SELECT DDF_DDYZYMC ddyzymc, cast(COUNT(0) as char) num FROM dw_ddy_fxb WHERE DDF_DDYSJ >= 48 GROUP BY DDF_DDYZYMC order by COUNT(0) desc
+	</select>
+	<select id="selectDdyFxbByTQID" resultType="hashmap" parameterType="java.util.Map">
+		SELECT 
+		  DDF_XGSMC 'area',
+		  cast(COUNT(1) as char) 'num'
+		FROM
+		  (SELECT 
+		    DDF_XGSMC,
+		    DDF_TQID,
+		    COUNT(0) 
+		  FROM
+		    dw_ddy_fxb
+		  where DDF_REPORT_ID = #{reportId,jdbcType=VARCHAR}
+		  <if test = "taiQuKaohe != null and taiQuKaohe != ''">
+			and DDF_DDYSJ &gt;= 48
+		  </if>
+		  GROUP BY DDF_TQID,
+		    DDF_XGSMC) a 
+		GROUP BY a.DDF_XGSMC
+		order by COUNT(1) desc
+	</select>
 </mapper>

+ 1 - 1
src/main/webapp/admin/ddy/reportManageDdyYb.html

@@ -157,7 +157,7 @@
       
       function showDetail(data){
     	  var openPageId = pageId + "-02";
-    	  openMainTabPage(openPageId, "详情查看", "ddy/reportManageDetailDdyZb.html?pageId="+openPageId+"&reportId="+data.id+"&type="+data.type+"&typeId="+data.typeId+"&fileName="+chineseUrlEncode(data.fileName), '', pageId, null);
+    	  openMainTabPage(openPageId, "详情查看", "ddy/reportManageDetailDdyYb.html?pageId="+openPageId+"&reportId="+data.id+"&type="+data.type+"&typeId="+data.typeId+"&fileName="+chineseUrlEncode(data.fileName), '', pageId, null);
       }
       function editReport(data){
     	  var openPageId = pageId + "-03";

+ 1 - 1
src/main/webapp/admin/ddy/reportManageDetailDdy.html

@@ -80,7 +80,7 @@
 					,{field:'sfxc', title: '是否消除',width:'8%', templet : function (d) {
 						var html = '<select lay-ignore style = "width : 50px;" onchange = "ddyzymcChange(this,' + d.id + ',\'' + this.field + '\')">';
 						for (var i = 0; i < isOrNoSelect.length; i ++) {
-							if (isOrNoSelect[i] == d.sfzl) {
+							if (isOrNoSelect[i] == d.sfxc) {
 								html += '<option value = "' + isOrNoSelect[i] + '" selected>' + isOrNoSelect[i] + '</option>';
 							} else {
 								html += '<option value = "' + isOrNoSelect[i] + '" >' + isOrNoSelect[i] + '</option>';

+ 302 - 0
src/main/webapp/admin/ddy/reportManageDetailDdyYb.html

@@ -0,0 +1,302 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8">
+    <title>报告详情</title>
+    <script src="../../js/min-loader-next.js"></script>
+    <script src="../../js/echarts.min.js"></script>
+</head>
+<body class="content">
+	<div class="shadow-content" style="margin:1.5rem; text-align: center;">
+		<p id = "reportTitle" style="margin:15px; font-size : 20px"></p>
+		<p id = "reportDiv" style = "text-align:left;"></p>
+	</div>
+    <script>
+	var pageId = getQueryString("pageId");
+	var reportId = getQueryString("reportId");		//报告id
+	var fileName = chineseUrlDecodeURI(getQueryString("fileName"));	//报告名称
+	var typeId = getQueryString("typeId");	//报告类型id
+	
+	$("#reportTitle").html(fileName);
+	$.request({
+		action : 'ReportManageAction/reportInfDetail',
+		data : {
+			reportId : reportId
+		},
+		success : function(data) {
+			var reportDataJsonStr = data.data.data;
+			var resData = eval('(' + reportDataJsonStr + ')');
+			
+			var desc1 = resData.desc1;
+			var tableArray1 = resData.tableArray1;
+			var tubiaoData1 = resData.tubiaoData1;
+			var desc2 = resData.desc2;
+			var tableArray2 = resData.tableArray2;
+			var desc3 = resData.desc3;
+			var tableArray3 = resData.tableArray3;
+			var desc4 = resData.desc4;
+			var tableArray4 = resData.tableArray4;
+			var tubiaoData2 = resData.tubiaoData2;
+			
+			var dataMap = resData.dataMap;
+			
+			for(var key in dataMap){
+				var replaceStr = "${" + key + "}";
+				if (key == "month") {
+					desc1 = desc1.replace(/\${month}/g, dataMap[key]);
+					desc2 = desc2.replace(/\${month}/g, dataMap[key]);
+					desc3 = desc3.replace(/\${month}/g, dataMap[key]);
+					desc4 = desc4.replace(/\${month}/g, dataMap[key]);
+				} else if (key == "year") {
+					desc1 = desc1.replace(/\${year}/g, dataMap[key]);
+					desc2 = desc2.replace(/\${year}/g, dataMap[key]);
+					desc3 = desc3.replace(/\${year}/g, dataMap[key]);
+					desc4 = desc4.replace(/\${year}/g, dataMap[key]);
+				} else {
+					desc1 = desc1.replace(replaceStr, dataMap[key]);
+					desc2 = desc2.replace(replaceStr, dataMap[key]);
+					desc3 = desc3.replace(replaceStr, dataMap[key]);
+					desc4 = desc4.replace(replaceStr, dataMap[key]);
+				}
+			}
+			$("#reportDiv").append(desc1);
+			
+			// 压受考核及预警情况统计见表
+			var tableArray1Html = '<table class="layui-table">';
+			for (var i = 0; i < tableArray1.length; i ++) {
+				var child = tableArray1[i];
+				tableArray1Html += '<tr>';
+				for (var j = 0; j < child.length; j ++) {
+					var h = child[j];
+					tableArray1Html += '<td>' + h + '</td>';
+				}
+				tableArray1Html += '</tr>';
+			}
+			tableArray1Html += '</table>';
+			$("#reportDiv").append(tableArray1Html);
+			
+			$("#reportDiv").append('<div id = "tubiaoData1" style="width: 1200px;height:600px;"></div>');
+			var ymin1 = '';
+			var ymax1 = '';
+			var ymin2 = '';
+			var ymax2 = '';
+			var ymin3 = '';
+			var ymax3 = '';
+			for (var i = 0; i < tubiaoData1.length; i ++) {
+				var childMap = tubiaoData1[i];
+				var childList = childMap.data;
+				for (var j = 0; j < childList.length; j ++) {
+					// 获取最大最小值
+					if (i == 0) {
+						if (isEmpty(ymin1)) {
+							ymin1 = childList[j];
+						} else if (ymin1 > childList[j]) {
+							ymin1 = childList[j];
+						}
+						if (isEmpty(ymax1)) {
+							ymax1 = childList[j];
+						} else if (ymax1 < childList[j]) {
+							ymax1 = childList[j];
+						}
+					}
+					if (i == 1) {
+						if (isEmpty(ymin2)) {
+							ymin2 = childList[j];
+						} else if (ymin2 > childList[j]) {
+							ymin2 = childList[j];
+						}
+						if (isEmpty(ymax2)) {
+							ymax2 = childList[j];
+						} else if (ymax2 < childList[j]) {
+							ymax2 = childList[j];
+						}
+					}
+					if (i == 2) {
+						if (isEmpty(ymin3)) {
+							ymin3 = childList[j];
+						} else if (ymin3 > childList[j]) {
+							ymin3 = childList[j];
+						}
+						if (isEmpty(ymax3)) {
+							ymax3 = childList[j];
+						} else if (ymax3 < childList[j]) {
+							ymax3 = childList[j];
+						}
+					}
+				}
+			}
+			var tubiaoData1Charts = echarts.init(document.getElementById('tubiaoData1'));
+			var colors = ['#5793f3', '#d14a61', '#675bba'];
+			var tubiaoData1Option = {
+					color: colors,
+					title: {
+				        text: '考核低电压客户占比及治理情况',
+				        left: 'center'
+				    },
+				    tooltip: {
+				        trigger: 'axis',
+				        axisPointer: {
+				            type: 'cross'
+				        }
+				    },
+				    toolbox: {
+				        feature: {
+				            dataView: {show: true, readOnly: false},
+				            magicType: {show: true, type: ['line', 'bar']},
+				            restore: {show: true},
+				            saveAsImage: {show: true}
+				        }
+				    },
+				    legend: {
+				        data: ['治理完成户数', '治理完成率', '考核低压占比'],
+				        left: 'left'
+				    },
+				    xAxis: [
+				        {
+				            type: 'category',
+				            data: ['岱岳', '东平', '高新', '新泰', '宁阳', '肥城', '泰山', '景区'],
+				            axisPointer: {
+				                type: 'shadow'
+				            }
+				        }
+				    ],
+				    yAxis: [
+				        {
+				            type: 'value',
+				            name: '治理完成户数',
+				            min: ymin1,
+				            max: ymax1,
+				            position: 'left',
+				            axisLine: {
+				                lineStyle: {
+				                    color: colors[0]
+				                }
+				            }
+				        },
+				        {
+				            type: 'value',
+				            name: '治理完成率',
+				            min: ymin2,
+				            max: ymax2,
+				            position: 'right',
+				            axisLabel: {
+				                formatter: '{value} %'
+				            },
+				            axisLine: {
+				                lineStyle: {
+				                    color: colors[1]
+				                }
+				            }
+				        },{
+				            type: 'value',
+				            name: '考核低压占比',
+				            min: ymin3,
+				            max: ymax3,
+				            offset: 80,
+				            position: 'right',
+				            axisLabel: {
+				                formatter: '{value} %'
+				            },
+				            axisLine: {
+				                lineStyle: {
+				                    color: colors[2]
+				                }
+				            }
+				        }
+				    ],
+				    series: tubiaoData1
+				};
+			tubiaoData1Charts.setOption(tubiaoData1Option);
+			
+			$("#reportDiv").append(desc2);
+			
+			var tableArray2Html = '<table class="layui-table">';
+			for (var i = 0; i < tableArray2.length; i ++) {
+				var child = tableArray2[i];
+				tableArray2Html += '<tr>';
+				for (var j = 0; j < child.length; j ++) {
+					var h = child[j];
+					tableArray2Html += '<td>' + h + '</td>';
+				}
+				tableArray2Html += '</tr>';
+			}
+			tableArray2Html += '</table>';
+			$("#reportDiv").append(tableArray2Html);
+			
+			$("#reportDiv").append(desc3);
+			
+			var tableArray3Html = '<table class="layui-table">';
+			for (var i = 0; i < tableArray3.length; i ++) {
+				var child = tableArray3[i];
+				tableArray3Html += '<tr>';
+				for (var j = 0; j < child.length; j ++) {
+					var h = child[j];
+					tableArray3Html += '<td>' + h + '</td>';
+				}
+				tableArray3Html += '</tr>';
+			}
+			tableArray3Html += '</table>';
+			$("#reportDiv").append(tableArray3Html);
+			
+			$("#reportDiv").append(desc4);
+			var tableArray4Html = '<table class="layui-table">';
+			for (var i = 0; i < tableArray4.length; i ++) {
+				var child = tableArray4[i];
+				tableArray4Html += '<tr>';
+				for (var j = 0; j < child.length; j ++) {
+					var h = child[j];
+					tableArray4Html += '<td>' + h + '</td>';
+				}
+				tableArray4Html += '</tr>';
+			}
+			tableArray4Html += '</table>';
+			$("#reportDiv").append(tableArray4Html);
+			
+			
+			$("#reportDiv").append('<div id = "tubiaoData2" style="width: 1200px;height:600px;"></div>');
+			var tubiaoData2Charts = echarts.init(document.getElementById('tubiaoData2'));
+			var tubiaoData2LegendData = new Array();
+			for (var i = 0; i < tubiaoData2[0].data.length; i ++) {
+				tubiaoData2LegendData.push(tubiaoData2[0].data[i].name);
+			}
+			var tubiaoData2Option = {
+				    title: {
+				        text: '受考核低电压用户原因',
+				        subtext: '分类情况统计',
+				        left: 'center'
+				    },
+				    tooltip: {
+				        trigger: 'item',
+				        formatter: '{a} <br/>{b} : {c} ({d}%)'
+				    },
+				    toolbox: {
+				        show: true,
+				        feature: {
+				            mark: {show: true},
+				            dataView: {show: true, readOnly: false},
+				            magicType: {
+				                show: true,
+				                type: ['pie', 'funnel']
+				            },
+				            restore: {show: true},
+				            saveAsImage: {show: true}
+				        }
+				    },
+				    legend: {
+				        orient: 'vertical',
+				        left: 'left',
+				        data: tubiaoData2LegendData
+				    },
+				    series: tubiaoData2
+				};
+			tubiaoData2Charts.setOption(tubiaoData2Option);
+		},
+		error : function(data2) {
+			$.ErrorAlert(data2.MINErrorMessage);
+		}
+  	});
+    </script>
+</body>
+
+</html>

+ 288 - 84
src/main/webapp/admin/ddy/reportProduceYb.html

@@ -6,6 +6,7 @@
     <title>导入</title>
     <script src="../../js/min-loader-next.js"></script>
     <script src="../../js/report.js"></script>
+    <script src="../../js/echarts.min.js"></script>
     <link rel="stylesheet" href="../../plugins/layui/lay/modules/steps/style.css"></link>
     <style>
     	.layui-input {
@@ -57,21 +58,17 @@
 		</form>
 	</div>
 	<div name = "step" style = "width: 80%; margin-left : 10%;height : 300px; display : none; text-align : center;">
-		<form class="layui-form" style = "text-align : center;">
-			<div style = "width: 80%; margin-left : 0px; height : 200px" class = "layui-upload-drag" >
-				<input type="text"  class="layui-input" id="range" placeholder="请选择月范围" style = "display: inline-block;">
-			</div>
-			<div style="margin-top : 50px;">
-		      <button type="button" class="layui-btn" style = "width : 214px" onclick = "tableYulan()">下一步</button>
-		    </div>
-	    </form>
+		<div style = "width: 80%; margin-left : 0px; height : 200px" class = "layui-upload-drag" >
+		  	<input id = "chooseFenxiReport" type="text" style = "display : inline-block" class="layui-input" placeholder="请选择分析表">
+		</div>
+		<div style="margin-top : 50px;">
+	      <button type="button" class="layui-btn" style = "width : 214px" onclick = "tableYulan()">下一步</button>
+	    </div>
 	</div>
-	<div name = "step" style = "width: 80%; margin-left : 10%; height : 300px; display : none; text-align : center;">
-		<div style = "width: 80%; margin-left : 0px;" class = "layui-upload-drag" >
+	<div name = "step" style = "height : 300px; display : none; text-align : center;">
+		<div style = "width: 100%; margin-left : 0px;" class = "layui-upload-drag" >
 		  <p id = "fileName" contenteditable="true">国网泰安供电公司2020年8月份配网运行分析月报</p>
-		  <p id = "reportDiv"></p>
-		  <table id = "reportTable" class="layui-table">
-		  </table>
+		  <div id = "reportDiv" style = "text-align:left;"></div>
 		</div>
 		<div style="margin-top : 50px;">
 	      <button type="button" class="layui-btn" style = "width : 214px" onclick = "goStep(4)">下一步</button>
@@ -88,7 +85,8 @@
 	
     <script>
 		var pageId = getQueryString("pageId");
-		var reportType = getQueryString("reportType"); //报告类型
+		var reportType = getQueryString("reportType");// 00日报01周报02月报
+		
 		var $step;
 		layui.config({
 	        base: '../../plugins/layui/lay/modules/steps/'
@@ -97,18 +95,21 @@
     	    $step = $("#step_demo").step();
 		})
 		
-		layui.use('laydate', function(){
-			laydate.render({
-				elem: '#range'
-				,format : 'yyyyMMdd'
-				,range : true
-				,trigger: 'click' //采用click弹出
-			});
+		$("#chooseFenxiReport").click(function(){
+			var openPageId = pageId + "-01";
+    	  	openMainTabPage(openPageId, "报表生成", "common/chooseDdyFxb.html?pageId="+openPageId, '', pageId, chooseBack);
 		})
+		
+		// 选择分析表返回
+		var fxbReport;
+		function chooseBack() {
+			fxbReport = getTempVal("fxbReport");
+			$("#chooseFenxiReport").val(fxbReport.fileName);
+		}
+		
 		// 范围类型
 		layui.use('form', function(){
 			var form = layui.form;
-			
 			$.request({
 				action : 'BranchReportTypeAction/branchReportTypeQuery',
 				data : {
@@ -171,45 +172,22 @@
 		
 		function goStep (step) {
 			var reportInf = $("#reportTypeDiv").find("select option:selected").val();
-			
 			if (step == 2) {
 				if (isEmpty(reportInf)) {
 					$.ErrorAlert("请选择上传文件类型!");
 					return;
 				}
-				var reportType = reportInf.split("_")[0];
-				// 台区停电日报
-				if ("TQTDRB" == reportType) {
-					$("body").find("[name='TQTDRB']").show();
-				}
 			}
 			
 			if (step == 4) {
 				var fileName = $("#fileName").html();
-				var yearChoose = $("#yearChoose").val();
-				var monthChoose = $("#monthChoose").val();
-				var weekRange = $("#weekRange").val();
-				if (isEmpty(yearChoose)) {
-					$.ErrorAlert("请选择年范围!");
-					return;
-				}
-				if (isEmpty(monthChoose)) {
-					$.ErrorAlert("请选择月范围!");
-					return;
-				}
-				if (isEmpty(weekRange)) {
-					$.ErrorAlert("请选择周范围!");
-					return;
-				}
 				$.request({
 					action : 'ReportManageAction/fileInfReportSubmit',
 					data : {
 						reportData : JSON.stringify(reportData),
 						reportInf : reportInf,
 						fileName : fileName,
-						range : weekRange,
-						yearChoose : yearChoose,
-						monthChoose : monthChoose
+						ddyFxbId : fxbReport.id
 					},
 					success : function(data) {
 						if (data.code == 0) {
@@ -253,19 +231,8 @@
 		// 预览
 		function tableYulan() {
 			var reportInf = $("#reportTypeDiv").find("select option:selected").val();
-			var yearChoose = $("#yearChoose").val();
-			var monthChoose = $("#monthChoose").val();
-			var weekRange = $("#weekRange").val();
-			if (isEmpty(yearChoose)) {
-				$.ErrorAlert("请选择年范围!");
-				return;
-			}
-			if (isEmpty(monthChoose)) {
-				$.ErrorAlert("请选择月范围!");
-				return;
-			}
-			if (isEmpty(weekRange)) {
-				$.ErrorAlert("请选择周范围!");
+			if (isEmpty(fxbReport)) {
+				$.ErrorAlert("请选择分析表!");
 				return;
 			}
 			
@@ -274,23 +241,275 @@
 				action : 'ReportManageAction/reportNeedDataDetail',
 				data : {
 					reportInf : reportInf,
-					yearChoose : yearChoose,
-					range : weekRange,
-					monthChoose : monthChoose
+					ddyFxbId : fxbReport.id
 				},
 				success : function(data) {
 					if (data.code == 0) {
-						reportData = data.data;
+						var resData = data.data;
+						var desc1 = resData.desc1;
+						var tableArray1 = resData.tableArray1;
+						var tubiaoData1 = resData.tubiaoData1;
+						var desc2 = resData.desc2;
+						var tableArray2 = resData.tableArray2;
+						var desc3 = resData.desc3;
+						var tableArray3 = resData.tableArray3;
+						var desc4 = resData.desc4;
+						var tableArray4 = resData.tableArray4;
+						var tubiaoData2 = resData.tubiaoData2;
 						
-						var reportMap = data.data.reportMap;
-						var descStr = data.data.descStr;
-						for(var key in reportMap){
+						var dataMap = resData.dataMap;
+						reportData = resData;
+						
+						for(var key in dataMap){
 							var replaceStr = "${" + key + "}";
-							descStr = descStr.replace(replaceStr, reportMap[key]);
+							if (key == "month") {
+								desc1 = desc1.replace(/\${month}/g, dataMap[key]);
+								desc2 = desc2.replace(/\${month}/g, dataMap[key]);
+								desc3 = desc3.replace(/\${month}/g, dataMap[key]);
+								desc4 = desc4.replace(/\${month}/g, dataMap[key]);
+							} else if (key == "year") {
+								desc1 = desc1.replace(/\${year}/g, dataMap[key]);
+								desc2 = desc2.replace(/\${year}/g, dataMap[key]);
+								desc3 = desc3.replace(/\${year}/g, dataMap[key]);
+								desc4 = desc4.replace(/\${year}/g, dataMap[key]);
+							} else {
+								desc1 = desc1.replace(replaceStr, dataMap[key]);
+								desc2 = desc2.replace(replaceStr, dataMap[key]);
+								desc3 = desc3.replace(replaceStr, dataMap[key]);
+								desc4 = desc4.replace(replaceStr, dataMap[key]);
+							}
 						}
+						$("#reportDiv").append(desc1);
 						
-						$("#reportDiv").html(descStr);
-						initExcelData(reportData.excelList, "reportTable", false);
+						// 压受考核及预警情况统计见表
+						var tableArray1Html = '<table class="layui-table">';
+						for (var i = 0; i < tableArray1.length; i ++) {
+							var child = tableArray1[i];
+							tableArray1Html += '<tr>';
+							for (var j = 0; j < child.length; j ++) {
+								var h = child[j];
+								tableArray1Html += '<td>' + h + '</td>';
+							}
+							tableArray1Html += '</tr>';
+						}
+						tableArray1Html += '</table>';
+						$("#reportDiv").append(tableArray1Html);
+						
+						$("#reportDiv").append('<div id = "tubiaoData1" style="width: 1200px;height:600px;"></div>');
+						var ymin1 = '';
+						var ymax1 = '';
+						var ymin2 = '';
+						var ymax2 = '';
+						var ymin3 = '';
+						var ymax3 = '';
+						for (var i = 0; i < tubiaoData1.length; i ++) {
+							var childMap = tubiaoData1[i];
+							var childList = childMap.data;
+							for (var j = 0; j < childList.length; j ++) {
+								if (i == 0) {
+									childList[j] = parseInt(childList[j]);
+								} else {
+									childList[j] = parseFloat(childList[j].replace("%", ""));
+								}
+								// 获取最大最小值
+								if (i == 0) {
+									if (isEmpty(ymin1)) {
+										ymin1 = childList[j];
+									} else if (ymin1 > childList[j]) {
+										ymin1 = childList[j];
+									}
+									if (isEmpty(ymax1)) {
+										ymax1 = childList[j];
+									} else if (ymax1 < childList[j]) {
+										ymax1 = childList[j];
+									}
+								}
+								if (i == 1) {
+									if (isEmpty(ymin2)) {
+										ymin2 = childList[j];
+									} else if (ymin2 > childList[j]) {
+										ymin2 = childList[j];
+									}
+									if (isEmpty(ymax2)) {
+										ymax2 = childList[j];
+									} else if (ymax2 < childList[j]) {
+										ymax2 = childList[j];
+									}
+								}
+								if (i == 2) {
+									if (isEmpty(ymin3)) {
+										ymin3 = childList[j];
+									} else if (ymin3 > childList[j]) {
+										ymin3 = childList[j];
+									}
+									if (isEmpty(ymax3)) {
+										ymax3 = childList[j];
+									} else if (ymax3 < childList[j]) {
+										ymax3 = childList[j];
+									}
+								}
+							}
+						}
+						var tubiaoData1Charts = echarts.init(document.getElementById('tubiaoData1'));
+						var colors = ['#5793f3', '#d14a61', '#675bba'];
+						var tubiaoData1Option = {
+								color: colors,
+							    tooltip: {
+							        trigger: 'axis',
+							        axisPointer: {
+							            type: 'cross'
+							        }
+							    },
+							    toolbox: {
+							        feature: {
+							            dataView: {show: true, readOnly: false},
+							            magicType: {show: true, type: ['line', 'bar']},
+							            restore: {show: true},
+							            saveAsImage: {show: true}
+							        }
+							    },
+							    legend: {
+							        data: ['治理完成户数', '治理完成率', '考核低压占比']
+							    },
+							    xAxis: [
+							        {
+							            type: 'category',
+							            data: ['岱岳', '东平', '高新', '新泰', '宁阳', '肥城', '泰山', '景区'],
+							            axisPointer: {
+							                type: 'shadow'
+							            }
+							        }
+							    ],
+							    yAxis: [
+							        {
+							            type: 'value',
+							            name: '治理完成户数',
+							            min: ymin1,
+							            max: ymax1,
+							            position: 'left',
+							            axisLine: {
+							                lineStyle: {
+							                    color: colors[0]
+							                }
+							            }
+							        },
+							        {
+							            type: 'value',
+							            name: '治理完成率',
+							            min: ymin2,
+							            max: ymax2,
+							            position: 'right',
+							            axisLabel: {
+							                formatter: '{value} %'
+							            },
+							            axisLine: {
+							                lineStyle: {
+							                    color: colors[1]
+							                }
+							            }
+							        },{
+							            type: 'value',
+							            name: '考核低压占比',
+							            min: ymin3,
+							            max: ymax3,
+							            offset: 80,
+							            position: 'right',
+							            axisLabel: {
+							                formatter: '{value} %'
+							            },
+							            axisLine: {
+							                lineStyle: {
+							                    color: colors[2]
+							                }
+							            }
+							        }
+							    ],
+							    series: tubiaoData1
+							};
+						tubiaoData1Charts.setOption(tubiaoData1Option);
+						
+						$("#reportDiv").append(desc2);
+						
+						var tableArray2Html = '<table class="layui-table">';
+						for (var i = 0; i < tableArray2.length; i ++) {
+							var child = tableArray2[i];
+							tableArray2Html += '<tr>';
+							for (var j = 0; j < child.length; j ++) {
+								var h = child[j];
+								tableArray2Html += '<td>' + h + '</td>';
+							}
+							tableArray2Html += '</tr>';
+						}
+						tableArray2Html += '</table>';
+						$("#reportDiv").append(tableArray2Html);
+						
+						$("#reportDiv").append(desc3);
+						
+						var tableArray3Html = '<table class="layui-table">';
+						for (var i = 0; i < tableArray3.length; i ++) {
+							var child = tableArray3[i];
+							tableArray3Html += '<tr>';
+							for (var j = 0; j < child.length; j ++) {
+								var h = child[j];
+								tableArray3Html += '<td>' + h + '</td>';
+							}
+							tableArray3Html += '</tr>';
+						}
+						tableArray3Html += '</table>';
+						$("#reportDiv").append(tableArray3Html);
+						
+						$("#reportDiv").append(desc4);
+						var tableArray4Html = '<table class="layui-table">';
+						for (var i = 0; i < tableArray4.length; i ++) {
+							var child = tableArray4[i];
+							tableArray4Html += '<tr>';
+							for (var j = 0; j < child.length; j ++) {
+								var h = child[j];
+								tableArray4Html += '<td>' + h + '</td>';
+							}
+							tableArray4Html += '</tr>';
+						}
+						tableArray4Html += '</table>';
+						$("#reportDiv").append(tableArray4Html);
+						
+						
+						$("#reportDiv").append('<div id = "tubiaoData2" style="width: 1200px;height:600px;"></div>');
+						var tubiaoData2Charts = echarts.init(document.getElementById('tubiaoData2'));
+						var tubiaoData2LegendData = new Array();
+						for (var i = 0; i < tubiaoData2[0].data.length; i ++) {
+							tubiaoData2LegendData.push(tubiaoData2[0].data[i].name);
+						}
+						var tubiaoData2Option = {
+							    title: {
+							        text: '受考核低电压用户原因',
+							        subtext: '分类情况统计',
+							        left: 'center'
+							    },
+							    tooltip: {
+							        trigger: 'item',
+							        formatter: '{a} <br/>{b} : {c} ({d}%)'
+							    },
+							    toolbox: {
+							        show: true,
+							        feature: {
+							            mark: {show: true},
+							            dataView: {show: true, readOnly: false},
+							            magicType: {
+							                show: true,
+							                type: ['pie', 'funnel']
+							            },
+							            restore: {show: true},
+							            saveAsImage: {show: true}
+							        }
+							    },
+							    legend: {
+							        orient: 'vertical',
+							        left: 'left',
+							        data: tubiaoData2LegendData
+							    },
+							    series: tubiaoData2
+							};
+						tubiaoData2Charts.setOption(tubiaoData2Option);
 						goStep(3);
 			    	} else {
 			    		$.ErrorAlert(res.MINErrorMessage);
@@ -301,21 +520,6 @@
 				}
     	  	});
 		}
-		
-		function changeHtml(t) {
-			var initValue = $(t).html();
-			layer.prompt({
-					formType: 2,
-					value: initValue,
-					title: '请输入',
-					area: ['200px', '33px'] //自定义文本域宽高
-				}, 
-				function(value, index, elem){
-					$(t).html(value);
-					layer.close(index);
-				}
-			);
-		}
     </script>
 </body>
 

+ 17 - 0
src/main/webapp/admin/tqtd/reportManageDetailChuantou.html

@@ -55,6 +55,23 @@
 						,{field: 'addressName', title: '台区名称', width:'20%'}
 						,{field: 'num', title: '停电次数', width: '20%'}
 					]];
+		} else if (chuantouType == "TQTD05") {
+			cols = [[ //表头
+						{field:'num', title: '序号',width:'5%', type:'numbers', align: 'center'}
+						,{field: 'addressNum', title: '台区编号', width:'8%'}
+						,{field: 'addressName', title: '台区名称', width:'8%'}
+						,{field: 'date', title: '数据日期', width: '8%'}
+						,{field: 'area', title: '单位', width: '8%'}
+						,{field: 'comonpanyName', title: '供电所名称', width: '10%'}
+						,{field: 'terminalName', title: '终端名称', width: '7%'}
+						,{field: 'terminalNum', title: '终端编号', width: '8%'}
+						,{field: 'terminalAddress', title: '终端地址码', width: '10%'}
+						,{field: 'startTime', title: '停电时间', width: '10%'}
+						,{field: 'endTime', title: '来电时间', width: '10%'}
+						,{field: 'hour', title: '时长', width: '5%', templet : function (d) {
+							return accDivFun(d.time, "60", 2);
+						}}
+					]];
 		}
 		
 	    layui.use('table', function(){

+ 9 - 3
src/main/webapp/admin/tqtd/reportManageDetailTqtd.html

@@ -105,13 +105,15 @@
 					// 台区停电次数
 					if (i == 2) {
 						html += '<td style="cursor: pointer" onclick="tqtd0()">' + excelChildList[j] + '</td>';
+					} else if (i == 3) {
+						html += '<td style="cursor: pointer" onclick="tqtd4()">' + excelChildList[j] + '</td>';
 					// 2个月停电3次及以上台区
-					} else if (i == 5) {
+					} else if (i == 6) {
 						html += '<td style="cursor: pointer" onclick="tqtd1()">' + excelChildList[j] + '</td>';
 					// 2个月停电3次及以上台区且昨日停电
-					} else if (i == 6) {
-						html += '<td style="cursor: pointer" onclick="tqtd2()">' + excelChildList[j] + '</td>';
 					} else if (i == 7) {
+						html += '<td style="cursor: pointer" onclick="tqtd2()">' + excelChildList[j] + '</td>';
+					} else if (i == 8) {
 						html += '<td style="cursor: pointer" onclick="tqtd3()">' + excelChildList[j] + '</td>';
 					} else {
 						html += '<td>' + excelChildList[j] + '</td>';
@@ -145,6 +147,10 @@
 		var openPageId = pageId + "-04";
 		openMainTabPage(openPageId, "详情", "tqtd/reportManageDetailChuantou.html?pageId="+openPageId+"&reportId="+reportId+"&chuantouType=TQTD04", '', pageId, null);
 	}
+	function tqtd4(){
+		var openPageId = pageId + "-05";
+		openMainTabPage(openPageId, "详情", "tqtd/reportManageDetailChuantou.html?pageId="+openPageId+"&reportId="+reportId+"&chuantouType=TQTD05", '', pageId, null);
+	}
 	
 	function downLoadFujian() {
 		var data = {reportId : reportId};