瀏覽代碼

低电压报表

tudc 4 年之前
父節點
當前提交
316de63c2b

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

@@ -366,6 +366,10 @@ public class Constant implements IMINBusinessConstant{
 	 * 报表类型  DDYZRXZ 低电压昨日新增考核
 	 */
 	public static final String REPORT_TYPE_11 = "DDYZB";
+	/**
+	 * 报表类型  DDY30T 低电压超30天
+	 */
+	public static final String REPORT_TYPE_12 = "DDY30T";
 	
 	/**
 	 * 原始文件状态 0正常

+ 1 - 0
src/main/java/com/minpay/common/service/IReportService.java

@@ -15,4 +15,5 @@ import com.startup.minpay.frame.service.base.IMINLocalService;
  */
 public interface IReportService extends IMINLocalService {
 	public Map<String,Object> reportNeedDetail(Map<String, String> param) throws MINBusinessException, ParseException, NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException;
+	public Map<String, Object> reportTypeDDYZLFXB(String range, String reportTypeId, int page, int limit) throws MINBusinessException, ParseException, NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException;
 }

+ 165 - 21
src/main/java/com/minpay/common/service/impl/ReportServiceImpl.java

@@ -10,8 +10,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.poi.hssf.record.CommonObjectDataSubRecord;
-
 import com.minpay.common.constant.Constant;
 import com.minpay.common.service.IReportService;
 import com.minpay.common.util.CommonUtil;
@@ -38,6 +36,7 @@ import com.minpay.db.table.model.PubApppar;
 import com.minpay.db.table.model.PubAppparExample;
 import com.minpay.db.table.own.mapper.ReportServiceMapper;
 import com.startup.minpay.frame.exception.MINBusinessException;
+import com.startup.minpay.frame.jdbc.MINRowBounds;
 import com.startup.minpay.frame.service.base.IMINDataBaseService;
 import com.startup.minpay.frame.service.base.Service;
 import com.startup.minpay.frame.target.MINComponent;
@@ -141,21 +140,21 @@ public class ReportServiceImpl implements IReportService {
     	} else if (Constant.REPORT_TYPE_04.equals(reportTypeId)) {
     		List<List<String>> resList = reportTypeFADZBB(FADateRange, yearChoose);
     		resMap.put("resList", resList);
-    		//低电压分析表
+    	// 低电压分析表
     	} else if (Constant.REPORT_TYPE_05.equals(reportTypeId)){
-    		List<List<String>> resList = reportTypeDDYZLFXB(range, reportTypeId);
-    		resMap.put("resList", resList);
-    	//低电压日报	
+    		return reportTypeDDYZLFXB(range, reportTypeId, 1, 100);
+    	// 低电压日报	
     	} 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)){
     		List<List<String>> resList = reportTypeGDYZLFXB(range, reportTypeId);
     		resMap.put("resList", resList);
+    	// 95598工单月报
     	} else if (Constant.REPORT_TYPE_08.equals(reportTypeId)){
     		return reportType95598YB(range);
-    	// 低电压未治理完成分析表
+    	// 低电压未治理完成
     	} else if (Constant.REPORT_TYPE_09.equals(reportTypeId)) {
     		List<List<String>> resList = reportTypeDDYWZL(ddyFxbId);
     		resMap.put("resList", resList);
@@ -163,8 +162,13 @@ public class ReportServiceImpl implements IReportService {
     	} else if (Constant.REPORT_TYPE_10.equals(reportTypeId)) {
     		List<List<String>> resList = reportTypeDDYZRXZ(ddyFxbId);
     		resMap.put("resList", resList);
+    	// 低电压昨日新增
 		} else if (Constant.REPORT_TYPE_11.equals(reportTypeId)) {
 			return reportTypeDDYZB(yearChoose, monthChoose, range);
+		// 低电压超30天
+		} else if (Constant.REPORT_TYPE_12.equals(reportTypeId)) {
+			List<List<String>> resList = reportTypeDDY30T(ddyFxbId);
+			resMap.put("resList", resList);
 		}
 		return resMap;
 	}
@@ -1426,10 +1430,19 @@ public class ReportServiceImpl implements IReportService {
 	 * @return
 	 * @throws MINBusinessException
 	 * @throws ParseException
+	 * @throws InvocationTargetException 
+	 * @throws IllegalArgumentException 
+	 * @throws IllegalAccessException 
+	 * @throws SecurityException 
+	 * @throws NoSuchMethodException 
 	 */
-	public List<List<String>> reportTypeDDYZLFXB(String range, String reportTypeId) throws MINBusinessException, ParseException{
+	public Map<String, Object> reportTypeDDYZLFXB(String range, String reportTypeId, int page, int limit) throws MINBusinessException, ParseException, NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{
+		Map<String, Object> resMap = new HashMap<String, Object>();
+		
 		IMINDataBaseService db = Service.lookup(IMINDataBaseService.class);
 		List<List<String>> resList = new ArrayList<List<String>>();
+		resMap.put("resList", resList);
+		
 		List<String> titleList = new ArrayList<String>();
 		titleList.add("序号");
 		titleList.add("县公司名称");
@@ -1447,6 +1460,7 @@ public class ReportServiceImpl implements IReportService {
 		titleList.add("治理完成时间");
 		titleList.add("是否消除");
 		titleList.add("昨日新增");
+		titleList.add("全年累计天数");
 		range = range.replaceAll(" ", "");
 		String[] rangeArray = range.split("-");
 		String beginTime = rangeArray[0];
@@ -1466,21 +1480,37 @@ public class ReportServiceImpl implements IReportService {
 		//子类数据
 		resList.add(titleList);
 		//查询累计天数以及累计时长
-		Map<String, String> param = new HashMap<String, String>();
+		Map<String, Object> param = new HashMap<String, Object>();
 		param.put("beginTime", beginTime);
 		param.put("endTime", endTime);
-		List<Map<String, String>>  DDYZLFXBList = db.getMybatisMapper(ReportServiceMapper.class).selectDetail03ByDDYZLFXB(param);
 		
+		// 分析表数据过大,分页处理
+		MINRowBounds rows = new MINRowBounds(page, limit);
+		rows.setSeparateSql(true);
+		
+		List<Map<String, String>>  DDYZLFXBList = db.getMybatisMapper(ReportServiceMapper.class).selectDetail03ByDDYZLFXB(param, rows);
+		
+		resMap.put("resList", resList);
+		resMap.put("count", rows.getCount());
+		
+		List<String> yhidList = CommonUtil.getIdFromList(DDYZLFXBList, "yhid");
 		DwFileDetail03Example example03 = new DwFileDetail03Example();
-		example03.createCriteria().andSjrqBetween(beginTime, endTime);
+		example03.createCriteria().andSjrqBetween(beginTime, endTime).andYhidIn(yhidList);
 		example03.setOrderByClause("DFD3_YHID,DFD3_SJRQ desc");
 		List<DwFileDetail03> detailList = db.selectByExample(DwFileDetail03Mapper.class, example03);
 		
+		// 获取全年累计天数
+		String year = endTime.substring(0, 4);
+		param.put("beginTime", CommonUtil.subtract(year, "1") + "1226");
+		param.put("endTime", year + "1225");
+		param.put("yhidList", yhidList);
+		List<Map<String, String>> yearDataList = db.getMybatisMapper(ReportServiceMapper.class).selectDetail03ByDDYZLFXB(param, new MINRowBounds());
+		
 		int a = 0;
 		for(Map<String, String> map :DDYZLFXBList){
 			List<String> childList = Arrays.asList(new String[titleList.size()]);
-			String dysc = String.format("%.0f",map.get("dysc"));
-			String ljts = String.format("%.0f",map.get("ljts"));
+			String dysc = map.get("dysc");
+			String ljts = map.get("ljts");
 			a++;
 			childList.set(0, a+"");
 			childList.set(1, map.get("xgsmc"));
@@ -1524,7 +1554,7 @@ public class ReportServiceImpl implements IReportService {
 					}
 					
 					int index = DateUtil.diffDate(sjrq, endTime);
-					childList.set(16 + index, detailList.get(i).getDysc());
+					childList.set(17 + index, detailList.get(i).getDysc());
 					
 					// 获取昨日时长
 					if (index == 0) {
@@ -1543,6 +1573,15 @@ public class ReportServiceImpl implements IReportService {
 				}
 			}
 			
+			// 获取全年数
+			for (int i = 0; i < yearDataList.size(); i ++) {
+				if (yhid.equals(yearDataList.get(i).get("yhid"))) {
+					childList.set(16, yearDataList.get(i).get("ljts"));
+					yearDataList.remove(i);
+					break;
+				}
+			}
+			
 			// 昨日有时长 且 昨日之前总时长小于48小时 且 昨日+之前时长大于48小时
 			if (CommonUtil.compare(zuoriSc, "0") != 0 && CommonUtil.compare(scNozuori, "48") == -1 && CommonUtil.compare(CommonUtil.add(zuoriSc, scNozuori), "48") != -1) {
 				childList.set(15, "是");
@@ -1553,7 +1592,7 @@ public class ReportServiceImpl implements IReportService {
 			resList.add(childList);
 		}
 		
-		return resList;
+		return resMap;
 	}
 	/**
 	 * 低电压日报
@@ -2173,7 +2212,7 @@ public class ReportServiceImpl implements IReportService {
 		resList.add(titleList);
 		
 		DwDdyFxbExample ddyFxbExample = new DwDdyFxbExample();
-		ddyFxbExample.createCriteria().andReportIdEqualTo(ddyFxbId).andSfxcNotEqualTo("是").andDdysjGreaterThanOrEqualTo("48");
+		ddyFxbExample.createCriteria().andReportIdEqualTo(ddyFxbId).andSfxcNotEqualTo("是").andDdysjGreaterThanOrEqualTo(48);
 		ddyFxbExample.setOrderByClause("DDF_ID");
 		List<DwDdyFxb> ddyFxbList = db.selectByExample(DwDdyFxbMapper.class, ddyFxbExample);
 		
@@ -2196,8 +2235,8 @@ public class ReportServiceImpl implements IReportService {
 			childList.set(4, ddyFxb.getTqid());
 			childList.set(5, ddyFxb.getByqmc());
 			childList.set(6, ddyFxb.getYhbh());
-			childList.set(7, ddyFxb.getDdysj());
-			childList.set(8, ddyFxb.getLjts());
+			childList.set(7, String.valueOf(ddyFxb.getDdysj()));
+			childList.set(8, String.valueOf(ddyFxb.getLjts()));
 			childList.set(9, ddyFxb.getDdyzymc());
 			childList.set(10, ddyFxb.getJtyy());
 			childList.set(11, ddyFxb.getZlcs());
@@ -2287,8 +2326,8 @@ public class ReportServiceImpl implements IReportService {
 			childList.set(4, ddyFxb.getTqid());
 			childList.set(5, ddyFxb.getByqmc());
 			childList.set(6, ddyFxb.getYhbh());
-			childList.set(7, ddyFxb.getDdysj());
-			childList.set(8, ddyFxb.getLjts());
+			childList.set(7, String.valueOf(ddyFxb.getDdysj()));
+			childList.set(8, String.valueOf(ddyFxb.getLjts()));
 			childList.set(9, ddyFxb.getDdyzymc());
 			childList.set(10, ddyFxb.getJtyy());
 			childList.set(11, ddyFxb.getZlcs());
@@ -2587,4 +2626,109 @@ public class ReportServiceImpl implements IReportService {
 		
 		return resMap;
 	}
+	
+	/**
+	 * 低电压超30天
+	 * @param ddyFxbId
+	 * @return
+	 * @throws MINBusinessException
+	 * @throws ParseException
+	 * @throws NoSuchMethodException
+	 * @throws SecurityException
+	 * @throws IllegalAccessException
+	 * @throws IllegalArgumentException
+	 * @throws InvocationTargetException
+	 */
+	private List<List<String>> reportTypeDDY30T(String ddyFxbId) throws MINBusinessException, ParseException, NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
+		IMINDataBaseService db = Service.lookup(IMINDataBaseService.class);
+		
+		// 报告信息
+		DwReportInf reportInf = db.selectByPrimaryKey(DwReportInfMapper.class, ddyFxbId);
+		String range = reportInf.getDayInterval();
+    	String beginTime = range.split("-")[0];
+    	String endTime = range.split("-")[1];
+		
+		List<List<String>> resList = new ArrayList<List<String>>();
+		
+    	List<String> titleList = new ArrayList<String>();
+		titleList.add("序号");
+		titleList.add("县公司名称");
+		titleList.add("用户管理单位名称");
+		titleList.add("线路名称");
+		titleList.add("台区ID");
+		titleList.add("变压器名称");
+		titleList.add("用户编号");
+		titleList.add("低电压时长");
+		titleList.add("累计天数");
+		titleList.add("低电压主要原因(点选)");
+		titleList.add("具体原因");
+		titleList.add("治理措施");
+		titleList.add("是否治理(点选)");
+		titleList.add("治理完成时间");
+		titleList.add("是否消除");
+		titleList.add("全年累计天数");
+		
+    	int count = DateUtil.diffDate(beginTime, endTime);
+		//日期集合
+		List<String> dateList = new ArrayList<String>();
+		for(int i=0;i<=count;i++){
+			String beginDate = DateUtil.dateAddDay(endTime,-i);
+			dateList.add(beginDate);
+			beginDate = beginDate.substring(4,6)+"/"+beginDate.substring(6);
+			titleList.add(beginDate+"低电压时长");
+		}
+		resList.add(titleList);
+		
+		DwDdyFxbExample ddyFxbExample = new DwDdyFxbExample();
+		ddyFxbExample.createCriteria().andReportIdEqualTo(ddyFxbId).andSfxcNotEqualTo("是").andDdysjGreaterThanOrEqualTo(48).andQnljtsGreaterThan(30);
+		ddyFxbExample.setOrderByClause("DDF_ID");
+		List<DwDdyFxb> ddyFxbList = db.selectByExample(DwDdyFxbMapper.class, ddyFxbExample);
+		
+		List<String> fxbIdList = CommonUtil.getIdFromList(ddyFxbList, "id");
+		if (fxbIdList.size() == 0) {
+			return resList;
+		}
+		
+		DwDdyFxbDetailExample ddyFxbDetailExample = new DwDdyFxbDetailExample();
+		ddyFxbDetailExample.createCriteria().andFxbIdIn(fxbIdList);
+		ddyFxbDetailExample.setOrderByClause("DDFD_FXB_ID");
+		List<DwDdyFxbDetail> detailList = db.selectByExample(DwDdyFxbDetailMapper.class, ddyFxbDetailExample);
+		
+		for (DwDdyFxb ddyFxb : ddyFxbList) {
+			List<String> childList = Arrays.asList(new String[titleList.size()]);
+			childList.set(0, ddyFxb.getXh());
+			childList.set(1, ddyFxb.getXgsmc());
+			childList.set(2, ddyFxb.getYhgldwmc());
+			childList.set(3, ddyFxb.getXlmc());
+			childList.set(4, ddyFxb.getTqid());
+			childList.set(5, ddyFxb.getByqmc());
+			childList.set(6, ddyFxb.getYhbh());
+			childList.set(7, String.valueOf(ddyFxb.getDdysj()));
+			childList.set(8, String.valueOf(ddyFxb.getLjts()));
+			childList.set(9, ddyFxb.getDdyzymc());
+			childList.set(10, ddyFxb.getJtyy());
+			childList.set(11, ddyFxb.getZlcs());
+			childList.set(12, ddyFxb.getSfzl());
+			childList.set(13, ddyFxb.getZlwcsj());
+			childList.set(14, ddyFxb.getSfxc());
+			childList.set(15, String.valueOf(ddyFxb.getQnljts()));
+			
+			String fxbId = ddyFxb.getId();
+			for (int i = 0; i < detailList.size(); i++) {
+				// 分析表id一致
+				if (fxbId.equals(detailList.get(i).getFxbId())) {
+					String sjrq = detailList.get(i).getDate();
+					int index = DateUtil.diffDate(sjrq, endTime);
+					childList.set(16 + index, detailList.get(i).getSc());
+					detailList.remove(i);
+					i --;
+				} else {
+					break;
+				}
+			}
+			resList.add(childList);
+		}
+		
+		return resList;
+	}
 }

+ 18 - 18
src/main/java/com/minpay/db/table/model/DwDdyFxb.java

@@ -73,7 +73,7 @@ public class DwDdyFxb extends AbstractMINBean {
      *
      * @mbggenerated
      */
-    private String ddysj;
+    private Integer ddysj;
 
     /**
      * This field was generated by MyBatis Generator.
@@ -81,7 +81,7 @@ public class DwDdyFxb extends AbstractMINBean {
      *
      * @mbggenerated
      */
-    private String ljts;
+    private Integer ljts;
 
     /**
      * This field was generated by MyBatis Generator.
@@ -133,11 +133,11 @@ public class DwDdyFxb extends AbstractMINBean {
 
     /**
      * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column dw_ddy_fxb.DDF_DETAIL_JSON
+     * This field corresponds to the database column dw_ddy_fxb.DDF_QNLJTS
      *
      * @mbggenerated
      */
-    private String detailJson;
+    private Integer qnljts;
 
     /**
      * This field was generated by MyBatis Generator.
@@ -355,7 +355,7 @@ public class DwDdyFxb extends AbstractMINBean {
      *
      * @mbggenerated
      */
-    public String getDdysj() {
+    public Integer getDdysj() {
         return ddysj;
     }
 
@@ -367,8 +367,8 @@ public class DwDdyFxb extends AbstractMINBean {
      *
      * @mbggenerated
      */
-    public void setDdysj(String ddysj) {
-        this.ddysj = ddysj == null ? null : ddysj.trim();
+    public void setDdysj(Integer ddysj) {
+        this.ddysj = ddysj;
     }
 
     /**
@@ -379,7 +379,7 @@ public class DwDdyFxb extends AbstractMINBean {
      *
      * @mbggenerated
      */
-    public String getLjts() {
+    public Integer getLjts() {
         return ljts;
     }
 
@@ -391,8 +391,8 @@ public class DwDdyFxb extends AbstractMINBean {
      *
      * @mbggenerated
      */
-    public void setLjts(String ljts) {
-        this.ljts = ljts == null ? null : ljts.trim();
+    public void setLjts(Integer ljts) {
+        this.ljts = ljts;
     }
 
     /**
@@ -541,26 +541,26 @@ public class DwDdyFxb extends AbstractMINBean {
 
     /**
      * This method was generated by MyBatis Generator.
-     * This method returns the value of the database column dw_ddy_fxb.DDF_DETAIL_JSON
+     * This method returns the value of the database column dw_ddy_fxb.DDF_QNLJTS
      *
-     * @return the value of dw_ddy_fxb.DDF_DETAIL_JSON
+     * @return the value of dw_ddy_fxb.DDF_QNLJTS
      *
      * @mbggenerated
      */
-    public String getDetailJson() {
-        return detailJson;
+    public Integer getQnljts() {
+        return qnljts;
     }
 
     /**
      * This method was generated by MyBatis Generator.
-     * This method sets the value of the database column dw_ddy_fxb.DDF_DETAIL_JSON
+     * This method sets the value of the database column dw_ddy_fxb.DDF_QNLJTS
      *
-     * @param detailJson the value for dw_ddy_fxb.DDF_DETAIL_JSON
+     * @param qnljts the value for dw_ddy_fxb.DDF_QNLJTS
      *
      * @mbggenerated
      */
-    public void setDetailJson(String detailJson) {
-        this.detailJson = detailJson == null ? null : detailJson.trim();
+    public void setQnljts(Integer qnljts) {
+        this.qnljts = qnljts;
     }
 
     /**

+ 46 - 76
src/main/java/com/minpay/db/table/model/DwDdyFxbExample.java

@@ -824,7 +824,7 @@ public class DwDdyFxbExample {
             return (Criteria) this;
         }
 
-        public Criteria andDdysjEqualTo(String value) {
+        public Criteria andDdysjEqualTo(Integer value) {
             if(value == null ){
                 andDdysjIsNull();
             } else {
@@ -833,7 +833,7 @@ public class DwDdyFxbExample {
             return (Criteria) this;
         }
 
-        public Criteria andDdysjNotEqualTo(String value) {
+        public Criteria andDdysjNotEqualTo(Integer value) {
             if(value == null ){
                 andDdysjIsNotNull();
             } else {
@@ -842,52 +842,42 @@ public class DwDdyFxbExample {
             return (Criteria) this;
         }
 
-        public Criteria andDdysjGreaterThan(String value) {
+        public Criteria andDdysjGreaterThan(Integer value) {
             addCriterion("DDF_DDYSJ >", value, "ddysj");
             return (Criteria) this;
         }
 
-        public Criteria andDdysjGreaterThanOrEqualTo(String value) {
+        public Criteria andDdysjGreaterThanOrEqualTo(Integer value) {
             addCriterion("DDF_DDYSJ >=", value, "ddysj");
             return (Criteria) this;
         }
 
-        public Criteria andDdysjLessThan(String value) {
+        public Criteria andDdysjLessThan(Integer value) {
             addCriterion("DDF_DDYSJ <", value, "ddysj");
             return (Criteria) this;
         }
 
-        public Criteria andDdysjLessThanOrEqualTo(String value) {
+        public Criteria andDdysjLessThanOrEqualTo(Integer value) {
             addCriterion("DDF_DDYSJ <=", value, "ddysj");
             return (Criteria) this;
         }
 
-        public Criteria andDdysjLike(String value) {
-            addCriterion("DDF_DDYSJ like", value, "ddysj");
-            return (Criteria) this;
-        }
-
-        public Criteria andDdysjNotLike(String value) {
-            addCriterion("DDF_DDYSJ not like", value, "ddysj");
-            return (Criteria) this;
-        }
-
-        public Criteria andDdysjIn(List<String> values) {
+        public Criteria andDdysjIn(List<Integer> values) {
             addCriterion("DDF_DDYSJ in", values, "ddysj");
             return (Criteria) this;
         }
 
-        public Criteria andDdysjNotIn(List<String> values) {
+        public Criteria andDdysjNotIn(List<Integer> values) {
             addCriterion("DDF_DDYSJ not in", values, "ddysj");
             return (Criteria) this;
         }
 
-        public Criteria andDdysjBetween(String value1, String value2) {
+        public Criteria andDdysjBetween(Integer value1, Integer value2) {
             addCriterion("DDF_DDYSJ between", value1, value2, "ddysj");
             return (Criteria) this;
         }
 
-        public Criteria andDdysjNotBetween(String value1, String value2) {
+        public Criteria andDdysjNotBetween(Integer value1, Integer value2) {
             addCriterion("DDF_DDYSJ not between", value1, value2, "ddysj");
             return (Criteria) this;
         }
@@ -902,7 +892,7 @@ public class DwDdyFxbExample {
             return (Criteria) this;
         }
 
-        public Criteria andLjtsEqualTo(String value) {
+        public Criteria andLjtsEqualTo(Integer value) {
             if(value == null ){
                 andLjtsIsNull();
             } else {
@@ -911,7 +901,7 @@ public class DwDdyFxbExample {
             return (Criteria) this;
         }
 
-        public Criteria andLjtsNotEqualTo(String value) {
+        public Criteria andLjtsNotEqualTo(Integer value) {
             if(value == null ){
                 andLjtsIsNotNull();
             } else {
@@ -920,52 +910,42 @@ public class DwDdyFxbExample {
             return (Criteria) this;
         }
 
-        public Criteria andLjtsGreaterThan(String value) {
+        public Criteria andLjtsGreaterThan(Integer value) {
             addCriterion("DDF_LJTS >", value, "ljts");
             return (Criteria) this;
         }
 
-        public Criteria andLjtsGreaterThanOrEqualTo(String value) {
+        public Criteria andLjtsGreaterThanOrEqualTo(Integer value) {
             addCriterion("DDF_LJTS >=", value, "ljts");
             return (Criteria) this;
         }
 
-        public Criteria andLjtsLessThan(String value) {
+        public Criteria andLjtsLessThan(Integer value) {
             addCriterion("DDF_LJTS <", value, "ljts");
             return (Criteria) this;
         }
 
-        public Criteria andLjtsLessThanOrEqualTo(String value) {
+        public Criteria andLjtsLessThanOrEqualTo(Integer value) {
             addCriterion("DDF_LJTS <=", value, "ljts");
             return (Criteria) this;
         }
 
-        public Criteria andLjtsLike(String value) {
-            addCriterion("DDF_LJTS like", value, "ljts");
-            return (Criteria) this;
-        }
-
-        public Criteria andLjtsNotLike(String value) {
-            addCriterion("DDF_LJTS not like", value, "ljts");
-            return (Criteria) this;
-        }
-
-        public Criteria andLjtsIn(List<String> values) {
+        public Criteria andLjtsIn(List<Integer> values) {
             addCriterion("DDF_LJTS in", values, "ljts");
             return (Criteria) this;
         }
 
-        public Criteria andLjtsNotIn(List<String> values) {
+        public Criteria andLjtsNotIn(List<Integer> values) {
             addCriterion("DDF_LJTS not in", values, "ljts");
             return (Criteria) this;
         }
 
-        public Criteria andLjtsBetween(String value1, String value2) {
+        public Criteria andLjtsBetween(Integer value1, Integer value2) {
             addCriterion("DDF_LJTS between", value1, value2, "ljts");
             return (Criteria) this;
         }
 
-        public Criteria andLjtsNotBetween(String value1, String value2) {
+        public Criteria andLjtsNotBetween(Integer value1, Integer value2) {
             addCriterion("DDF_LJTS not between", value1, value2, "ljts");
             return (Criteria) this;
         }
@@ -1438,81 +1418,71 @@ public class DwDdyFxbExample {
             return (Criteria) this;
         }
 
-        public Criteria andDetailJsonIsNull() {
-            addCriterion("DDF_DETAIL_JSON is null");
+        public Criteria andQnljtsIsNull() {
+            addCriterion("DDF_QNLJTS is null");
             return (Criteria) this;
         }
 
-        public Criteria andDetailJsonIsNotNull() {
-            addCriterion("DDF_DETAIL_JSON is not null");
+        public Criteria andQnljtsIsNotNull() {
+            addCriterion("DDF_QNLJTS is not null");
             return (Criteria) this;
         }
 
-        public Criteria andDetailJsonEqualTo(String value) {
+        public Criteria andQnljtsEqualTo(Integer value) {
             if(value == null ){
-                andDetailJsonIsNull();
+                andQnljtsIsNull();
             } else {
-                addCriterion("DDF_DETAIL_JSON =", value, "detailJson");
+                addCriterion("DDF_QNLJTS =", value, "qnljts");
             }
             return (Criteria) this;
         }
 
-        public Criteria andDetailJsonNotEqualTo(String value) {
+        public Criteria andQnljtsNotEqualTo(Integer value) {
             if(value == null ){
-                andDetailJsonIsNotNull();
+                andQnljtsIsNotNull();
             } else {
-                addCriterion("DDF_DETAIL_JSON <>", value, "detailJson");
+                addCriterion("DDF_QNLJTS <>", value, "qnljts");
             }
             return (Criteria) this;
         }
 
-        public Criteria andDetailJsonGreaterThan(String value) {
-            addCriterion("DDF_DETAIL_JSON >", value, "detailJson");
-            return (Criteria) this;
-        }
-
-        public Criteria andDetailJsonGreaterThanOrEqualTo(String value) {
-            addCriterion("DDF_DETAIL_JSON >=", value, "detailJson");
-            return (Criteria) this;
-        }
-
-        public Criteria andDetailJsonLessThan(String value) {
-            addCriterion("DDF_DETAIL_JSON <", value, "detailJson");
+        public Criteria andQnljtsGreaterThan(Integer value) {
+            addCriterion("DDF_QNLJTS >", value, "qnljts");
             return (Criteria) this;
         }
 
-        public Criteria andDetailJsonLessThanOrEqualTo(String value) {
-            addCriterion("DDF_DETAIL_JSON <=", value, "detailJson");
+        public Criteria andQnljtsGreaterThanOrEqualTo(Integer value) {
+            addCriterion("DDF_QNLJTS >=", value, "qnljts");
             return (Criteria) this;
         }
 
-        public Criteria andDetailJsonLike(String value) {
-            addCriterion("DDF_DETAIL_JSON like", value, "detailJson");
+        public Criteria andQnljtsLessThan(Integer value) {
+            addCriterion("DDF_QNLJTS <", value, "qnljts");
             return (Criteria) this;
         }
 
-        public Criteria andDetailJsonNotLike(String value) {
-            addCriterion("DDF_DETAIL_JSON not like", value, "detailJson");
+        public Criteria andQnljtsLessThanOrEqualTo(Integer value) {
+            addCriterion("DDF_QNLJTS <=", value, "qnljts");
             return (Criteria) this;
         }
 
-        public Criteria andDetailJsonIn(List<String> values) {
-            addCriterion("DDF_DETAIL_JSON in", values, "detailJson");
+        public Criteria andQnljtsIn(List<Integer> values) {
+            addCriterion("DDF_QNLJTS in", values, "qnljts");
             return (Criteria) this;
         }
 
-        public Criteria andDetailJsonNotIn(List<String> values) {
-            addCriterion("DDF_DETAIL_JSON not in", values, "detailJson");
+        public Criteria andQnljtsNotIn(List<Integer> values) {
+            addCriterion("DDF_QNLJTS not in", values, "qnljts");
             return (Criteria) this;
         }
 
-        public Criteria andDetailJsonBetween(String value1, String value2) {
-            addCriterion("DDF_DETAIL_JSON between", value1, value2, "detailJson");
+        public Criteria andQnljtsBetween(Integer value1, Integer value2) {
+            addCriterion("DDF_QNLJTS between", value1, value2, "qnljts");
             return (Criteria) this;
         }
 
-        public Criteria andDetailJsonNotBetween(String value1, String value2) {
-            addCriterion("DDF_DETAIL_JSON not between", value1, value2, "detailJson");
+        public Criteria andQnljtsNotBetween(Integer value1, Integer value2) {
+            addCriterion("DDF_QNLJTS not between", value1, value2, "qnljts");
             return (Criteria) this;
         }
 

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

@@ -4,6 +4,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.startup.minpay.frame.jdbc.IMINMybatisEntityMapper;
+import com.startup.minpay.frame.jdbc.MINRowBounds;
 
 
 public interface ReportServiceMapper extends IMINMybatisEntityMapper {
@@ -24,7 +25,7 @@ public interface ReportServiceMapper extends IMINMybatisEntityMapper {
 
 	List<Map<String, String>> selectReportType00TqtdGS(Map<String, Object> param);
 	
-	List<Map<String, String>> selectDetail03ByDDYZLFXB(Map<String, String> param);
+	List<Map<String, String>> selectDetail03ByDDYZLFXB(Map<String, Object> param, MINRowBounds rows);
 	
 	List<Map<String, String>> selectDetail03ByDDYRB(Map<String, String> param);
 	

File diff suppressed because it is too large
+ 120 - 139
src/main/java/com/minpay/reportManage/action/ReportManageAction.java


+ 28 - 28
src/main/resources/com/minpay/db/table/mapper/DwDdyFxbMapper.xml

@@ -14,15 +14,15 @@
     <result column="DDF_TQID" jdbcType="VARCHAR" property="tqid" />
     <result column="DDF_BYQMC" jdbcType="VARCHAR" property="byqmc" />
     <result column="DDF_YHBH" jdbcType="VARCHAR" property="yhbh" />
-    <result column="DDF_DDYSJ" jdbcType="VARCHAR" property="ddysj" />
-    <result column="DDF_LJTS" jdbcType="VARCHAR" property="ljts" />
+    <result column="DDF_DDYSJ" jdbcType="INTEGER" property="ddysj" />
+    <result column="DDF_LJTS" jdbcType="INTEGER" property="ljts" />
     <result column="DDF_DDYZYMC" jdbcType="VARCHAR" property="ddyzymc" />
     <result column="DDF_JTYY" jdbcType="VARCHAR" property="jtyy" />
     <result column="DDF_ZLCS" jdbcType="VARCHAR" property="zlcs" />
     <result column="DDF_SFZL" jdbcType="VARCHAR" property="sfzl" />
     <result column="DDF_ZLWCSJ" jdbcType="VARCHAR" property="zlwcsj" />
     <result column="DDF_SFXC" jdbcType="VARCHAR" property="sfxc" />
-    <result column="DDF_DETAIL_JSON" jdbcType="VARCHAR" property="detailJson" />
+    <result column="DDF_QNLJTS" jdbcType="INTEGER" property="qnljts" />
     <result column="DDF_ZRXZ" jdbcType="VARCHAR" property="zrxz" />
     <result column="DDF_REPORT_ID" jdbcType="VARCHAR" property="reportId" />
   </resultMap>
@@ -99,7 +99,7 @@
     -->
     DDF_ID, DDF_XH, DDF_XGSMC, DDF_YHGLDWMC, DDF_XLMC, DDF_TQID, DDF_BYQMC, DDF_YHBH, 
     DDF_DDYSJ, DDF_LJTS, DDF_DDYZYMC, DDF_JTYY, DDF_ZLCS, DDF_SFZL, DDF_ZLWCSJ, DDF_SFXC, 
-    DDF_DETAIL_JSON, DDF_ZRXZ, DDF_REPORT_ID
+    DDF_QNLJTS, DDF_ZRXZ, DDF_REPORT_ID
   </sql>
   <select id="selectByExample" parameterType="com.minpay.db.table.model.DwDdyFxbExample" resultMap="BaseResultMap">
     <!--
@@ -157,14 +157,14 @@
       DDF_BYQMC, DDF_YHBH, DDF_DDYSJ, 
       DDF_LJTS, DDF_DDYZYMC, DDF_JTYY, 
       DDF_ZLCS, DDF_SFZL, DDF_ZLWCSJ, 
-      DDF_SFXC, DDF_DETAIL_JSON, DDF_ZRXZ, 
+      DDF_SFXC, DDF_QNLJTS, DDF_ZRXZ, 
       DDF_REPORT_ID)
     values (#{id,jdbcType=VARCHAR}, #{xh,jdbcType=VARCHAR}, #{xgsmc,jdbcType=VARCHAR}, 
       #{yhgldwmc,jdbcType=VARCHAR}, #{xlmc,jdbcType=VARCHAR}, #{tqid,jdbcType=VARCHAR}, 
-      #{byqmc,jdbcType=VARCHAR}, #{yhbh,jdbcType=VARCHAR}, #{ddysj,jdbcType=VARCHAR}, 
-      #{ljts,jdbcType=VARCHAR}, #{ddyzymc,jdbcType=VARCHAR}, #{jtyy,jdbcType=VARCHAR}, 
+      #{byqmc,jdbcType=VARCHAR}, #{yhbh,jdbcType=VARCHAR}, #{ddysj,jdbcType=INTEGER}, 
+      #{ljts,jdbcType=INTEGER}, #{ddyzymc,jdbcType=VARCHAR}, #{jtyy,jdbcType=VARCHAR}, 
       #{zlcs,jdbcType=VARCHAR}, #{sfzl,jdbcType=VARCHAR}, #{zlwcsj,jdbcType=VARCHAR}, 
-      #{sfxc,jdbcType=VARCHAR}, #{detailJson,jdbcType=VARCHAR}, #{zrxz,jdbcType=VARCHAR}, 
+      #{sfxc,jdbcType=VARCHAR}, #{qnljts,jdbcType=INTEGER}, #{zrxz,jdbcType=VARCHAR}, 
       #{reportId,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.minpay.db.table.model.DwDdyFxb">
@@ -222,8 +222,8 @@
       <if test="sfxc != null">
         DDF_SFXC,
       </if>
-      <if test="detailJson != null">
-        DDF_DETAIL_JSON,
+      <if test="qnljts != null">
+        DDF_QNLJTS,
       </if>
       <if test="zrxz != null">
         DDF_ZRXZ,
@@ -258,10 +258,10 @@
         #{yhbh,jdbcType=VARCHAR},
       </if>
       <if test="ddysj != null">
-        #{ddysj,jdbcType=VARCHAR},
+        #{ddysj,jdbcType=INTEGER},
       </if>
       <if test="ljts != null">
-        #{ljts,jdbcType=VARCHAR},
+        #{ljts,jdbcType=INTEGER},
       </if>
       <if test="ddyzymc != null">
         #{ddyzymc,jdbcType=VARCHAR},
@@ -281,8 +281,8 @@
       <if test="sfxc != null">
         #{sfxc,jdbcType=VARCHAR},
       </if>
-      <if test="detailJson != null">
-        #{detailJson,jdbcType=VARCHAR},
+      <if test="qnljts != null">
+        #{qnljts,jdbcType=INTEGER},
       </if>
       <if test="zrxz != null">
         #{zrxz,jdbcType=VARCHAR},
@@ -334,10 +334,10 @@
         DDF_YHBH = #{record.yhbh,jdbcType=VARCHAR},
       </if>
       <if test="record.ddysj != null">
-        DDF_DDYSJ = #{record.ddysj,jdbcType=VARCHAR},
+        DDF_DDYSJ = #{record.ddysj,jdbcType=INTEGER},
       </if>
       <if test="record.ljts != null">
-        DDF_LJTS = #{record.ljts,jdbcType=VARCHAR},
+        DDF_LJTS = #{record.ljts,jdbcType=INTEGER},
       </if>
       <if test="record.ddyzymc != null">
         DDF_DDYZYMC = #{record.ddyzymc,jdbcType=VARCHAR},
@@ -357,8 +357,8 @@
       <if test="record.sfxc != null">
         DDF_SFXC = #{record.sfxc,jdbcType=VARCHAR},
       </if>
-      <if test="record.detailJson != null">
-        DDF_DETAIL_JSON = #{record.detailJson,jdbcType=VARCHAR},
+      <if test="record.qnljts != null">
+        DDF_QNLJTS = #{record.qnljts,jdbcType=INTEGER},
       </if>
       <if test="record.zrxz != null">
         DDF_ZRXZ = #{record.zrxz,jdbcType=VARCHAR},
@@ -385,15 +385,15 @@
       DDF_TQID = #{record.tqid,jdbcType=VARCHAR},
       DDF_BYQMC = #{record.byqmc,jdbcType=VARCHAR},
       DDF_YHBH = #{record.yhbh,jdbcType=VARCHAR},
-      DDF_DDYSJ = #{record.ddysj,jdbcType=VARCHAR},
-      DDF_LJTS = #{record.ljts,jdbcType=VARCHAR},
+      DDF_DDYSJ = #{record.ddysj,jdbcType=INTEGER},
+      DDF_LJTS = #{record.ljts,jdbcType=INTEGER},
       DDF_DDYZYMC = #{record.ddyzymc,jdbcType=VARCHAR},
       DDF_JTYY = #{record.jtyy,jdbcType=VARCHAR},
       DDF_ZLCS = #{record.zlcs,jdbcType=VARCHAR},
       DDF_SFZL = #{record.sfzl,jdbcType=VARCHAR},
       DDF_ZLWCSJ = #{record.zlwcsj,jdbcType=VARCHAR},
       DDF_SFXC = #{record.sfxc,jdbcType=VARCHAR},
-      DDF_DETAIL_JSON = #{record.detailJson,jdbcType=VARCHAR},
+      DDF_QNLJTS = #{record.qnljts,jdbcType=INTEGER},
       DDF_ZRXZ = #{record.zrxz,jdbcType=VARCHAR},
       DDF_REPORT_ID = #{record.reportId,jdbcType=VARCHAR}
     <if test="_parameter != null">
@@ -429,10 +429,10 @@
         DDF_YHBH = #{yhbh,jdbcType=VARCHAR},
       </if>
       <if test="ddysj != null">
-        DDF_DDYSJ = #{ddysj,jdbcType=VARCHAR},
+        DDF_DDYSJ = #{ddysj,jdbcType=INTEGER},
       </if>
       <if test="ljts != null">
-        DDF_LJTS = #{ljts,jdbcType=VARCHAR},
+        DDF_LJTS = #{ljts,jdbcType=INTEGER},
       </if>
       <if test="ddyzymc != null">
         DDF_DDYZYMC = #{ddyzymc,jdbcType=VARCHAR},
@@ -452,8 +452,8 @@
       <if test="sfxc != null">
         DDF_SFXC = #{sfxc,jdbcType=VARCHAR},
       </if>
-      <if test="detailJson != null">
-        DDF_DETAIL_JSON = #{detailJson,jdbcType=VARCHAR},
+      <if test="qnljts != null">
+        DDF_QNLJTS = #{qnljts,jdbcType=INTEGER},
       </if>
       <if test="zrxz != null">
         DDF_ZRXZ = #{zrxz,jdbcType=VARCHAR},
@@ -477,15 +477,15 @@
       DDF_TQID = #{tqid,jdbcType=VARCHAR},
       DDF_BYQMC = #{byqmc,jdbcType=VARCHAR},
       DDF_YHBH = #{yhbh,jdbcType=VARCHAR},
-      DDF_DDYSJ = #{ddysj,jdbcType=VARCHAR},
-      DDF_LJTS = #{ljts,jdbcType=VARCHAR},
+      DDF_DDYSJ = #{ddysj,jdbcType=INTEGER},
+      DDF_LJTS = #{ljts,jdbcType=INTEGER},
       DDF_DDYZYMC = #{ddyzymc,jdbcType=VARCHAR},
       DDF_JTYY = #{jtyy,jdbcType=VARCHAR},
       DDF_ZLCS = #{zlcs,jdbcType=VARCHAR},
       DDF_SFZL = #{sfzl,jdbcType=VARCHAR},
       DDF_ZLWCSJ = #{zlwcsj,jdbcType=VARCHAR},
       DDF_SFXC = #{sfxc,jdbcType=VARCHAR},
-      DDF_DETAIL_JSON = #{detailJson,jdbcType=VARCHAR},
+      DDF_QNLJTS = #{qnljts,jdbcType=INTEGER},
       DDF_ZRXZ = #{zrxz,jdbcType=VARCHAR},
       DDF_REPORT_ID = #{reportId,jdbcType=VARCHAR}
     where DDF_ID = #{id,jdbcType=VARCHAR}

+ 1 - 0
src/main/resources/com/minpay/db/table/own/mapper/ReportManageMapper.xml

@@ -10,6 +10,7 @@
 			a.DRI_BRANCH branch,
 			a.DRI_TYPE typeId,
 			a.DRI_STATE state,
+			a.DRI_DAY_INTERVAL dayInterval,
 			b.DBRT_TYPE type
         from dw_report_inf a,dw_branch_report_type b
 		where

+ 10 - 3
src/main/resources/com/minpay/db/table/own/mapper/ReportServiceMapper.xml

@@ -207,8 +207,8 @@
 				DFD3_TQID 'tqid',
 				DFD3_BYQMC 'byqmc',
 				DFD3_YHID 'yhid', 
-				SUM(DFD3_DYSC) 'dysc',
-				SUM(DFD3_LJTS)  'ljts'
+				cast(SUM(DFD3_DYSC) as char) 'dysc',
+				cast(SUM(DFD3_LJTS) as char)  'ljts'
 		FROM  dw_file_detail_03 
 		WHERE 
 			1 = 1
@@ -218,8 +218,15 @@
 			<if test="endTime != null  and endTime != ''">
 				and substring(DFD3_SJRQ, 1, 8) &lt;= #{endTime,jdbcType=VARCHAR}
 			</if>
+			<if test="yhidList != null">
+				and DFD3_YHID in
+		    	<foreach item="item" index="index" collection="yhidList" open="("
+					separator="," close=")">
+					#{item}
+				</foreach>
+			</if>
 		GROUP BY DFD3_YHID
-		ORDER BY dysc DESC,DFD3_YHID
+		ORDER BY SUM(DFD3_DYSC) DESC,DFD3_YHID
 	</select>
 	<select id="selectDetail03ByDDYRB" resultType="hashmap" parameterType="java.util.Map">
 		SELECT

+ 2 - 2
src/main/webapp/admin/ddy/reportManageDdy.html

@@ -122,7 +122,7 @@
 		    	  	});
 	      		});
 		    } else if (layEvent === 'edit'){ // 编辑
-		    	editReport(data);
+// 		    	editReport(data);
 		    } else if (layEvent === 'algorithmDetail'){ // 算法查看
 		    	algorithmDetail(data);
 		    }
@@ -159,7 +159,7 @@
       
       function showDetail(data){
     	  var openPageId = pageId + "-02";
-    	  openMainTabPage(openPageId, "详情查看", "ddy/reportManageDetailDdy.html?pageId="+openPageId+"&reportId="+data.id+"&type="+data.type+"&typeId="+data.typeId+"&fileName="+chineseUrlEncode(data.fileName), '', pageId, null);
+    	  openMainTabPage(openPageId, "详情查看", "ddy/reportManageDetailDdy.html?pageId="+openPageId+"&reportId="+data.id+"&dayInterval="+data.dayInterval+"&fileName="+chineseUrlEncode(data.fileName), '', pageId, null);
       }
       function editReport(data){
     	  var openPageId = pageId + "-03";

+ 243 - 0
src/main/webapp/admin/ddy/reportManageDdy30T.html

@@ -0,0 +1,243 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8">
+    <title>报表管理</title>
+    <script src="../../js/min-loader-next.js"></script>
+</head>
+<body class="content">
+	<div class="order-body">
+		<div class="order-tiaojian back-gray">
+			<div class="tiaojian-part1" id = "conditions">
+				<div class="fl f12-gray4-op">所选条件:</div>
+			</div>
+			<div class="tiaojian-part2 fr  demoTable">
+				<button class="order-bnt1 layui-btn" onclick="reloadSearch()" >查询</button>
+				<button class="layui-btn order-bnt2" onclick="reset()">重置</button>
+				<button class="order-bnt2 layui-btn" onclick="uploadExcel()">报表生成</button>
+				<a href="#" id="toggle" class="top">收起</a>
+			</div>
+		</div>
+		<form class="layui-form" action="" id = "formRole">
+			<div class="order-select back-border" id="content">
+				<div class="d-dashed" style="margin: 10px 0;"></div>
+				<div class="layui-inline">
+					<label class="f12-gray4">生成日期:</label>
+					<div class="layui-input-inline" style="position: relative;">
+						<input type="text" class="layui-input" id="date" placeholder="请选择日期" readOnly/>
+					</div>
+				</div>
+				<div class="layui-inline">
+					<label class="f12-gray4">文件名称:</label>
+					<input name="fileName"  id ="fileName" autocomplete="off" placeholder="请输入文件名称" class="search-select" onchange = "changeSelectCon(1,this,'inp')">
+				</div>
+			</div>
+		</form>
+	</div>
+	<div class="shadow-content" style="margin:1.5rem;">
+    	<table id="tableTest" lay-filter="tableFilter"></table>
+	</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="edit">编辑</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">
+		<a class="layui-btn layui-btn-xs" lay-event="algorithmDetail">查看</a>
+   	</script>
+    <script>
+	$("#toggle").click(function() {
+		$(this).html($("#content").is(":hidden") ? "收起" + "<i class='iconfont up iconSelect_drop-down'/></i>" : "展开" +
+			"<i class='iconfont up iconSelect_drop-down'/></i>");
+		$("#content").slideToggle();
+	});
+	var pageId = "250005";
+	// 报表类型
+	var reportType = getQueryString("reportType")
+	
+     var table;
+     var form;
+     layui.use(['table','laydate','form'], function(){
+    	  var laydate = layui.laydate;
+    	  laydate.render({ 
+    		  elem: '#date'
+    		  ,type: 'date'
+    		  ,range: true
+    		  ,done: function(value, date, endDate){
+    			  changeSelectCon(0,"date",'date',value)
+  			  }
+		  });
+    	  
+		  table = layui.table;
+		  
+		  // 加载数据
+		  table.render({
+			id: 'tableTest'
+		    ,elem: '#tableTest'
+		    ,limit:10
+		    ,url: 'ReportManageAction/reportInfQuery' //数据接口
+		    ,method: 'post'
+		    ,where:{MINView:"JSON", reportType : reportType}
+		    ,page: true //开启分页
+		    ,cols: [[ //表头
+		      {field:'num', title: '序号',width:'5%', type:'numbers', align: 'center'}
+		      ,{field: 'uploadDate', title: '生成时间', width:'15%', sort: true}
+		      ,{field: 'fileName', title: '报表名称', width:'30%'}
+		      ,{field: 'algorith', title: '算法', width: '10%', toolbar: '#algorithmBar'}
+		      ,{field: 'operate', title: '操作', width: '40%', toolbar: '#barDemo', fixed : 'right'}
+		    ]]
+		    ,done: function(res, curr, count){
+		    }
+		    ,even: true //开启隔行背景
+		  });
+		  
+		 // 监听工具条(操作)
+		  table.on('tool(tableFilter)', function(obj){ //注:tool是工具条事件名,tableFilter是table原始容器的属性 lay-filter="对应的值"
+		    var data = obj.data; //获得当前行数据
+		    var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
+		    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);
+			    	$.request({
+						action : 'ReportManageAction/reportInfDelete',
+						data : {
+							reportId : data.id
+						},
+						success : function(data1) {
+							$.SuccAlert("操作成功!");
+							reloadSearch();
+						},
+						error : function(data2) {
+							$.ErrorAlert(data2.MINErrorMessage);
+						}
+		    	  	});
+	      		});
+		    } else if (layEvent === 'edit'){ // 编辑
+		    	editReport(data);
+		    } else if (layEvent === 'algorithmDetail'){ // 算法查看
+		    	algorithmDetail(data);
+		    }
+		  });
+	 });
+      
+      function reloadSearch (t) {
+	    	var fileName = $("#fileName").val();
+	    	var date = $("#date").val();
+	        //执行重载
+ 		    table.reload('tableTest', {
+ 		        page: {
+ 		        	curr: 1 //重新从第 1 页开始
+ 		        }
+ 		        ,where: {
+ 		        	date : date,
+ 		        	fileName : fileName
+ 		        }
+ 		     });
+ 		 if (t == 1) {
+     		  $.Alert("修改成功"); 
+     	 }
+      }
+      
+      function reset(){
+    	  $('#formRole')[0].reset();
+    	  $("#conditions").html('<div class="fl f12-gray4-op">所选条件:</div>');
+      }
+      
+      function uploadExcel(){
+    	  var openPageId = pageId + "-01";
+    	  openMainTabPage(openPageId, "报表生成", "ddy/reportProduceDdy30T.html?pageId="+openPageId+"&reportType="+reportType, '', pageId, reloadSearch);
+      }
+      
+      function showDetail(data){
+    	  var openPageId = pageId + "-02";
+    	  openMainTabPage(openPageId, "详情查看", "ddy/reportManageDetailDdyWzl.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";
+    	  openMainTabPage(openPageId, "编辑", "ddy/reportManageUpdateDdy.html?pageId="+openPageId+"&reportId="+data.id+"&type="+data.type+"&typeId="+data.typeId+"&fileName="+chineseUrlEncode(data.fileName), '', pageId, reloadSearch);
+      }
+      function algorithmDetail(data){
+   	  	var openPageId = pageId + "-04";
+		openMainTabPage(openPageId, "算法查看", "reprotManage/reportAlgorithm.html?pageId="+openPageId+"&reportTypeId="+data.typeId, '', pageId, null);
+      }
+      
+   	function changeSelectCon(index, t, type, dateValue){
+   		if (type == "date") {
+   			if (isEmpty(dateValue)) {
+   				$("#search" + index).remove();
+   			} else {
+   				$("#search" + index).remove();
+   				if (isEmpty($("#search" + index).attr("name"))) {
+   					$("#conditions").append(getSelectConHtml(index, t, type,dateValue));
+   				}
+   			}
+   		} else if (type == 'inp') {
+   			if (isEmpty($(t).val())) {
+   				$("#search" + index).remove();
+   			} else {
+   				$("#search" + index).remove();
+   				if (isEmpty($("#search" + index).attr("name"))) {
+   					$("#conditions").append(getSelectConHtml(index, t, type));
+   				}
+   			}
+   		} else {
+   			if (isEmpty($(t).val())) {
+   				$("#search" + index).remove();
+   			} else {
+   				$("#search" + index).remove();
+   				if (isEmpty($("#search" + index).attr("name"))) {
+   					$(t).attr("id","subjects");
+   					$("#conditions").append(getSelectConHtml(index, t, type));
+   				}
+   			}
+   		}
+   	}
+    	
+	var array = new Array('生成日期','文件名称');
+	function getSelectConHtml(index, t, type,dateValue){
+		var name;
+		if (type == "date") {
+			name = $("#"+t).attr("id");
+		} else {
+			name = $(t).attr("id");
+		}
+		var value;
+		if(type == "inp"){
+			value = t.value.substr(0,5)+"..";
+		}
+		if (type == "date") {
+			value = dateValue;
+		}
+		if(type == "sel"){
+			value = $("#stateDiv").find("option:selected").text();
+		}
+		var html = '<div class="fl xuanzhong-active" id = "search' + index + '" name = "' + name + '" onclick = "removeSearch(this)">' +
+						'<div class="fl">' + array[index] + '</div>' +
+						':<span>'+value+'</span>' +
+						'<svg class="icon" aria-hidden="true">' +
+						  '<use xlink:href="#iconicon_close1"></use>' +
+						'</svg>' +
+					'</div>';
+		return html;
+	}
+	function removeSearch(t) {
+		if ($(t).attr("name") == 'subjects') {
+			initSelect('stateDiv', "COMPANY_STATE", "state", '', true); 
+			form.render();
+			$(t).remove();
+		} else {
+			$("#"+$(t).attr("name")).val('');
+			$(t).remove();
+		}
+	}
+    </script>
+</body>
+
+</html>

+ 243 - 0
src/main/webapp/admin/ddy/reportManageDdyYb.html

@@ -0,0 +1,243 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8">
+    <title>报表管理</title>
+    <script src="../../js/min-loader-next.js"></script>
+</head>
+<body class="content">
+	<div class="order-body">
+		<div class="order-tiaojian back-gray">
+			<div class="tiaojian-part1" id = "conditions">
+				<div class="fl f12-gray4-op">所选条件:</div>
+			</div>
+			<div class="tiaojian-part2 fr  demoTable">
+				<button class="order-bnt1 layui-btn" onclick="reloadSearch()" >查询</button>
+				<button class="layui-btn order-bnt2" onclick="reset()">重置</button>
+				<button class="order-bnt2 layui-btn" onclick="uploadExcel()">报表生成</button>
+				<a href="#" id="toggle" class="top">收起</a>
+			</div>
+		</div>
+		<form class="layui-form" action="" id = "formRole">
+			<div class="order-select back-border" id="content">
+				<div class="d-dashed" style="margin: 10px 0;"></div>
+				<div class="layui-inline">
+					<label class="f12-gray4">生成日期:</label>
+					<div class="layui-input-inline" style="position: relative;">
+						<input type="text" class="layui-input" id="date" placeholder="请选择日期" readOnly/>
+					</div>
+				</div>
+				<div class="layui-inline">
+					<label class="f12-gray4">文件名称:</label>
+					<input name="fileName"  id ="fileName" autocomplete="off" placeholder="请输入文件名称" class="search-select" onchange = "changeSelectCon(1,this,'inp')">
+				</div>
+			</div>
+		</form>
+	</div>
+	<div class="shadow-content" style="margin:1.5rem;">
+    	<table id="tableTest" lay-filter="tableFilter"></table>
+	</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="edit">编辑</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">
+		<a class="layui-btn layui-btn-xs" lay-event="algorithmDetail">查看</a>
+   	</script>
+    <script>
+	$("#toggle").click(function() {
+		$(this).html($("#content").is(":hidden") ? "收起" + "<i class='iconfont up iconSelect_drop-down'/></i>" : "展开" +
+			"<i class='iconfont up iconSelect_drop-down'/></i>");
+		$("#content").slideToggle();
+	});
+	var pageId = "250007";
+	// 报表类型
+	var reportType = getQueryString("reportType")
+	
+     var table;
+     var form;
+     layui.use(['table','laydate','form'], function(){
+    	  var laydate = layui.laydate;
+    	  laydate.render({ 
+    		  elem: '#date'
+    		  ,type: 'date'
+    		  ,range: true
+    		  ,done: function(value, date, endDate){
+    			  changeSelectCon(0,"date",'date',value)
+  			  }
+		  });
+    	  
+		  table = layui.table;
+		  
+		  // 加载数据
+		  table.render({
+			id: 'tableTest'
+		    ,elem: '#tableTest'
+		    ,limit:10
+		    ,url: 'ReportManageAction/reportInfQuery' //数据接口
+		    ,method: 'post'
+		    ,where:{MINView:"JSON", reportType : reportType}
+		    ,page: true //开启分页
+		    ,cols: [[ //表头
+		      {field:'num', title: '序号',width:'5%', type:'numbers', align: 'center'}
+		      ,{field: 'uploadDate', title: '生成时间', width:'15%', sort: true}
+		      ,{field: 'fileName', title: '报表名称', width:'30%'}
+		      ,{field: 'algorith', title: '算法', width: '10%', toolbar: '#algorithmBar'}
+		      ,{field: 'operate', title: '操作', width: '40%', toolbar: '#barDemo', fixed : 'right'}
+		    ]]
+		    ,done: function(res, curr, count){
+		    }
+		    ,even: true //开启隔行背景
+		  });
+		  
+		 // 监听工具条(操作)
+		  table.on('tool(tableFilter)', function(obj){ //注:tool是工具条事件名,tableFilter是table原始容器的属性 lay-filter="对应的值"
+		    var data = obj.data; //获得当前行数据
+		    var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
+		    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);
+			    	$.request({
+						action : 'ReportManageAction/reportInfDelete',
+						data : {
+							reportId : data.id
+						},
+						success : function(data1) {
+							$.SuccAlert("操作成功!");
+							reloadSearch();
+						},
+						error : function(data2) {
+							$.ErrorAlert(data2.MINErrorMessage);
+						}
+		    	  	});
+	      		});
+		    } else if (layEvent === 'edit'){ // 编辑
+		    	editReport(data);
+		    } else if (layEvent === 'algorithmDetail'){ // 算法查看
+		    	algorithmDetail(data);
+		    }
+		  });
+	 });
+      
+      function reloadSearch (t) {
+	    	var fileName = $("#fileName").val();
+	    	var date = $("#date").val();
+	        //执行重载
+ 		    table.reload('tableTest', {
+ 		        page: {
+ 		        	curr: 1 //重新从第 1 页开始
+ 		        }
+ 		        ,where: {
+ 		        	date : date,
+ 		        	fileName : fileName
+ 		        }
+ 		     });
+ 		 if (t == 1) {
+     		  $.Alert("修改成功"); 
+     	 }
+      }
+      
+      function reset(){
+    	  $('#formRole')[0].reset();
+    	  $("#conditions").html('<div class="fl f12-gray4-op">所选条件:</div>');
+      }
+      
+      function uploadExcel(){
+    	  var openPageId = pageId + "-01";
+    	  openMainTabPage(openPageId, "报表生成", "ddy/reportProduceYb.html?pageId="+openPageId+"&reportType="+reportType, '', pageId, reloadSearch);
+      }
+      
+      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);
+      }
+      function editReport(data){
+    	  var openPageId = pageId + "-03";
+    	  openMainTabPage(openPageId, "编辑", "ddy/reportManageUpdateDdyRb.html?pageId="+openPageId+"&reportId="+data.id+"&type="+data.type+"&typeId="+data.typeId+"&fileName="+chineseUrlEncode(data.fileName), '', pageId, reloadSearch);
+      }
+      function algorithmDetail(data){
+   	  	var openPageId = pageId + "-04";
+		openMainTabPage(openPageId, "算法查看", "reprotManage/reportAlgorithm.html?pageId="+openPageId+"&reportTypeId="+data.typeId, '', pageId, null);
+      }
+      
+   	function changeSelectCon(index, t, type, dateValue){
+   		if (type == "date") {
+   			if (isEmpty(dateValue)) {
+   				$("#search" + index).remove();
+   			} else {
+   				$("#search" + index).remove();
+   				if (isEmpty($("#search" + index).attr("name"))) {
+   					$("#conditions").append(getSelectConHtml(index, t, type,dateValue));
+   				}
+   			}
+   		} else if (type == 'inp') {
+   			if (isEmpty($(t).val())) {
+   				$("#search" + index).remove();
+   			} else {
+   				$("#search" + index).remove();
+   				if (isEmpty($("#search" + index).attr("name"))) {
+   					$("#conditions").append(getSelectConHtml(index, t, type));
+   				}
+   			}
+   		} else {
+   			if (isEmpty($(t).val())) {
+   				$("#search" + index).remove();
+   			} else {
+   				$("#search" + index).remove();
+   				if (isEmpty($("#search" + index).attr("name"))) {
+   					$(t).attr("id","subjects");
+   					$("#conditions").append(getSelectConHtml(index, t, type));
+   				}
+   			}
+   		}
+   	}
+    	
+	var array = new Array('生成日期','文件名称');
+	function getSelectConHtml(index, t, type,dateValue){
+		var name;
+		if (type == "date") {
+			name = $("#"+t).attr("id");
+		} else {
+			name = $(t).attr("id");
+		}
+		var value;
+		if(type == "inp"){
+			value = t.value.substr(0,5)+"..";
+		}
+		if (type == "date") {
+			value = dateValue;
+		}
+		if(type == "sel"){
+			value = $("#stateDiv").find("option:selected").text();
+		}
+		var html = '<div class="fl xuanzhong-active" id = "search' + index + '" name = "' + name + '" onclick = "removeSearch(this)">' +
+						'<div class="fl">' + array[index] + '</div>' +
+						':<span>'+value+'</span>' +
+						'<svg class="icon" aria-hidden="true">' +
+						  '<use xlink:href="#iconicon_close1"></use>' +
+						'</svg>' +
+					'</div>';
+		return html;
+	}
+	function removeSearch(t) {
+		if ($(t).attr("name") == 'subjects') {
+			initSelect('stateDiv', "COMPANY_STATE", "state", '', true); 
+			form.render();
+			$(t).remove();
+		} else {
+			$("#"+$(t).attr("name")).val('');
+			$(t).remove();
+		}
+	}
+    </script>
+</body>
+
+</html>

+ 161 - 16
src/main/webapp/admin/ddy/reportManageDetailDdy.html

@@ -9,31 +9,176 @@
 <body class="content">
 	<div class="shadow-content" style="margin:1.5rem; text-align: center;">
 		<p id = "reportTitle" style="margin:15px; font-size : 20px"></p>
-    	<table id="reportTable" class="layui-table"></table>
+		<table id="tableTest" lay-filter="tableFilter"></table>
 	</div>
     <script>
+    var ddyzymcSelect = new Array();
+    ddyzymcSelect.push('');
+    ddyzymcSelect.push('供电半径长');
+    ddyzymcSelect.push('低压供电半径长');
+    ddyzymcSelect.push('低过电压共存');
+    ddyzymcSelect.push('低压线路线径细');
+    ddyzymcSelect.push('配变档位调整不合理');
+    ddyzymcSelect.push('终端采集故障');
+    ddyzymcSelect.push('三相不平衡');
+    ddyzymcSelect.push('线路虚接、氧化');
+    ddyzymcSelect.push('低压线路老化');
+    ddyzymcSelect.push('其它原因');
+    
+    var isOrNoSelect = new Array();
+    isOrNoSelect.push('');
+    isOrNoSelect.push('是');
+    isOrNoSelect.push('否');
+    
 	var pageId = getQueryString("pageId");
 	var reportId = getQueryString("reportId");		//报告id
 	var fileName = chineseUrlDecodeURI(getQueryString("fileName"));	//报告名称
 	var dayInterval = getQueryString("dayInterval");	//日区间
-	var type = getQueryString("type");		//报告类型00:excel 01:word
-	var typeId = getQueryString("typeId");	//报告类型id
 	
+	var table;
+	var form;
+	layui.use(['table','form', 'laydate'], function(){
+		$("#reportTitle").html(fileName);
+		table = layui.table;
+		var cols = [
+					{field:'xh', title: '序号',width:'5%'}
+					,{field:'xgsmc', title: '县公司名称',width:'8%'}
+					,{field:'yhgldwmc', title: '用户管理单位名称',width:'8%'}
+					,{field:'xlmc', title: '线路名称',width:'8%'}
+					,{field:'tqid', title: '台区ID',width:'8%'}
+					,{field:'byqmc', title: '变压器名称',width:'8%'}
+					,{field:'yhbh', title: '用户编号',width:'8%'}
+					,{field:'ddysj', title: '低电压时长',width:'8%'}
+					,{field:'ljts', title: '累计天数',width:'5%'}
+					,{field:'ddyzymc', title: '低电压主要原因',width:'110', templet : function (d) {
+						var html = '<select lay-ignore style = "width : 100px;" onchange = "ddyzymcChange(this,' + d.id + ',\'' + this.field + '\')">';
+						for (var i = 0; i < ddyzymcSelect.length; i ++) {
+							if (ddyzymcSelect[i] == d.ddyzymc) {
+								html += '<option value = "' + ddyzymcSelect[i] + '" selected>' + ddyzymcSelect[i] + '</option>';
+							} else {
+								html += '<option value = "' + ddyzymcSelect[i] + '" >' + ddyzymcSelect[i] + '</option>';
+							}	
+						}
+						html += '</select>';
+						return html;
+					}}
+					,{field:'jtyy', title: '具体原因',width:'8%', edit: 'text'}
+					,{field:'zlcs', title: '治理措施',width:'8%', edit: 'text'}
+					,{field:'sfzl', 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) {
+								html += '<option value = "' + isOrNoSelect[i] + '" selected>' + isOrNoSelect[i] + '</option>';
+							} else {
+								html += '<option value = "' + isOrNoSelect[i] + '" >' + isOrNoSelect[i] + '</option>';
+							}	
+						}
+						html += '</select>';
+						return html;
+					}}
+					,{field:'zlwcsj', title: '治理完成时间',width:'8%'}
+					,{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) {
+								html += '<option value = "' + isOrNoSelect[i] + '" selected>' + isOrNoSelect[i] + '</option>';
+							} else {
+								html += '<option value = "' + isOrNoSelect[i] + '" >' + isOrNoSelect[i] + '</option>';
+							}	
+						}
+						html += '</select>';
+						return html;
+					}}
+					,{field:'qnljts', title: '全年累计天数',width:'8%'}
+					,{field:'zrxz', title: '是否昨日新增',width:'8%'}
+		            ];
+		
+		var beginDate = strToDate(dayInterval.split("-")[0]);
+		var endDate = strToDate(dayInterval.split("-")[1]);
+		
+		while (endDate >= beginDate) {
+			var dateMap = {field : dateToString(endDate), title: dateToString(endDate), width:'8%', templet: function (d){
+				if (isEmpty(d[this.field])) {
+					return '';
+				} else {
+					return '<span style="color: #F581B1;">' + d[this.field] + '</span>';
+				}
+			}}
+			cols.push(dateMap);
+			endDate = new Date(endDate.setDate(endDate.getDate() - 1));
+		}
+		
+		// 加载数据
+		table.render({
+			id: 'tableTest'
+			,elem: '#tableTest'
+			,limit:10
+			,url: 'ReportManageAction/ddyReportInfDetail' //数据接口
+			,method: 'post'
+			,where:{MINView:"JSON", reportId : reportId}
+			,page: true //开启分页
+			,cols: [cols]
+			,done: function(res, curr, count){
+				var ddysjTds = $("tbody").find('td[data-field="ddysj"]');
+				for (var i = 0; i < ddysjTds.length; i ++) {
+					var ddysjTd = ddysjTds[i];
+					var ddysj = $(ddysjTd).find("div").html();
+					if (parseInt(ddysj) >= 48) {
+						$(ddysjTd).css("background-color", "rgb(233, 167, 41)");
+					}
+				}
+				
+				// 日期选择
+				var zlwcsjTds = $("tbody").find('td[data-field="zlwcsj"]');
+				for (var i = 0; i < zlwcsjTds.length; i ++) {
+					var t = $(zlwcsjTds[i]).find("div");
+                    layui.laydate.render({
+                        elem: t[0],
+                        format: "yyyyMMdd",
+                        done: function (value, date) {
+                        	console.log(this.elem);
+                        	var index = $(this.elem).parent().parent().attr("data-index");
+                        	var param = {};
+                        	param.zlwcsj = value;
+                        	param.id = res.data[index].id;
+                        	editFxb(param);
+                        }
+                    });
+                };
+			}
+			,even: true //开启隔行背景
+		});
+		table.on('edit(tableFilter)', function(obj){
+			var value = obj.value;
+			var field = obj.field;
+			var param = {};
+			param[field] = value;
+			param.id = obj.data.id;
+			editFxb(param);
+		});
+	});
 	
-	$("#reportTitle").html(fileName);
-	$.request({
-		action : 'ReportManageAction/ddyReportInfDetail',
-		data : {
-			reportId : reportId
-		},
-		success : function(data) {
-			var reportDataJson = data.data;
-			reportTable(reportDataJson, typeId,true);
-		},
-		error : function(data2) {
-			$.ErrorAlert(data2.MINErrorMessage);
+	function ddyzymcChange(t, id, field) {
+		var value = $(t).find("option:selected").val();
+		var param = {
+			id : id
 		}
-  	});
+		param[field] = value;
+		editFxb(param);
+	}
+	
+	function editFxb(param) {
+		$.request({
+			action : 'ReportManageAction/ddyReportInfUpdate',
+			data : param,
+			success : function(data) {
+				console.log(data);
+			},
+			error : function(data2) {
+				$.ErrorAlert(data2.MINErrorMessage);
+			}
+	  	});
+	}
 	
 	function reportTable(excelList, typeId,isType,isEdit) {
 		var html = '';

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

@@ -8,7 +8,7 @@
     <script src="../../js/report.js"></script>
 </head>
 <body class="content">
-	<div class="shadow-content" style="margin:1.5rem; text-align: center;">
+	<div class="shadow-content" style="margin:1.5rem; text-align: center;overflow: scroll;height: 600px;">
 		<p id = "reportTitle" style="margin:15px; font-size : 20px"></p>
     	<table id="reportTable" class="layui-table"></table>
 	</div>

+ 66 - 73
src/main/webapp/admin/ddy/reportManageUpdateDdy.html

@@ -8,109 +8,102 @@
 </head>
 <body class="content">
 	<div class="shadow-content" style="margin:1.5rem; text-align: center;">
-		<p id = "reportTitle" style="margin:15px; font-size : 20px" contenteditable = "true"></p>
-    	<table id="reportTable" class="layui-table"></table>
+		<p id = "reportTitle" style="margin:15px; font-size : 20px"></p>
+    	<table id="tableTest" lay-filter="tableFilter"></table>
 	</div>
-	<div class="layui-form-item box-button" style="margin-top:50px">
-          <div class="layui-input-block">
-				<button class="layui-btn" onclick = "saveReport()">保存</button>
-          </div>
-    </div>
     <script>
 	var pageId = getQueryString("pageId");
 	var reportId = getQueryString("reportId");		//报告id
 	var fileName = chineseUrlDecodeURI(getQueryString("fileName"));	//报告名称
-	var dayInterval = chineseUrlDecodeURI(getQueryString("dayInterval"));	//日区间
+	var dayInterval = getQueryString("dayInterval");	//日区间
 	
-	var type = getQueryString("type");		//报告类型00:excel 01:word
-	var typeId = getQueryString("typeId");	//报告类型id
-	
-	$("#reportTitle").html(fileName);
-	$.request({
-		action : 'ReportManageAction/ddyReportInfDetail',
-		data : {
-			reportId : reportId
-		},
-		success : function(data) {
-			var reportDataJson = data.data;
-			reportTable(reportDataJson, typeId,true, true);
-		},
-		error : function(data2) {
-			$.ErrorAlert(data2.MINErrorMessage);
+	var table;
+	var form;
+	layui.use(['table','form'], function(){
+		$("#reportTitle").html(fileName);
+		table = layui.table;
+		
+		var cols = [
+					{field:'xh', title: '序号',width:'5%'}
+					,{field:'xgsmc', title: '县公司名称',width:'8%'}
+					,{field:'yhgldwmc', title: '用户管理单位名称',width:'8%'}
+					,{field:'xlmc', title: '线路名称',width:'8%'}
+					,{field:'tqid', title: '台区ID',width:'8%'}
+					,{field:'byqmc', title: '变压器名称',width:'8%'}
+					,{field:'yhbh', title: '用户编号',width:'8%'}
+					,{field:'ddysj', title: '低电压时长',width:'8%'}
+					,{field:'ljts', title: '累计天数',width:'5%'}
+					,{field:'ddyzymc', title: '低电压主要原因',width:'8%', }
+					,{field:'jtyy', title: '具体原因',width:'8%'}
+					,{field:'zlcs', title: '治理措施',width:'8%'}
+					,{field:'sfzl', title: '是否治理',width:'8%'}
+					,{field:'zlwcsj', title: '治理完成时间',width:'8%'}
+					,{field:'sfxc', title: '是否消除',width:'8%'}
+					,{field:'qnljts', title: '全年累计天数',width:'8%'}
+					,{field:'zrxz', title: '是否昨日新增',width:'8%'}
+		            ];
+		
+		var beginDate = strToDate(dayInterval.split("-")[0]);
+		var endDate = strToDate(dayInterval.split("-")[1]);
+		
+		while (endDate >= beginDate) {
+			var dateMap = {field : dateToString(endDate), title: dateToString(endDate),width:'8%'}
+			cols.push(dateMap);
+			endDate = new Date(endDate.setDate(endDate.getDate() - 1));
 		}
-  	});
+		
+		// 加载数据
+		table.render({
+			id: 'tableTest'
+			,elem: '#tableTest'
+			,limit:10
+			,url: 'ReportManageAction/ddyReportInfDetail' //数据接口
+			,method: 'post'
+			,where:{MINView:"JSON", reportId : reportId}
+			,page: true //开启分页
+			,cols: [cols]
+			,done: function(res, curr, count){
+			}
+			,even: true //开启隔行背景
+		});
+	 });
 	
 	function reportTable(excelList, typeId,isType,isEdit) {
 		var html = '';
 		if(isType){
 			html = '<tr><td colspan = "'+excelList[1].length+'">'+excelList[0]+'</td></tr>';
 		}
-		for (var i = 1; i < excelList.length; i ++) {
+		for (var i = 0; i < excelList.length; i ++) {
+			if(i==0){
+				continue;
+			}
+			html += '<tr>';
 			var excelChildList = excelList[i];
-			html += '<tr id="' + excelChildList.id + '">';
 			for (var j = 0; j < excelChildList.length; j ++) {
-				var editHtml;
+				var editHtml = '';
 				if (j == (excelChildList.length - 1)) {
-					editHtml = '<td style = "display : none;"';
-				} else if (isEdit) {
-					editHtml = '<td contenteditable = "true"';
-				} else {
-					editHtml = '<td';
+					editHtml = 'display : none;';
 				}
+				// 合计列增加穿透
 				if (j==6) {
 					// 台区停电次数
 					if(excelChildList[7]>=15&excelChildList[7]<48){
-						html += editHtml + ' style="background: #c74141">' + (isEmpty(excelChildList[j])?'':excelChildList[j]) + '</td>';
+						html += '<td style="background: #c74141;' + editHtml + '">' + (isEmpty(excelChildList[j])?'':excelChildList[j]) + '</td>';
 					}else if(excelChildList[7]>=48){
-						html += editHtml + ' style="background: #ff8204">' + (isEmpty(excelChildList[j])?'':excelChildList[j]) + '</td>';
+						html += '<td style="background: #ff8204;"' + editHtml + '>' + (isEmpty(excelChildList[j])?'':excelChildList[j]) + '</td>';
 					}else{
-						html += editHtml + '>' + (isEmpty(excelChildList[j])?'':excelChildList[j]) + '</td>';
+						html += '<td style = "' + editHtml + '">' + (isEmpty(excelChildList[j])?'':excelChildList[j]) + '</td>';
 					}
+					
+					// 2个月停电3次及以上台区
 				} else {
-					html += editHtml + '>' + (isEmpty(excelChildList[j])?'':excelChildList[j]) + '</td>';
+					html += '<td style = "' + editHtml + '">'  + (isEmpty(excelChildList[j])?'':excelChildList[j]) + '</td>';
 				}
 			}
 			html += '</tr>';
 		}
 		$("#reportTable").html(html);
 	}
-
-
-	function saveReport() {
-		var reportData = getTableData("reportTable");
-		$.request({
-			action : 'ReportManageAction/ddyReportInfUpdate',
-			data : {
-				reportId : reportId,
-				reportData : JSON.stringify(reportData),
-				reportName : $("#reportTitle").html()
-			},
-			success : function(data) {
-				$.SuccAlert("保存成功!");
-				setTimeout(function(){
-					deleteTabPageParent(pageId); 
-				}, 1500)
-			},
-			error : function(data2) {
-				$.ErrorAlert(data2.MINErrorMessage);
-			}
-	  	});
-	}
-	
-	function getTableData(tableId) {
-		var excelList = new Array();
-		var tableDom = $("#" + tableId);
-		var trsDom = $(tableDom).find("tr");
-		for (var i = 0; i < trsDom.length; i ++) {
-			var excelChildList = new Array();
-			var tdsDom = $(trsDom[i]).find("td");
-			for (var j = 0; j < tdsDom.length; j ++) {
-				excelChildList.push($(tdsDom[j]).html());
-			}
-			excelList.push(excelChildList);
-		}
-		return excelList;
-	}
     </script>
 </body>
 

+ 2 - 5
src/main/webapp/admin/ddy/reportProduceDdy.html

@@ -208,10 +208,9 @@
 				$.request({
 					action : 'ReportManageAction/ddyReportInfSubmit',
 					data : {
-						reportData : JSON.stringify(excelList),
 						reportInf : reportInf,
 						fileName : fileName,
-						range : range,
+						range : range
 					},
 					success : function(data) {
 						if (data.code == 0) {
@@ -250,8 +249,6 @@
 			deleteTabPageParent(pageId); 
 		}
 		
-		// 报表excel
-		var excelList = null;
 		// 预览
 		function tableYulan() {
 			var reportInf = $("#reportTypeDiv").find("select option:selected").val();
@@ -271,7 +268,7 @@
 				},
 				success : function(data) {
 					if (data.code == 0) {
-						excelList = data.data.resList;
+						var excelList = data.data.resList;
 						initExcelData(excelList, "reportTable", false,true);
 						goStep(3);
 			    	} else {

+ 264 - 0
src/main/webapp/admin/ddy/reportProduceDdy30T.html

@@ -0,0 +1,264 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8">
+    <title>导入</title>
+    <script src="../../js/min-loader-next.js"></script>
+    <script src="../../js/report.js"></script>
+    <link rel="stylesheet" href="../../plugins/layui/lay/modules/steps/style.css"></link>
+    <style>
+    	.layui-input {
+    		width : 200px;
+    	}
+    	.layui-upload-drag .layui-icon {
+    		font-size: 18px;
+		    color: #fff;
+		}
+		.layui-btn-sm {
+		    height: 22px;
+		    line-height: 22px;
+		    padding: 0 10px;
+		    font-size: 12px;
+		}
+    </style>
+</head>
+<body class="content">
+	<div id="step_demo" class="step-body" style = "margin-top : 20px; margin-left: 10%;">
+	    <div class="step-header" style="width:80%;overflow: hidden;">
+	        <ul>
+	            <li>
+	                <span class="step-name">选择报告/报表</span>
+	            </li>
+	            <li>
+	                <span class="step-name">选择文件</span>
+	            </li>
+	            <li>
+	                <span class="step-name">数据预览</span>
+	            </li>
+	            <li>
+	                <span class="step-name">生成报告/报表</span>
+	            </li>
+	        </ul>
+	    </div>
+	</div>
+	<div class="order-body" style = "width: 80%; margin-left : 10%;height : 450px" name = "step">
+		<form class="layui-form" style = "text-align : center;">
+			<div class="order-select" id="content" style = "background: #FFFFFF;border-radius: 8px;padding: 16px 1.4rem;">
+				<div class="layui-inline" style="margin-top: 150px;">
+					<label class="f12-gray4">请选择文件类型:</label>
+					<div id = "reportTypeDiv" class="layui-inline">
+					</div>
+				</div>
+				<div style="margin-top : 200px;">
+			      <button type="button" class="layui-btn" style = "width : 214px" onclick = "goStep(2)">下一步</button>
+			    </div>
+			</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; 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 = "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>
+		  <table id = "reportTable" class="layui-table">
+		  </table>
+		  <p id = "content"></p>
+		</div>
+		<div style="margin-top : 50px;">
+	      <button type="button" class="layui-btn" style = "width : 214px" onclick = "goStep(4)">下一步</button>
+	    </div>
+	</div>
+	<div name = "step" style = "width: 80%; margin-left : 10%;height : 300px; display : none; text-align : center; margin-top : 50px;">
+		<i class="layui-icon layui-icon-ok-circle" style="font-size: 100px; color: #009688;"></i>
+		<p style = "font-weight: 700;font-size: 25px;">报表生成成功!</p>
+		<p style = " color: #b2bbc2;">可在数据仓库-报表管理进行查看</p>
+		<div style="margin-top : 100px;">
+	      <button type="button" class="layui-btn" style = "width : 214px" onclick = "finish()">完成</button>
+	    </div>
+	</div>
+	
+    <script>
+		var pageId = getQueryString("pageId");
+		var reportType = getQueryString("reportType");// 00日报01周报02月报
+		
+		var $step;
+		layui.config({
+	        base: '../../plugins/layui/lay/modules/steps/'
+	    }).use(['steps','jquery'],function(){
+	    	var $ = layui.$;
+    	    $step = $("#step_demo").step();
+		})
+		
+		$("#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 : {
+					reportType : reportType
+				},
+				success : function(data) {
+					var html = '<select id = "reportType" lay-filter="reportTypeFilter"><option value = "">请选择</option>';
+					var fileTypeList = data.data;
+					for (var i = 0; i < fileTypeList.length; i ++) {
+						var fileTypeInf = fileTypeList[i];
+						html += '<option value = "' + fileTypeInf.id + '_' + fileTypeInf.type + '_' + fileTypeInf.timeType + '">' + fileTypeInf.name + '</option>';
+					}
+					html += '</select>';
+					$("#reportTypeDiv").html(html);
+					form.render();
+				},
+				error : function(data2) {
+					$.ErrorAlert(data2.MINErrorMessage);
+				}
+    	  	});
+			
+			form.on('select(reportTypeFilter)', function(data){
+				var value = data.value;
+				if (!isEmpty(value)) {
+					var reportTypeId = value.split("_")[0];
+					
+					$("#fileName").html(data.elem.selectedOptions[0].text);
+					
+					if (!isEmpty(reportTypeId)) {
+						  $.request({
+								action : 'BranchReportTypeAction/fileTypeOfReportType',
+								data : {
+									reportTypeId : reportTypeId
+								},
+								success : function(data) {
+									fileType = data.data;
+									setTempVal("fileType", fileType);
+									
+									var utilDataInf = data.utilDataInf;
+									if (!isEmpty(utilDataInf)) {
+										$("#utilName").html(utilDataInf.fileName);
+										$("#utilName").attr("fileName", utilDataInf.fileName);
+										setTempVal("utilExcelDataDetail", utilDataInf.excelData);
+										var algorithmInf = data.algorithmInf;
+										if (!isEmpty(algorithmInf)) {
+											$("#algorithmName").html(utilDataInf.fileName+"算法");
+											$("#algorithmName").attr("reportTypeId", reportTypeId);
+										}
+									}
+									
+								},
+								error : function(data2) {
+									$.ErrorAlert(data2.MINErrorMessage);
+								}
+				    	  });
+					  }
+				}
+			});      
+		})
+		
+		function goStep (step) {
+			var reportInf = $("#reportTypeDiv").find("select option:selected").val();
+			if (step == 2) {
+				if (isEmpty(reportInf)) {
+					$.ErrorAlert("请选择上传文件类型!");
+					return;
+				}
+			}
+			
+			if (step == 4) {
+				var fileName = $("#fileName").html();
+				$.request({
+					action : 'ReportManageAction/fileInfReportSubmit',
+					data : {
+						reportData : JSON.stringify(excelList),
+						reportInf : reportInf,
+						fileName : fileName,
+						ddyFxbId : fxbReport.id
+					},
+					success : function(data) {
+						if (data.code == 0) {
+							$step.goStep(step);
+							var stepDiv = $("div[name = 'step']");
+							for (var i = 0; i < stepDiv.length; i ++) {
+								if (step == (i + 1)) {
+									$(stepDiv[i]).show();
+								} else {
+									$(stepDiv[i]).hide();
+								}
+							}
+				    	} else {
+				    		$.ErrorAlert(res.MINErrorMessage);
+				    	}
+					},
+					error : function(data2) {
+						$.ErrorAlert(data2.MINErrorMessage);
+					}
+	    	  	});
+				return;
+			}
+			
+			$step.goStep(step);
+			var stepDiv = $("div[name = 'step']");
+			for (var i = 0; i < stepDiv.length; i ++) {
+				if (step == (i + 1)) {
+					$(stepDiv[i]).show();
+				} else {
+					$(stepDiv[i]).hide();
+				}
+			}
+		}
+		
+		function finish() {
+			deleteTabPageParent(pageId); 
+		}
+		
+		// 报表excel
+		var excelList = null;
+		// 预览
+		function tableYulan() {
+			var reportInf = $("#reportTypeDiv").find("select option:selected").val();
+			if (isEmpty(fxbReport)) {
+				$.ErrorAlert("请选择分析表!");
+				return;
+			}
+			
+			// 查询符合条件的明细数据,生成预览数据
+			$.request({
+				action : 'ReportManageAction/reportNeedDataDetail',
+				data : {
+					reportInf : reportInf,
+					ddyFxbId : fxbReport.id
+				},
+				success : function(data) {
+					if (data.code == 0) {
+						excelList = data.data.resList;
+						initExcelData(excelList, "reportTable", false);
+						goStep(3);
+			    	} else {
+			    		$.ErrorAlert(res.MINErrorMessage);
+			    	}
+				},
+				error : function(data2) {
+					$.ErrorAlert(data2.MINErrorMessage);
+				}
+    	  	});
+		}
+    </script>
+</body>
+
+</html>

+ 322 - 0
src/main/webapp/admin/ddy/reportProduceYb.html

@@ -0,0 +1,322 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8">
+    <title>导入</title>
+    <script src="../../js/min-loader-next.js"></script>
+    <script src="../../js/report.js"></script>
+    <link rel="stylesheet" href="../../plugins/layui/lay/modules/steps/style.css"></link>
+    <style>
+    	.layui-input {
+    		width : 200px;
+    	}
+    	.layui-upload-drag .layui-icon {
+    		font-size: 18px;
+		    color: #fff;
+		}
+		.layui-btn-sm {
+		    height: 22px;
+		    line-height: 22px;
+		    padding: 0 10px;
+		    font-size: 12px;
+		}
+    </style>
+</head>
+<body class="content">
+	<div id="step_demo" class="step-body" style = "margin-top : 20px; margin-left: 10%;">
+	    <div class="step-header" style="width:80%;overflow: hidden;">
+	        <ul>
+	            <li>
+	                <span class="step-name">选择报告/报表</span>
+	            </li>
+	            <li>
+	                <span class="step-name">选择文件</span>
+	            </li>
+	            <li>
+	                <span class="step-name">数据预览</span>
+	            </li>
+	            <li>
+	                <span class="step-name">生成报告/报表</span>
+	            </li>
+	        </ul>
+	    </div>
+	</div>
+	<div class="order-body" style = "width: 80%; margin-left : 10%;height : 450px" name = "step">
+		<form class="layui-form" style = "text-align : center;">
+			<div class="order-select" id="content" style = "background: #FFFFFF;border-radius: 8px;padding: 16px 1.4rem;">
+				<div class="layui-inline" style="margin-top: 150px;">
+					<label class="f12-gray4">请选择文件类型:</label>
+					<div id = "reportTypeDiv" class="layui-inline">
+					</div>
+				</div>
+				<div style="margin-top : 200px;">
+			      <button type="button" class="layui-btn" style = "width : 214px" onclick = "goStep(2)">下一步</button>
+			    </div>
+			</div>
+		</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>
+	<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" >
+		  <p id = "fileName" contenteditable="true">国网泰安供电公司2020年8月份配网运行分析月报</p>
+		  <p id = "reportDiv"></p>
+		  <table id = "reportTable" class="layui-table">
+		  </table>
+		</div>
+		<div style="margin-top : 50px;">
+	      <button type="button" class="layui-btn" style = "width : 214px" onclick = "goStep(4)">下一步</button>
+	    </div>
+	</div>
+	<div name = "step" style = "width: 80%; margin-left : 10%;height : 300px; display : none; text-align : center; margin-top : 50px;">
+		<i class="layui-icon layui-icon-ok-circle" style="font-size: 100px; color: #009688;"></i>
+		<p style = "font-weight: 700;font-size: 25px;">报表生成成功!</p>
+		<p style = " color: #b2bbc2;">可在数据仓库-报表管理进行查看</p>
+		<div style="margin-top : 100px;">
+	      <button type="button" class="layui-btn" style = "width : 214px" onclick = "finish()">完成</button>
+	    </div>
+	</div>
+	
+    <script>
+		var pageId = getQueryString("pageId");
+		var reportType = getQueryString("reportType"); //报告类型
+		var $step;
+		layui.config({
+	        base: '../../plugins/layui/lay/modules/steps/'
+	    }).use(['steps','jquery'],function(){
+	    	var $ = layui.$;
+    	    $step = $("#step_demo").step();
+		})
+		
+		layui.use('laydate', function(){
+			laydate.render({
+				elem: '#range'
+				,format : 'yyyyMMdd'
+				,range : true
+				,trigger: 'click' //采用click弹出
+			});
+		})
+		// 范围类型
+		layui.use('form', function(){
+			var form = layui.form;
+			
+			$.request({
+				action : 'BranchReportTypeAction/branchReportTypeQuery',
+				data : {
+					reportType : reportType
+				},
+				success : function(data) {
+					var html = '<select id = "reportType" lay-filter="reportTypeFilter"><option value = "">请选择</option>';
+					var fileTypeList = data.data;
+					for (var i = 0; i < fileTypeList.length; i ++) {
+						var fileTypeInf = fileTypeList[i];
+						html += '<option value = "' + fileTypeInf.id + '_' + fileTypeInf.type + '_' + fileTypeInf.timeType + '">' + fileTypeInf.name + '</option>';
+					}
+					html += '</select>';
+					$("#reportTypeDiv").html(html);
+					form.render();
+				},
+				error : function(data2) {
+					$.ErrorAlert(data2.MINErrorMessage);
+				}
+    	  	});
+			
+			form.on('select(reportTypeFilter)', function(data){
+				var value = data.value;
+				if (!isEmpty(value)) {
+					var reportTypeId = value.split("_")[0];
+					
+					$("#fileName").html(data.elem.selectedOptions[0].text);
+					
+					if (!isEmpty(reportTypeId)) {
+						  $.request({
+								action : 'BranchReportTypeAction/fileTypeOfReportType',
+								data : {
+									reportTypeId : reportTypeId
+								},
+								success : function(data) {
+									fileType = data.data;
+									setTempVal("fileType", fileType);
+									
+									var utilDataInf = data.utilDataInf;
+									if (!isEmpty(utilDataInf)) {
+										$("#utilName").html(utilDataInf.fileName);
+										$("#utilName").attr("fileName", utilDataInf.fileName);
+										setTempVal("utilExcelDataDetail", utilDataInf.excelData);
+										var algorithmInf = data.algorithmInf;
+										if (!isEmpty(algorithmInf)) {
+											$("#algorithmName").html(utilDataInf.fileName+"算法");
+											$("#algorithmName").attr("reportTypeId", reportTypeId);
+										}
+									}
+									
+								},
+								error : function(data2) {
+									$.ErrorAlert(data2.MINErrorMessage);
+								}
+				    	  });
+					  }
+				}
+			});      
+		})
+		
+		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
+					},
+					success : function(data) {
+						if (data.code == 0) {
+							$step.goStep(step);
+							var stepDiv = $("div[name = 'step']");
+							for (var i = 0; i < stepDiv.length; i ++) {
+								if (step == (i + 1)) {
+									$(stepDiv[i]).show();
+								} else {
+									$(stepDiv[i]).hide();
+								}
+							}
+				    	} else {
+				    		$.ErrorAlert(res.MINErrorMessage);
+				    	}
+					},
+					error : function(data2) {
+						$.ErrorAlert(data2.MINErrorMessage);
+					}
+	    	  	});
+				return;
+			}
+			
+			$step.goStep(step);
+			var stepDiv = $("div[name = 'step']");
+			for (var i = 0; i < stepDiv.length; i ++) {
+				if (step == (i + 1)) {
+					$(stepDiv[i]).show();
+				} else {
+					$(stepDiv[i]).hide();
+				}
+			}
+		}
+		
+		function finish() {
+			deleteTabPageParent(pageId); 
+		}
+		
+		// 报表excel
+		var reportData = null;
+		// 预览
+		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("请选择周范围!");
+				return;
+			}
+			
+			// 查询符合条件的明细数据,生成预览数据
+			$.request({
+				action : 'ReportManageAction/reportNeedDataDetail',
+				data : {
+					reportInf : reportInf,
+					yearChoose : yearChoose,
+					range : weekRange,
+					monthChoose : monthChoose
+				},
+				success : function(data) {
+					if (data.code == 0) {
+						reportData = data.data;
+						
+						var reportMap = data.data.reportMap;
+						var descStr = data.data.descStr;
+						for(var key in reportMap){
+							var replaceStr = "${" + key + "}";
+							descStr = descStr.replace(replaceStr, reportMap[key]);
+						}
+						
+						$("#reportDiv").html(descStr);
+						initExcelData(reportData.excelList, "reportTable", false);
+						goStep(3);
+			    	} else {
+			    		$.ErrorAlert(res.MINErrorMessage);
+			    	}
+				},
+				error : function(data2) {
+					$.ErrorAlert(data2.MINErrorMessage);
+				}
+    	  	});
+		}
+		
+		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>
+
+</html>

+ 22 - 0
src/main/webapp/js/min.js

@@ -1188,3 +1188,25 @@ function exportExcel(action,data){
     tempForm.submit();   
     document.body.removeChild(tempForm);
 }
+
+
+function strToDate(dateStr){
+    var year = parseInt(dateStr.substr(0, 4));
+    var month = parseInt(dateStr.substr(4, 2)) - 1;
+    var day = parseInt(dateStr.substr(6, 2));
+    var date = new Date(year,month,day);
+    return date;
+}
+function dateToString (date){ 
+   var  year = date.getFullYear(); 
+   var  month =(date.getMonth() + 1).toString(); 
+   var  day = (date.getDate()).toString();  
+   if  (month.length == 1) { 
+       month =  "0"  + month; 
+   } 
+   if  (day.length == 1) { 
+       day =  "0"  + day; 
+   }
+   var  dateTime = year + month + day;
+   return  dateTime; 
+}