From 52ff3bda72646a532c3297e4843bc4d5aee8b949 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期二, 03 九月 2024 17:20:49 +0800
Subject: [PATCH] 采集数据增加employeeid的设置

---
 collect/src/main/java/com/qianwen/mdc/collect/service/PackedDataService.java                     |    7 
 collect/src/main/java/com/qianwen/mdc/collect/service/DeviceStateAggregateNoFeedbackService.java |   16 ++
 collect/src/main/java/com/qianwen/mdc/collect/utils/redis/RedisUtil.java                         |    2 
 collect/src/main/java/com/qianwen/mdc/collect/service/CollectDataService.java                    |    5 
 collect/src/main/java/com/qianwen/mdc/collect/mapper/iotdb/AggregateStateMapper.java             |   13 ++
 collect/src/main/resources/com/qianwen/mdc/collect/mapper/iotdb/AggregateStateMapper.xml         |   50 ++++++++++
 collect/src/main/java/com/qianwen/mdc/collect/mapper/mgr/EmployeeOnOffWorkMapper.java            |    7 +
 collect/src/main/java/com/qianwen/mdc/collect/cache/WorkstationCache.java                        |   75 ++++++++------
 collect/src/main/resources/com/qianwen/mdc/collect/mapper/iotdb/DeviceStateMapper.xml            |   23 +++
 collect/src/main/java/com/qianwen/mdc/collect/controller/StateController.java                    |   35 +++++--
 collect/src/main/java/com/qianwen/mdc/collect/handler/DeviceStatusDataHandler.java               |   21 +--
 11 files changed, 183 insertions(+), 71 deletions(-)

diff --git a/collect/src/main/java/com/qianwen/mdc/collect/cache/WorkstationCache.java b/collect/src/main/java/com/qianwen/mdc/collect/cache/WorkstationCache.java
index 6bbdfae..ac0eb4c 100644
--- a/collect/src/main/java/com/qianwen/mdc/collect/cache/WorkstationCache.java
+++ b/collect/src/main/java/com/qianwen/mdc/collect/cache/WorkstationCache.java
@@ -17,21 +17,14 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 //import com.qianwen.core.redis.cache.BladeRedis;
 import com.qianwen.mdc.collect.dto.WorkstationDTO;
+import com.qianwen.mdc.collect.entity.mgr.EmployeeOnOffWork;
 import com.qianwen.mdc.collect.entity.mgr.GlobalWcsOfRps;
 import com.qianwen.mdc.collect.entity.mgr.Workstation;
+import com.qianwen.mdc.collect.mapper.mgr.EmployeeOnOffWorkMapper;
 import com.qianwen.mdc.collect.mapper.mgr.GlobalWcsOfRpsMapper;
 import com.qianwen.mdc.collect.service.WorkstationService;
 import com.qianwen.mdc.collect.utils.redis.RedisUtil;
-
 import cn.hutool.core.util.ObjectUtil;
-//import com.qianwen.posting.convert.WorkstationConvert;
-
-//import com.qianwen.posting.entity.mysql.EmployeeOnOffWork;
-
-//import com.qianwen.posting.entity.mysql.Workstation;
-//import com.qianwen.posting.mapper.mysql.EmployeeOnOffWorkMapper;
-
-//import com.qianwen.posting.service.IWorkstationService;
 
 @Component
 public class WorkstationCache {
@@ -49,6 +42,9 @@
     private GlobalWcsOfRpsMapper globalWcsOfRpsMapper;
     @Autowired
     private WorkstationService workstationService;
+    @Autowired
+    private EmployeeOnOffWorkMapper employeeOnOffWorkMapper;
+    
     //private static final EmployeeOnOffWorkMapper employeeOnOffWorkMapper = (EmployeeOnOffWorkMapper) SpringUtil.getBean(EmployeeOnOffWorkMapper.class);
 
     
@@ -155,28 +151,41 @@
         return wcsSetting;
       }
 
-    /*
-    public static Long getBelongToEmployeeForWorkstation(Long workstationId, Date timePoint) {
-        Long employeeId = null;
-        String redisKey = "posting:workstation".concat("::").concat("workstation:id:").concat(workstationId.toString()
-            .concat(EMPLOYEE));
-        Set<EmployeeOnOffWork> employeeOnOffWorks = bladeRedis.sMembers(redisKey);
-        EmployeeOnOffWork matchRecord = null;
-        if (Func.isNotEmpty(employeeOnOffWorks))
-          matchRecord = employeeOnOffWorks.stream().filter(item -> (item.getOnlineTime().getTime() <= timePoint.getTime() && (item.getOfflineTime() == null || item.getOfflineTime().getTime() > timePoint.getTime()))).findFirst().orElse(null); 
-        if (Func.isNotEmpty(matchRecord)) {
-          employeeId = matchRecord.getOnEmployeeId();
-        } else {
-          List<EmployeeOnOffWork> queryResult = employeeOnOffWorkMapper.selectList(Wrappers.<EmployeeOnOffWork>lambdaQuery()
-              .eq(EmployeeOnOffWork::getWorkstationId, workstationId)
-              .le(EmployeeOnOffWork::getOnlineTime, timePoint)
-              .and(wrapper -> wrapper.gt(EmployeeOnOffWork::getOfflineTime, timePoint).or().isNull(EmployeeOnOffWork::getOfflineTime)));
-          if (Func.isNotEmpty(queryResult)) {
-            employeeId = ((EmployeeOnOffWork)queryResult.get(0)).getOnEmployeeId();
-            bladeRedis.sAdd(redisKey, new Object[] { queryResult.get(0) });
-            bladeRedis.expire(redisKey, 259200L);
-          } 
-        } 
-        return employeeId;
-      }*/
+    /**
+     * 鑾峰彇宸ヤ綅鍦ㄦ寚瀹氭椂闂寸殑涓婄彮鍛樺伐
+     * @param workstationId
+     * @param timePoint
+     * @return
+     */
+	public Long getBelongToEmployeeForWorkstation(Long workstationId, Date timePoint) {
+		Long employeeId = null;
+		String redisKey = "posting:workstation".concat("::").concat("workstation:id:")
+				.concat(workstationId.toString().concat(EMPLOYEE));
+		// Set<EmployeeOnOffWork> employeeOnOffWorks = bladeRedis.sMembers(redisKey);
+
+		Set<EmployeeOnOffWork> employeeOnOffWorks = (Set<EmployeeOnOffWork>) redisUtil.sGet(redisKey);
+		EmployeeOnOffWork matchEmployee = null;
+		if (ObjectUtil.isNotEmpty(employeeOnOffWorks)) {
+			matchEmployee = employeeOnOffWorks.stream().filter(
+					item -> (item.getOnlineTime().getTime() <= timePoint.getTime() && (item.getOfflineTime() == null
+							|| item.getOfflineTime().getTime() > timePoint.getTime())))
+					.findFirst().orElse(null);
+		}
+		if (ObjectUtil.isNotEmpty(matchEmployee)) {
+			employeeId = matchEmployee.getOnEmployeeId();
+		} else {
+			List<EmployeeOnOffWork> queryResult = employeeOnOffWorkMapper.selectList(
+					Wrappers.<EmployeeOnOffWork>lambdaQuery().eq(EmployeeOnOffWork::getWorkstationId, workstationId)
+							.le(EmployeeOnOffWork::getOnlineTime, timePoint)
+							.and(wrapper -> wrapper.gt(EmployeeOnOffWork::getOfflineTime, timePoint).or()
+									.isNull(EmployeeOnOffWork::getOfflineTime)));
+			if (ObjectUtil.isNotEmpty(queryResult)) {
+				employeeId = ((EmployeeOnOffWork) queryResult.get(0)).getOnEmployeeId();
+				//bladeRedis.sAdd(redisKey, new Object[] { queryResult.get(0) });
+				//bladeRedis.expire(redisKey, 259200L);
+				redisUtil.sSetAndTime(redisKey, 259200L,  new Object[] { queryResult.get(0) });
+			}
+		}
+		return employeeId;
+	}
 }
diff --git a/collect/src/main/java/com/qianwen/mdc/collect/controller/StateController.java b/collect/src/main/java/com/qianwen/mdc/collect/controller/StateController.java
index 2b42af2..c63d873 100644
--- a/collect/src/main/java/com/qianwen/mdc/collect/controller/StateController.java
+++ b/collect/src/main/java/com/qianwen/mdc/collect/controller/StateController.java
@@ -1,4 +1,5 @@
 package com.qianwen.mdc.collect.controller;
+
 import java.util.Arrays;
 import java.util.List;
 
@@ -9,8 +10,11 @@
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.qianwen.mdc.collect.config.IotDBSessionConfig;
 import com.qianwen.mdc.collect.dto.CalendarShiftInfoDTO;
+import com.qianwen.mdc.collect.dto.StateAggregateTimeDTO;
+import com.qianwen.mdc.collect.entity.iotdb.DeviceState;
 import com.qianwen.mdc.collect.entity.iotdb.Output;
 import com.qianwen.mdc.collect.entity.iotdb.ProcessParam;
+import com.qianwen.mdc.collect.mapper.iotdb.DeviceStateMapper;
 import com.qianwen.mdc.collect.mapper.iotdb.OutputMapper;
 import com.qianwen.mdc.collect.mapper.iotdb.ProcessParamMapper;
 import com.qianwen.mdc.collect.mapper.mgr.CalendarMapper;
@@ -28,16 +32,27 @@
 
 @RestController
 public class StateController {
-	
+
 	@Autowired
 	private DeviceStateAggregateService stateAggregateService;
-	
-	
-    @GetMapping("/stateagg")
-    public Object stateagg(Long workstationId) {
-    	stateAggregateService.stateAggregate(workstationId);
-    	
-    	return "1";
-    }
-    
+	@Autowired
+	private DeviceStateMapper stateMapper;
+
+	@GetMapping("/range")
+	public Object range() {
+		long wod = 1656819188967653378L;
+		StateAggregateTimeDTO timeRange = new StateAggregateTimeDTO();
+		timeRange.setEndTime(System.currentTimeMillis());
+		List<DeviceState> slist = stateMapper.statesInTimeRange(wod, timeRange);
+
+		return "2";
+	}
+
+	@GetMapping("/stateagg")
+	public Object stateagg(Long workstationId) {
+		stateAggregateService.stateAggregate(workstationId);
+
+		return "1";
+	}
+
 }
diff --git a/collect/src/main/java/com/qianwen/mdc/collect/handler/DeviceStatusDataHandler.java b/collect/src/main/java/com/qianwen/mdc/collect/handler/DeviceStatusDataHandler.java
index 317a32c..7089893 100644
--- a/collect/src/main/java/com/qianwen/mdc/collect/handler/DeviceStatusDataHandler.java
+++ b/collect/src/main/java/com/qianwen/mdc/collect/handler/DeviceStatusDataHandler.java
@@ -1,36 +1,29 @@
 package com.qianwen.mdc.collect.handler;
 
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.List;
+import java.util.Date;
 
-import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
-import org.apache.iotdb.tsfile.write.record.Tablet;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import com.qianwen.mdc.collect.cache.WorkstationCache;
-import com.qianwen.mdc.collect.config.IotDBSessionConfig;
-import com.qianwen.mdc.collect.constants.IOTDBConstant;
 import com.qianwen.mdc.collect.dto.PackedTelemetryData;
 import com.qianwen.mdc.collect.entity.iotdb.DeviceState;
 import com.qianwen.mdc.collect.entity.mgr.GlobalWcsOfRps;
 import com.qianwen.mdc.collect.enums.FeedbackTimePointEnum;
 import com.qianwen.mdc.collect.service.DeviceStateService;
-import com.qianwen.mdc.collect.service.IotDBCommonService;
 
 @Component
 public class DeviceStatusDataHandler implements TelemetryDataHandler {
     private static final Logger log = LoggerFactory.getLogger(DeviceStatusDataHandler.class);
     @Autowired
     private WorkstationCache workstationCache;
-    @Autowired
-	private IotDBSessionConfig iotdbCfg;
-    @Autowired
-    private IotDBCommonService iotDBCommonService;
+    //@Autowired
+	//private IotDBSessionConfig iotdbCfg;
+    //@Autowired
+    //private IotDBCommonService iotDBCommonService;
     @Autowired
     private DeviceStateService deviceStateService;
     @Override
@@ -46,7 +39,9 @@
     	state.setIsFixPoint(false);
     	state.setIsSync(false);
     	state.setIsDeleted(false);
-    	//state.setEmployeeId(WorkstationCache.getBelongToEmployeeForWorkstation(entity.getWorkstationId(), new Date(entity.getTs().longValue())));
+    	
+    	state.setEmployeeId(workstationCache.getBelongToEmployeeForWorkstation(data.getWorkstationId(), new Date(data.getTime())));
+    	
     	state.setFeedbackPointType(FeedbackTimePointEnum.NO_FEED_BACK_POINT.getValue());
     	//WorkstationState propertyData = (WorkstationState) Objects.requireNonNull(BeanUtil.copy(entity, WorkstationState.class));
     	state.setValueCollect(Integer.valueOf(data.getValue()));
diff --git a/collect/src/main/java/com/qianwen/mdc/collect/mapper/iotdb/AggregateStateMapper.java b/collect/src/main/java/com/qianwen/mdc/collect/mapper/iotdb/AggregateStateMapper.java
index 2c8be1a..b785945 100644
--- a/collect/src/main/java/com/qianwen/mdc/collect/mapper/iotdb/AggregateStateMapper.java
+++ b/collect/src/main/java/com/qianwen/mdc/collect/mapper/iotdb/AggregateStateMapper.java
@@ -1,13 +1,24 @@
 package com.qianwen.mdc.collect.mapper.iotdb;
 
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qianwen.mdc.collect.dto.StateAggregateTimeDTO;
 import com.qianwen.mdc.collect.entity.iotdb.AggregateState;
 
 @DS("iotdb")
 @InterceptorIgnore(tenantLine = "true")
 public interface AggregateStateMapper extends BaseMapper<AggregateState> {
    
-
+	/**
+	 * 鑾峰緱鏃堕棿鍖洪棿鍐呯殑鑱氬悎鐘舵�佹暟鎹�
+	 * @param workstationId
+	 * @param timeRange
+	 * @return
+	 */
+	 List<AggregateState> aggregateStatesInTimeRange(@Param("workstationId") Long workstationId,@Param("timeRange") StateAggregateTimeDTO timeRange);
 }
diff --git a/collect/src/main/java/com/qianwen/mdc/collect/mapper/mgr/EmployeeOnOffWorkMapper.java b/collect/src/main/java/com/qianwen/mdc/collect/mapper/mgr/EmployeeOnOffWorkMapper.java
new file mode 100644
index 0000000..e1923f2
--- /dev/null
+++ b/collect/src/main/java/com/qianwen/mdc/collect/mapper/mgr/EmployeeOnOffWorkMapper.java
@@ -0,0 +1,7 @@
+package com.qianwen.mdc.collect.mapper.mgr;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qianwen.mdc.collect.entity.mgr.EmployeeOnOffWork;
+
+public interface EmployeeOnOffWorkMapper extends BaseMapper<EmployeeOnOffWork> {
+}
diff --git a/collect/src/main/java/com/qianwen/mdc/collect/service/CollectDataService.java b/collect/src/main/java/com/qianwen/mdc/collect/service/CollectDataService.java
index 5967f24..ec40308 100644
--- a/collect/src/main/java/com/qianwen/mdc/collect/service/CollectDataService.java
+++ b/collect/src/main/java/com/qianwen/mdc/collect/service/CollectDataService.java
@@ -21,6 +21,7 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.qianwen.mdc.collect.config.IotDBSessionConfig;
+import com.qianwen.mdc.collect.constants.IOTDBConstant;
 import com.qianwen.mdc.collect.domain.TelemetryData;
 import com.qianwen.mdc.collect.domain.TelemetryDataItem;
 import com.qianwen.mdc.collect.utils.redis.RedisUtil;
@@ -32,7 +33,7 @@
 public class CollectDataService {
 	private static final Logger log = LoggerFactory.getLogger(CollectDataService.class);
 	
-	private String DB_PREFIX = "root.f2.";
+	//private String DB_PREFIX = "root.f2.";
 	private static final Map<Integer, String> PROCESS_PARAM_MAP = new HashMap<>();
 	@Autowired
 	private IotDBSessionConfig iotdbConfig;
@@ -224,7 +225,7 @@
 	}
 	
 	String generateDeviceId(long workstationId,String propertyName) {
-		return DB_PREFIX+TEMPLATE_NAME + "_" + workstationId+"_"+propertyName;
+		return IOTDBConstant.DB_PREFIX+TEMPLATE_NAME + "_" + workstationId+"_"+propertyName;
 	}
 }
 
diff --git a/collect/src/main/java/com/qianwen/mdc/collect/service/DeviceStateAggregateNoFeedbackService.java b/collect/src/main/java/com/qianwen/mdc/collect/service/DeviceStateAggregateNoFeedbackService.java
index 3567bf8..532f733 100644
--- a/collect/src/main/java/com/qianwen/mdc/collect/service/DeviceStateAggregateNoFeedbackService.java
+++ b/collect/src/main/java/com/qianwen/mdc/collect/service/DeviceStateAggregateNoFeedbackService.java
@@ -37,7 +37,8 @@
     private AggregateStateMapper workstationAggregateStateMapper;
     @Autowired
 	private IotDBSessionConfig iotdbConfig;
-
+    @Autowired
+	private IotDBCommonService iotDBCommonService;
 
     public List<AggregateState> stateAggregateForSpecialTimeRange(Long workstationId, StateAggregateTimeDTO timeRange, List<DeviceState> effectiveStateList) {
     	//鎸塼imeRange鏌ヨ鏃堕棿鍖洪棿鍐呯殑鐘舵�佹暟鎹紝闄や簡宸插垹闄ょ殑锛屽叾浠栨暟鎹兘鏌ュ嚭鏉ヤ簡
@@ -90,7 +91,7 @@
 		schemas.add(new MeasurementSchema("shift_time_type", TSDataType.INT32));
 		schemas.add(new MeasurementSchema("wcs", TSDataType.INT32));
 		schemas.add(new MeasurementSchema("rps", TSDataType.INT32));
-		schemas.add(new MeasurementSchema("is_sync", TSDataType.BOOLEAN));
+		//schemas.add(new MeasurementSchema("is_sync", TSDataType.BOOLEAN));
 		schemas.add(new MeasurementSchema("is_plan", TSDataType.INT32));//TODO 杩欎釜灞炴�у簲璇ユ槸GlobalWcsOfRps涓殑鍊硷紝濡備綍濉啓锛�
 		schemas.add(new MeasurementSchema("feedback_id", TSDataType.INT64));
 		schemas.add(new MeasurementSchema("is_deleted", TSDataType.BOOLEAN));
@@ -98,8 +99,11 @@
 		
 		//鍛藉悕锛歛ggregate_state_{workstation_id}
 		String deviceId = IOTDBConstant.DB_PREFIX+"aggregate_state_"+workstationId;
+		
+		iotDBCommonService.setTemmplateIfNotSet(IOTDBConstant.TEMPLATE_AGGREGATESTATE, deviceId);//鎸傝浇妯℃澘
+		
 		Tablet tablet = new Tablet(deviceId, schemas);
-		//tablet.rowSize = aggStates.size();
+		tablet.rowSize = aggStates.size();
 	
 		AggregateState aggState;
 		for(int i=0;i<aggStates.size();i++) {
@@ -118,7 +122,7 @@
 			tablet.addValue("shift_time_type", i, aggState.getShiftTimeType());
 			tablet.addValue("wcs", i, aggState.getWcs());
 			tablet.addValue("rps", i, aggState.getRps());
-			tablet.addValue("is_sync", i, aggState.getIsSync());
+			
 			tablet.addValue("is_plan", i, aggState.getIsPlan());
 			tablet.addValue("feedback_id", i, aggState.getFeedbackId());
 			tablet.addValue("is_deleted", i, aggState.getIsDeleted());
@@ -127,6 +131,7 @@
 		}
 		try {
 			this.iotdbConfig.getSessionPool().insertAlignedTablet(tablet);
+			log.info("淇濆瓨鑱氬悎鐘舵�佸畬鎴�");
 		} catch (Exception e) {
 			log.error("淇濆瓨鑱氬悎鐘舵�佹暟鎹紓甯�",e);
 		} 
@@ -142,11 +147,14 @@
         */
         List<AggregateState> finallyResult = new ArrayList<>();
         //for (StateAggregateTimeDTO item : effectTimeRangeList2) {
+        /*
             List<AggregateState> temp = this.workstationAggregateStateMapper.selectList(Wrappers.<AggregateState>lambdaQuery()
             		.eq(AggregateState::getWorkstationId, workstationId).and(wrapper -> {
                 LambdaQueryWrapper lambdaQueryWrapper = wrapper.eq(AggregateState::getIsDeleted, Boolean.FALSE).or().isNull(AggregateState::getIsDeleted);
             		}).
             		ge(Func.isNotEmpty(timeRange.getStartTime()), AggregateState::getTime, timeRange.getStartTime()).le(AggregateState::getTime, timeRange.getEndTime()).orderByAsc(AggregateState::getTime));
+            		*/
+        List<AggregateState> temp = this.workstationAggregateStateMapper.aggregateStatesInTimeRange(workstationId, timeRange);
             if (Func.isNotEmpty(temp)) {
                 finallyResult.addAll(temp);
             }
diff --git a/collect/src/main/java/com/qianwen/mdc/collect/service/PackedDataService.java b/collect/src/main/java/com/qianwen/mdc/collect/service/PackedDataService.java
index ce4d550..7a8a007 100644
--- a/collect/src/main/java/com/qianwen/mdc/collect/service/PackedDataService.java
+++ b/collect/src/main/java/com/qianwen/mdc/collect/service/PackedDataService.java
@@ -62,7 +62,7 @@
 	public void handle(List<TelemetryData> telemetryDataList) {
 
 		List<PackedTelemetryData> pdataList = packetData(telemetryDataList);
-		System.out.print(pdataList);
+		//System.out.print(pdataList);
 		for (PackedTelemetryData pdt : pdataList) {
 			TelemetryDataHandler handler = handlerSelector.select(pdt.getParamType());
 			 if (handler == null) {
@@ -91,6 +91,7 @@
 
 					String[] keys = map.keySet().toArray(new String[0]);
 					for (int j = 0; j < keys.length; j++) {
+						//TODO: 杩欓噷锛屽師绯荤粺杩涜浜嗚繃婊ゃ�俉orkstationCollectDataServiceImpl.handlerWorkstationCollectData閲�
 						PackedTelemetryData pkData = new PackedTelemetryData();
 						pkData.setWorkstationId(tdata.getWorkstationId());
 						pkData.setValue(map.get(keys[j]));
@@ -129,8 +130,8 @@
             pdata.setCalendarCode("#default#");
         }
 		
-		pdata.setShiftIndex(1);//涓存椂
-		pdata.setShiftTimeType(1);//涓存椂
+		//pdata.setShiftIndex(1);//涓存椂
+		//pdata.setShiftTimeType(1);//涓存椂
 		
 		// TelemetryPropertyWrapper涓璸ackWorkstationCalendarInfo
 		//------------start
diff --git a/collect/src/main/java/com/qianwen/mdc/collect/utils/redis/RedisUtil.java b/collect/src/main/java/com/qianwen/mdc/collect/utils/redis/RedisUtil.java
index c585274..41ed786 100644
--- a/collect/src/main/java/com/qianwen/mdc/collect/utils/redis/RedisUtil.java
+++ b/collect/src/main/java/com/qianwen/mdc/collect/utils/redis/RedisUtil.java
@@ -303,7 +303,7 @@
      * @param key 閿�
      * @return
      */
-    public Set<Object> sGet(String key) {
+    public Set<? extends Object> sGet(String key) {
         try {
             return redisTemplate.opsForSet().members(key);
         } catch (Exception e) {
diff --git a/collect/src/main/resources/com/qianwen/mdc/collect/mapper/iotdb/AggregateStateMapper.xml b/collect/src/main/resources/com/qianwen/mdc/collect/mapper/iotdb/AggregateStateMapper.xml
new file mode 100644
index 0000000..06e881a
--- /dev/null
+++ b/collect/src/main/resources/com/qianwen/mdc/collect/mapper/iotdb/AggregateStateMapper.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.qianwen.mdc.collect.mapper.iotdb.AggregateStateMapper">
+ 
+	<resultMap id="BaseResultMap" type="com.qianwen.mdc.collect.entity.iotdb.AggregateState">
+	    <result column="workstation_id" jdbcType="BIGINT" property="workstationId"/>
+	    <result column="end_time" jdbcType="BIGINT" property="endTime"/>
+	    <result column="duration_collect" jdbcType="BIGINT" property="durationCollect"/>
+	    
+        <result column="value_collect" jdbcType="BIGINT" property="valueCollect"/>
+        
+        <result column="calendar_code" jdbcType="VARCHAR" property="calendarCode"/>
+        
+        <result column="factory_year" jdbcType="INTEGER" property="factoryYear"/>
+        <result column="factory_month" jdbcType="INTEGER" property="factoryMonth"/>
+        <result column="factory_week" jdbcType="INTEGER" property="factoryWeek"/>
+        <result column="factory_date" jdbcType="INTEGER" property="factoryDate"/>
+        <result column="shift_index" jdbcType="INTEGER" property="shiftIndex"/>
+        <result column="shift_time_type" jdbcType="INTEGER" property="shiftTimeType"/>
+        <result column="wcs" jdbcType="INTEGER" property="wcs"/>
+        <result column="rps" jdbcType="INTEGER" property="rps"/>
+        <result column="feedback_id" jdbcType="BIGINT" property="feedbackId"/>
+        <result column="is_deleted" jdbcType="BOOLEAN" property="isDeleted"/>
+        <result column="is_plan" jdbcType="BIGINT" property="isPlan"/>
+        
+        <result column="employee_id" jdbcType="BIGINT" property="employeeId"/>
+    </resultMap>
+	
+	<sql id="all_columns">
+	workstation_id,end_time,duration_collect,value_collect,calendar_code,factory_year,factory_month,factory_date,factory_week,shift_index,shift_time_type,wcs,rps,is_fix_point,is_sync,is_plan,feedback_point_type,feedback_id,is_deleted,employee_id
+	</sql>
+	
+     <select id="aggregateStatesInTimeRange" resultMap="BaseResultMap">
+        select <include refid="all_columns" /> FROM root.f2.aggregate_state_${workstationId}
+        <where>
+	        is_deleted=false
+	        <if test="timeRange.startTime != null">
+	            AND time &gt;= #{timeRange.startTime}
+	        </if>
+	 		AND time &lt;= #{timeRange.endTime}
+	    </where>
+        
+        order by time asc
+          align by device
+    </select>
+    
+    
+</mapper>
+
diff --git a/collect/src/main/resources/com/qianwen/mdc/collect/mapper/iotdb/DeviceStateMapper.xml b/collect/src/main/resources/com/qianwen/mdc/collect/mapper/iotdb/DeviceStateMapper.xml
index f72aee0..0b04822 100644
--- a/collect/src/main/resources/com/qianwen/mdc/collect/mapper/iotdb/DeviceStateMapper.xml
+++ b/collect/src/main/resources/com/qianwen/mdc/collect/mapper/iotdb/DeviceStateMapper.xml
@@ -5,7 +5,6 @@
 	<resultMap id="BaseResultMap" type="com.qianwen.mdc.collect.entity.iotdb.DeviceState">
 	    <result column="workstation_id" jdbcType="BIGINT" property="workstationId"/>
         <result column="value_collect" jdbcType="BIGINT" property="valueCollect"/>
-        <result column="param_type" jdbcType="INTEGER" property="paramType"/>
         <result column="calendar_code" jdbcType="VARCHAR" property="calendarCode"/>
         <result column="factory_year" jdbcType="INTEGER" property="factoryYear"/>
         <result column="factory_month" jdbcType="INTEGER" property="factoryMonth"/>
@@ -14,10 +13,11 @@
         <result column="shift_index" jdbcType="INTEGER" property="shiftIndex"/>
         <result column="shift_time_type" jdbcType="INTEGER" property="shiftTimeType"/>
         <result column="wcs" jdbcType="INTEGER" property="wcs"/>
-        <result column="rps" jdbcType="INTEGER" property="wcs"/>
+        <result column="rps" jdbcType="INTEGER" property="rps"/>
         <result column="is_sync" jdbcType="BOOLEAN" property="isSync"/>
         <result column="feedback_id" jdbcType="BIGINT" property="feedbackId"/>
         <result column="is_deleted" jdbcType="BOOLEAN" property="isDeleted"/>
+        <result column="is_plan" jdbcType="BIGINT" property="isPlan"/>
         <result column="employee_id" jdbcType="BIGINT" property="employeeId"/>
     </resultMap>
 	<!-- 
@@ -80,9 +80,9 @@
         where is_sync=false and is_fix_point=false and feedback_point_type=0 and is_deleted=false
         order by time asc limit 1
     </select>
-    
+    <!--  -->
      <select id="statesInTimeRange" resultMap="BaseResultMap">
-        select <include refid="all_columns" /> FROM root.f2.aggregate_state_${workstationId}
+        select <include refid="all_columns" /> FROM root.f2.state_${workstationId}
         <where>
 	        is_deleted=false
 	        <if test="timeRange.startTime != null">
@@ -92,8 +92,23 @@
 	    </where>
         
         order by time asc
+          align by device
     </select>
     
+     <!-- 鍙兘鐢╝s 鍜宺esultType鐨勫舰寮忥紵锛燂紵 resultType="com.qianwen.mdc.collect.entity.iotdb.DeviceState"
+     <select id="statesInTimeRange" resultMap="BaseResultMap">
+        select <include refid="all_columns" /> FROM root.f2.state_${workstationId}
+        <where>
+	        is_deleted=false
+	        <if test="timeRange.startTime != null">
+	            AND time &gt;= #{timeRange.startTime}
+	        </if>
+	 		AND time &lt;= #{timeRange.endTime}
+	    </where>
+        
+        order by time asc
+         align by device
+    </select>-->
     <select id="fixPointCountByDate" resultType="Long">
         select count(factory_date) FROM root.f2.state_* where factory_date=#{factoryDate} and is_fix_point=true
     </select>

--
Gitblit v1.9.3