tudc 5 years ago
parent
commit
e8956a665d

+ 68 - 4
src/main/java/com/minpay/reportManage/action/DataWareManageAction.java

@@ -23,12 +23,15 @@ import com.minpay.common.util.FilesUtil;
 import com.minpay.common.util.ListUtil;
 import com.minpay.db.table.mapper.DwFileDetail00Mapper;
 import com.minpay.db.table.mapper.DwFileDetail01Mapper;
+import com.minpay.db.table.mapper.DwFileDetail02Mapper;
 import com.minpay.db.table.mapper.DwFileInfMapper;
 import com.minpay.db.table.mapper.DwReporttypeFiletypeRelMapper;
 import com.minpay.db.table.mapper.ImUserMapper;
 import com.minpay.db.table.model.DwFileDetail00;
 import com.minpay.db.table.model.DwFileDetail00Example;
 import com.minpay.db.table.model.DwFileDetail01;
+import com.minpay.db.table.model.DwFileDetail01Example;
+import com.minpay.db.table.model.DwFileDetail02;
 import com.minpay.db.table.model.DwFileInf;
 import com.minpay.db.table.model.DwReporttypeFiletypeRelExample;
 import com.minpay.db.table.model.DwReporttypeFiletypeRelKey;
@@ -160,6 +163,7 @@ public class DataWareManageAction implements IMINAction {
      * 上传原始文件
      * @param request
      * @param fileType
+     * @param chongfuFlag	重复上传标志 true:重复数据确认上传
      * @param session
      * @return
      * @throws MINBusinessException
@@ -170,6 +174,7 @@ public class DataWareManageAction implements IMINAction {
     public MINActionResult fileInfUpload(
     		MINHttpServletRequestContext request,
     		@MINParam(key = "fileType") String fileType,
+    		@MINParam(key = "chongfuFlag") boolean chongfuFlag,
     		MINSession session
     		) throws MINBusinessException, InvalidFormatException, IOException {
     	MINActionResult res = new MINActionResult();
@@ -196,23 +201,45 @@ public class DataWareManageAction implements IMINAction {
 			
 			// 详情数据存入数据库
 			for (Map<String,String> excelMap : list) {
+				// 日期
+				String date = excelMap.get("date").replaceAll("-", "").replaceAll(":", "").replaceAll(" ", "").substring(0,8);
+				String startTime = excelMap.get("startTime").replaceAll("-", "").replaceAll(":", "").replaceAll(" ", "");
+				String endTime = excelMap.get("endTime").replaceAll("-", "").replaceAll(":", "").replaceAll(" ", "");
+				
+				// 页面确认有重复数据,且点击确认上传,不再判断数据库是否有数据
+				if (!chongfuFlag) {
+					// 验证是否有重复数据
+					DwFileDetail00Example fileDetail00Example = new DwFileDetail00Example();
+					fileDetail00Example.createCriteria().andAddressNumEqualTo(excelMap.get("addressNum"))
+														.andAddressNameEqualTo(excelMap.get("addressName"))
+														.andDateEqualTo(date)
+														.andAreaEqualTo(excelMap.get("area"))
+														.andComonpanyNameEqualTo(excelMap.get("comonpanyName"))
+														.andTerminalNameEqualTo(excelMap.get("terminalName"))
+														.andTerminalNumEqualTo(excelMap.get("terminalNum"))
+														.andTerminalAddressEqualTo(excelMap.get("terminalAddress"))
+														.andStartTimeEqualTo(startTime)
+														.andEndTimeEqualTo(endTime);
+					List<DwFileDetail00> selectByExample = db.selectByExample(DwFileDetail00Mapper.class, fileDetail00Example);
+					if (selectByExample.size() != 0) {
+						res.set("chongfu", selectByExample);
+						return res;
+					}
+				}
+				
 				String fileDetailId = db.getMybatisMapper(SequenceMapper.class).getSequence("FILE_DETAIL_00_NO");
 				DwFileDetail00 fileDetail00 = new DwFileDetail00();
 				fileDetail00.setId(fileDetailId);
 				fileDetail00.setNumber(excelMap.get("number"));
 				fileDetail00.setAddressNum(excelMap.get("addressNum"));
 				fileDetail00.setAddressName(excelMap.get("addressName"));
-				System.out.println(excelMap.get("date"));
-				String date = excelMap.get("date").replaceAll("-", "").replaceAll(":", "").replaceAll(" ", "").substring(0,8);
 				fileDetail00.setDate(date);
 				fileDetail00.setArea(excelMap.get("area"));
 				fileDetail00.setComonpanyName(excelMap.get("comonpanyName"));
 				fileDetail00.setTerminalName(excelMap.get("terminalName"));
 				fileDetail00.setTerminalNum(excelMap.get("terminalNum"));
 				fileDetail00.setTerminalAddress(excelMap.get("terminalAddress"));
-				String startTime = excelMap.get("startTime").replaceAll("-", "").replaceAll(":", "").replaceAll(" ", "");
 				fileDetail00.setStartTime(startTime);
-				String endTime = excelMap.get("endTime").replaceAll("-", "").replaceAll(":", "").replaceAll(" ", "");
 				fileDetail00.setEndTime(endTime);
 				fileDetail00.setFileId(fileId);
 				db.insertSelective(DwFileDetail00Mapper.class, fileDetail00);
@@ -228,6 +255,15 @@ public class DataWareManageAction implements IMINAction {
 			
 			// 详情数据存入数据库
 			for (Map<String,String> excelMap : list) {
+				DwFileDetail01Example dwFileDetail01 = new DwFileDetail01Example();
+				dwFileDetail01.createCriteria().andExcelIdEqualTo(excelMap.get("id"))
+								.andExcelTnameEqualTo(excelMap.get("tname"))
+								.andExcelCmodeEqualTo(excelMap.get("cmode"))
+								.andExcelValueEqualTo(excelMap.get("value"))
+								.andExcelFacnameEqualTo(excelMap.get("facname"))
+								.andExcelTypeEqualTo(excelMap.get("type"))
+								.andExcelFdidEqualTo(excelMap.get("fdid"))
+								.andExcelYxstatusEqualTo(excelMap.get("yxstatus"));
 				String fileDetailId = db.getMybatisMapper(SequenceMapper.class).getSequence("FILE_DETAIL_01_NO");
 				DwFileDetail01 fileDetail01 = new DwFileDetail01();
 				fileDetail01.setId(fileDetailId);
@@ -248,6 +284,34 @@ public class DataWareManageAction implements IMINAction {
 				fileDetail01.setFileId(fileId);
 				db.insertSelective(DwFileDetail01Mapper.class, fileDetail01);
 			}
+		// FA动作
+		} else if (Constant.FILE_DETAIL_TYPE_02.equals(fileType)) {
+			String[] titleKey = new String[]{"no","beginTime","endTime","gdlx", "cxbdz","xlmc","xllx","qdfa","gzqjpd","gzqhdhf","gzgl"};
+			list = FilesUtil.readExecleasy(fileItem, titleKey, 1);
+			
+			if (list.size() == 0) {
+				throw new MINBusinessException("无数据,请添加数据");//无数据,请添加数据
+			}
+			
+			// 详情数据存入数据库
+			for (Map<String,String> excelMap : list) {
+				String fileDetailId = db.getMybatisMapper(SequenceMapper.class).getSequence("FILE_DETAIL_02_NO");
+				DwFileDetail02 fileDetail02 = new DwFileDetail02();
+				fileDetail02.setId(fileDetailId);
+				fileDetail02.setNo(excelMap.get("no"));
+				fileDetail02.setBeginTime(excelMap.get("beginTime"));
+				fileDetail02.setEndTime(excelMap.get("endTime"));
+				fileDetail02.setGdlx(excelMap.get("gdlx"));
+				fileDetail02.setCxbdz(excelMap.get("cxbdz"));
+				fileDetail02.setXlmc(excelMap.get("xlmc"));
+				fileDetail02.setXllx(excelMap.get("xllx"));
+				fileDetail02.setQdfa(excelMap.get("qdfa"));
+				fileDetail02.setGzqjpd(excelMap.get("gzqjpd"));
+				fileDetail02.setGzqhdhf(excelMap.get("gzqhdhf"));
+				fileDetail02.setGzgl(excelMap.get("gzgl"));
+				fileDetail02.setFileId(fileId);
+				db.insertSelective(DwFileDetail02Mapper.class, fileDetail02);
+			}
 		}
 		
 		// 文件名

+ 18 - 3
src/main/java/com/minpay/reportManage/action/ReportManageAction.java

@@ -201,6 +201,8 @@ public class ReportManageAction implements IMINAction {
      * @param countNum		台区停电   monthNum个月内停电countNum次
      * @param firstFileId	终端投托运报表选择的第一个原始数据文件
      * @param secondFileId	终端投托运报表选择的对比原始数据文件
+     * @param FADateRange	FA动作日期区间
+     * @param yearChoose	FA动作年份
      * @return
      * @throws MINBusinessException
      * @throws ParseException
@@ -213,7 +215,9 @@ public class ReportManageAction implements IMINAction {
     		@MINParam(key = "monthNum") String monthNum,
     		@MINParam(key = "countNum") String countNum,
     		@MINParam(key = "firstFileId") String firstFileId,
-    		@MINParam(key = "secondFileId") String secondFileId
+    		@MINParam(key = "secondFileId") String secondFileId,
+    		@MINParam(key = "FADateRange") String FADateRange,
+    		@MINParam(key = "yearChoose") String yearChoose
     		) throws MINBusinessException, ParseException {
     	MINActionResult res = new MINActionResult();
     	
@@ -228,17 +232,24 @@ public class ReportManageAction implements IMINAction {
     	param.put("countNum", countNum);
     	param.put("firstFileId", firstFileId);
     	param.put("secondFileId", secondFileId);
+    	param.put("FADateRange", FADateRange);
+    	param.put("yearChoose", yearChoose);
     	Map<String, Object> resMap = Service.lookup(IReportService.class).reportNeedDetail(param);
     	res.set(IMINBusinessConstant.F_PAGING_LAY, resMap);
     	return res;
     }
     
     /**
-     * 报表提交
+     * 
      * @param reportData
-     * @param chooseFileData
      * @param reportInf
      * @param fileName
+     * @param monthNum			台区停电参数	台区停电【month个月内停电count次及以上台区】的month
+     * @param countNum			台区停电参数	台区停电【month个月内停电count次及以上台区】的count
+     * @param range				台区停电参数
+     * @param timeRange			台区停电参数
+     * @param firstFileId		终端投退运参数
+     * @param secondFileId		终端投退运参数
      * @param session
      * @return
      * @throws MINBusinessException
@@ -248,6 +259,8 @@ public class ReportManageAction implements IMINAction {
     		@MINParam(key = "reportData") String reportData,
     		@MINParam(key = "reportInf") String reportInf,
     		@MINParam(key = "fileName") String fileName,
+    		@MINParam(key = "monthNum") String monthNum,
+    		@MINParam(key = "countNum") String countNum,
     		@MINParam(key = "range") String range,
     		@MINParam(key = "timeRange") String timeRange,
     		@MINParam(key = "firstFileId") String firstFileId,
@@ -278,6 +291,8 @@ public class ReportManageAction implements IMINAction {
     	report.setBranch(user.getBranchid());
     	report.setType(reportTypeId);
     	report.setZdttyCompareId(firstFileId + "-" + secondFileId);
+    	report.setTqtdMonth(monthNum);	// 台区停电【month个月内停电count次及以上台区】的month
+    	report.setTqtdCount(countNum);	// 台区停电【month个月内停电count次及以上台区】的count
     	
     	report.setDayInterval(range.replaceAll(" ", ""));		// 日期时间段
     	report.setTimeInterval(timeRange.replaceAll(" ", ""));	// 时分秒时间段

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

@@ -0,0 +1,123 @@
+package com.minpay.reportManage.action;
+
+import java.text.ParseException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.minpay.common.format.IFormatService;
+import com.minpay.common.util.DateUtil;
+import com.minpay.db.table.mapper.DwReportInfMapper;
+import com.minpay.db.table.model.DwReportInf;
+import com.minpay.db.table.own.mapper.ReportServiceMapper;
+import com.startup.minpay.frame.business.IMINAction;
+import com.startup.minpay.frame.business.res.MINActionResult;
+import com.startup.minpay.frame.constant.IMINBusinessConstant;
+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.session.MINSession;
+import com.startup.minpay.frame.target.MINAction;
+import com.startup.minpay.frame.target.MINComponent;
+import com.startup.minpay.frame.target.MINParam;
+
+@MINComponent
+public class TQTDReportAction implements IMINAction {
+
+    private IMINDataBaseService db;
+    /** 台区停电穿透数据 */
+    public final static String REPORT_INF_CHUANTOU = "reportInfChuantou";
+    
+    
+    /**
+     * 台区停电穿透数据
+     * @param reportId		报表id
+     * @param chuantouType	穿透类型
+     * @param session
+     * @return
+     * @throws MINBusinessException
+     * @throws ParseException 
+     * @throws NumberFormatException 
+     */
+    @MINAction(value = REPORT_INF_CHUANTOU)
+    public MINActionResult reportInfChuantou(
+        @MINParam(key = "reportId") String reportId,
+        @MINParam(key = "chuantouType") String chuantouType,
+        MINSession session
+    ) throws MINBusinessException, NumberFormatException, ParseException {
+        MINActionResult res = new MINActionResult();
+        db = Service.lookup(IMINDataBaseService.class);
+		//分页
+		MINRowBounds rows = new MINRowBounds();
+		rows.setSeparateSql(true);
+		// 查询报表具体信息
+		DwReportInf reportInf = db.selectByPrimaryKey(DwReportInfMapper.class, reportId);
+		// 报表时间范围
+		Map<String, Object> param = new HashMap<String, Object>();
+		String dayInterval = reportInf.getDayInterval();
+		String timeInterval = reportInf.getTimeInterval();
+		String[] dayIntervalArray = dayInterval.split("-");
+		String[] timeIntervalArray = timeInterval.split("-");
+		String beginTime = dayIntervalArray[0] + timeIntervalArray[0];
+		String endTime = dayIntervalArray[1] + timeIntervalArray[1];
+		
+		param.put("beginTime", beginTime);
+		param.put("endTime", endTime);
+		
+		// 台区次数穿透数据
+		if ("TQTD01".equals(chuantouType)) {
+			List<Map<String, String>> fileList00 = db.getMybatisMapper(ReportServiceMapper.class).selectReportType00(param);
+			fileList00 = Service.lookup(IFormatService.class).formatDate(fileList00, "date");
+			fileList00 = Service.lookup(IFormatService.class).formatDateTime(fileList00, "startTime", "endTime");
+			res.set(IMINBusinessConstant.F_PAGING_LAY, fileList00);
+		// month个月停电count次及以上台区穿透
+		} else if ("TQTD02".equals(chuantouType)) {
+			String monthNum = reportInf.getTqtdMonth();
+			String countNum = reportInf.getTqtdCount();
+			// monthNum个月内停电 countNum次以上的台区
+			String beginDay = DateUtil.dateAddMonth(dayIntervalArray[1], Integer.parseInt("-" + monthNum));
+			param.put("beginDay", beginDay);
+			param.put("endDay", dayIntervalArray[1]);
+			param.put("countNum", countNum);
+			List<Map<String, String>> mountCountList = db.getMybatisMapper(ReportServiceMapper.class).selectMountCount00(param);
+			res.set(IMINBusinessConstant.F_PAGING_LAY, mountCountList);
+		// month个月停电count次及以上台区且昨日停电穿透
+		} else if ("TQTD03".equals(chuantouType)) {
+			String monthNum = reportInf.getTqtdMonth();
+			String countNum = reportInf.getTqtdCount();
+			// monthNum个月内停电 countNum次以上的台区
+			String beginDay = DateUtil.dateAddMonth(dayIntervalArray[1], Integer.parseInt("-" + monthNum));
+			param.put("beginDay", beginDay);
+			param.put("endDay", dayIntervalArray[1]);
+			param.put("countNum", countNum);
+			
+			// 查询昨日停电的数据
+			param.put("yesterday", DateUtil.dateAddDay(dayIntervalArray[1], -1));
+			List<Map<String, String>> yesterdayList = db.getMybatisMapper(ReportServiceMapper.class).queryYesterdayDetail(param);
+			param.put("yesterdayDetail", yesterdayList);
+			
+			List<Map<String, String>> mountCountList = db.getMybatisMapper(ReportServiceMapper.class).selectMountCount00(param);
+			res.set(IMINBusinessConstant.F_PAGING_LAY, mountCountList);
+		// 2个月停电1次及以上台区且昨日停电穿透
+		} else if ("TQTD04".equals(chuantouType)) {
+			String monthNum = "2";
+			String countNum = "1";
+			// monthNum个月内停电 countNum次以上的台区
+			String beginDay = DateUtil.dateAddMonth(dayIntervalArray[1], Integer.parseInt("-" + monthNum));
+			param.put("beginDay", beginDay);
+			param.put("endDay", dayIntervalArray[1]);
+			param.put("countNum", countNum);
+			
+			// 查询昨日停电的数据
+			param.put("yesterday", DateUtil.dateAddDay(dayIntervalArray[1], -1));
+			List<Map<String, String>> yesterdayList = db.getMybatisMapper(ReportServiceMapper.class).queryYesterdayDetail(param);
+			param.put("yesterdayDetail", yesterdayList);
+			
+			List<Map<String, String>> mountCountList = db.getMybatisMapper(ReportServiceMapper.class).selectMountCount00(param);
+			res.set(IMINBusinessConstant.F_PAGING_LAY, mountCountList);
+		}
+		
+		return res;
+    }
+}