tudc hace 4 años
padre
commit
dd2d72f11e

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

@@ -346,6 +346,10 @@ public class Constant implements IMINBusinessConstant{
 	 * 报表类型  GDYZLFXB 过电压成效分析表
 	 */
 	public static final String REPORT_TYPE_07 = "GDYZLFXB";
+	/**
+	 * 报表类型  95598YB 95598工单月报
+	 */
+	public static final String REPORT_TYPE_08 = "95598YB";
 	
 	/**
 	 * 原始文件状态 0正常

+ 321 - 3
src/main/java/com/minpay/common/service/impl/ReportServiceImpl.java

@@ -3,6 +3,7 @@ package com.minpay.common.service.impl;
 
 import java.text.ParseException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -128,17 +129,19 @@ public class ReportServiceImpl implements IReportService {
     		List<List<String>> resList = reportTypeFADZBB(FADateRange, yearChoose);
     		resMap.put("resList", resList);
     		//低电压分析表
-    	}else if(Constant.REPORT_TYPE_05.equals(reportTypeId)){
+    	} else if (Constant.REPORT_TYPE_05.equals(reportTypeId)){
     		List<List<String>> resList = reportTypeDDYZLFXB(range, reportTypeId);
     		resMap.put("resList", resList);
     	//低电压日报	
-    	}else if(Constant.REPORT_TYPE_06.equals(reportTypeId)){
+    	} else if (Constant.REPORT_TYPE_06.equals(reportTypeId)){
     		List<List<String>> resList = reportTypeDDYRB(DdyDateRange,yearChoose,range, reportTypeId);
     		resMap.put("resList", resList);
     		//过电压分析表
-    	}else if(Constant.REPORT_TYPE_07.equals(reportTypeId)){
+    	} else if (Constant.REPORT_TYPE_07.equals(reportTypeId)){
     		List<List<String>> resList = reportTypeGDYZLFXB(range, reportTypeId);
     		resMap.put("resList", resList);
+    	} else if (Constant.REPORT_TYPE_08.equals(reportTypeId)){
+    		return reportType95598YB(range);
     	}
 		return resMap;
 	}
@@ -1759,4 +1762,319 @@ public class ReportServiceImpl implements IReportService {
 		
 		return resList;
 	}
+	
+	public Map<String, Object> reportType95598YB(String range) throws MINBusinessException, ParseException{
+		IMINDataBaseService db = Service.lookup(IMINDataBaseService.class);
+		
+		Map<String, Object> resMap = new HashMap<String, Object>();
+		
+		range = range.replaceAll(" ", "");
+		String[] rangeArray = range.split("-");
+		String beginTime = rangeArray[0];
+		String endTime = rangeArray[1];
+		
+		// 类型列表
+		List<String> typeList = new ArrayList<String>();
+		
+		// 统计表格
+		List<List<String>> tongjiList = new ArrayList<List<String>>();
+		List<String> titleList = new ArrayList<String>();
+		titleList.add("类型");
+		titleList.add("去年同月");
+		titleList.add("上月");
+		titleList.add("本月");
+		titleList.add("同比");
+		titleList.add("环比");
+		tongjiList.add(titleList);
+		
+		Map<String, Object> param = new HashMap<String, Object>();
+		
+		String totalBenyueNum = "0";
+		String totalShangyueNum = "0";
+		String totalQunianNum = "0";
+		
+		// 本月数据
+		param.put("beginTime", beginTime);
+		param.put("endTime", endTime);
+		// 类型统计数据
+		List<Map<String, Object>> benyueTongjiMap = db.getMybatisMapper(ReportServiceMapper.class).selectDetail05ByType(param);
+		// 区域统计数据
+		List<Map<String, Object>> benyueByAreaMap = db.getMybatisMapper(ReportServiceMapper.class).selectDetail05ByArea(param);
+		
+		for (Map<String, Object> map : benyueTongjiMap) {
+			String type = String.valueOf(map.get("type"));
+			String num = String.valueOf(map.get("num"));
+			// 不包含该类型,新增一个类型
+			if (!typeList.contains(type)) {
+				typeList.add(type);
+				List<String> typeDataList = Arrays.asList(new String[6]);
+				typeDataList.set(0,type);
+				typeDataList.set(3, num);
+				tongjiList.add(typeDataList);
+			// 已包含该类型,原数据中增加数据
+			} else {
+				int index = typeList.indexOf(type);
+				List<String> typeDataList = tongjiList.get(index + 1);
+				typeDataList.set(3, num);
+			}
+			
+			totalBenyueNum = CommonUtil.add(totalBenyueNum, num);
+		}
+		
+		// 上月数据
+		String lastBeginTime = DateUtil.dateAddMonth(beginTime, -1);
+		String lastEndTime = DateUtil.dateAddMonth(endTime, -1);
+		param.put("beginTime", lastBeginTime);
+		param.put("endTime", lastEndTime);
+		List<Map<String, Object>> shangyueTongjiMap = db.getMybatisMapper(ReportServiceMapper.class).selectDetail05ByType(param);
+		// 区域统计数据
+		List<Map<String, Object>> shangyueByAreaMap = db.getMybatisMapper(ReportServiceMapper.class).selectDetail05ByArea(param);
+		for (Map<String, Object> map : shangyueTongjiMap) {
+			String type = String.valueOf(map.get("type"));
+			String num = String.valueOf(map.get("num"));
+			// 不包含该类型,新增一个类型
+			if (!typeList.contains(type)) {
+				typeList.add(type);
+				List<String> typeDataList = Arrays.asList(new String[6]);
+				typeDataList.set(0,type);
+				typeDataList.set(2, num);
+				tongjiList.add(typeDataList);
+			// 已包含该类型,原数据中增加数据
+			} else {
+				int index = typeList.indexOf(type);
+				List<String> typeDataList = tongjiList.get(index + 1);
+				typeDataList.set(2, num);
+			}
+			
+			totalShangyueNum = CommonUtil.add(totalShangyueNum, num);
+		}
+		
+		// 去年同期数据
+		String qinianBeginTime = DateUtil.dateAddYear(beginTime, -1);
+		String qunianEndTime = DateUtil.dateAddYear(endTime, -1);
+		param.put("beginTime", qinianBeginTime);
+		param.put("endTime", qunianEndTime);
+		List<Map<String, Object>> qunianTongjiMap = db.getMybatisMapper(ReportServiceMapper.class).selectDetail05ByType(param);
+		// 区域统计数据
+		List<Map<String, Object>> qunianByAreaMap = db.getMybatisMapper(ReportServiceMapper.class).selectDetail05ByArea(param);
+		for (Map<String, Object> map : qunianTongjiMap) {
+			String type = String.valueOf(map.get("type"));
+			String num = String.valueOf(map.get("num"));
+			// 不包含该类型,新增一个类型
+			if (!typeList.contains(type)) {
+				typeList.add(type);
+				List<String> typeDataList = Arrays.asList(new String[6]);
+				typeDataList.set(0,type);
+				typeDataList.set(1, num);
+				tongjiList.add(typeDataList);
+			// 已包含该类型,原数据中增加数据
+			} else {
+				int index = typeList.indexOf(type);
+				List<String> typeDataList = tongjiList.get(index + 1);
+				typeDataList.set(1, num);
+			}
+			
+			totalQunianNum = CommonUtil.add(totalQunianNum, num);
+		}
+		
+		// 合计
+		List<String> hejiList = new ArrayList<String>();
+		hejiList.add("总计");
+		hejiList.add(totalQunianNum);
+		hejiList.add(totalShangyueNum);
+		hejiList.add(totalBenyueNum);
+		hejiList.add("");
+		hejiList.add("");
+		tongjiList.add(hejiList);
+		
+		// 计算同比环比
+		for (int i = 1; i < tongjiList.size(); i ++) {
+			List<String> childList = tongjiList.get(i);
+			String qunianNum = CommonUtil.isEmpty(childList.get(1))?"0":childList.get(1);
+			String shangyueNum = CommonUtil.isEmpty(childList.get(2))?"0":childList.get(2);
+			String benyueNum = CommonUtil.isEmpty(childList.get(3))?"0":childList.get(3);
+			// 本月有数据
+			if (CommonUtil.compare(benyueNum, "0") != 0) {
+				// 去年有数据
+				if (CommonUtil.compare(qunianNum, "0") != 0) {
+					String tongbi = CommonUtil.multiply(CommonUtil.divide(CommonUtil.subtract(benyueNum, qunianNum), qunianNum, 4), "100", 2) + "%";
+					childList.set(4, tongbi);
+				}
+				// 上月有数据
+				if (CommonUtil.compare(shangyueNum, "0") != 0) {
+					String huanbi = CommonUtil.multiply(CommonUtil.divide(CommonUtil.subtract(benyueNum, shangyueNum), shangyueNum, 4), "100", 2) + "%";
+					childList.set(5, huanbi);
+				}
+			}
+		}
+		
+		resMap.put("tongjiList", tongjiList);
+		
+		// 详细数据
+		param.put("benyueBeginTime", beginTime);
+		param.put("benyueEndTime", endTime);
+		param.put("lastBeginTime", lastBeginTime);
+		param.put("lastEndTime", lastEndTime);
+		param.put("qinianBeginTime", qinianBeginTime);
+		param.put("qunianEndTime", qunianEndTime);
+		List<String> areaList = db.getMybatisMapper(ReportServiceMapper.class).selectDetail05GetArea(param);
+		
+		List<List<List<String>>> areaDetailList = new ArrayList<List<List<String>>>();
+		resMap.put("areaDetailList", areaDetailList);
+		for (String type : typeList) {
+			List<List<String>> benyueDetailList = new ArrayList<List<String>>();
+			List<String> benyueTitleList = new ArrayList<String>();
+			benyueTitleList.add(beginTime + "-" + endTime);
+			benyueTitleList.add("业务类型");
+			benyueTitleList.add("一级分类");
+			benyueTitleList.add("二级分类");
+			benyueTitleList.add("业务子类");
+			benyueDetailList.add(benyueTitleList);
+			List<List<String>> shangyueDetailList = new ArrayList<List<String>>();
+			List<String> shangyueTitleList = new ArrayList<String>();
+			shangyueTitleList.add(lastBeginTime + "-" + lastEndTime);
+			shangyueTitleList.add("业务类型");
+			shangyueTitleList.add("一级分类");
+			shangyueTitleList.add("二级分类");
+			shangyueTitleList.add("业务子类");
+			shangyueDetailList.add(shangyueTitleList);
+			List<List<String>> qunianDetailList = new ArrayList<List<String>>();
+			List<String> qunianTitleList = new ArrayList<String>();
+			qunianTitleList.add(qinianBeginTime + "-" + qunianEndTime);
+			qunianTitleList.add("业务类型");
+			qunianTitleList.add("一级分类");
+			qunianTitleList.add("二级分类");
+			qunianTitleList.add("业务子类");
+			qunianDetailList.add(qunianTitleList);
+			// 区域数据
+			for (String area : areaList) {
+				benyueTitleList.add(area);
+				shangyueTitleList.add(area);
+				qunianTitleList.add(area);
+			}
+			benyueTitleList.add("总计");
+			shangyueTitleList.add("总计");
+			qunianTitleList.add("总计");
+			
+			areaDetailList.add(benyueDetailList);
+			areaDetailList.add(shangyueDetailList);
+			areaDetailList.add(qunianDetailList);
+			// 报表详情生成
+			until95598(benyueByAreaMap, type, benyueDetailList);
+			until95598(shangyueByAreaMap, type, shangyueDetailList);
+			until95598(qunianByAreaMap, type, qunianDetailList);
+		}
+		
+		// 计算总计
+		for (int i = 0; i < areaDetailList.size(); i ++) {
+			List<List<String>> excelList = areaDetailList.get(i);
+			List<String> zongji = new ArrayList<String>();
+			zongji.add("总计");
+			zongji.add("");
+			zongji.add("");
+			zongji.add("");
+			zongji.add("");
+			
+			// 合计汇总
+			String[] zongjiNum = new String[excelList.get(0).size()- 5];
+			
+			String totalNum = "0";
+			for (int j = 1; j < excelList.size(); j ++) {
+				
+				List<String> childList = excelList.get(j);
+				int index = 0;
+				String zongjiType = "0";
+				for (int k = 5; k < childList.size(); k ++) {
+					zongjiType = CommonUtil.add(zongjiType, childList.get(k));
+					zongjiNum[index] = CommonUtil.add(zongjiNum[index], childList.get(k));
+					index ++;
+				}
+				childList.set(childList.size() - 1, zongjiType);
+				totalNum = CommonUtil.add(totalNum, zongjiType);
+			}
+			
+			zongjiNum[zongjiNum.length - 1] = totalNum;
+			
+			for (int j = 0; j < zongjiNum.length; j++) {
+				zongji.add(zongjiNum[j]);
+			}
+			
+			excelList.add(zongji);
+		}
+		
+		return resMap;
+	}
+	
+	/**
+	 * 报表数据处理
+	 * @param areaMap
+	 * @param type
+	 * @param detailList
+	 */
+	public void until95598(List<Map<String, Object>> areaMap, String type, List<List<String>> detailList) {
+		for (int i = 0; i < areaMap.size(); i ++) {
+			Map<String, Object> map = areaMap.get(i);
+			String dataType = String.valueOf(map.get("type"));
+			// 同一类型的数据
+			if (dataType.equals(type)) {
+				// 供电单位
+				String gddw = String.valueOf(map.get("gddw"));
+				// 数量
+				String num = String.valueOf(map.get("num"));
+				// 业务类型
+				String ywlx = String.valueOf(map.get("ywlx"));
+				// 一级分类
+				String yjfl = String.valueOf(map.get("yjfl"));
+				// 二级分类
+				String ejfl = String.valueOf(map.get("ejfl"));
+				// 业务子类
+				String ywzl = String.valueOf(map.get("ywzl"));
+				
+				// 不是第一条数据
+				if (i != 0) {
+					// 下一条数据
+					Map<String, Object> lastMap = areaMap.get(i - 1);
+					// 业务类型
+					String lastYwlx = String.valueOf(lastMap.get("ywlx"));
+					// 一级分类
+					String lastYjfl = String.valueOf(lastMap.get("yjfl"));
+					// 二级分类
+					String lastEjfl = String.valueOf(lastMap.get("ejfl"));
+					// 业务子类
+					String lastYwzl = String.valueOf(lastMap.get("ywzl"));
+					// 业务类型等数据相同,是同一行数据
+					if (lastYwlx.equals(ywlx) && lastYjfl.equals(yjfl) && lastEjfl.equals(ejfl) && lastYwzl.equals(ywzl)) {
+						// 获取区域位置
+						int index = detailList.get(0).indexOf(gddw);
+						// 获取最后一条数据
+						List<String> childList = detailList.get(detailList.size() - 1);
+						childList.set(index, num);
+					// 数据不同,新增一条数据
+					} else {
+						List<String> childList = Arrays.asList(new String[detailList.get(0).size()]);
+						childList.set(0, dataType);
+						childList.set(1, ywlx);
+						childList.set(2, yjfl);
+						childList.set(3, ejfl);
+						childList.set(4, ywzl);
+						// 获取区域位置
+						int index = detailList.get(0).indexOf(gddw);
+						childList.set(index, num);
+						detailList.add(childList);
+					}
+				} else {
+					List<String> childList = Arrays.asList(new String[detailList.get(0).size()]);
+					childList.set(0, dataType);
+					childList.set(1, ywlx);
+					childList.set(2, yjfl);
+					childList.set(3, ejfl);
+					childList.set(4, ywzl);
+					// 获取区域位置
+					int index = detailList.get(0).indexOf(gddw);
+					childList.set(index, num);
+					detailList.add(childList);
+				}
+			}
+		}
+	}
 }

+ 6 - 0
src/main/java/com/minpay/db/table/own/mapper/ReportServiceMapper.java

@@ -34,5 +34,11 @@ public interface ReportServiceMapper extends IMINMybatisEntityMapper {
 	String selectReportType00FenDuan(Map<String, String> shiduanMap);
 	// 月报最长停电台区
 	List<Map<String, String>> selectReportType00ZuichangTaiqu(Map<String, Object> param);
+	// 95598工单统计
+	List<Map<String, Object>> selectDetail05ByType(Map<String, Object> param);
+	// 95598工单区域获取
+	List<String> selectDetail05GetArea(Map<String, Object> param);
+	// 95598工单区域统计
+	List<Map<String, Object>> selectDetail05ByArea(Map<String, Object> param);
 
 }

+ 0 - 4
src/main/java/com/minpay/reportManage/action/Report95598Action.java

@@ -53,9 +53,6 @@ public class Report95598Action implements IMINAction {
             	} else {
             		resMap.put("title", dw95598Gdlx.getName());
             	}
-        		resMap.put("title", dw95598Gdlx.getName());
-            	resMap.put("id", dw95598Gdlx.getId());
-            	resMap.put("level", dw95598Gdlx.getLevel());
             	resMap.put("spread", true);
             	children.add(resMap);
 			}
@@ -130,7 +127,6 @@ public class Report95598Action implements IMINAction {
         		dw95598Gdlx.setName(nodeName);
         	}
         	
-        	dw95598Gdlx.setName(nodeName);
         	db.updateByPrimaryKeySelective(Dw95598GdlxMapper.class, dw95598Gdlx);
         // 删除节点
         } else if ("del".equals(type)) {

+ 96 - 0
src/main/resources/com/minpay/db/table/own/mapper/ReportServiceMapper.xml

@@ -260,4 +260,100 @@
 		ORDER BY gdysc DESC
 	</select>
 	
+	<select id="selectDetail05ByType" resultType="hashmap" parameterType="java.util.Map">
+		SELECT 
+		  typeTemp.type 'type',
+		  cast(COUNT(1) as char) 'num'
+		FROM
+		  dw_file_detail_05 d 
+		  LEFT JOIN 
+		    (SELECT 
+		      a.`D9G_TYPE` 'type',
+		      a.`D9G_NAME` 'node1',
+		      b.`D9G_NAME` 'node2',
+		      c.`D9G_NAME` 'node3' 
+		    FROM
+		      dw_95598_gdlx a 
+		      LEFT JOIN dw_95598_gdlx b 
+		        ON a.`D9G_PARENT_ID` = b.`D9G_ID` 
+		        AND b.D9G_LEVEL = '1' 
+		      LEFT JOIN dw_95598_gdlx c 
+		        ON b.`D9G_PARENT_ID` = c.`D9G_ID` 
+		        AND c.D9G_LEVEL = '0' 
+		    WHERE a.D9G_LEVEL = '2') typeTemp 
+		    ON typeTemp.node1 = d.DFD5_EJFL 
+		    AND typeTemp.node2 = d.DFD5_YJFL 
+		    AND typeTemp.node3 = d.DFD5_YWLX 
+		where 1 = 1
+			<if test="beginTime != null  and beginTime != ''">
+				AND SUBSTRING(replace(DFD5_SLSJ, '-', ''), 1, 8) &gt;= #{beginTime,jdbcType=VARCHAR}
+			</if>
+			<if test="endTime != null  and endTime != ''">
+				AND SUBSTRING(replace(DFD5_SLSJ, '-', ''), 1, 8) &lt;= #{endTime,jdbcType=VARCHAR}
+			</if>
+		GROUP BY typeTemp.type
+	</select>
+	<select id="selectDetail05GetArea" resultType="java.lang.String" parameterType="java.util.Map">
+		SELECT 
+			DFD5_GDDW 
+		FROM dw_file_detail_05 
+		WHERE (
+			SUBSTRING(replace(DFD5_SLSJ, '-', ''), 1, 8) &gt;= #{benyueBeginTime,jdbcType=VARCHAR}
+			AND SUBSTRING(replace(DFD5_SLSJ, '-', ''), 1, 8) &lt;= #{benyueEndTime,jdbcType=VARCHAR}
+			)
+			or (SUBSTRING(replace(DFD5_SLSJ, '-', ''), 1, 8) &gt;= #{lastBeginTime,jdbcType=VARCHAR}
+			AND SUBSTRING(replace(DFD5_SLSJ, '-', ''), 1, 8) &lt;= #{lastEndTime,jdbcType=VARCHAR}
+			)
+			or (SUBSTRING(replace(DFD5_SLSJ, '-', ''), 1, 8) &gt;= #{qinianBeginTime,jdbcType=VARCHAR}
+			AND SUBSTRING(replace(DFD5_SLSJ, '-', ''), 1, 8) &lt;= #{qunianEndTime,jdbcType=VARCHAR}
+			)
+		GROUP BY DFD5_GDDW 
+	</select>
+	<select id="selectDetail05ByArea" resultType="hashmap" parameterType="java.util.Map">
+		SELECT 
+		  typeTemp.type 'type',
+		  typeTemp.node3 ywlx,
+		  typeTemp.node2 yjfl,
+		  typeTemp.node1 ejfl,
+		  d.DFD5_YWZL ywzl,
+		  d.DFD5_GDDW gddw,
+		  COUNT(1) num
+		FROM
+		  dw_file_detail_05 d 
+		  LEFT JOIN 
+		    (SELECT 
+		      a.`D9G_TYPE` 'type',
+		      a.`D9G_NAME` 'node1',
+		      b.`D9G_NAME` 'node2',
+		      c.`D9G_NAME` 'node3' 
+		    FROM
+		      dw_95598_gdlx a 
+		      LEFT JOIN dw_95598_gdlx b 
+		        ON a.`D9G_PARENT_ID` = b.`D9G_ID` 
+		        AND b.D9G_LEVEL = '1' 
+		      LEFT JOIN dw_95598_gdlx c 
+		        ON b.`D9G_PARENT_ID` = c.`D9G_ID` 
+		        AND c.D9G_LEVEL = '0' 
+		    WHERE a.D9G_LEVEL = '2') typeTemp 
+		    ON typeTemp.node1 = d.DFD5_EJFL 
+		    AND typeTemp.node2 = d.DFD5_YJFL 
+		    AND typeTemp.node3 = d.DFD5_YWLX 
+		    where 1 = 1
+		    <if test="beginTime != null  and beginTime != ''">
+				AND SUBSTRING(replace(DFD5_SLSJ, '-', ''), 1, 8) &gt;= #{beginTime,jdbcType=VARCHAR}
+			</if>
+			<if test="endTime != null  and endTime != ''">
+				AND SUBSTRING(replace(DFD5_SLSJ, '-', ''), 1, 8) &lt;= #{endTime,jdbcType=VARCHAR}
+			</if>
+			GROUP BY typeTemp.type,
+			  typeTemp.node3,
+			  typeTemp.node2,
+			  typeTemp.node1,
+			  d.DFD5_GDDW,
+			  d.DFD5_YWZL
+			ORDER BY typeTemp.type,
+			  typeTemp.node3,
+			  typeTemp.node2,
+			  typeTemp.node1
+	</select>
 </mapper>

+ 2 - 9
src/main/webapp/admin/95598/reportManage95598.html

@@ -40,7 +40,6 @@
 	</div>
 	<script type="text/html" id="barDemo">
 		<a class="layui-btn layui-btn-xs" lay-event="detail">详情查看</a>
-     	<a class="layui-btn layui-btn-xs" lay-event="downLoad">下载</a>
 		<a class="layui-btn layui-btn-xs" lay-event="delete">删除</a>
    	</script>
 	<script type="text/html" id="algorithmBar">
@@ -56,11 +55,8 @@
 	});
 
 	var pageId = "260000";
-	// 终端投托运报表
+	// 95598工单
 	var reportType = "95598YB";
-	var pageId = "240000";
-	// 终端投托运报表
-	var reportType = "FADZBB";f
 	
      var table;
      var form;
@@ -105,8 +101,6 @@
 		    var tr = obj.tr; //获得当前行 tr 的DOM对象
 		    if (layEvent === 'detail'){ //查看
 		    	showDetail(data);
-		    } else if(layEvent === 'downLoad'){
-		    	window.open("../../ReportManageAction/reportDownLoad?reportId=" + data.id);
 		    } else if(layEvent === 'delete'){
 		    	layer.confirm('确认删除?', function(index){
 	        		layer.close(index);
@@ -156,12 +150,11 @@
       function uploadExcel(){
     	  var openPageId = pageId + "-01";
     	  openMainTabPage(openPageId, "报表生成", "95598/reportProduce95598.html?pageId="+openPageId+"&reportType="+reportType, '', pageId, reloadSearch);
-    	  openMainTabPage(openPageId, "报表生成", "FA/reportProduceFA.html?pageId="+openPageId+"&reportType="+reportType, '', pageId, reloadSearch);
       }
       
       function showDetail(data){
     	  var openPageId = pageId + "-02";
-    	  openMainTabPage(openPageId, "详情查看", "FA/reportManageDetailFA.html?pageId="+openPageId+"&reportId="+data.id+"&type="+data.type+"&typeId="+data.typeId+"&fileName="+chineseUrlEncode(data.fileName), '', pageId, null);
+    	  openMainTabPage(openPageId, "详情查看", "95598/reportManageDetail95598.html?pageId="+openPageId+"&reportId="+data.id+"&type="+data.type+"&typeId="+data.typeId+"&fileName="+chineseUrlEncode(data.fileName), '', pageId, null);
       }
       function algorithmDetail(data){
    	  	var openPageId = pageId + "-04";

+ 35 - 44
src/main/webapp/admin/95598/reportProduce95598.html

@@ -66,13 +66,14 @@
 		    </div>
 	    </form>
 	</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 = "width: 90%; margin-left : 5%; height : 300px; display : none; text-align : center;">
+		<div style = "margin-left : 0px;width: 100%;" class = "layui-upload-drag" >
 		  <p id = "fileName" contenteditable="true">国网泰安供电公司2020年8月份配网运行分析月报</p>
 		  <table id = "reportTable" class="layui-table">
 		  </table>
-		  <p id = "content"></p>
-		  <p>报表关联的工具表为《<a id = "utilName" onclick = "goUtilDetail(this)">2020年6月底低电压月报工具表</a>》  关联的报表算法为《<a id = "algorithmName" onclick = "goAlgorithmDetail(this)">国网泰安供电公司2020年8月份配网运行分析月报</a>》    的算法</p>
+		  <div id = "detailTable">
+		  </div>
+<!-- 		  <p>报表关联的工具表为《<a id = "utilName" onclick = "goUtilDetail(this)">2020年6月底低电压月报工具表</a>》  关联的报表算法为《<a id = "algorithmName" onclick = "goAlgorithmDetail(this)">国网泰安供电公司2020年8月份配网运行分析月报</a>》    的算法</p> -->
 		</div>
 		<div style="margin-top : 50px;">
 	      <button type="button" class="layui-btn" style = "width : 214px" onclick = "goStep(4)">下一步</button>
@@ -199,28 +200,19 @@
 			
 			if (step == 4) {
 				var fileName = $("#fileName").html();
-				var FADateRange = $("#FADateRange").find("select option:selected").val();
-				var yearChoose = $("#yearChoose").val();
-				if (isEmpty(FADateRange)) {
+				var range = $("#dateRange").val();
+				
+				if (isEmpty(range)) {
 					$.ErrorAlert("请选择日期范围!");
 					return;
 				}
-				if (isEmpty(yearChoose)) {
-					$.ErrorAlert("请选择年份!");
-					return;
-				}
-				var beginTime = yearChoose + FADateRange.substring(0, 4);
-				var endTime = yearChoose + FADateRange.substring(4, 8);
-				if (beginTime.substring(0, 2) == "12") {
-					endTime = accAdd(FADateRange, "1") + FADateRange.substring(4, 8);
-				}
 				$.request({
 					action : 'ReportManageAction/fileInfReportSubmit',
 					data : {
-						reportData : JSON.stringify(excelList),
+						reportData : JSON.stringify(reportData),
 						reportInf : reportInf,
 						fileName : fileName,
-						range : beginTime + '-' + endTime
+						range : range
 					},
 					success : function(data) {
 						if (data.code == 0) {
@@ -273,34 +265,47 @@
 		}
 		
 		// 报表excel
-		var excelList = null;
+		var reportData = null;
 		// 预览
 		function tableYulan() {
 			var reportInf = $("#reportTypeDiv").find("select option:selected").val();
-			var FADateRange = $("#FADateRange").find("select option:selected").val();
-			var yearChoose = $("#yearChoose").val();
+			var range = $("#dateRange").val();
 			
-			if (isEmpty(FADateRange)) {
+			if (isEmpty(range)) {
 				$.ErrorAlert("请选择日期范围!");
 				return;
 			}
-			if (isEmpty(yearChoose)) {
-				$.ErrorAlert("请选择年份!");
-				return;
-			}
 			
 			// 查询符合条件的明细数据,生成预览数据
 			$.request({
 				action : 'ReportManageAction/reportNeedDataDetail',
 				data : {
 					reportInf : reportInf,
-					FADateRange : FADateRange,
-					yearChoose : yearChoose
+					range : range
 				},
 				success : function(data) {
 					if (data.code == 0) {
-						excelList = data.data.resList;
-						initExcelData(excelList, "reportTable", false);
+						reportData = data.data;
+						// 总览
+						initExcelData(reportData.tongjiList, "reportTable", false);
+						var detailHtml = "";
+						// 详情
+						var areaDetailList = reportData.areaDetailList;
+						for (var i = 0; i < areaDetailList.length; i ++) {
+							var excelList = areaDetailList[i];
+							detailHtml += '<table class="layui-table">';
+							for (var j = 0; j < excelList.length; j ++) {
+								detailHtml += '<tr>';
+								var childList = excelList[j];
+								for (var k = 0; k < childList.length; k ++) {
+									var tdHtml = isEmpty(childList[k])?'':childList[k];
+									detailHtml += '<td>'+ tdHtml +'</td>';
+								}
+								detailHtml += '</tr>';
+							}
+							detailHtml += '</table>';
+						}
+						$("#detailTable").html(detailHtml);
 						goStep(3);
 			    	} else {
 			    		$.ErrorAlert(res.MINErrorMessage);
@@ -312,20 +317,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>
 

+ 1 - 1
src/main/webapp/js/min.js

@@ -140,7 +140,7 @@ $.turnPage = function(pageUrl){
 };
 
 function isEmpty(str) {
-	if(str == 'undefined' || str == "" || str == null) {
+	if(str == 'undefined' || str == "" || str == null || str == "null") {
 		return true;
 	}
 	return false;

+ 1 - 1
src/main/webapp/js/report.js

@@ -171,7 +171,7 @@ function initExcelData(excelList, tableId, isEdit,isType) {
 		html += '<tr>';
 		var excelChildList = excelList[i];
 		for (var j = 0; j < excelChildList.length; j ++) {
-			html += tdHtml + excelChildList[j] + '</td>';
+			html += tdHtml + (isEmpty(excelChildList[j])?"":excelChildList[j]) + '</td>';
 		}
 		html += '</tr>';
 	}