|
@@ -56,7 +56,7 @@ import static com.google.common.collect.Lists.newArrayList;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 抄表记录服务实现类
|
|
* 抄表记录服务实现类
|
|
- * @Description
|
|
|
|
|
|
+ * @Description
|
|
* @author wilian.peng
|
|
* @author wilian.peng
|
|
* @date 2019年3月15日 下午4:46:07
|
|
* @date 2019年3月15日 下午4:46:07
|
|
*/
|
|
*/
|
|
@@ -66,89 +66,89 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
|
|
|
|
|
|
@Value("${system.water.meter.lora.code}")
|
|
@Value("${system.water.meter.lora.code}")
|
|
private String deviceTypeCode; // 智能水表场景id
|
|
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
|
|
@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) {
|
|
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);
|
|
return new Pagination<MeterReadRecord>(result);
|
|
}
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
|
|
|
+ @Override
|
|
public Pagination<MeterReadRecord> queryMeterReadRecord(CommonQueryCondition condition, int pageNum, int pageSize) {
|
|
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) {
|
|
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,省份统计
|
|
// // 1,省份统计
|
|
// List<MeterRecordStat> provinceStatDatas = meterReadRecordMapper.statisticReadRecordsByProvince(param);
|
|
// List<MeterRecordStat> provinceStatDatas = meterReadRecordMapper.statisticReadRecordsByProvince(param);
|
|
// for(MeterRecordStat provinceStatData : provinceStatDatas) {
|
|
// for(MeterRecordStat provinceStatData : provinceStatDatas) {
|
|
@@ -175,211 +175,211 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
long cost = (System.currentTimeMillis()-startTime.getTime())/1000 ;
|
|
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) {
|
|
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;
|
|
return result;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public Pagination<MeterReadRate> queryMeterReadRate(MeterReadRate param, int pageNum, int pageSize) {
|
|
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);
|
|
return new Pagination<MeterReadRate>(result);
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public MeterReadRate summaryMeterReadRate(CommonQueryCondition condition) {
|
|
public MeterReadRate summaryMeterReadRate(CommonQueryCondition condition) {
|
|
// 1,先根据周期判断开始与结束时间 ,统计周期:0 表示自定义,1表示今天,2表示昨天,7表示近7天,30表示近30天
|
|
// 1,先根据周期判断开始与结束时间 ,统计周期:0 表示自定义,1表示今天,2表示昨天,7表示近7天,30表示近30天
|
|
MeterReadRate result = new MeterReadRate(); ;
|
|
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);
|
|
StatMeterReadRateDto resp = statMeterReadRateByBuildingMapper.summaryRateListByBuilding(condition);
|
|
if(resp == null) {
|
|
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 {
|
|
else {
|
|
result.setReadRate(resp.getReadRate().doubleValue());
|
|
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;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public MeterReadRate summaryMeterReadRate(MeterReadRate param) {
|
|
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) {
|
|
// if(period == 1) {
|
|
// Device p = new Device();
|
|
// Device p = new Device();
|
|
// WMeterType type = wneterTypeMapper.getWMeterTypeByDeviceTypeCode(deviceTypeCode);
|
|
// WMeterType type = wneterTypeMapper.getWMeterTypeByDeviceTypeCode(deviceTypeCode);
|
|
@@ -399,16 +399,16 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
|
|
// result.setDeviceCount(rates.get(0).getDeviceCount());
|
|
// 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;
|
|
return result;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
@Async
|
|
@Async
|
|
@Override
|
|
@Override
|
|
public int createMeterReadRecordAsync(Date date) {
|
|
public int createMeterReadRecordAsync(Date date) {
|
|
return createMeterReadRecord(date);
|
|
return createMeterReadRecord(date);
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public int createMeterReadRecord(Date date) {
|
|
public int createMeterReadRecord(Date date) {
|
|
log.info("begin MeterReadRecordService createMeterReadRecord ,date = "+ JSON.toJSONString(date));
|
|
log.info("begin MeterReadRecordService createMeterReadRecord ,date = "+ JSON.toJSONString(date));
|
|
@@ -427,20 +427,21 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
|
|
statusList.add(4); // 预警
|
|
statusList.add(4); // 预警
|
|
statusList.add(5); // 未启用
|
|
statusList.add(5); // 未启用
|
|
param.setDeviceStatusList(statusList);
|
|
param.setDeviceStatusList(statusList);
|
|
|
|
+ param.setDeviceType(type.getDeviceTypeId());
|
|
int total = deviceMapper.countDevice(param);
|
|
int total = deviceMapper.countDevice(param);
|
|
-
|
|
|
|
|
|
+
|
|
// 2,分页获取设备并生成抄表记录
|
|
// 2,分页获取设备并生成抄表记录
|
|
int pageSize = 1000 ;
|
|
int pageSize = 1000 ;
|
|
-
|
|
|
|
|
|
+
|
|
int totalPage = total / pageSize;
|
|
int totalPage = total / pageSize;
|
|
if (total % pageSize != 0){
|
|
if (total % pageSize != 0){
|
|
totalPage++;
|
|
totalPage++;
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
|
|
+
|
|
for(int i = 1 ;i <= totalPage; i++) {
|
|
for(int i = 1 ;i <= totalPage; i++) {
|
|
int start = (i - 1) * pageSize;
|
|
int start = (i - 1) * pageSize;
|
|
-
|
|
|
|
|
|
+
|
|
List<DeviceDto> deviceList = deviceMapper.getDeviceList(param, start, pageSize);
|
|
List<DeviceDto> deviceList = deviceMapper.getDeviceList(param, start, pageSize);
|
|
List<MeterReadRecord> records = new ArrayList<MeterReadRecord>();
|
|
List<MeterReadRecord> records = new ArrayList<MeterReadRecord>();
|
|
for(DeviceDto device : deviceList) {
|
|
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 startDate = Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.before(date, 1), "yyyyMMdd"));
|
|
Integer endDate = Integer.parseInt(DateTimeUtil.formatDate(date, "yyyyMMdd"));
|
|
Integer endDate = Integer.parseInt(DateTimeUtil.formatDate(date, "yyyyMMdd"));
|
|
MeterReadRecord record = new MeterReadRecord();
|
|
MeterReadRecord record = new MeterReadRecord();
|
|
- String deviceNo = device.getDeviceNo() ;
|
|
|
|
|
|
+ String deviceNo = device.getDeviceNo() ;
|
|
Long deviceId = device.getId();
|
|
Long deviceId = device.getId();
|
|
record.setId(idWorker.nextId());
|
|
record.setId(idWorker.nextId());
|
|
record.setSiteId(device.getSiteId());
|
|
record.setSiteId(device.getSiteId());
|
|
@@ -489,7 +490,7 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
|
|
p.setEndDate(endDate);
|
|
p.setEndDate(endDate);
|
|
p.setMeasuringCode("WSV");
|
|
p.setMeasuringCode("WSV");
|
|
List<DeviceDataDim> data = deviceDataDimMapper.queryDeviceDataDim(p,1);
|
|
List<DeviceDataDim> data = deviceDataDimMapper.queryDeviceDataDim(p,1);
|
|
-
|
|
|
|
|
|
+
|
|
if(data.size() > 0) {
|
|
if(data.size() > 0) {
|
|
readStatus = "2" ; // 已抄
|
|
readStatus = "2" ; // 已抄
|
|
record.setReadTime(data.get(0).getSendTime()); // 抄表时间
|
|
record.setReadTime(data.get(0).getSendTime()); // 抄表时间
|
|
@@ -505,7 +506,7 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
|
|
p.setEndDate(endDate);
|
|
p.setEndDate(endDate);
|
|
p.setMeasuringCode("WSV");
|
|
p.setMeasuringCode("WSV");
|
|
List<DeviceDataDim> data = deviceDataDimMapper.queryDeviceDataDim(p,1);
|
|
List<DeviceDataDim> data = deviceDataDimMapper.queryDeviceDataDim(p,1);
|
|
-
|
|
|
|
|
|
+
|
|
if(data.size() > 0) {
|
|
if(data.size() > 0) {
|
|
readStatus = "2" ; // 已抄
|
|
readStatus = "2" ; // 已抄
|
|
record.setReadTime(data.get(0).getSendTime()); // 抄表时间
|
|
record.setReadTime(data.get(0).getSendTime()); // 抄表时间
|
|
@@ -546,9 +547,9 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
|
|
Thread.sleep(10000l);
|
|
Thread.sleep(10000l);
|
|
} catch (InterruptedException e) {
|
|
} catch (InterruptedException e) {
|
|
log.error("thread interrupted", e);
|
|
log.error("thread interrupted", e);
|
|
- }
|
|
|
|
|
|
+ }
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
log.info("end MeterReadRecordService createMeterReadRecord ,result = "+ result);
|
|
log.info("end MeterReadRecordService createMeterReadRecord ,result = "+ result);
|
|
return total;
|
|
return total;
|
|
}
|
|
}
|
|
@@ -594,14 +595,14 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
|
|
public void getMeterReadRecordExcel(MeterReadRecord param, HttpServletResponse httpServletResponse) {
|
|
public void getMeterReadRecordExcel(MeterReadRecord param, HttpServletResponse httpServletResponse) {
|
|
log.info("begin MeterReadRecordService getMeterReadRecordExcel,param = "+JSON.toJSONString(param));
|
|
log.info("begin MeterReadRecordService getMeterReadRecordExcel,param = "+JSON.toJSONString(param));
|
|
if(StringUtils.isNotEmpty(param.getLocation())){
|
|
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[]{"序号", "设备编号", "抄表状态", "抄表止度", "抄表时间", "所属建筑", "位置信息"};
|
|
String[] rowsName = new String[]{"序号", "设备编号", "抄表状态", "抄表止度", "抄表时间", "所属建筑", "位置信息"};
|
|
List<Object[]> dataList = newArrayList();
|
|
List<Object[]> dataList = newArrayList();
|
|
Object[] objs = null;
|
|
Object[] objs = null;
|
|
@@ -626,7 +627,7 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
|
|
log.info("end MeterReadRecordService getMeterReadRecordExcel , result.size = "+result.size());
|
|
log.info("end MeterReadRecordService getMeterReadRecordExcel , result.size = "+result.size());
|
|
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public void getMeterReadRecordExcel(CommonQueryCondition condition, HttpServletResponse httpServletResponse) {
|
|
public void getMeterReadRecordExcel(CommonQueryCondition condition, HttpServletResponse httpServletResponse) {
|
|
log.info("begin MeterReadRecordService getMeterReadRecordExcel,param = "+JSON.toJSONString(condition));
|
|
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());
|
|
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
|
|
@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) {
|
|
public WaterConsumptionSummaryDto waterConsumptionSummary(CommonQueryCondition condition) {
|
|
log.info("begin MeterReadRecordService waterConsumptionSummary, params = " + JSON.toJSONString(condition));
|
|
log.info("begin MeterReadRecordService waterConsumptionSummary, params = " + JSON.toJSONString(condition));
|
|
WaterConsumptionSummaryDto result = meterReadRecordMapper.getSummary(condition);
|
|
WaterConsumptionSummaryDto result = meterReadRecordMapper.getSummary(condition);
|
|
@@ -703,7 +704,7 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
|
|
@Async
|
|
@Async
|
|
@Override
|
|
@Override
|
|
public void recoverAll(Integer startDate) {
|
|
public void recoverAll(Integer startDate) {
|
|
- log.info("开始用水量恢复");
|
|
|
|
|
|
+ log.info("开始用水量恢复");
|
|
List<Long> allDeviceId = meterReadRecordMapper.getAllDeviceId(startDate);
|
|
List<Long> allDeviceId = meterReadRecordMapper.getAllDeviceId(startDate);
|
|
for (Long deviceId : allDeviceId) {
|
|
for (Long deviceId : allDeviceId) {
|
|
log.info("开始恢复设备id : " + deviceId + " 的用水量");
|
|
log.info("开始恢复设备id : " + deviceId + " 的用水量");
|
|
@@ -757,19 +758,19 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
|
|
statusList.add(4); // 预警
|
|
statusList.add(4); // 预警
|
|
param.setDeviceStatusList(statusList);
|
|
param.setDeviceStatusList(statusList);
|
|
int total = deviceMapper.countDevice(param);
|
|
int total = deviceMapper.countDevice(param);
|
|
-
|
|
|
|
|
|
+
|
|
// 2,分页获取设备并生成抄表记录
|
|
// 2,分页获取设备并生成抄表记录
|
|
int pageSize = 1000 ;
|
|
int pageSize = 1000 ;
|
|
-
|
|
|
|
|
|
+
|
|
int totalPage = total / pageSize;
|
|
int totalPage = total / pageSize;
|
|
if (total % pageSize != 0){
|
|
if (total % pageSize != 0){
|
|
totalPage++;
|
|
totalPage++;
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
|
|
+
|
|
for(int i = 1 ;i <= totalPage; i++) {
|
|
for(int i = 1 ;i <= totalPage; i++) {
|
|
int start = (i - 1) * pageSize;
|
|
int start = (i - 1) * pageSize;
|
|
-
|
|
|
|
|
|
+
|
|
List<DeviceDto> deviceList = deviceMapper.getDeviceList(param, start, pageSize);
|
|
List<DeviceDto> deviceList = deviceMapper.getDeviceList(param, start, pageSize);
|
|
List<MeterReadRecord> records = new ArrayList<MeterReadRecord>();
|
|
List<MeterReadRecord> records = new ArrayList<MeterReadRecord>();
|
|
for(DeviceDto device : deviceList) {
|
|
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 startDate = Integer.parseInt(DateTimeUtil.formatDate(DateTimeUtil.before(date, 1), "yyyyMMdd"));
|
|
Integer endDate = Integer.parseInt(DateTimeUtil.formatDate(date, "yyyyMMdd"));
|
|
Integer endDate = Integer.parseInt(DateTimeUtil.formatDate(date, "yyyyMMdd"));
|
|
MeterReadRecord record = new MeterReadRecord();
|
|
MeterReadRecord record = new MeterReadRecord();
|
|
- String deviceNo = device.getDeviceNo() ;
|
|
|
|
|
|
+ String deviceNo = device.getDeviceNo() ;
|
|
Long deviceId = device.getId();
|
|
Long deviceId = device.getId();
|
|
record.setId(idWorker.nextId());
|
|
record.setId(idWorker.nextId());
|
|
record.setSiteId(device.getSiteId());
|
|
record.setSiteId(device.getSiteId());
|
|
@@ -819,7 +820,7 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
|
|
p.setEndDate(endDate);
|
|
p.setEndDate(endDate);
|
|
p.setMeasuringCode("WSV");
|
|
p.setMeasuringCode("WSV");
|
|
List<DeviceDataDim> data = deviceDataDimMapper.queryDeviceDataDim(p,1);
|
|
List<DeviceDataDim> data = deviceDataDimMapper.queryDeviceDataDim(p,1);
|
|
-
|
|
|
|
|
|
+
|
|
if(data.size() > 0) {
|
|
if(data.size() > 0) {
|
|
readStatus = "2" ; // 已抄
|
|
readStatus = "2" ; // 已抄
|
|
record.setReadTime(data.get(0).getSendTime()); // 抄表时间
|
|
record.setReadTime(data.get(0).getSendTime()); // 抄表时间
|
|
@@ -835,7 +836,7 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
|
|
p.setEndDate(endDate);
|
|
p.setEndDate(endDate);
|
|
p.setMeasuringCode("WSV");
|
|
p.setMeasuringCode("WSV");
|
|
List<DeviceDataDim> data = deviceDataDimMapper.queryDeviceDataDim(p,1);
|
|
List<DeviceDataDim> data = deviceDataDimMapper.queryDeviceDataDim(p,1);
|
|
-
|
|
|
|
|
|
+
|
|
if(data.size() > 0) {
|
|
if(data.size() > 0) {
|
|
readStatus = "2" ; // 已抄
|
|
readStatus = "2" ; // 已抄
|
|
record.setReadTime(data.get(0).getSendTime()); // 抄表时间
|
|
record.setReadTime(data.get(0).getSendTime()); // 抄表时间
|
|
@@ -853,23 +854,23 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
|
|
Thread.sleep(10000l);
|
|
Thread.sleep(10000l);
|
|
} catch (InterruptedException e) {
|
|
} catch (InterruptedException e) {
|
|
log.error("thread interrupted", e);
|
|
log.error("thread interrupted", e);
|
|
- }
|
|
|
|
|
|
+ }
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
log.info("end MeterReadRecordService createMeterReadRecord ,result = "+ result);
|
|
log.info("end MeterReadRecordService createMeterReadRecord ,result = "+ result);
|
|
return total;
|
|
return total;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public ListObjectWrapper<MeterReadDataDTO> queryMeterReadData(String meterReadDate, String deviceNo,
|
|
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)) {
|
|
if(StringUtils.isEmpty(custNo) && StringUtils.isEmpty(deviceNo) && StringUtils.isEmpty(electronicNo)) {
|
|
throw new ServiceException(ResultStatus.CLEARING_DATA_QUERY_CONDITION_ERROR);
|
|
throw new ServiceException(ResultStatus.CLEARING_DATA_QUERY_CONDITION_ERROR);
|
|
}
|
|
}
|
|
if(StringUtils.isEmpty(meterReadDate) ) {
|
|
if(StringUtils.isEmpty(meterReadDate) ) {
|
|
throw new ServiceException(ResultStatus.METER_READ_DATA_QUERY_CONDITION_ACCOUNT);
|
|
throw new ServiceException(ResultStatus.METER_READ_DATA_QUERY_CONDITION_ACCOUNT);
|
|
}
|
|
}
|
|
- if(!StringUtils.isEmpty(custNo)) {
|
|
|
|
|
|
+ if(!StringUtils.isEmpty(custNo)) {
|
|
Customer cust = customerService.findBySiteIdAndCustomerNo(null, custNo);
|
|
Customer cust = customerService.findBySiteIdAndCustomerNo(null, custNo);
|
|
if(cust == null) {
|
|
if(cust == null) {
|
|
throw new ServiceException(ResultStatus.CLEARING_DATA_QUERY_NO_CUSTOMER);
|
|
throw new ServiceException(ResultStatus.CLEARING_DATA_QUERY_NO_CUSTOMER);
|
|
@@ -959,6 +960,7 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
|
|
statusList.add(4); // 预警
|
|
statusList.add(4); // 预警
|
|
statusList.add(5); // 未启用
|
|
statusList.add(5); // 未启用
|
|
param.setDeviceStatusList(statusList);
|
|
param.setDeviceStatusList(statusList);
|
|
|
|
+ param.setDeviceType(type.getDeviceTypeId());
|
|
return param;
|
|
return param;
|
|
}
|
|
}
|
|
protected void calcWsvIncrement(Date current , DeviceDto device , MeterReadRecord record){
|
|
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){
|
|
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;
|
|
MeterReadRecord readRecord = null;
|
|
readRecord = buildRecordBaseInfo(device,startDate);
|
|
readRecord = buildRecordBaseInfo(device,startDate);
|
|
String deviceDataJSONStr = redisUtil.get(String.valueOf(device.getId()));
|
|
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 dataObj = (JSONObject)JSON.parse(deviceDataJSONStr);
|
|
// 分别获取用水测点与上报时间测点
|
|
// 分别获取用水测点与上报时间测点
|
|
JSONObject timeData = (JSONObject)dataObj.get("TIME");
|
|
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){
|
|
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;
|
|
MeterReadRecord readRecord = null;
|
|
readRecord = buildRecordBaseInfo(device,startDate);
|
|
readRecord = buildRecordBaseInfo(device,startDate);
|
|
|
|
|
|
@@ -1057,12 +1061,12 @@ public class MeterReadRecordServiceImpl implements MeterReadRecordService{
|
|
List<DeviceDataDim> data = deviceDataDimMapper.queryDeviceDataDim(p,1);
|
|
List<DeviceDataDim> data = deviceDataDimMapper.queryDeviceDataDim(p,1);
|
|
|
|
|
|
if(data.size() > 0) {
|
|
if(data.size() > 0) {
|
|
- readRecord.setReadData("2"); // 已抄
|
|
|
|
|
|
+ readRecord.setReadStatus("2"); // 已抄
|
|
readRecord.setReadTime(data.get(0).getSendTime()); // 抄表时间
|
|
readRecord.setReadTime(data.get(0).getSendTime()); // 抄表时间
|
|
readRecord.setReadData(data.get(0).getMeasuringData());
|
|
readRecord.setReadData(data.get(0).getMeasuringData());
|
|
}
|
|
}
|
|
else{
|
|
else{
|
|
- readRecord.setReadData("1"); // 未抄
|
|
|
|
|
|
+ readRecord.setReadStatus("1"); // 未抄
|
|
}
|
|
}
|
|
return readRecord ;
|
|
return readRecord ;
|
|
}
|
|
}
|