Browse Source

修复NB抄表Bug

pengdi@zoniot.com 4 years ago
parent
commit
5f23cccc0f

+ 320 - 316
smart-city-platform/src/main/java/com/bz/smart_city/service/impl/MeterReadRecordServiceImpl.java

@@ -56,7 +56,7 @@ import static com.google.common.collect.Lists.newArrayList;
 
 /**
  * 抄表记录服务实现类
- * @Description  
+ * @Description
  * @author wilian.peng
  * @date 2019年3月15日 下午4:46:07
  */
@@ -66,89 +66,89 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 
 	@Value("${system.water.meter.lora.code}")
 	private String deviceTypeCode; // 智能水表场景id
-	
+
+	@Resource
+	private SnowflakeIdWorker idWorker;
+
+	@Resource
+	private MeterReadRecordMapper meterReadRecordMapper;
+
+	@Resource
+	private MeterReadRateMapper meterReadRateMapper;
+	@Resource
+	private DeviceMapper  deviceMapper;
+
+	@Resource
+	private RedisUtil redisUtil;
+
+	@Resource
+	private DeviceDataDimMapper deviceDataDimMapper;
+
+	@Resource
+	UserMapper userMapper;
+
+	@Resource
+	WMeterTypeMapper wneterTypeMapper;
+
+	@Resource
+	private BuildingMapper buildingMapper;
+
+	@Resource
+	private StatMeterReadRateByBuildingMapper statMeterReadRateByBuildingMapper;
+
 	@Resource
-    private SnowflakeIdWorker idWorker;
-	
-    @Resource
-    private MeterReadRecordMapper meterReadRecordMapper;
-    
-    @Resource
-    private MeterReadRateMapper meterReadRateMapper;
-    @Resource 
-    private DeviceMapper  deviceMapper;
-
-    @Resource
-    private RedisUtil redisUtil; 
-
-    @Resource
-    private DeviceDataDimMapper deviceDataDimMapper;
-    
-    @Resource
-    UserMapper userMapper;
-    
-    @Resource
-    WMeterTypeMapper wneterTypeMapper;
-    
-    @Resource
-    private BuildingMapper buildingMapper;
-    
-    @Resource
-    private StatMeterReadRateByBuildingMapper statMeterReadRateByBuildingMapper;
-    
-    @Resource
-    CustomerService customerService; 
-    
-    @Override
+	CustomerService customerService;
+
+	@Override
 	public Pagination<MeterReadRecord> queryMeterReadRecord(MeterReadRecord param, int pageNum, int pageSize) {
-    	log.info("begin MeterReadRecordService queryMeterReadRecord , param = "+JSON.toJSONString(param));
-    	PageHelper.startPage(pageNum, pageSize);
-    	if(StringUtils.isNotEmpty(param.getLocation())){
-    		param.setLocation("%"+param.getLocation()+"%");
-    	}
-    	if(StringUtils.isNotEmpty(param.getDeviceNo())) {
-    		param.setDeviceNo("%"+param.getDeviceNo()+"%");
-    	}
-    	List<MeterReadRecord> result = meterReadRecordMapper.queryMeterReadRecord(param);
-    	log.info("end MeterReadRecordService queryMeterReadRecord , result.size = "+result.size());
+		log.info("begin MeterReadRecordService queryMeterReadRecord , param = "+JSON.toJSONString(param));
+		PageHelper.startPage(pageNum, pageSize);
+		if(StringUtils.isNotEmpty(param.getLocation())){
+			param.setLocation("%"+param.getLocation()+"%");
+		}
+		if(StringUtils.isNotEmpty(param.getDeviceNo())) {
+			param.setDeviceNo("%"+param.getDeviceNo()+"%");
+		}
+		List<MeterReadRecord> result = meterReadRecordMapper.queryMeterReadRecord(param);
+		log.info("end MeterReadRecordService queryMeterReadRecord , result.size = "+result.size());
 		return new Pagination<MeterReadRecord>(result);
 	}
 
-    @Override
+	@Override
 	public Pagination<MeterReadRecord> queryMeterReadRecord(CommonQueryCondition condition, int pageNum, int pageSize) {
-    	log.info("begin MeterReadRecordService queryMeterReadRecord , param = "+JSON.toJSONString(condition));	
-    	List<Integer> siteList = new ArrayList<Integer>();
-    	siteList.add(condition.getSiteId());
-
-        List<Integer> buildingIds = buildingMapper.getIdsByDataPermission(siteList, condition.getProgramItems());
-    	condition.setBuildingIds(buildingIds);
-    	
-    	PageHelper.startPage(pageNum, pageSize);
-    	List<MeterReadRecord> result = meterReadRecordMapper.queryMeterReadRecordWithCondtion(condition);
-    	log.info("end MeterReadRecordService queryMeterReadRecord , result.size = "+result.size());
-    	return new Pagination<MeterReadRecord>(result);
+		log.info("begin MeterReadRecordService queryMeterReadRecord , param = "+JSON.toJSONString(condition));
+		List<Integer> siteList = new ArrayList<Integer>();
+		siteList.add(condition.getSiteId());
+
+		List<Integer> buildingIds = buildingMapper.getIdsByDataPermission(siteList, condition.getProgramItems());
+		condition.setBuildingIds(buildingIds);
+
+		PageHelper.startPage(pageNum, pageSize);
+		List<MeterReadRecord> result = meterReadRecordMapper.queryMeterReadRecordWithCondtion(condition);
+		log.info("end MeterReadRecordService queryMeterReadRecord , result.size = "+result.size());
+		return new Pagination<MeterReadRecord>(result);
 	}
-    
-    @Override
+
+	@Override
 	public List<MeterRecordStat> statisticRecords(CommonQueryCondition param) {
-    	Date startTime = new Date();
-    	if(StringUtils.isNotEmpty(param.getLocation())){
-    		param.setLocation("%"+param.getLocation()+"%");
-    	}
-    	if(StringUtils.isNotEmpty(param.getDeviceNo())) {
-    		param.setDeviceNo("%"+param.getDeviceNo()+"%");
-    	}
-    	List<MeterRecordStat> datas = newArrayList();
-    	meterReadRecordMapper.createTmpTable(param, "tmp_query");
-    	List<MeterRecordStat> provinceDatas = meterReadRecordMapper.statisticReadRecordsByProvince("tmp_query");
-    	datas.addAll(provinceDatas);
-    	List<MeterRecordStat> cityDatas = meterReadRecordMapper.statisticReadRecordsByCity("tmp_query");
-    	datas.addAll(cityDatas);
-    	List<MeterRecordStat> communityDatas = meterReadRecordMapper.statisticReadRecordsByCommuinty("tmp_query");
-    	datas.addAll(communityDatas);
-    	List<MeterRecordStat> buildingDatas = meterReadRecordMapper.statisticReadRecordsByBuilding("tmp_query");
-    	datas.addAll(buildingDatas);
-    	meterReadRecordMapper.dropTmpTable("tmp_query");
+		Date startTime = new Date();
+		if(StringUtils.isNotEmpty(param.getLocation())){
+			param.setLocation("%"+param.getLocation()+"%");
+		}
+		if(StringUtils.isNotEmpty(param.getDeviceNo())) {
+			param.setDeviceNo("%"+param.getDeviceNo()+"%");
+		}
+		List<MeterRecordStat> datas = newArrayList();
+		meterReadRecordMapper.createTmpTable(param, "tmp_query");
+		List<MeterRecordStat> provinceDatas = meterReadRecordMapper.statisticReadRecordsByProvince("tmp_query");
+		datas.addAll(provinceDatas);
+		List<MeterRecordStat> cityDatas = meterReadRecordMapper.statisticReadRecordsByCity("tmp_query");
+		datas.addAll(cityDatas);
+		List<MeterRecordStat> communityDatas = meterReadRecordMapper.statisticReadRecordsByCommuinty("tmp_query");
+		datas.addAll(communityDatas);
+		List<MeterRecordStat> buildingDatas = meterReadRecordMapper.statisticReadRecordsByBuilding("tmp_query");
+		datas.addAll(buildingDatas);
+		meterReadRecordMapper.dropTmpTable("tmp_query");
 //    	// 1,省份统计
 //    	List<MeterRecordStat> provinceStatDatas = meterReadRecordMapper.statisticReadRecordsByProvince(param);
 //    	for(MeterRecordStat provinceStatData : provinceStatDatas) {
@@ -175,211 +175,211 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 //    		}
 //    	}
 		long cost = (System.currentTimeMillis()-startTime.getTime())/1000 ;
-    	log.info("The cost time is {}",cost);
-    	return TreeUtil.getTreeList(datas, 100000, 1);
+		log.info("The cost time is {}",cost);
+		return TreeUtil.getTreeList(datas, 100000, 1);
+	}
+	@Override
+	public List<MeterReadRate> analysisMeterReadRate(CommonQueryCondition condition){
+		List<MeterReadRate>  result = new ArrayList<MeterReadRate>();
+		// 1,计算查询日期
+		Integer period = condition.getPeriod();
+		if(period == 0) { // 自定义
+			if(condition.getStartDate() == 0 && condition.getEndDate() == 0) throw new RuntimeException("获取不到查询开始与结束时间");
+		}
+		else if(period == 1) {
+			condition.setStartDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
+			condition.setEndDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
+		}
+		else if(period == 2) {
+			condition.setStartDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(1), "yyyyMMdd")));
+			condition.setEndDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(1), "yyyyMMdd")));
+		}
+		else if(period == 7) {
+			condition.setStartDate( Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(7), "yyyyMMdd")));
+			condition.setEndDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(1), "yyyyMMdd")));
+		}
+		else if(period == 30) {
+			condition.setStartDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(30), "yyyyMMdd")));
+			condition.setEndDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(1), "yyyyMMdd")));
+		}
+		// 2,查询数据
+		List<StatMeterReadRateDto> datas = statMeterReadRateByBuildingMapper.analysisMeterReadRate(condition);
+
+		// 3,数据不够则补齐数据
+		List<String> dateStrs = DateTimeUtil.betweenDate(DateTimeUtil.parseDate(condition.getStartDate() + "", "yyyyMMdd"),
+				DateTimeUtil.parseDate(condition.getEndDate() + "", "yyyyMMdd"));
+
+		if (result.size() != dateStrs.size()) {
+			for (String dateStr : dateStrs) {
+				boolean exist = false;
+				for (StatMeterReadRateDto data : datas) {
+					Integer statDate = data.getStatDay();
+					if (dateStr.equals(String.valueOf(statDate))) {
+						exist = true;
+						MeterReadRate tmp = new MeterReadRate();
+						tmp.setStatDate(statDate);
+						tmp.setReadRate(data.getReadRate().doubleValue());
+						tmp.setRealReadTimes(data.getRealReadTimes().longValue());
+						tmp.setReadTimes(data.getReadTimes().longValue());
+						tmp.setUnReadTimes(data.getUnReadTimes().longValue());
+						result.add(tmp);
+						break;
+					}
+				}
+				if (!exist) {
+					MeterReadRate tmp = new MeterReadRate();
+					tmp.setReadRate(0.0);
+					tmp.setStatDate(Integer.parseInt(dateStr));
+					tmp.setRealReadTimes(0l);
+					tmp.setUnReadTimes(0l);
+					tmp.setReadTimes(0l);
+					result.add(tmp);
+				}
+			}
+		}
+		return result ;
 	}
-    @Override
-    public List<MeterReadRate> analysisMeterReadRate(CommonQueryCondition condition){
-    	List<MeterReadRate>  result = new ArrayList<MeterReadRate>();
-    	// 1,计算查询日期
-    	Integer period = condition.getPeriod();
-    	if(period == 0) { // 自定义
-    		if(condition.getStartDate() == 0 && condition.getEndDate() == 0) throw new RuntimeException("获取不到查询开始与结束时间");
-    	}
-    	else if(period == 1) {
-    		condition.setStartDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
-    		condition.setEndDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
-    	}
-    	else if(period == 2) {
-    		condition.setStartDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(1), "yyyyMMdd")));
-    		condition.setEndDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(1), "yyyyMMdd")));
-    	}
-    	else if(period == 7) {
-    		condition.setStartDate( Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(7), "yyyyMMdd")));
-    		condition.setEndDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(1), "yyyyMMdd")));
-    	}
-    	else if(period == 30) {
-    		condition.setStartDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(30), "yyyyMMdd")));
-    		condition.setEndDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(1), "yyyyMMdd")));
-    	}
-    	// 2,查询数据
-    	List<StatMeterReadRateDto> datas = statMeterReadRateByBuildingMapper.analysisMeterReadRate(condition);
-    	
-    	// 3,数据不够则补齐数据
-   	 	List<String> dateStrs = DateTimeUtil.betweenDate(DateTimeUtil.parseDate(condition.getStartDate() + "", "yyyyMMdd"),
-                DateTimeUtil.parseDate(condition.getEndDate() + "", "yyyyMMdd"));
-   	 
-	   	if (result.size() != dateStrs.size()) {
-	   		for (String dateStr : dateStrs) {
-                boolean exist = false;
-                for (StatMeterReadRateDto data : datas) {
-                    Integer statDate = data.getStatDay();
-                    if (dateStr.equals(String.valueOf(statDate))) {
-                        exist = true;
-                        MeterReadRate tmp = new MeterReadRate();
-                        tmp.setStatDate(statDate);
-                        tmp.setReadRate(data.getReadRate().doubleValue());
-                        tmp.setRealReadTimes(data.getRealReadTimes().longValue());
-                        tmp.setReadTimes(data.getReadTimes().longValue());
-                        tmp.setUnReadTimes(data.getUnReadTimes().longValue());
-                        result.add(tmp);
-                        break;
-                    }
-                }
-                if (!exist) {
-                    MeterReadRate tmp = new MeterReadRate();
-                    tmp.setReadRate(0.0);
-                    tmp.setStatDate(Integer.parseInt(dateStr));
-                    tmp.setRealReadTimes(0l);
-                    tmp.setUnReadTimes(0l);
-                    tmp.setReadTimes(0l);
-                    result.add(tmp);
-                }
-            }
-	   	}
-    	return result ; 
-    }
-    
-    @Override
+
+	@Override
 	public List<MeterReadRate> analysisMeterReadRate(MeterReadRate param) {
-    	log.info("begin MeterReadRecordService analysisMeterReadRate , param = "+JSON.toJSONString(param));
-    	// 1,先根据周期判断开始与结束时间  ,统计周期:0 表示自定义,1表示今天,2表示昨天,7表示近7天,30表示近30天
-    	Integer period = param.getPeriod();
-    	if(period == 0) { // 自定义
-    		if(param.getStartDate() == 0 && param.getEndDate() == 0) throw new RuntimeException("获取不到查询开始与结束时间");
-    	}
-    	else if(period == 1) {
-             param.setStartDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
-             param.setEndDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
-    	}
-    	else if(period == 2) {
-    		param.setStartDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(1), "yyyyMMdd")));
-            param.setEndDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
-    	}
-    	else if(period == 7) {
-    		param.setStartDate( Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(7), "yyyyMMdd")));
-    		param.setEndDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
-    	}
-    	else if(period == 30) {
-    		param.setStartDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(30), "yyyyMMdd")));
-    		param.setEndDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
-    	}
-    	// 2,查询数据
-    	List<MeterReadRate> result = meterReadRateMapper.analysisMeterReadRate(param);
-    	// 3,数据不够则补齐数据
-    	 List<String> dateStrs = DateTimeUtil.betweenDate(DateTimeUtil.parseDate(param.getStartDate() + "", "yyyyMMdd"),
-                 DateTimeUtil.parseDate(param.getEndDate() + "", "yyyyMMdd"));
-         if (result.size() != dateStrs.size()) {
-             for (String dateStr : dateStrs) {
-                 boolean exist = false;
-                 for (MeterReadRate data : result) {
-                     Integer statDate = data.getStatDate(); 
-                     if (dateStr.equals(String.valueOf(statDate))) {
-                         exist = true;
-                         break;
-                     }
-                 }
-                 if (!exist) {
-                     MeterReadRate tmp = new MeterReadRate();
-                     tmp.setReadRate(0.0);
-                     tmp.setStatDate(Integer.parseInt(dateStr));
-                     tmp.setRealReadTimes(0l);
-                     tmp.setUnReadTimes(0l);
-                     tmp.setReadTimes(0l);
-                     result.add(tmp);
-                 }
-             }
-         }
-         SortList<MeterReadRate> sortList = new SortList<MeterReadRate>();  
-         sortList.Sort(result, "getStatDate", "asc");  
-         log.info("end MeterReadRecordService analysisMeterReadRate , result.size = "+result.size());
+		log.info("begin MeterReadRecordService analysisMeterReadRate , param = "+JSON.toJSONString(param));
+		// 1,先根据周期判断开始与结束时间  ,统计周期:0 表示自定义,1表示今天,2表示昨天,7表示近7天,30表示近30天
+		Integer period = param.getPeriod();
+		if(period == 0) { // 自定义
+			if(param.getStartDate() == 0 && param.getEndDate() == 0) throw new RuntimeException("获取不到查询开始与结束时间");
+		}
+		else if(period == 1) {
+			param.setStartDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
+			param.setEndDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
+		}
+		else if(period == 2) {
+			param.setStartDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(1), "yyyyMMdd")));
+			param.setEndDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
+		}
+		else if(period == 7) {
+			param.setStartDate( Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(7), "yyyyMMdd")));
+			param.setEndDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
+		}
+		else if(period == 30) {
+			param.setStartDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(30), "yyyyMMdd")));
+			param.setEndDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
+		}
+		// 2,查询数据
+		List<MeterReadRate> result = meterReadRateMapper.analysisMeterReadRate(param);
+		// 3,数据不够则补齐数据
+		List<String> dateStrs = DateTimeUtil.betweenDate(DateTimeUtil.parseDate(param.getStartDate() + "", "yyyyMMdd"),
+				DateTimeUtil.parseDate(param.getEndDate() + "", "yyyyMMdd"));
+		if (result.size() != dateStrs.size()) {
+			for (String dateStr : dateStrs) {
+				boolean exist = false;
+				for (MeterReadRate data : result) {
+					Integer statDate = data.getStatDate();
+					if (dateStr.equals(String.valueOf(statDate))) {
+						exist = true;
+						break;
+					}
+				}
+				if (!exist) {
+					MeterReadRate tmp = new MeterReadRate();
+					tmp.setReadRate(0.0);
+					tmp.setStatDate(Integer.parseInt(dateStr));
+					tmp.setRealReadTimes(0l);
+					tmp.setUnReadTimes(0l);
+					tmp.setReadTimes(0l);
+					result.add(tmp);
+				}
+			}
+		}
+		SortList<MeterReadRate> sortList = new SortList<MeterReadRate>();
+		sortList.Sort(result, "getStatDate", "asc");
+		log.info("end MeterReadRecordService analysisMeterReadRate , result.size = "+result.size());
 		return result;
 	}
-    
+
 	@Override
 	public Pagination<MeterReadRate> queryMeterReadRate(MeterReadRate param, int pageNum, int pageSize) {
-    	log.info("begin MeterReadRecordService queryMeterReadRate , param = "+JSON.toJSONString(param));
-    	PageHelper.startPage(pageNum, pageSize);
-    	List<MeterReadRate> result = meterReadRateMapper.queryMeterReadRate(param);
-    	log.info("end MeterReadRecordService queryMeterReadRate , result.size = "+result.size());
+		log.info("begin MeterReadRecordService queryMeterReadRate , param = "+JSON.toJSONString(param));
+		PageHelper.startPage(pageNum, pageSize);
+		List<MeterReadRate> result = meterReadRateMapper.queryMeterReadRate(param);
+		log.info("end MeterReadRecordService queryMeterReadRate , result.size = "+result.size());
 		return new Pagination<MeterReadRate>(result);
 	}
-	
+
 	@Override
 	public MeterReadRate summaryMeterReadRate(CommonQueryCondition condition) {
 		// 1,先根据周期判断开始与结束时间  ,统计周期:0 表示自定义,1表示今天,2表示昨天,7表示近7天,30表示近30天
 		MeterReadRate result = new MeterReadRate(); ;
-    	Integer period = condition.getPeriod();
-    	if(period == 0) { // 自定义
-    		if(condition.getStartDate() == 0 && condition.getEndDate() == 0) throw new RuntimeException("获取不到查询开始与结束时间");
-    	}
-    	else if(period == 1) {
-    		condition.setStartDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
-    		condition.setEndDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
-    	}
-    	else if(period == 2) {
-    		condition.setStartDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(1), "yyyyMMdd")));
-    		condition.setEndDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(1), "yyyyMMdd")));
-    	}
-    	else if(period == 7) {
-    		condition.setStartDate( Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(7), "yyyyMMdd")));
-    		condition.setEndDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(1), "yyyyMMdd")));
-    	}
-    	else if(period == 30) {
-    		condition.setStartDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(30), "yyyyMMdd")));
-    		condition.setEndDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(1), "yyyyMMdd")));
-    	}
+		Integer period = condition.getPeriod();
+		if(period == 0) { // 自定义
+			if(condition.getStartDate() == 0 && condition.getEndDate() == 0) throw new RuntimeException("获取不到查询开始与结束时间");
+		}
+		else if(period == 1) {
+			condition.setStartDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
+			condition.setEndDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
+		}
+		else if(period == 2) {
+			condition.setStartDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(1), "yyyyMMdd")));
+			condition.setEndDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(1), "yyyyMMdd")));
+		}
+		else if(period == 7) {
+			condition.setStartDate( Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(7), "yyyyMMdd")));
+			condition.setEndDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(1), "yyyyMMdd")));
+		}
+		else if(period == 30) {
+			condition.setStartDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(30), "yyyyMMdd")));
+			condition.setEndDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(1), "yyyyMMdd")));
+		}
 		StatMeterReadRateDto resp = statMeterReadRateByBuildingMapper.summaryRateListByBuilding(condition);
 		if(resp == null) {
-    		result.setReadRate(0.0);
-    		result.setRealReadTimes(0l);
-    		result.setUnReadTimes(0l);
-    		result.setReadTimes(0l);
-    	}
+			result.setReadRate(0.0);
+			result.setRealReadTimes(0l);
+			result.setUnReadTimes(0l);
+			result.setReadTimes(0l);
+		}
 		else {
 			result.setReadRate(resp.getReadRate().doubleValue());
-    		result.setRealReadTimes(resp.getRealReadTimes().longValue());
-    		result.setUnReadTimes(resp.getRealReadTimes().longValue());
-    		result.setReadTimes(resp.getReadTimes().longValue());
+			result.setRealReadTimes(resp.getRealReadTimes().longValue());
+			result.setUnReadTimes(resp.getRealReadTimes().longValue());
+			result.setReadTimes(resp.getReadTimes().longValue());
 		}
 		return result;
 	}
 
-	
+
 	@Override
 	public MeterReadRate summaryMeterReadRate(MeterReadRate param) {
-    	log.info("begin MeterReadRecordService summaryMeterReadRate , param = "+JSON.toJSONString(param));
-    	// 1,先根据周期判断开始与结束时间  ,统计周期:0 表示自定义,1表示今天,2表示昨天,7表示近7天,30表示近30天
-    	Integer period = param.getPeriod();
-    	if(period == 0) { // 自定义
-    		if(param.getStartDate() == 0 && param.getEndDate() == 0) throw new RuntimeException("获取不到查询开始与结束时间");
-    	}
-    	else if(period == 1) {
-             param.setStartDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
-             param.setEndDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
-    	}
-    	else if(period == 2) {
-    		param.setStartDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(1), "yyyyMMdd")));
-            param.setEndDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
-    	}
-    	else if(period == 7) {
-    		param.setStartDate( Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(7), "yyyyMMdd")));
-    		param.setEndDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
-    	}
-    	else if(period == 30) {
-    		param.setStartDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(30), "yyyyMMdd")));
-    		param.setEndDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
-    	}
-    	// 1,先计算汇总信息
-    	MeterReadRate result = meterReadRateMapper.sumMeterReadRate(param);
-    	if(result == null) {
-    		result = new MeterReadRate();
-    		result.setReadRate(0.0);
-    		result.setRealReadTimes(0l);
-    		result.setUnReadTimes(0l);
-    		result.setReadTimes(0l);
-    	}
-    	// 2,单独计算设备总数
+		log.info("begin MeterReadRecordService summaryMeterReadRate , param = "+JSON.toJSONString(param));
+		// 1,先根据周期判断开始与结束时间  ,统计周期:0 表示自定义,1表示今天,2表示昨天,7表示近7天,30表示近30天
+		Integer period = param.getPeriod();
+		if(period == 0) { // 自定义
+			if(param.getStartDate() == 0 && param.getEndDate() == 0) throw new RuntimeException("获取不到查询开始与结束时间");
+		}
+		else if(period == 1) {
+			param.setStartDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
+			param.setEndDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
+		}
+		else if(period == 2) {
+			param.setStartDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(1), "yyyyMMdd")));
+			param.setEndDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
+		}
+		else if(period == 7) {
+			param.setStartDate( Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(7), "yyyyMMdd")));
+			param.setEndDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
+		}
+		else if(period == 30) {
+			param.setStartDate(Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.beforeNow(30), "yyyyMMdd")));
+			param.setEndDate(Integer.parseInt(DateTimeUtil.formatNow("yyyyMMdd")));
+		}
+		// 1,先计算汇总信息
+		MeterReadRate result = meterReadRateMapper.sumMeterReadRate(param);
+		if(result == null) {
+			result = new MeterReadRate();
+			result.setReadRate(0.0);
+			result.setRealReadTimes(0l);
+			result.setUnReadTimes(0l);
+			result.setReadTimes(0l);
+		}
+		// 2,单独计算设备总数
 //    	if(period == 1) {
 //    		Device p = new Device();
 //    		WMeterType type = wneterTypeMapper.getWMeterTypeByDeviceTypeCode(deviceTypeCode);
@@ -399,16 +399,16 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 //        		result.setDeviceCount(rates.get(0).getDeviceCount());
 //        	}
 //    	}
-    	log.info("end MeterReadRecordService summaryMeterReadRate , result = "+JSON.toJSONString(result));
+		log.info("end MeterReadRecordService summaryMeterReadRate , result = "+JSON.toJSONString(result));
 		return result;
 	}
-	
+
 	@Async
 	@Override
 	public int createMeterReadRecordAsync(Date date) {
 		return createMeterReadRecord(date);
 	}
-	
+
 	@Override
 	public int createMeterReadRecord(Date date) {
 		log.info("begin MeterReadRecordService createMeterReadRecord ,date = "+ JSON.toJSONString(date));
@@ -427,20 +427,21 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 		statusList.add(4); // 预警
 		statusList.add(5); // 未启用
 		param.setDeviceStatusList(statusList);
+		param.setDeviceType(type.getDeviceTypeId());
 		int total = deviceMapper.countDevice(param);
-		
+
 		// 2,分页获取设备并生成抄表记录
 		int pageSize = 1000 ;
-		
+
 		int totalPage = total / pageSize;
 		if (total % pageSize != 0){
 			totalPage++;
 		}
 
-		
+
 		for(int i = 1 ;i <= totalPage; i++) {
 			int start = (i - 1) * pageSize;
-			
+
 			List<DeviceDto> deviceList = deviceMapper.getDeviceList(param, start, pageSize);
 			List<MeterReadRecord> records = new ArrayList<MeterReadRecord>();
 			for(DeviceDto device : deviceList) {
@@ -448,7 +449,7 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 				Integer startDate = Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.before(date, 1), "yyyyMMdd"));
 				Integer endDate = Integer.parseInt(DateTimeUtil.formatDate(date, "yyyyMMdd"));
 				MeterReadRecord record = new MeterReadRecord();
-				String deviceNo = device.getDeviceNo() ; 
+				String deviceNo = device.getDeviceNo() ;
 				Long deviceId = device.getId();
 				record.setId(idWorker.nextId());
 				record.setSiteId(device.getSiteId());
@@ -489,7 +490,7 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 						p.setEndDate(endDate);
 						p.setMeasuringCode("WSV");
 						List<DeviceDataDim> data = deviceDataDimMapper.queryDeviceDataDim(p,1);
-						
+
 						if(data.size() > 0) {
 							readStatus = "2" ; // 已抄
 							record.setReadTime(data.get(0).getSendTime()); // 抄表时间
@@ -505,7 +506,7 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 					p.setEndDate(endDate);
 					p.setMeasuringCode("WSV");
 					List<DeviceDataDim> data = deviceDataDimMapper.queryDeviceDataDim(p,1);
-					
+
 					if(data.size() > 0) {
 						readStatus = "2" ; // 已抄
 						record.setReadTime(data.get(0).getSendTime()); // 抄表时间
@@ -546,9 +547,9 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 				Thread.sleep(10000l);
 			} catch (InterruptedException e) {
 				log.error("thread interrupted", e);
-			} 
+			}
 		}
-		
+
 		log.info("end MeterReadRecordService createMeterReadRecord ,result = "+ result);
 		return total;
 	}
@@ -594,14 +595,14 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 	public void getMeterReadRecordExcel(MeterReadRecord param, HttpServletResponse httpServletResponse) {
 		log.info("begin MeterReadRecordService getMeterReadRecordExcel,param = "+JSON.toJSONString(param));
 		if(StringUtils.isNotEmpty(param.getLocation())){
-    		param.setLocation("%"+param.getLocation()+"%");
-    	}
-    	if(StringUtils.isNotEmpty(param.getDeviceNo())) {
-    		param.setDeviceNo("%"+param.getDeviceNo()+"%");
-    	}
-    	List<MeterReadRecord> result = meterReadRecordMapper.queryMeterReadRecord(param);
-    	
-    	String title = "抄表记录";
+			param.setLocation("%"+param.getLocation()+"%");
+		}
+		if(StringUtils.isNotEmpty(param.getDeviceNo())) {
+			param.setDeviceNo("%"+param.getDeviceNo()+"%");
+		}
+		List<MeterReadRecord> result = meterReadRecordMapper.queryMeterReadRecord(param);
+
+		String title = "抄表记录";
 		String[] rowsName = new String[]{"序号", "设备编号", "抄表状态", "抄表止度", "抄表时间", "所属建筑", "位置信息"};
 		List<Object[]> dataList = newArrayList();
 		Object[] objs = null;
@@ -626,7 +627,7 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 		log.info("end MeterReadRecordService getMeterReadRecordExcel , result.size = "+result.size());
 
 	}
-	
+
 	@Override
 	public void getMeterReadRecordExcel(CommonQueryCondition condition, HttpServletResponse httpServletResponse) {
 		log.info("begin MeterReadRecordService getMeterReadRecordExcel,param = "+JSON.toJSONString(condition));
@@ -662,28 +663,28 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 		}
 		log.info("end MeterReadRecordService getMeterReadRecordExcel , result.size = "+result.size());
 	}
-	
+
+	@Override
+	public int insert(MeterReadRecord meterReadRecord){
+		return meterReadRecordMapper.insert(meterReadRecord);
+	}
+
+	@Override
+	public int insertSelective(MeterReadRecord meterReadRecord){
+		return meterReadRecordMapper.insertSelective(meterReadRecord);
+	}
+
+	@Override
+	public int insertList(List<MeterReadRecord> meterReadRecords){
+		return meterReadRecordMapper.insertList(meterReadRecords);
+	}
+
+	@Override
+	public int updateByPrimaryKeySelective(MeterReadRecord meterReadRecord){
+		return meterReadRecordMapper.updateByPrimaryKeySelective(meterReadRecord);
+	}
+
 	@Override
-    public int insert(MeterReadRecord meterReadRecord){
-        return meterReadRecordMapper.insert(meterReadRecord);
-    }
-
-    @Override
-    public int insertSelective(MeterReadRecord meterReadRecord){
-        return meterReadRecordMapper.insertSelective(meterReadRecord);
-    }
-
-    @Override
-    public int insertList(List<MeterReadRecord> meterReadRecords){
-        return meterReadRecordMapper.insertList(meterReadRecords);
-    }
-
-    @Override
-    public int updateByPrimaryKeySelective(MeterReadRecord meterReadRecord){
-        return meterReadRecordMapper.updateByPrimaryKeySelective(meterReadRecord);
-    }
-
-    @Override
 	public WaterConsumptionSummaryDto waterConsumptionSummary(CommonQueryCondition condition) {
 		log.info("begin MeterReadRecordService waterConsumptionSummary, params = " + JSON.toJSONString(condition));
 		WaterConsumptionSummaryDto result = meterReadRecordMapper.getSummary(condition);
@@ -703,7 +704,7 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 	@Async
 	@Override
 	public void recoverAll(Integer startDate) {
-    	log.info("开始用水量恢复");
+		log.info("开始用水量恢复");
 		List<Long> allDeviceId = meterReadRecordMapper.getAllDeviceId(startDate);
 		for (Long deviceId : allDeviceId) {
 			log.info("开始恢复设备id : " + deviceId + " 的用水量");
@@ -757,19 +758,19 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 		statusList.add(4); // 预警
 		param.setDeviceStatusList(statusList);
 		int total = deviceMapper.countDevice(param);
-		
+
 		// 2,分页获取设备并生成抄表记录
 		int pageSize = 1000 ;
-		
+
 		int totalPage = total / pageSize;
 		if (total % pageSize != 0){
 			totalPage++;
 		}
 
-		
+
 		for(int i = 1 ;i <= totalPage; i++) {
 			int start = (i - 1) * pageSize;
-			
+
 			List<DeviceDto> deviceList = deviceMapper.getDeviceList(param, start, pageSize);
 			List<MeterReadRecord> records = new ArrayList<MeterReadRecord>();
 			for(DeviceDto device : deviceList) {
@@ -777,7 +778,7 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 				Integer startDate = Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.before(date, 1), "yyyyMMdd"));
 				Integer endDate = Integer.parseInt(DateTimeUtil.formatDate(date, "yyyyMMdd"));
 				MeterReadRecord record = new MeterReadRecord();
-				String deviceNo = device.getDeviceNo() ; 
+				String deviceNo = device.getDeviceNo() ;
 				Long deviceId = device.getId();
 				record.setId(idWorker.nextId());
 				record.setSiteId(device.getSiteId());
@@ -819,7 +820,7 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 						p.setEndDate(endDate);
 						p.setMeasuringCode("WSV");
 						List<DeviceDataDim> data = deviceDataDimMapper.queryDeviceDataDim(p,1);
-						
+
 						if(data.size() > 0) {
 							readStatus = "2" ; // 已抄
 							record.setReadTime(data.get(0).getSendTime()); // 抄表时间
@@ -835,7 +836,7 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 					p.setEndDate(endDate);
 					p.setMeasuringCode("WSV");
 					List<DeviceDataDim> data = deviceDataDimMapper.queryDeviceDataDim(p,1);
-					
+
 					if(data.size() > 0) {
 						readStatus = "2" ; // 已抄
 						record.setReadTime(data.get(0).getSendTime()); // 抄表时间
@@ -853,23 +854,23 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 				Thread.sleep(10000l);
 			} catch (InterruptedException e) {
 				log.error("thread interrupted", e);
-			} 
+			}
 		}
-		
+
 		log.info("end MeterReadRecordService createMeterReadRecord ,result = "+ result);
 		return total;
 	}
 
 	@Override
 	public ListObjectWrapper<MeterReadDataDTO> queryMeterReadData(String meterReadDate, String deviceNo,
-			String electronicNo, String custNo) {
+																  String electronicNo, String custNo) {
 		if(StringUtils.isEmpty(custNo) && StringUtils.isEmpty(deviceNo)  &&  StringUtils.isEmpty(electronicNo)) {
 			throw new ServiceException(ResultStatus.CLEARING_DATA_QUERY_CONDITION_ERROR);
 		}
 		if(StringUtils.isEmpty(meterReadDate) ) {
 			throw new ServiceException(ResultStatus.METER_READ_DATA_QUERY_CONDITION_ACCOUNT);
 		}
-		if(!StringUtils.isEmpty(custNo)) { 
+		if(!StringUtils.isEmpty(custNo)) {
 			Customer cust = customerService.findBySiteIdAndCustomerNo(null, custNo);
 			if(cust == null) {
 				throw new ServiceException(ResultStatus.CLEARING_DATA_QUERY_NO_CUSTOMER);
@@ -959,6 +960,7 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 		statusList.add(4); // 预警
 		statusList.add(5); // 未启用
 		param.setDeviceStatusList(statusList);
+		param.setDeviceType(type.getDeviceTypeId());
 		return param;
 	}
 	protected  void calcWsvIncrement(Date current , DeviceDto device , MeterReadRecord  record){
@@ -1018,10 +1020,11 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 	 * 从缓存数据中生成抄表记录
 	 */
 	protected MeterReadRecord genrateMeterRecordFromCache(DeviceDto device, Integer startDate,Integer endDate , String wsvCode){
+		log.info("Generate Meter Record From Cache ,Device No = {}",device.getDeviceNo());
 		MeterReadRecord readRecord = null;
 		readRecord = buildRecordBaseInfo(device,startDate);
 		String deviceDataJSONStr = redisUtil.get(String.valueOf(device.getId()));
-
+		log.info(" Device {} Cache Data Log ,Data = {} ",device.getDeviceNo(),deviceDataJSONStr);
 		JSONObject dataObj = (JSONObject)JSON.parse(deviceDataJSONStr);
 		// 分别获取用水测点与上报时间测点
 		JSONObject timeData = (JSONObject)dataObj.get("TIME");
@@ -1045,6 +1048,7 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 	 * 从数据库记录中生成抄表记录
 	 */
 	protected MeterReadRecord genrateMeterRecordFromDB(DeviceDto device,Integer startDate,Integer endDate,String wsvCode){
+		log.info("Generate Meter Record From DB ,Device No = {}",device.getDeviceNo());
 		MeterReadRecord readRecord = null;
 		readRecord = buildRecordBaseInfo(device,startDate);
 
@@ -1057,12 +1061,12 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
 		List<DeviceDataDim> data = deviceDataDimMapper.queryDeviceDataDim(p,1);
 
 		if(data.size() > 0) {
-			readRecord.setReadData("2"); // 已抄
+			readRecord.setReadStatus("2"); // 已抄
 			readRecord.setReadTime(data.get(0).getSendTime()); // 抄表时间
 			readRecord.setReadData(data.get(0).getMeasuringData());
 		}
 		else{
-			readRecord.setReadData("1"); // 未抄
+			readRecord.setReadStatus("1"); // 未抄
 		}
 		return readRecord ;
 	}