|
@@ -3,6 +3,10 @@ package com.steerinfo.ems.emswaterrealtime.service.impl;
|
|
|
import com.steerinfo.auth.utils.JwtUtil;
|
|
|
import com.steerinfo.ems.Utils.DateUtils;
|
|
|
import com.steerinfo.ems.Utils.MosaicUtils;
|
|
|
+import com.steerinfo.ems.emswaihoursumtab1.mapper.EmsWAiHourSumTab1Mapper;
|
|
|
+import com.steerinfo.ems.emswaihoursumtab1.model.EmsWAiHourSumTab1;
|
|
|
+import com.steerinfo.ems.emswaihoursumtab1org.mapper.EmsWAiHourSumTab1OrgMapper;
|
|
|
+import com.steerinfo.ems.emswaihoursumtab1org.model.EmsWAiHourSumTab1Org;
|
|
|
import com.steerinfo.ems.emswaterrealtime.mapper.EmsWaterRealtimeMapper;
|
|
|
import com.steerinfo.ems.emswaterrealtime.model.EmsWaterRealtime;
|
|
|
import com.steerinfo.ems.emswaterrealtime.service.IEmsWaterRealtimeService;
|
|
@@ -10,6 +14,8 @@ import com.steerinfo.ems.formula.model.Formula;
|
|
|
import com.steerinfo.ems.formula.service.IFormulaService;
|
|
|
import com.steerinfo.ems.ifmesemsswapfile.service.impl.IfMesEmsSwapfileServiceImpl;
|
|
|
import com.steerinfo.ems.trmcalpoint.model.TRmCalpoint;
|
|
|
+import com.steerinfo.ems.trmcalpointexvalue.model.TRmCalpointExValue;
|
|
|
+import com.steerinfo.ems.trmcalpointexvalue.service.ITRmCalpointExValueService;
|
|
|
import com.steerinfo.framework.datasource.DataSourceKey;
|
|
|
import com.steerinfo.framework.datasource.TargetDataSource;
|
|
|
import com.steerinfo.framework.mapper.IBaseMapper;
|
|
@@ -17,11 +23,13 @@ import com.steerinfo.framework.service.impl.BaseServiceImpl;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
+import java.lang.reflect.Field;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* EmsWaterRealtime服务实现:
|
|
@@ -43,13 +51,26 @@ public class EmsWaterRealtimeServiceImpl extends BaseServiceImpl<EmsWaterRealtim
|
|
|
|
|
|
@Autowired
|
|
|
private EmsWaterRealtimeMapper emsWaterRealtimeMapper;
|
|
|
+ @Autowired
|
|
|
+ private EmsWAiHourSumTab1Mapper emsWAiHourSumTab1Mapper;
|
|
|
+ @Autowired
|
|
|
+ private EmsWAiHourSumTab1OrgMapper emsWAiHourSumTab1OrgMapper;
|
|
|
+ @Autowired
|
|
|
+ ITRmCalpointExValueService tRmCalpointExValueService;
|
|
|
+ @Autowired
|
|
|
+ private JdbcTemplate jdbcTemplate;
|
|
|
|
|
|
@Override
|
|
|
protected IBaseMapper<EmsWaterRealtime, String> getMapper() {
|
|
|
return emsWaterRealtimeMapper;
|
|
|
}
|
|
|
|
|
|
+ //更换数据源使用
|
|
|
List<EmsWaterRealtime> emsWaterRealtimeList;
|
|
|
+ List<EmsWAiHourSumTab1> emsWAiHourSumTab1s;
|
|
|
+ List<EmsWAiHourSumTab1Org> emsWAiHourSumTab1Orgs;
|
|
|
+ List<EmsWaterRealtime> emsWaterToMeterRelation;
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
@TargetDataSource(dataSourceKey = DataSourceKey.DB_OTHER)
|
|
@@ -111,49 +132,49 @@ public class EmsWaterRealtimeServiceImpl extends BaseServiceImpl<EmsWaterRealtim
|
|
|
|
|
|
@Override
|
|
|
public void getWaterTenMinutes() {
|
|
|
- int addSize = 0;
|
|
|
- int updateSize = 0;
|
|
|
- int i = 0;
|
|
|
- try {
|
|
|
- EmsWaterRealtime model;
|
|
|
- // emsWaterRealtimeMapper.selectByPrimaryKey("1");//.getWaterListByArmMeter();
|
|
|
- String clock1 = DateUtils.dateStr(new Date(),"yyyy-MM-dd HH:mm:ss");
|
|
|
- String clock2 = DateUtils.dateStr(new Date(),"yyyy-MM-dd HH:mm:ss");
|
|
|
- HashMap<String,Object> hashMap = new HashMap<String,Object>();
|
|
|
- hashMap.put("clock1",clock1);
|
|
|
- hashMap.put("clock2",clock2);
|
|
|
- try {
|
|
|
- addSize += emsWaterRealtimeMapper.insertWaterTenMinutes(hashMap);
|
|
|
- } catch (Exception e) {
|
|
|
- logger.error("主键已存在");
|
|
|
- } finally {
|
|
|
- List<EmsWaterRealtime> emsWaterRealtimeList = emsWaterRealtimeMapper.getWaterTenMinutes();
|
|
|
- StringBuffer sub = new StringBuffer();
|
|
|
- String table="EMS_WATER_TIMING";
|
|
|
- String[] tens;
|
|
|
- String tag;
|
|
|
- String sql;
|
|
|
- for (EmsWaterRealtime emsWaterRealtime : emsWaterRealtimeList){
|
|
|
- i++;
|
|
|
- tens = emsWaterRealtime.getmType().split("\\.");
|
|
|
- tag = tens[1];
|
|
|
- //多个表生成数据就填加table;
|
|
|
- table = tens[0];
|
|
|
- sql = ","+tag + " = " + "'" + emsWaterRealtime.getSumvalue() + "'";
|
|
|
- sub.append(sql);
|
|
|
- }
|
|
|
- clock2 = DateUtils.dateStr(new Date(),"yyyy-MM-dd HH:mm:ss");
|
|
|
- hashMap.put("table",table);
|
|
|
- hashMap.put("clock2",clock2);
|
|
|
- hashMap.put("sql",sub.toString());
|
|
|
- updateSize += emsWaterRealtimeMapper.updateWaterTenMinutes(hashMap);
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- } finally {
|
|
|
- }
|
|
|
- logger.info("本次总共新增水数据条数:" + addSize);
|
|
|
- logger.info("本次总共更新水数据条数:" + updateSize+";总共更新数据项"+i);
|
|
|
+ //int addSize = 0;
|
|
|
+ //int updateSize = 0;
|
|
|
+ //int i = 0;
|
|
|
+ //try {
|
|
|
+ // EmsWaterRealtime model;
|
|
|
+ // // emsWaterRealtimeMapper.selectByPrimaryKey("1");//.getWaterListByArmMeter();
|
|
|
+ // String clock1 = DateUtils.dateStr(new Date(),"yyyy-MM-dd HH:mm:ss");
|
|
|
+ // String clock2 = DateUtils.dateStr(new Date(),"yyyy-MM-dd HH:mm:ss");
|
|
|
+ // HashMap<String,Object> hashMap = new HashMap<String,Object>();
|
|
|
+ // hashMap.put("clock1",clock1);
|
|
|
+ // hashMap.put("clock2",clock2);
|
|
|
+ // try {
|
|
|
+ // addSize += emsWaterRealtimeMapper.insertWaterTenMinutes(hashMap);
|
|
|
+ // } catch (Exception e) {
|
|
|
+ // logger.error("主键已存在");
|
|
|
+ // } finally {
|
|
|
+ emsWaterToMeterRelation = emsWaterRealtimeMapper.getWaterTenMinutes();
|
|
|
+ // StringBuffer sub = new StringBuffer();
|
|
|
+ // String table="EMS_WATER_TIMING";
|
|
|
+ // String[] tens;
|
|
|
+ // String tag;
|
|
|
+ // String sql;
|
|
|
+ // for (EmsWaterRealtime emsWaterRealtime : emsWaterToMeterRelation){
|
|
|
+ // i++;
|
|
|
+ // tens = emsWaterRealtime.getmType().split("\\.");
|
|
|
+ // tag = tens[1];
|
|
|
+ // //多个表生成数据就填加table;
|
|
|
+ // table = tens[0];
|
|
|
+ // sql = ","+tag + " = " + "'" + emsWaterRealtime.getSumvalue() + "'";
|
|
|
+ // sub.append(sql);
|
|
|
+ // }
|
|
|
+ // clock2 = DateUtils.dateStr(new Date(),"yyyy-MM-dd HH:mm:ss");
|
|
|
+ // hashMap.put("table",table);
|
|
|
+ // hashMap.put("clock2",clock2);
|
|
|
+ // hashMap.put("sql",sub.toString());
|
|
|
+ // updateSize += emsWaterRealtimeMapper.updateWaterTenMinutes(hashMap);
|
|
|
+ // }
|
|
|
+ //} catch (Exception e) {
|
|
|
+ // e.printStackTrace();
|
|
|
+ //} finally {
|
|
|
+ //}
|
|
|
+ //logger.info("本次总共新增水数据条数:" + addSize);
|
|
|
+ //logger.info("本次总共更新水数据条数:" + updateSize+";总共更新数据项"+i);
|
|
|
//return addSize+updateSize;
|
|
|
}
|
|
|
|
|
@@ -197,86 +218,324 @@ public class EmsWaterRealtimeServiceImpl extends BaseServiceImpl<EmsWaterRealtim
|
|
|
});
|
|
|
// Close
|
|
|
MosaicUtils.SetCloseConnSample();
|
|
|
- //for(EmsWaterRealtime emswater:emsWaterRealtimeList) {
|
|
|
- // //Equip:Desig='11KV变电站' and Quantity:Name='累计流量'
|
|
|
- // if(emswater.getMosaicid()==null||"".equals(emswater.getMosaicid()))
|
|
|
- // {
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // sql.append(emswater.getSumvalue());
|
|
|
- // sql.append(emswater.getMosaicid());
|
|
|
- // ="update Ana set Eng='"+emswater.getSumvalue()+"' where Equip="+emswater.getMosaicid()+"";
|
|
|
- // switch (emswater.getmType()){
|
|
|
- // case "SS":
|
|
|
- // sql+=" AND Quantity="+SS+"";
|
|
|
- // break;
|
|
|
- // case "YL":
|
|
|
- // sql+=" AND Quantity="+YL+"";
|
|
|
- // break;
|
|
|
- // default:
|
|
|
- // sql+=" AND Quantity="+LJ+"";
|
|
|
- // break;
|
|
|
- // }
|
|
|
- // // Update
|
|
|
- // MosaicUtils.SetUpdateValue(sql.toString());
|
|
|
- //}
|
|
|
}
|
|
|
|
|
|
- //private static void SetOpenConnSample(MswebserviceStub stub) {
|
|
|
- // try {
|
|
|
- // MswebserviceStub.WSConnectOpen openReq = new MswebserviceStub.WSConnectOpen();
|
|
|
- // MswebserviceStub.WSConnectOpenResponse openResp = null;
|
|
|
- // // Open
|
|
|
- // openReq.setUserInfo(userInfo);
|
|
|
- //
|
|
|
- // openResp = stub.wSConnectOpen(openReq);
|
|
|
- // System.out.println("打开mosaic链接成功");
|
|
|
- // // Save UserID
|
|
|
- // userInfo.setMUserID(openResp.getId());
|
|
|
- //
|
|
|
- // } catch (RemoteException e) {
|
|
|
- // // TODO Auto-generated catch block
|
|
|
- // e.printStackTrace();
|
|
|
- // System.out.println("打开mosaic链接失败");
|
|
|
- // }
|
|
|
- //
|
|
|
- //}
|
|
|
+ /**
|
|
|
+ * 四个小时读取一次大用户水系统数据
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @TargetDataSource(dataSourceKey = DataSourceKey.DB_OTHER)
|
|
|
+ public void getWaterHour() {
|
|
|
+ if(!emsWaterToMeterRelation.equals(null) && emsWaterToMeterRelation.size()>0){
|
|
|
+ int addSize = 0;
|
|
|
+ int updateSize = 0;
|
|
|
+ int i = 0;
|
|
|
+ int size =emsWaterToMeterRelation.size();
|
|
|
+ Calendar cal = Calendar.getInstance();
|
|
|
+ //整点5个小时前
|
|
|
+ cal.add(Calendar.HOUR_OF_DAY, -5);
|
|
|
+ String clock5 = new SimpleDateFormat("yyyy-MM-dd HH").format(cal.getTime());
|
|
|
+ // 整点4小时前
|
|
|
+ cal.add(Calendar.HOUR_OF_DAY, 1);
|
|
|
+ String clock4 = new SimpleDateFormat("yyyy-MM-dd HH").format(cal.getTime());
|
|
|
+ //// 2小时前
|
|
|
+ cal.add(Calendar.HOUR_OF_DAY, 2);
|
|
|
+ String clock2 = new SimpleDateFormat("yyyy-MM-dd HH").format(cal.getTime());
|
|
|
+ // 1小时前
|
|
|
+ cal.add(Calendar.HOUR_OF_DAY, 1);
|
|
|
+ String clock1 = new SimpleDateFormat("yyyy-MM-dd HH").format(cal.getTime());
|
|
|
+ // 当前小时保留10分钟
|
|
|
+ cal.add(Calendar.HOUR_OF_DAY, 1);
|
|
|
+ String clock = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(cal.getTime());
|
|
|
+ // 24小时前
|
|
|
+ cal.add(Calendar.DAY_OF_YEAR, -1);
|
|
|
+ String clock24 = new SimpleDateFormat("yyyy-MM-dd HH").format(cal.getTime());
|
|
|
+ HashMap<String,Object> historyMap = new HashMap<>(8);
|
|
|
+ String[] tens;
|
|
|
+ StringBuffer codes = new StringBuffer();
|
|
|
+ String tags;
|
|
|
+ StringBuffer whens = new StringBuffer();
|
|
|
+ List<String> tagList = new ArrayList<>(size-1);
|
|
|
+ List<String> codeList = new ArrayList<>(size-1);
|
|
|
+ for (EmsWaterRealtime emsWaterRealtime : emsWaterToMeterRelation){
|
|
|
+ tens = emsWaterRealtime.getmType().split("\\.");
|
|
|
+ whens.append(" when '");
|
|
|
+ whens.append(emsWaterRealtime.getAddresscode());
|
|
|
+ whens.append("' then '");
|
|
|
+ whens.append(tens[1]);
|
|
|
+ whens.append("'");
|
|
|
+ tagList.add(tens[1]);
|
|
|
+ codeList.add(emsWaterRealtime.getAddresscode());
|
|
|
+ }
|
|
|
+ codes.append("'");
|
|
|
+ codes.append(codeList.toString().replaceAll("(?:\\[|null|\\]| +)", "")
|
|
|
+ .replaceAll(",","','"));
|
|
|
+ codes.append("'");
|
|
|
+ tags = tagList.toString().replaceAll("(?:\\[|null|\\]| +)", "");
|
|
|
+ historyMap.put("whens",whens.toString());
|
|
|
+ historyMap.put("clock4",clock4);
|
|
|
+ historyMap.put("clock",clock);
|
|
|
+ historyMap.put("codes", codes.toString());
|
|
|
+ historyMap.put("tags", tags);
|
|
|
+ emsWAiHourSumTab1s = emsWAiHourSumTab1Mapper.getHistoryData(historyMap);
|
|
|
+ emsWAiHourSumTab1Orgs = emsWAiHourSumTab1OrgMapper.getHistoryDataOrg(historyMap);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void getWaterHour(String clock, String clock2) {
|
|
|
+ if(!emsWaterToMeterRelation.equals(null) && emsWaterToMeterRelation.size()>0){
|
|
|
+ int i = 0;
|
|
|
+ int size =emsWaterToMeterRelation.size();
|
|
|
+ HashMap<String,Object> historyMap = new HashMap<String,Object>(8);
|
|
|
+ String[] tens;
|
|
|
+ StringBuffer codes = new StringBuffer();
|
|
|
+ String tags;
|
|
|
+ StringBuffer whens = new StringBuffer();
|
|
|
+ List<String> tagList = new ArrayList<>(size-1);
|
|
|
+ List<String> codeList = new ArrayList<>(size-1);
|
|
|
+ for (EmsWaterRealtime emsWaterRealtime : emsWaterToMeterRelation){
|
|
|
+ tens = emsWaterRealtime.getmType().split("\\.");
|
|
|
+ whens.append(" when '");
|
|
|
+ whens.append(emsWaterRealtime.getAddresscode());
|
|
|
+ whens.append("' then '");
|
|
|
+ whens.append(tens[1]);
|
|
|
+ whens.append("'");
|
|
|
+ tagList.add(tens[1]);
|
|
|
+ codeList.add(emsWaterRealtime.getAddresscode());
|
|
|
+ }
|
|
|
+ codes.append("'");
|
|
|
+ codes.append(codeList.toString().replaceAll("(?:\\[|null|\\]| +)", "")
|
|
|
+ .replaceAll(",","','"));
|
|
|
+ codes.append("'");
|
|
|
+ tags = tagList.toString().replaceAll("(?:\\[|null|\\]| +)", "");
|
|
|
+ historyMap.put("whens",whens.toString());
|
|
|
+ historyMap.put("clock4",clock);
|
|
|
+ historyMap.put("clock",clock2);
|
|
|
+ historyMap.put("codes", codes.toString());
|
|
|
+ historyMap.put("tags", tags);
|
|
|
+ emsWAiHourSumTab1s = emsWAiHourSumTab1Mapper.getHistoryData(historyMap);
|
|
|
+ emsWAiHourSumTab1Orgs = emsWAiHourSumTab1OrgMapper.getHistoryDataOrg(historyMap);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- //// 更新点的值
|
|
|
- //private static void SetUpdateValue(MswebserviceStub stub,String sql) {
|
|
|
- // // 0x0002:5365:2e
|
|
|
- // MswebserviceStub.DataResult queryData = new MswebserviceStub.DataResult();
|
|
|
- //
|
|
|
- // try {
|
|
|
- //
|
|
|
- // //String sql = "update Ana set(Eng,User)=(100,0x0002:5365:2e) where AltId='PUMP1_SPEED' ";
|
|
|
- // // Dig表为 update Dig set(Cs,User)=(1,0x0002:5365:2e) update Ana set Eng='1812482' where Equip='0x06f4:0bfe:1e' AND Quantity='0x006a:489c:22'
|
|
|
- //
|
|
|
- // userInfo.setComText(sql);
|
|
|
- // MswebserviceStub.WSQueryExecute query = new MswebserviceStub.WSQueryExecute();
|
|
|
- // query.setUserInfo(userInfo);
|
|
|
- // queryData = stub.wSQueryExecute(query);
|
|
|
- // //System.out.println(queryData.getData());
|
|
|
- //
|
|
|
- // } catch (RemoteException e) {
|
|
|
- // // TODO Auto-generated catch block
|
|
|
- // e.printStackTrace();
|
|
|
- // }
|
|
|
- //}
|
|
|
+ /**
|
|
|
+ * 四个小时读取一次大用户水系统数据到小时表
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void getHistoryWaterToHour() {
|
|
|
+ //反射使用
|
|
|
+ Object o;
|
|
|
+ String varName;
|
|
|
+ boolean accessFlag=false;
|
|
|
+ Field[] fields;
|
|
|
+ //赋值使用
|
|
|
+ String sql;
|
|
|
+ Double val = 0d;
|
|
|
+ BigDecimal tab_val5 = BigDecimal.ZERO;
|
|
|
+ BigDecimal org_val5 = BigDecimal.ZERO;
|
|
|
+ //存储5小时前的值,禁止循环读取数据
|
|
|
+ Integer j =0;
|
|
|
+ Double [] val5s = new Double[0];
|
|
|
+ String [] clock5s = new String[0];
|
|
|
+ Calendar cal = Calendar.getInstance();
|
|
|
+ Calendar cal5 = Calendar.getInstance();
|
|
|
+ //当前小时
|
|
|
+ String clock = new SimpleDateFormat("yyyy-MM-dd HH").format(cal.getTime());
|
|
|
+ //当前整点5个小时前
|
|
|
+ cal.add(Calendar.HOUR_OF_DAY, -5);
|
|
|
+ String clock5 = new SimpleDateFormat("yyyy-MM-dd HH").format(cal.getTime());
|
|
|
+ //异常处理使用
|
|
|
+ TRmCalpointExValue tce;
|
|
|
+ try{
|
|
|
+ if(!emsWAiHourSumTab1Orgs.equals(null)&&emsWAiHourSumTab1Orgs.size()>0){
|
|
|
+ for(EmsWAiHourSumTab1 model : emsWAiHourSumTab1s) {
|
|
|
+ fields = model.getClass().getDeclaredFields();
|
|
|
+ for(int i = 0, len = fields.length; i < len; i++) {
|
|
|
+ // 对于每个属性,获取属性名
|
|
|
+ varName = fields[i].getName().trim();
|
|
|
+ try {
|
|
|
+ // 获取原来的访问控制权限
|
|
|
+ accessFlag = fields[i].isAccessible();
|
|
|
+ // 修改访问控制权限
|
|
|
+ fields[i].setAccessible(true);
|
|
|
+ try {
|
|
|
+ // 获取在对象f中属性fields[i]对应的对象中的变量
|
|
|
+ o = fields[i].get(model);
|
|
|
+ if("class java.lang.Double".equals(fields[i].getGenericType().toString())){
|
|
|
+ //Method m = model.getClass().getMethod("get"+name);
|
|
|
+ //Double value = (Double) m.invoke(model);
|
|
|
+ if(o != null){
|
|
|
+ //val=new BigDecimal(String.valueOf((Double) o));
|
|
|
+ //fields[i].set(model,val.setScale(1, RoundingMode.HALF_UP).doubleValue());
|
|
|
+ } else {
|
|
|
+ tce = new TRmCalpointExValue();
|
|
|
+ tce.setItemid(varName);
|
|
|
+ // 准点值错误
|
|
|
+ tce.setExtype("3");
|
|
|
+ tce.setClock(clock);
|
|
|
+ tce.setCreatetime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
|
|
|
+ .format(new Date()));
|
|
|
+ tce.setBz("准点用量值读取失败,clock:" + clock + ",col:" + varName + ",table:"
|
|
|
+ + model.getClass().getName());
|
|
|
+ tRmCalpointExValueService.add(tce);
|
|
|
+ //用量直接赋值0
|
|
|
+ val=0d;
|
|
|
+ fields[i].set(model,val);
|
|
|
+ //if(val5s[i].equals(BigDecimal.ZERO)){
|
|
|
|
|
|
- //// 关闭mosaic链接
|
|
|
- //private static void SetCloseConnSample(MswebserviceStub stub) {
|
|
|
- // MswebserviceStub.WSConnectClose closeReq = new MswebserviceStub.WSConnectClose();
|
|
|
- // closeReq.setUserInfo(userInfo);
|
|
|
- // try {
|
|
|
- // stub.wSConnectClose(closeReq);
|
|
|
- // userInfo = null;
|
|
|
- // System.out.println("关闭mosaic链接成功");
|
|
|
- // } catch (RemoteException e) {
|
|
|
- // // TODO Auto-generated catch block
|
|
|
- // e.printStackTrace();
|
|
|
- // }
|
|
|
- //}
|
|
|
+ //logger.error("准点数据查询失败,clock:" + clock);
|
|
|
+ // 当前小时准点值 用量直接赋值0
|
|
|
+ //sql = "select " + varName + " from EMS_W_AI_HOUR_SUM_TAB1 where CLOCK = '" + clock5+"'" ;
|
|
|
+ //try {
|
|
|
+ // tab_val5 = jdbcTemplate.queryForObject(sql, BigDecimal.class);
|
|
|
+ // val5s[i]=tab_val5.setScale(0, RoundingMode.DOWN);
|
|
|
+ // val = tab_val5;
|
|
|
+ //} catch (Exception e){
|
|
|
+ // val=BigDecimal.ZERO;
|
|
|
+ // tce.setItemid(varName);
|
|
|
+ // // 准点值错误
|
|
|
+ // tce.setExtype("11");
|
|
|
+ // tce.setClock(clock5);
|
|
|
+ // tce.setCreatetime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
|
|
|
+ // .format(new Date()));
|
|
|
+ // tce.setBz("5小时前准点用量值读取失败,clock:" + clock + ",col:" + varName + ",table:"
|
|
|
+ // + model.getClass().getName());
|
|
|
+ // tRmCalpointExValueService.add(tce);
|
|
|
+ //}
|
|
|
+ //} else {
|
|
|
+ // val = val5s[i];
|
|
|
+ //}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //System.err.println("传入的对象中包含一个如下的变量:" + varName + " = " + o);
|
|
|
+ } catch (IllegalAccessException e) {
|
|
|
+ // TODO Auto-generated catch block
|
|
|
+ e.printStackTrace();
|
|
|
+ } finally {
|
|
|
+ // 恢复访问控制权限
|
|
|
+ fields[i].setAccessible(accessFlag);
|
|
|
+ }
|
|
|
+ } catch (IllegalArgumentException ex) {
|
|
|
+ ex.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(emsWAiHourSumTab1Mapper.updateByPrimaryKeySelective(model)==0){
|
|
|
+ emsWAiHourSumTab1Mapper.insertSelective(model);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!emsWAiHourSumTab1Orgs.equals(null)&&emsWAiHourSumTab1Orgs.size()>0){
|
|
|
+ clock5s=new String[emsWAiHourSumTab1Orgs.size()];
|
|
|
+ for(EmsWAiHourSumTab1Org model : emsWAiHourSumTab1Orgs) {
|
|
|
+ fields = model.getClass().getDeclaredFields();
|
|
|
+ for(int i = 0, len = fields.length; i < len; i++) {
|
|
|
+ if(val5s.length==0){
|
|
|
+ val5s=new Double[fields.length];
|
|
|
+ Arrays.fill(val5s,0.0d);
|
|
|
+ }
|
|
|
+ // 对于每个属性,获取属性名
|
|
|
+ varName = fields[i].getName().trim();
|
|
|
+ try {
|
|
|
+ // 获取原来的访问控制权限
|
|
|
+ accessFlag = fields[i].isAccessible();
|
|
|
+ // 修改访问控制权限
|
|
|
+ fields[i].setAccessible(true);
|
|
|
+ try {
|
|
|
+ // 获取在对象f中属性fields[i]对应的对象中的变量
|
|
|
+ o = fields[i].get(model);
|
|
|
+ if(i==0){
|
|
|
+ clock5s[j]=o.toString();
|
|
|
+ }
|
|
|
+ if("class java.lang.Double".equals(fields[i].getGenericType().toString().trim())){
|
|
|
+ //Method m = model.getClass().getMethod("get"+name);
|
|
|
+ //Double value = (Double) m.invoke(model);
|
|
|
+ if(o != null){
|
|
|
+ //val=new BigDecimal(String.valueOf(o));
|
|
|
+ //fields[i].set(model,val.setScale(1, RoundingMode.HALF_UP).doubleValue());
|
|
|
+ } else {
|
|
|
+ // 准点值错误
|
|
|
+ tce = new TRmCalpointExValue();
|
|
|
+ tce.setItemid(varName);
|
|
|
+ tce.setExtype("3");
|
|
|
+ tce.setClock(clock);
|
|
|
+ tce.setCreatetime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
|
|
|
+ .format(new Date()));
|
|
|
+ tce.setBz("准点仪表值读取失败,获取5小时前数据clock:" + clock + ",col:" + varName
|
|
|
+ + ",table:" + model.getClass().getName());
|
|
|
+ tRmCalpointExValueService.add(tce);
|
|
|
+ //logger.error("准点数据查询失败,clock:" + clock);
|
|
|
+ if(val5s[i]==(0.0d)) {
|
|
|
+ // 5小时前准点值,当前小时
|
|
|
+ clock5s[j]+=":00:00";
|
|
|
+ cal5.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(clock5s[j]));
|
|
|
+ //上个小时
|
|
|
+ cal5.add(Calendar.HOUR_OF_DAY, -1);
|
|
|
+ clock5 = new SimpleDateFormat("yyyy-MM-dd HH").format(cal.getTime());
|
|
|
+ sql = "select " + varName + " from EMS_W_AI_HOUR_SUM_TAB1_ORG where CLOCK = '" + clock5 + "'";
|
|
|
+ try {
|
|
|
+ val5s[i] = jdbcTemplate.queryForObject(sql, Double.class);
|
|
|
+ val = val5s[i];
|
|
|
+ } catch (Exception e) {
|
|
|
+ val = 0d;
|
|
|
+ tce = new TRmCalpointExValue();
|
|
|
+ tce.setItemid(varName);
|
|
|
+ // 准点值错误
|
|
|
+ tce.setExtype("11");
|
|
|
+ tce.setClock(clock5);
|
|
|
+ tce.setCreatetime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
|
|
|
+ .format(new Date()));
|
|
|
+ tce.setBz("5小时前准点仪表值读取失败,clock:" + clock + ",col:" + varName + ",table:"
|
|
|
+ + model.getClass().getName());
|
|
|
+ tRmCalpointExValueService.add(tce);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ val=val5s[i];
|
|
|
+ }
|
|
|
+ fields[i].set(model,val);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //System.err.println("传入的对象中包含一个如下的变量:" + varName + " = " + o);
|
|
|
+ } catch (IllegalAccessException e) {
|
|
|
+ // TODO Auto-generated catch block
|
|
|
+ e.printStackTrace();
|
|
|
+ } finally {
|
|
|
+ // 恢复访问控制权限
|
|
|
+ fields[i].setAccessible(accessFlag);
|
|
|
+ }
|
|
|
+ } catch (IllegalArgumentException ex) {
|
|
|
+ ex.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(emsWAiHourSumTab1OrgMapper.updateByPrimaryKeySelective(model)==0){
|
|
|
+ emsWAiHourSumTab1OrgMapper.insertSelective(model);
|
|
|
+ }
|
|
|
+ j++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(emsWAiHourSumTab1Orgs.size()==0||emsWAiHourSumTab1s.size()==0){
|
|
|
+ tce = new TRmCalpointExValue();
|
|
|
+ tce.setItemid("数据传输错误");
|
|
|
+ // 准点值错误
|
|
|
+ tce.setExtype("12");
|
|
|
+ tce.setClock(clock);
|
|
|
+ tce.setCreatetime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
|
|
|
+ .format(new Date()));
|
|
|
+ tce.setBz("数据传输错误,无数据;请联系管理员");
|
|
|
+ tRmCalpointExValueService.add(tce);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ tce = new TRmCalpointExValue();
|
|
|
+ tce.setItemid("数据传输错误");
|
|
|
+ // 准点值错误
|
|
|
+ tce.setExtype("12");
|
|
|
+ tce.setClock(clock);
|
|
|
+ tce.setCreatetime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
|
|
|
+ .format(new Date()));
|
|
|
+ tce.setBz("数据传输错误,无数据;请联系管理员");
|
|
|
+ tRmCalpointExValueService.add(tce);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
@Autowired
|
|
|
IFormulaService formulaService;
|