瀏覽代碼

电小时数据获取,月度生成高炉考虑半天检修

QuietShadow 3 年之前
父節點
當前提交
ddf8d932a3

+ 3 - 4
src/main/java/com/steerinfo/ems/emsetiming/mapper/EmsETimingMapper.java

@@ -1,13 +1,12 @@
 package com.steerinfo.ems.emsetiming.mapper;
 
-import com.steerinfo.framework.mapper.IBaseMapper;
 import com.steerinfo.ems.emsetiming.model.EmsETiming;
-
-import java.util.Map;
-
+import com.steerinfo.framework.mapper.IBaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Map;
+
 @Mapper
 public interface EmsETimingMapper extends IBaseMapper<EmsETiming, String> {
 	/**

+ 5 - 4
src/main/java/com/steerinfo/ems/emsetiming/service/IEmsETimingService.java

@@ -1,10 +1,7 @@
 package com.steerinfo.ems.emsetiming.service;
 
-import com.steerinfo.framework.service.IBaseService;
-
-import java.util.Map;
-
 import com.steerinfo.ems.emsetiming.model.EmsETiming;
+import com.steerinfo.framework.service.IBaseService;
 
 /**
  * EmsETiming服务接口:
@@ -24,4 +21,8 @@ public interface IEmsETimingService extends IBaseService<EmsETiming, String>{
 	 *  计量点电数据定时获取(通过rtdb的java客户端,访问API接口获取数据)
 	 */
     void getData();
+	/**
+	 *  计量点电数据定时获取(读取RtTable)
+	 */
+	void getETimingTenData();
 }

+ 89 - 19
src/main/java/com/steerinfo/ems/emsetiming/service/impl/EmsETimingServiceImpl.java

@@ -1,13 +1,5 @@
 package com.steerinfo.ems.emsetiming.service.impl;
 
-import com.steerinfo.framework.mapper.IBaseMapper;
-import com.steerinfo.framework.service.impl.BaseServiceImpl;
-import com.steerinfo.rtdb.Client;
-import com.steerinfo.rtdb.ClientConfig;
-import com.steerinfo.rtdb.ClientImpl;
-import com.steerinfo.rtdb.SingleSocketChannelProviderImpl;
-import com.steerinfo.rtdb.SocketChannelProvider;
-import com.steerinfo.ems.emsetiming.model.EmsETiming;
 import com.alibaba.fastjson.JSONObject;
 import com.steerinfo.ems.Utils.EmsEAiUtil;
 import com.steerinfo.ems.emseaihoursumtab1.mapper.EmsEAiHourSumTab1Mapper;
@@ -15,24 +7,22 @@ import com.steerinfo.ems.emseaihoursumtab1.model.EmsEAiHourSumTab1;
 import com.steerinfo.ems.emseaihoursumtab1org.mapper.EmsEAiHourSumTab1OrgMapper;
 import com.steerinfo.ems.emseaihoursumtab1org.model.EmsEAiHourSumTab1Org;
 import com.steerinfo.ems.emsetiming.mapper.EmsETimingMapper;
+import com.steerinfo.ems.emsetiming.model.EmsETiming;
 import com.steerinfo.ems.emsetiming.service.IEmsETimingService;
-
-import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
+import com.steerinfo.ems.rttable.mapper.RttableMapper;
+import com.steerinfo.ems.rttable.model.Rttable;
+import com.steerinfo.framework.mapper.IBaseMapper;
+import com.steerinfo.framework.service.impl.BaseServiceImpl;
+import com.steerinfo.rtdb.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.text.SimpleDateFormat;
+import java.util.*;
+
 /**
  * EmsETiming服务实现:
  * @author generator
@@ -60,6 +50,9 @@ public class EmsETimingServiceImpl extends BaseServiceImpl<EmsETiming, String> i
     @Autowired
     private EmsEAiHourSumTab1OrgMapper emsEAiHourSumTab1OrgMapper;
 
+	@Autowired
+	private RttableMapper rttableMapper;
+
     @Override
     protected IBaseMapper<EmsETiming, String> getMapper() {
         return emsETimingMapper;
@@ -215,4 +208,81 @@ public class EmsETimingServiceImpl extends BaseServiceImpl<EmsETiming, String> i
             throw new RuntimeException("出错了:" + e.getMessage());
         }
     }
+
+	@Override
+	public void getETimingTenData() {
+		int addSize = 0;
+		List<Rttable> rttableList = rttableMapper.selectElectricAltId();
+		if(rttableList!=null && rttableList.size()>0) {
+			try {
+				Calendar cal = Calendar.getInstance();
+				cal.set(Calendar.SECOND, 0);
+				int mimute = (cal.get(Calendar.MINUTE) + 1) / 15 * 15;
+				cal.set(Calendar.MINUTE, mimute);
+				String clock = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(cal.getTime());
+				EmsETiming e = new EmsETiming();
+				e.setClock(clock);
+				String[] tens;
+				String tag;
+				for (Rttable rttable : rttableList) {
+					tens = rttable.getNote().split("\\.");
+					tag = tens[1];
+					e.setVal(tag.substring(1), rttable.getRtvalue().toString(), tag.substring(0, 1).toLowerCase());
+					addSize ++ ;
+				}
+				e.setInsertTime(new Date());
+				if (emsETimingMapper.updateByPrimaryKeySelective(e) == 0) {
+					emsETimingMapper.insert(e);
+				}
+			} catch (Exception e) {
+				e.printStackTrace();
+			} finally {
+				logger.info("本次总共新增电力力十分钟数据条数:" + addSize);
+			}
+		}
+		try {
+		// 1小时30分钟后,更新前一小时表数据(采集器有延时)
+		Calendar cal = Calendar.getInstance();
+		int minute = cal.get(Calendar.MINUTE);
+		if(minute>=13 && minute < 25){
+			// 2019-11-20 09
+			String clke = new SimpleDateFormat("yyyy-MM-dd HH").format(cal.getTime());
+			cal.add(Calendar.HOUR_OF_DAY, -1);
+			// 2019-11-20 08
+			String clk = new SimpleDateFormat("yyyy-MM-dd HH").format(cal.getTime());
+			// String minuClock = clk+":00"; // 2019-11-20 08:00
+			// 2019-11-20 09:00
+			String minuClocke = clke+":00";
+			//EmsEAiHourSumTab1 eh = emsEAiHourSumTab1Mapper.selectByPrimaryKey(clk);
+			//if (eh==null){
+				// 从EMS_E_TIMING读取小时准点值
+				Map<String, Object> mp = emsETimingMapper.getHourPointVal(minuClocke);
+				// 整点数据
+				EmsEAiHourSumTab1Org eeho = new EmsEAiHourSumTab1Org();
+				if(mp!=null && mp.size()>0){
+					eeho.setClock(clke);
+					eeho.setInsertTime(new Date());
+					eeho = EmsEAiUtil.setValByMap(eeho, mp);
+					emsEAiHourSumTab1OrgMapper.insert(eeho);
+				}
+				// 小时累计值 = 当前小时准点值 - 前1小时小时准点值
+				EmsEAiHourSumTab1Org eehol = emsEAiHourSumTab1OrgMapper.selectByPrimaryKey(clk);
+				if(eehol==null || eehol.getClock()==null || eehol.getClock().isEmpty() || eeho.getClock()==null || eeho.getClock().isEmpty()){
+					logger.error("数据表EMS_E_AI_HOUR_SUM_TAB1_ORG缺少数据:" + clk);
+				}else{
+					EmsEAiHourSumTab1 eeh = new EmsEAiHourSumTab1();
+					eeh.setClock(clk);
+					eeh.setInsertTime(new Date());
+					eeh = EmsEAiUtil.setVal(eeh, eeho, eehol);
+					emsEAiHourSumTab1Mapper.insert(eeh);
+				}
+			//}
+		}
+		logger.info(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "-计量点电数据定时获取任务执行完毕");
+		// System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "-计量点电数据定时获取任务执行完毕");
+	} catch (Exception e) {
+		//e.printStackTrace();
+		throw new RuntimeException("出错了:" + e.getMessage());
+	}
+	}
 }

+ 6 - 2
src/main/java/com/steerinfo/ems/emsprodplanyear/controller/EmsProdplanYearController.java

@@ -147,6 +147,7 @@ public class EmsProdplanYearController extends BaseRESTfulController {
             String unit = "008";
             String productid = "";
             String workProcid = "";
+            Double days = Double.valueOf(dayMax);
             switch (model.getParentid()) {
                 case "LG":
                     sumWeight = model.getWeight().intValue();
@@ -161,6 +162,7 @@ public class EmsProdplanYearController extends BaseRESTfulController {
                     sumWeight = model.getWeight().intValue();
                     productid="生铁";
                     unit="008";
+                    days -= 0.5;
                     break;
                 case "SJ":
                     sumWeight = model.getWeight().intValue();
@@ -232,7 +234,7 @@ public class EmsProdplanYearController extends BaseRESTfulController {
                     break;
                 default: break;
             }
-            int[] avgWeight = emsProdplanYearService.avgWeight(sumWeight,dayMax);
+            int[] avgWeight = emsProdplanYearService.avgWeight(sumWeight,dayMax, days);
             for (int k = 0;k < dayMax;k++) {
                 EmsProdplanMonth monModel = new EmsProdplanMonth();
                 c.setTime(model.getYearmonth());
@@ -382,6 +384,7 @@ public class EmsProdplanYearController extends BaseRESTfulController {
             String unit = "008";
             String productid = "";
             String workProcid = "";
+            Double days = Double.valueOf(dayMax);
             switch (model.getParentid()) {
                 case "LG":
                     sumWeight = model.getWeight().intValue();
@@ -396,6 +399,7 @@ public class EmsProdplanYearController extends BaseRESTfulController {
                     sumWeight = model.getWeight().intValue();
                     productid="生铁";
                     unit="008";
+                    days -= 0.5;
                     break;
                 case "SJ":
                     sumWeight = model.getWeight().intValue();
@@ -472,7 +476,7 @@ public class EmsProdplanYearController extends BaseRESTfulController {
                     break;
                 default: break;
             }
-            int[] avgWeight = emsProdplanYearService.avgWeight(sumWeight,dayMax);
+            int[] avgWeight = emsProdplanYearService.avgWeight(sumWeight,dayMax, days);
             for (int k = 0;k < dayMax;k++) {
                 EmsProdplanMonth monModel = new EmsProdplanMonth();
                 c.setTime(model.getYearmonth());

+ 1 - 1
src/main/java/com/steerinfo/ems/emsprodplanyear/service/IEmsProdplanYearService.java

@@ -60,7 +60,7 @@ public interface IEmsProdplanYearService extends IBaseService<EmsProdplanYear, S
      * @param day 天数
      * @return 每天的数量
      */
-    public int[] avgWeight(Integer sumWeight,Integer day);
+    public int[] avgWeight(Integer sumWeight,Integer day, Double days);
 
     /**
      * 年计划根据模板导入

+ 2 - 2
src/main/java/com/steerinfo/ems/emsprodplanyear/service/impl/EmsProdplanYearServiceImpl.java

@@ -81,9 +81,9 @@ public class EmsProdplanYearServiceImpl extends BaseServiceImpl<EmsProdplanYear,
     }
 
     @Override
-    public int[] avgWeight(Integer sumWeight, Integer day){
+    public int[] avgWeight(Integer sumWeight, Integer day, Double days){
         int[] weightArr = new int[day];
-       Integer avgWeight = sumWeight / day;
+       Integer avgWeight =(int) (sumWeight / days);
         for(int i = 0;i<day-1;i++){
             weightArr[i] = avgWeight;
         }

+ 26 - 29
src/main/java/com/steerinfo/ems/emswaterrealtime/service/impl/EmsWaterRealtimeServiceImpl.java

@@ -92,35 +92,32 @@ public class EmsWaterRealtimeServiceImpl extends BaseServiceImpl<EmsWaterRealtim
             EmsWaterRealtime model;
             // emsWaterRealtimeMapper.selectByPrimaryKey("1");//.getWaterListByArmMeter();
             //List<EmsWaterRealtime> emsWaterRealtimeList = getWaterListByArmMeter();
-            updateSize = emsWaterRealtimeMapper.batchUpdate(emsWaterRealtimeList);
-            //for (EmsWaterRealtime emsWaterRealtime : emsWaterRealtimeList){
-            //    emsWaterRealtime.setReadtime(DateUtils.dateStr(new Date(),"yyyy-MM-dd HH:mm:ss"));
-            //    model = emsWaterRealtimeMapper.selectByPrimaryKey(emsWaterRealtime.getMeterid());
-            //    if(model !=null){
-            //        emsWaterRealtimeMapper.updateByPrimaryKey(emsWaterRealtime);
-            //        updateSize+=1;
-            //        continue;
-            //    }else {
-            //        addSize+= emsWaterRealtimeMapper.insert(emsWaterRealtime);
-            //    }
-            //}
-            //String clock = DateUtils.dateStr(new Date(),"yyyy-MM-dd HH:mm:ss");
-            //HashMap<String,Object> hashMap = new HashMap<String,Object>();
-            //hashMap.put("clock",clock);
-            //List<EmsWaterRealtime> emsWaterRealtimeList = emsWaterRealtimeMapper.getWaterTenMinutes();
-            //StringBuffer sub = new StringBuffer();
-            //String table="EMS_WATER";
-            //for (EmsWaterRealtime emsWaterRealtime : emsWaterRealtimeList){
-            //    String[] tens = emsWaterRealtime.getmMaterial().split("\\.");
-            //    String tag = tens[1];
-            //    //多个表生成数据就填加table;
-            //    table = tens[0];
-            //    String sql = ","+tag + " = " + "'" + emsWaterRealtime.getSumvalue() + "'";
-            //    sub.append(sql);
-            //}
-            //hashMap.put("table",table);
-            //hashMap.put("sql",sub.toString());
-            //updateSize += emsWaterRealtimeMapper.updateWaterMinutes(hashMap);
+            //updateSize = emsWaterRealtimeMapper.batchUpdate(emsWaterRealtimeList);
+            for (EmsWaterRealtime emsWaterRealtime : emsWaterRealtimeList){
+                emsWaterRealtime.setReadtime(new Date());
+                if(emsWaterRealtimeMapper.updateByPrimaryKeySelective(emsWaterRealtime) == 0){
+                    addSize+= emsWaterRealtimeMapper.insertSelective(emsWaterRealtime);
+                }else {
+                    updateSize+= 1;
+                }
+            }
+            String clock = DateUtils.dateStr(new Date(),"yyyy-MM-dd HH:mm:ss");
+            HashMap<String,Object> hashMap = new HashMap<String,Object>();
+            hashMap.put("clock",clock);
+            List<EmsWaterRealtime> emsWaterRealtimeList = emsWaterRealtimeMapper.getWaterTenMinutes();
+            StringBuffer sub = new StringBuffer();
+            String table="EMS_WATER";
+            for (EmsWaterRealtime emsWaterRealtime : emsWaterRealtimeList){
+                String[] tens = emsWaterRealtime.getmMaterial().split("\\.");
+                String tag = tens[1];
+                //多个表生成数据就填加table;
+                table = tens[0];
+                String sql = ","+tag + " = " + "'" + emsWaterRealtime.getSumvalue() + "'";
+                sub.append(sql);
+            }
+            hashMap.put("table",table);
+            hashMap.put("sql",sub.toString());
+            updateSize += emsWaterRealtimeMapper.updateWaterMinutes(hashMap);
         } catch (Exception e) {
             e.printStackTrace();
         } finally {

+ 2 - 0
src/main/java/com/steerinfo/ems/rttable/mapper/RttableMapper.java

@@ -18,4 +18,6 @@ public interface RttableMapper extends IBaseMapper<Rttable, BigDecimal> {
     int updatePowerMinutes(HashMap<String, Object> HashMap);
 
     List<Rttable> selectPowerAltId();
+
+    List<Rttable> selectElectricAltId();
 }

+ 6 - 0
src/main/java/com/steerinfo/ems/rttable/mapper/RttableMapper.xml

@@ -288,4 +288,10 @@
     INNER JOIN RTTABLE p ON c.TAGID = p.ALTID
     AND c.ENERGYTYPEID = 'P' AND c.ITEMTYPE='AUTO'  AND c.USEFLAG = '1' AND RTVALUE IS NOT NULL
   </select>
+  <select id="selectElectricAltId" resultMap="BaseResultMap">
+    SELECT p.ALTID,p.RTVALUE,BTYPE2 AS NOTE
+    FROM T_RM_CALPOINT c
+                 INNER JOIN RTTABLE p ON c.TAGID = p.ALTID
+            AND c.ENERGYTYPEID = 'E' AND c.ITEMTYPE='AUTO'  AND c.USEFLAG = '1' AND RTVALUE IS NOT NULL
+  </select>
 </mapper>

+ 6 - 1
src/main/java/com/steerinfo/task/SpringCronTask.java

@@ -365,7 +365,12 @@ public class SpringCronTask implements SchedulingConfigurer{
 						 e.printStackTrace();
 					 }
 					 logger.info("定时任务"+taskId+"执行时长:" + (System.currentTimeMillis() - start)/1000 + "秒");
-				 }
+				 } else if (taskId.equalsIgnoreCase("107")) { // 电统计(从mosaic到EMS)
+					long start = System.currentTimeMillis();
+					//emsETimingService.getData();
+					 emsETimingService.getETimingTenData();
+					logger.info("定时任务"+taskId+"执行时长:" + (System.currentTimeMillis() - start)/1000 + "秒");
+				}
 // 				 else if (taskId.equalsIgnoreCase("106")) {
 //					// 获取MES水质监测数据
 //					long start = System.currentTimeMillis();