|
@@ -266,8 +266,8 @@ public class KprAimTapWaterBizFun {
|
|
//TODO 检查小时用水量
|
|
//TODO 检查小时用水量
|
|
DateTimeFormatter formater = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
DateTimeFormatter formater = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
try{
|
|
try{
|
|
- LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO,mStrClassName, mStrClassName,"检查机制-计算营业所小时用水量开始时间:"+TimeTool.convertUTC2DateStr(TimeTool.getCurMsUTC(),TimeTool.TIMESTAMP_FORMAT));
|
|
|
|
- LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO,mStrClassName, mStrClassName,"检查机制-计算营业所小时用水量进行中:......");
|
|
|
|
|
|
+ LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO,mStrClassName, mStrClassName,"检查机制-计算营业所15分钟用水量开始时间:"+TimeTool.convertUTC2DateStr(TimeTool.getCurMsUTC(),TimeTool.TIMESTAMP_FORMAT));
|
|
|
|
+ LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO,mStrClassName, mStrClassName,"检查机制-计算营业所15分钟用水量进行中:......");
|
|
//获取配置关系
|
|
//获取配置关系
|
|
//TODO 自供
|
|
//TODO 自供
|
|
Map<String,List<String>> selfconfess = parseConfig(selfconfessStr);
|
|
Map<String,List<String>> selfconfess = parseConfig(selfconfessStr);
|
|
@@ -379,6 +379,135 @@ public class KprAimTapWaterBizFun {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
latch.await();
|
|
latch.await();
|
|
|
|
+ LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO,mStrClassName, mStrClassName,"检查机制-计算营业所15分钟用水量已完成");
|
|
|
|
+ }catch(Exception ex){
|
|
|
|
+ ex.printStackTrace();
|
|
|
|
+ LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR
|
|
|
|
+ , mStrClassName
|
|
|
|
+ , mStrClassName
|
|
|
|
+ , String.format("Batch checkBusinessRecordAllData ERROR:{%s} "
|
|
|
|
+ , ex.getLocalizedMessage()));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //TODO beforHour是小时数,当前时间往前扣多少个小时 按一小时刻度计算用水量
|
|
|
|
+ public static void checkBusinessRecordOldAllData(int beforHour,String selfconfessStr,String supplyinStr,String confessStr){
|
|
|
|
+ //TODO 检查小时用水量
|
|
|
|
+ DateTimeFormatter formater = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
|
+ try{
|
|
|
|
+ LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO,mStrClassName, mStrClassName,"检查机制-计算营业所小时用水量开始时间:"+TimeTool.convertUTC2DateStr(TimeTool.getCurMsUTC(),TimeTool.TIMESTAMP_FORMAT));
|
|
|
|
+ LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO,mStrClassName, mStrClassName,"检查机制-计算营业所小时用水量进行中:......");
|
|
|
|
+ //获取配置关系
|
|
|
|
+ //TODO 自供
|
|
|
|
+ Map<String,List<String>> selfconfess = parseConfig(selfconfessStr);
|
|
|
|
+ //TODO 供入
|
|
|
|
+ Map<String,List<String>> supplyin = parseConfig(supplyinStr);
|
|
|
|
+ //TODO 供出
|
|
|
|
+ Map<String,List<String>> confess = parseConfig(confessStr);
|
|
|
|
+ //TODO 根据当前配置信息item 查询远通数据中的历史数据
|
|
|
|
+ //TODO 首先查询当前水厂设备的从昨天之后到得到数据的数据
|
|
|
|
+ LocalDateTime today = LocalDateTime.now();
|
|
|
|
+ LocalDateTime startDateTime = today.withMinute(0).withSecond(0).withNano(0).minusHours(beforHour);
|
|
|
|
+
|
|
|
|
+ //TODO 需计算的循环天数
|
|
|
|
+
|
|
|
|
+ //TODO 此循环天数每一天所查的是所有设备每小时数据合
|
|
|
|
+ LocalDateTime newStartDateTime = startDateTime;
|
|
|
|
+ String startDate = newStartDateTime.format(formater);
|
|
|
|
+ String endDate = today.withMinute(1).withSecond(0).format(formater);
|
|
|
|
+ final CountDownLatch latch = new CountDownLatch(selfconfess.keySet().size());
|
|
|
|
+ for (String orgName:selfconfess.keySet()) {
|
|
|
|
+ try {
|
|
|
|
+ ThreadTaskMgr.runTask(new TraceRunnable(TraceLogMgr.getTraceId()) {
|
|
|
|
+ @Override
|
|
|
|
+ public void function() {
|
|
|
|
+
|
|
|
|
+ for (int i = 0; i < Integer.valueOf(String.valueOf(Duration.between(startDateTime, today.withMinute(0).withSecond(0)).toHours())); i++) {
|
|
|
|
+ String startTime = newStartDateTime.minusHours(-i).format(formater);
|
|
|
|
+ String endTime = newStartDateTime.minusMinutes(-1).minusHours(-(i+1)).format(formater);//查询时间加一分钟
|
|
|
|
+ Map<String, Object> recordAllEntity = new HashMap<>();//需要添加的实体数据
|
|
|
|
+ recordAllEntity.put("org_name", orgName);//水厂
|
|
|
|
+ recordAllEntity.put("time", newStartDateTime.minusHours(-(i+1)).format(formater));//采集时间(小时的最后时间)
|
|
|
|
+ recordAllEntity.put("value", null);
|
|
|
|
+ recordAllEntity.put("value_tag", "water");
|
|
|
|
+ recordAllEntity.put("collcation_tag_array", "");
|
|
|
|
+ //TODO 此循环计算该小时所有设备的用水量
|
|
|
|
+ //TODO 先查各个营业所的自供值
|
|
|
|
+ List<String> tagTags = selfconfess.get(orgName);//自供
|
|
|
|
+ List<String> tagTags2 = supplyin.get(orgName);//供入
|
|
|
|
+ List<String> tagTags3 = confess.get(orgName);//供出
|
|
|
|
+ Double selfValue = null;
|
|
|
|
+ Double supplyInValue = null;
|
|
|
|
+ Double confessValue = null;
|
|
|
|
+ try {
|
|
|
|
+ selfValue = selfconfess(tagTags, startDate, endDate, startTime, endTime);//自供
|
|
|
|
+ supplyInValue = selfconfess(tagTags2, startDate, endDate, startTime, endTime);//供入
|
|
|
|
+ confessValue = selfconfess(tagTags3, startDate, endDate, startTime, endTime);//供出
|
|
|
|
+ } catch (Exception ex) {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ Double value = null;//总计算值
|
|
|
|
+ if (selfValue != null) {
|
|
|
|
+ if (supplyInValue != null && confessValue == null) {
|
|
|
|
+ value = selfValue + supplyInValue;
|
|
|
|
+ } else if (supplyInValue != null && confessValue != null) {
|
|
|
|
+ value = selfValue + supplyInValue - confessValue;
|
|
|
|
+ } else if (supplyInValue == null && confessValue == null) {
|
|
|
|
+ value = selfValue;
|
|
|
|
+ } else if (supplyInValue == null && confessValue != null) {
|
|
|
|
+ value = selfValue - confessValue;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ recordAllEntity.put("value", value);
|
|
|
|
+ System.out.println("营业所片区" + orgName + "值:" + value + ",采集时间:" + newStartDateTime.minusMinutes(-((i + 1) * 15)).format(formater));
|
|
|
|
+ List<Map<String, Object>> queryWaterRecord = getWaterTapWaterApi().getWaterCollectionRecordAllList(1, 0,
|
|
|
|
+ " WHERE org_name = '" + recordAllEntity.get("org_name")
|
|
|
|
+ + "' AND time = '" + recordAllEntity.get("time") + "' AND value_tag = '" + recordAllEntity.get("value_tag") + "'");
|
|
|
|
+ if (CollectionUtils.isEmpty(queryWaterRecord)) {
|
|
|
|
+// //TODO 说明不存在,进行插入
|
|
|
|
+ if (!ObjectUtils.isEmpty(recordAllEntity.get("value"))) {
|
|
|
|
+ int insertCode = getWaterTapWaterApi().insertWaterCollectionRecordAll(" (" +
|
|
|
|
+ "'" + recordAllEntity.get("org_name") + "'," +
|
|
|
|
+ "'" + recordAllEntity.get("time") + "'," +
|
|
|
|
+ "'" + recordAllEntity.get("value") + "'," +
|
|
|
|
+ "'" + recordAllEntity.get("value_tag") + "'," +
|
|
|
|
+ "'" + recordAllEntity.get("collcation_tag_array") + "'" +
|
|
|
|
+ ") ");
|
|
|
|
+ if (insertCode < 0) {
|
|
|
|
+ LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR
|
|
|
|
+ , mStrClassName
|
|
|
|
+ , mStrClassName
|
|
|
|
+ , String.format("Batch initTapWaterDataThread 未成功:{%s} ",
|
|
|
|
+ FastJsonUtil.toJSON(recordAllEntity)));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ //TODO 说明存在,进行修改
|
|
|
|
+ if (!ObjectUtils.isEmpty(recordAllEntity.get("value"))) {
|
|
|
|
+ int updateCode = getWaterTapWaterApi().updateWaterCollectionRecordAll(String.valueOf(value), " WHERE " +
|
|
|
|
+ "(" +
|
|
|
|
+ " org_name = '" + recordAllEntity.get("org_name") + "' and" +
|
|
|
|
+ " \"time\" = '" + recordAllEntity.get("time") + "' and" +
|
|
|
|
+ " value_tag = '" + recordAllEntity.get("value_tag") + "'" +
|
|
|
|
+ ") ");
|
|
|
|
+ if (updateCode < 0) {
|
|
|
|
+ LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR
|
|
|
|
+ , mStrClassName
|
|
|
|
+ , mStrClassName
|
|
|
|
+ , String.format("Batch updateWaterCollectionRecordAll 未成功:{%s} ",
|
|
|
|
+ FastJsonUtil.toJSON(recordAllEntity)));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ latch.countDown();
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }catch(Exception ex){
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ latch.await();
|
|
|
|
+ LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO,mStrClassName, mStrClassName,"检查机制-计算营业所小时用水量已完成");
|
|
}catch(Exception ex){
|
|
}catch(Exception ex){
|
|
ex.printStackTrace();
|
|
ex.printStackTrace();
|
|
LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR
|
|
LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR
|
|
@@ -628,7 +757,7 @@ public class KprAimTapWaterBizFun {
|
|
//TODO 循环获取该天该水厂每个设备数据
|
|
//TODO 循环获取该天该水厂每个设备数据
|
|
|
|
|
|
//TODO 查询当前天日期内每小时的设备数据
|
|
//TODO 查询当前天日期内每小时的设备数据
|
|
- for (int i = 0; i < Integer.valueOf(String.valueOf(Duration.between(startDateTime, today.withSecond(0)).toMinutes()/15)); i++) {
|
|
|
|
|
|
+ for (int i = 0; i < Integer.valueOf(String.valueOf(Duration.between(startDateTime, today.withMinute(0).withSecond(0)).toHours())); i++) {
|
|
String startTime = newStartDateTime.minusHours(-i).format(formater);
|
|
String startTime = newStartDateTime.minusHours(-i).format(formater);
|
|
String endTime = newStartDateTime.minusMinutes(-1).minusHours(-(i+1)).format(formater);//查询时间加一分钟
|
|
String endTime = newStartDateTime.minusMinutes(-1).minusHours(-(i+1)).format(formater);//查询时间加一分钟
|
|
Map<String, Object> recordAllEntity = new HashMap<>();//需要添加的实体数据
|
|
Map<String, Object> recordAllEntity = new HashMap<>();//需要添加的实体数据
|