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 >= #{timeRange.startTime}
+ </if>
+ AND time <= #{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 >= #{timeRange.startTime}
+ </if>
+ AND time <= #{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