From d61dedd49543900581a576d603f1ad229d0d6c87 Mon Sep 17 00:00:00 2001 From: xins Date: Sat, 30 Dec 2023 20:05:28 +0800 Subject: [PATCH] =?UTF-8?q?1.2.0=20=E8=83=BD=E6=BA=90=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?1=E3=80=81=E8=AE=A1=E9=87=8F=E8=AE=BE=E5=A4=87=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E8=A1=A8=E7=BB=93=E6=9E=84=E5=8F=98=E5=9B=9E?= =?UTF-8?q?=E8=B7=9F=E4=B9=8B=E5=89=8D=E4=B8=80=E6=A0=B7=EF=BC=8C=E8=BF=98?= =?UTF-8?q?=E6=98=AF=E7=94=A8buildid=E5=AD=97=E7=AC=A6=E4=B8=B2=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=EF=BC=8C=E5=8F=AF=E4=BB=A5=E5=AD=98=E6=94=BE=E5=A4=9A?= =?UTF-8?q?=E4=B8=AA=E5=BB=BA=E7=AD=91=E7=B1=BB=E5=9E=8BID=202=E3=80=81?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=AE=A1=E9=87=8F=E8=AE=BE=E5=A4=87=E6=97=B6?= =?UTF-8?q?=E5=9C=A8TDengine=E7=9A=84=E5=AD=90=E8=A1=A8tag=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E4=BF=AE=E6=94=B9=203=E3=80=81tdengine=E8=B6=85?= =?UTF-8?q?=E7=BA=A7=E8=A1=A8=E7=BB=93=E6=9E=84=E4=BF=AE=E6=94=B9=204?= =?UTF-8?q?=E3=80=81=E7=94=B5=E5=8E=86=E5=8F=B2=E6=95=B0=E6=8D=AE=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E4=BF=AE=E6=94=B9=205=E3=80=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=AE=A1=E9=87=8F=E8=AE=BE=E5=A4=87=E7=BC=96=E5=8F=B7=E3=80=81?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=90=8D=E7=A7=B0=E3=80=81=E5=BB=BA=E7=AD=91?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E6=97=B6=EF=BC=8C=E5=AF=B9=E5=BA=94=E4=BF=AE?= =?UTF-8?q?=E6=94=B9tdengine=E5=AD=90=E8=A1=A8=E7=9A=84tag=E5=80=BC=20TdEn?= =?UTF-8?q?gine=EF=BC=9A=201=E3=80=81=E5=A2=9E=E5=8A=A0=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E8=B6=85=E7=BA=A7=E8=A1=A8=E5=8E=86=E5=8F=B2=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=92=8C=E8=8E=B7=E5=8F=96=E8=B6=85=E7=BA=A7?= =?UTF-8?q?=E8=A1=A8=E5=8E=86=E5=8F=B2=E6=95=B0=E6=8D=AE=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=202=E3=80=81=E5=A2=9E=E5=8A=A0=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E4=BF=AE=E6=94=B9tag=E5=80=BC=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tdengine/api/RemoteTdEngineService.java | 8 + .../tdengine/api/domain/TdSearchFieldVo.java | 31 ++ .../domain/ems/TdSuperTableEmsSelectVo.java | 49 ++++ .../RemoteTdEngineFallbackFactory.java | 11 + .../core/constant/TdEngineConstants.java | 7 +- .../hw/common/core/constant/WmsConstants.java | 176 ++++++++---- .../core/web/controller/BaseController.java | 18 +- .../hw/ems/base/domain/BaseMonitorInfo.java | 8 +- .../impl/BaseMonitorInfo1ServiceImpl.java | 173 +++++++---- .../RecordDnbInstantController.java | 17 +- .../domain/vo/RecordDnbInstantDataVo.java | 21 ++ .../service/IRecordDnbInstantService.java | 4 +- .../impl/RecordAlarmDataServiceImpl.java | 2 +- .../impl/RecordDnbInstantServiceImpl.java | 210 +++++++------- .../mapper/base/BaseMonitorInfo1Mapper.xml | 12 +- .../mapper/base/BaseMonitorInfoMapper.xml | 18 +- .../controller/TdEngineController.java | 64 ++++- .../hw/tdengine/mapper/TdEngineMapper.java | 16 +- .../hw/tdengine/service/ITdEngineService.java | 24 ++ .../service/impl/TdEngineServiceImpl.java | 44 +++ .../mapper/tdengine/TdEngineMapper.xml | 49 ++++ hw-ui/src/api/ems/base/HistoryElectricity.js | 10 +- hw-ui/src/api/ems/base/emsRecord.js | 20 ++ .../ems/base/HistoryElectricity/index.vue | 269 ++++++++++-------- 24 files changed, 887 insertions(+), 374 deletions(-) create mode 100644 hw-api/hw-api-tdengine/src/main/java/com/hw/tdengine/api/domain/TdSearchFieldVo.java create mode 100644 hw-api/hw-api-tdengine/src/main/java/com/hw/tdengine/api/domain/ems/TdSuperTableEmsSelectVo.java create mode 100644 hw-modules/hw-ems/src/main/java/com/hw/ems/record/domain/vo/RecordDnbInstantDataVo.java create mode 100644 hw-ui/src/api/ems/base/emsRecord.js diff --git a/hw-api/hw-api-tdengine/src/main/java/com/hw/tdengine/api/RemoteTdEngineService.java b/hw-api/hw-api-tdengine/src/main/java/com/hw/tdengine/api/RemoteTdEngineService.java index 54a7acaa..13a53419 100644 --- a/hw-api/hw-api-tdengine/src/main/java/com/hw/tdengine/api/RemoteTdEngineService.java +++ b/hw-api/hw-api-tdengine/src/main/java/com/hw/tdengine/api/RemoteTdEngineService.java @@ -6,6 +6,7 @@ import com.hw.common.core.domain.R; import com.hw.common.core.validated.tdengine.AddTdSTableColumn; import com.hw.common.core.validated.tdengine.InsertTdTable; import com.hw.tdengine.api.domain.*; +import com.hw.tdengine.api.domain.ems.TdSuperTableEmsSelectVo; import com.hw.tdengine.api.factory.RemoteTdEngineFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.validation.annotation.Validated; @@ -63,4 +64,11 @@ public interface RemoteTdEngineService { @PostMapping("/tdengine/getDeviceStatusList") R>> getDeviceStatusList(@Validated @RequestBody DeviceStatus queryDeviceStatus, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @PostMapping("/tdengine/getSuperTableHistoryData") + R getSuperTableHistoryData(@Validated @RequestBody TdSuperTableEmsSelectVo tdSuperTableEmsSelectVo, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @PostMapping("/tdengine/alterTableTags") + public R alterTableTags(@Validated @RequestBody List alterTagVos, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + } diff --git a/hw-api/hw-api-tdengine/src/main/java/com/hw/tdengine/api/domain/TdSearchFieldVo.java b/hw-api/hw-api-tdengine/src/main/java/com/hw/tdengine/api/domain/TdSearchFieldVo.java new file mode 100644 index 00000000..ece244e8 --- /dev/null +++ b/hw-api/hw-api-tdengine/src/main/java/com/hw/tdengine/api/domain/TdSearchFieldVo.java @@ -0,0 +1,31 @@ +package com.hw.tdengine.api.domain; + +import com.hw.common.core.enums.DataTypeEnums; +import org.apache.commons.lang3.StringUtils; +import org.springframework.validation.annotation.Validated; + +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +/** + * @Description: @Description: Tdengine 查询条件 + * @ClassName: TdSearchFieldVo + * @Author : xins + * @Date :2023-12-29 22:34 + * @Version :1.0 + */ +public class TdSearchFieldVo { + private static final long serialVersionUID = 1L; + + private String fieldName; + + private Object fieldValue; + + public TdSearchFieldVo(String fieldName, Object fieldValue) { + this.fieldName = fieldName; + this.fieldValue = fieldValue; + } + + +} diff --git a/hw-api/hw-api-tdengine/src/main/java/com/hw/tdengine/api/domain/ems/TdSuperTableEmsSelectVo.java b/hw-api/hw-api-tdengine/src/main/java/com/hw/tdengine/api/domain/ems/TdSuperTableEmsSelectVo.java new file mode 100644 index 00000000..46888605 --- /dev/null +++ b/hw-api/hw-api-tdengine/src/main/java/com/hw/tdengine/api/domain/ems/TdSuperTableEmsSelectVo.java @@ -0,0 +1,49 @@ +package com.hw.tdengine.api.domain.ems; + +import com.hw.tdengine.api.domain.TdSearchFieldVo; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.List; + +/** + * @Description: 用于查询超级表数据 + * @ClassName: TdSuperTableEmsSelectVo + * @Author : xins + * @Date :2023-12-29 22:23 + * @Version :1.0 + */ +@Data +public class TdSuperTableEmsSelectVo { + //数据库名称 + @NotBlank(message="databaseName cannot be empty") + private String databaseName; + + //超级表名称 + @NotBlank(message="superTableName cannot be empty") + private String superTableName; + + //控制输出条数 + private int limit; + + //指定从第几条之后输出(例如:limit 2,5,输出第3行到第7行的数据) + private int offset; + + /** + * 第一个字段,数据类型必须是timestamp + */ + private String firstFieldName; + + //过滤条件:开始时间 + private long startTime; + + //过滤条件:结束时间 + private long endTime; + + private Long monitorObjid; + + private String orderByFieldName; + + private String sort; + +} diff --git a/hw-api/hw-api-tdengine/src/main/java/com/hw/tdengine/api/factory/RemoteTdEngineFallbackFactory.java b/hw-api/hw-api-tdengine/src/main/java/com/hw/tdengine/api/factory/RemoteTdEngineFallbackFactory.java index b82c4a6b..efdd6d48 100644 --- a/hw-api/hw-api-tdengine/src/main/java/com/hw/tdengine/api/factory/RemoteTdEngineFallbackFactory.java +++ b/hw-api/hw-api-tdengine/src/main/java/com/hw/tdengine/api/factory/RemoteTdEngineFallbackFactory.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSONObject; import com.hw.common.core.domain.R; import com.hw.tdengine.api.RemoteTdEngineService; import com.hw.tdengine.api.domain.*; +import com.hw.tdengine.api.domain.ems.TdSuperTableEmsSelectVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; @@ -102,6 +103,16 @@ public class RemoteTdEngineFallbackFactory implements FallbackFactory getSuperTableHistoryData(TdSuperTableEmsSelectVo tdSuperTableEmsSelectVo, String source) { + return R.fail("获取超级表历史数据失败:" + throwable.getMessage()); + } + + @Override + public R alterTableTags(List alterTagVos, String source) { + return R.fail("批量修改子表tag值失败:" + throwable.getMessage()); + } + }; } } diff --git a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/TdEngineConstants.java b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/TdEngineConstants.java index d52282f7..75ef22a8 100644 --- a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/TdEngineConstants.java +++ b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/TdEngineConstants.java @@ -70,6 +70,11 @@ public class TdEngineConstants { public static final String EMS_DATABASE_NAME = "db_hwmes"; public static final String EMS_TABLE_NAME_PREFIX = "t_e_"; + public static final String ST_TAG_EMS_MONITOROBJID = "monitorobjid";//计量设备编号 + public static final String ST_TAG_EMS_MONITORID = "monitorid";//计量设备主键 + public static final String ST_TAG_EMS_MONITORNAME = "monitorname";//计量设备名称 + public static final String ST_TAG_EMS_BUILDID = "buildid";//建筑类型ID(多个以,隔开) + /** * 需要转换的key */ @@ -141,7 +146,7 @@ public class TdEngineConstants { * @param monitorId 计量设备编号 * @return String */ - public static String getEmsTableName(String monitorId){ + public static String getEmsTableName(Long monitorId){ return EMS_TABLE_NAME_PREFIX + monitorId; } diff --git a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/WmsConstants.java b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/WmsConstants.java index 92111d53..3fac8b2c 100644 --- a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/WmsConstants.java +++ b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/WmsConstants.java @@ -1,5 +1,8 @@ package com.hw.common.core.constant; +import java.util.HashMap; +import java.util.Map; + /** * @Description: 仓储部分常量定义 * @ClassName: WmsConstants @@ -9,11 +12,11 @@ package com.hw.common.core.constant; */ public class WmsConstants { - /*原材料入库记录操作类型*/ - public static final String RAW_INSTOCK_OPERATION_TYPE_AUTO = "0";//自动 - public static final String RAW_INSTOCK_OPERATION_TYPE_MANUAL = "1";//手动 - public static final String RAW_INSTOCK_OPERATION_TYPE_FORCE = "2";//强制 - public static final String RAW_INSTOCK_OPERATION_TYPE_DISPATCH = "3";//调度 + /*操作类型,适合原材料和成品的出入库以及原材料的退库*/ + public static final String WMS_OPERATION_TYPE_AUTO = "0";//agv自动 + public static final String WMS_OPERATION_TYPE_MANUAL = "1";//人工 + public static final String WMS_OPERATION_TYPE_FORCED = "2";//强制 + public static final String MWS_OPERATION_TYPE_DISPATCHD = "3";//调度 /*原材料入库记录入库类型*/ @@ -22,19 +25,10 @@ public class WmsConstants { public static final String RAW_INSTOCK_INSTOCK_TYPE_MERGE = "3";//合库入库 public static final String RAW_INSTOCK_INSTOCK_TYPE_OTHER = "9";//其他入库 - /*原材料入库记录审核状态*/ - public static final String RAW_INSTOCK_AUDIT_STATUS_TOAUDIT = "0";//待审核 - public static final String RAW_INSTOCK_AUDIT_STATUS_PASS = "1";//审核通过 - public static final String RAW_INSTOCK_AUDIT_STATUS_FAIL = "2";//审核不通过 - /*原材料入库记录(明细)执行状态*/ - public static final String RAW_INSTOCK_EXECUTE_STATUS_TOEXECUTE = "0";//待执行 - public static final String RAW_INSTOCK_EXECUTE_STATUS_EXECUTING = "1";//执行中 - public static final String RAW_INSTOCK_EXECUTE_STATUS_FINISH = "2";//执完成行 /*原材料入库记录明细入库方式*/ - public static final String RWA_INSTOCK_DETAIL_INSTOCK_WAY_PC = "0";//PC入库 - public static final String RWA_INSTOCK_DETAIL_INSTOCK_WAY_MOBILE = "1";//移动手持入库 + public static final String RWA_INSTOCK_DETAIL_INSTOCK_WAY_MOBILE = "1";//人工入库 public static final String RWA_INSTOCK_DETAIL_INSTOCK_WAY_AGV = "2";//AGV入库 /*原材料入库记录明细质检状态*/ @@ -46,51 +40,135 @@ public class WmsConstants { public static final String RWA_STOCK_STOCK_TYPE_RAW = "1";//原材料 public static final String RWA_STOCK_STOCK_TYPE_PRODUCT = "2";//半成品 - /*原材料库存记录质检状态*/ - public static final String RWA_STOCK_QUALITY_STATUS_TO_INSPECT = "0";//待质检 - public static final String RWA_STOCK_QUALITY_STATUS_PASS = "1";//质检通过 - public static final String RWA_STOCK_QUALITY_STATUS_NG = "2";//NG质检不合格 - /*原材料出库记录审核状态*/ public static final String RAW_OUTSTOCK_AUDIT_STATUS_TOAUDIT = "0";//待审核 public static final String RAW_OUTSTOCK_AUDIT_STATUS_PASS = "1";//审核通过 public static final String RAW_OUTSTOCK_AUDIT_STATUS_FAIL = "2";//审核不通过 - /*原材料出库记录执行状态*/ - public static final String RAW_OUTSTOCK_EXECUTE_STATUS_TO_EXECUTUTE = "0";//待执行 - public static final String RAW_OUTSTOCK_EXECUTE_STATUS_EXECUTUTING = "1";//执行中 - public static final String RAW_OUTSTOCK_EXECUTE_STATUS_FINISH = "2";//执行完成 - - - /*原材料出库记录明细出库方式*/ - public static final String RAW_OUTSTOCK_OUTSTOCK_WAY_MANUAL = "1";//人工出库 - public static final String RAW_OUTSTOCK_OUTSTOCK_WAY_AGV = "2";//AGV出库 - - - /*原材料出库记录明细质检状态*/ - public static final String RAW_OUTSTOCK_DETAIL_QUALITY_STATUS_TO_INSPECT = "0";//待质检 - public static final String RAW_OUTSTOCK_DETAIL_QUALITY_STATUS_PASS = "1";//合格 - public static final String RAW_OUTSTOCK_DETAIL_QUALITY_STATUS_NG = "2";//不合格 - - /*原材料退库记录审核状态*/ - public static final String RAW_RETURN_AUDIT_STATUS_TOAUDIT = "0";//待审核 - public static final String RAW_RETURN_AUDIT_STATUS_PASS = "1";//审核通过 - public static final String RAW_RETURN_AUDIT_STATUS_FAIL = "2";//审核不通过 + /*出入库退库记录明细方式*/ + public static final String WMS_STOCK_WAY_MANUAL = "1";//人工 + public static final String WMS_STOCK_WAY_AGV = "2";//AGV - /*原材料退库记录明细质检状态*/ - public static final String RAW_RETURN_DETAIL_QUALITY_STATUS_TO_INSPECT = "0";//待质检 - public static final String RAW_RETURN_DETAIL_QUALITY_STATUS_PASS = "1";//质检通过 - public static final String RAW_RETURN_DETAIL_QUALITY_STATUS_NG = "2";//NG质检不合格 - - /*原材料退库记录(明细)执行状态*/ - public static final String RAW_RETURN_EXECUTE_STATUS_TOEXECUTE = "0";//待执行 - public static final String RAW_RETURN_EXECUTE_STATUS_EXECUTING = "1";//执行中 - public static final String RAW_RETURN_EXECUTE_STATUS_FINISH = "2";//执完成行 + /*质检状态*/ + public static final String WMS_QUALITY_STATUS_TO_INSPECT = "0";//待质检 + public static final String WMS_QUALITY_STATUS_PASS = "1";//合格 + public static final String WMS_QUALITY_STATUS_NG = "2";//不合格 + /*审核状态*/ + public static final String WMS_AUDIT_STATUS_TOAUDIT = "0";//待审核 + public static final String WMS_AUDIT_STATUS_PASS = "1";//审核通过 + public static final String WMS_AUDIT_STATUS_FAIL = "2";//审核不通过 + + + /*原材料退库记录(明细)退库方式*/ + public static final String RAW_RETURN_RETURN_WAY_MANUAL = "1";//人工 + public static final String RAW_RETURN_RETURN_WAY_AGV = "2";//AGV + + + + /*出入库退库记录(明细)执行状态*/ + public static final String WMS_EXECUTE_STATUS_TOEXECUTE = "0";//待执行 + public static final String WMS_EXECUTE_STATUS_EXECUTING = "1";//执行中 + public static final String WMS_EXECUTE_STATUS_FINISH = "2";//执完成行 + + + + /*成品入库记录明细入库方式*/ + public static final String PRODUCT_INSTOCK_DETAIL_INSTOCK_WAY_MANUAL = "1";//人工入库 + public static final String PRODUCT_INSTOCK_DETAIL_INSTOCK_WAY_AGV = "2";//AGV入库 + + + /*成品入库记录库存类型*/ + public static final String PRODUCT_INSTOCK_STOCK_TYPE_SEMI = "2";//半成品 + public static final String PRODUCT_INSTOCK_STOCK_TYPE_PRODUCT = "3";//成品 + + + + /*成品入库记录入库类型*/ + public static final String PRODUCT_INSTOCK_INSTOCK_TYPE_PRODUCT = "1";//生产入库 + public static final String PRODUCT_INSTOCK_INSTOCK_TYPE_MOVE = "2";//移库入库 + public static final String PRODUCT_INSTOCK_INSTOCK_TYPE_MERGE = "3";//合库入库 + public static final String PRODUCT_INSTOCK_INSTOCK_TYPE_OUT_SEMI = "4";//出半成品库 + public static final String PRODUCT_INSTOCK_INSTOCK_TYPE_OTHER = "9";//其他入库 + + + + /*成品库存库存类型*/ + public static final String PRODUCT_STOCK_STOCK_TYPE_SEMI = "2";//半成品 + public static final String PRODUCT_STOCK_STOCK_TYPE_PRODUCT = "3";//成品 + + + /*原材料退库记录(明细)退库方式*/ + public static final String PRODUCT_INSTOCK_INSTOCK_WAY_MANUAL = "1";//人工 + public static final String PRODUCT_INSTOCK_INSTOCK_WAY_AGV = "2";//AGV + + + + /*仓库存放类型*/ + public static final String WAREHOUSE_INSTOCK_TYPE_RAW = "1";//原材料 + public static final String WAREHOUSE_INSTOCK_TYPE_SEMI = "2";//半成品 + public static final String WAREHOUSE_INSTOCK_TYPE_PRODUCT = "3";//成品 + + + public static final String WMS_MOVEMERGE_TYPE_MOVE = "1"; //移库 + public static final String WMS_MOVEMERGE_TYPE_MERGE = "2";//合库 + + + public static final String WMS_WAREHOUSE_TYPE_NORMAL = "0";//普通仓库 + public static final String WMS_WAREHOUSE_TYPE_AGV = "1";//AGV仓库 + + public static final String WMS_WAREHOUSE_TYPE_WORKBIN_AGV = "2";//料箱AGV仓库 + + public static final Map OPERATION_TYPE_MAP = new HashMap(); + static { + OPERATION_TYPE_MAP.put(WMS_WAREHOUSE_TYPE_NORMAL, WMS_OPERATION_TYPE_MANUAL); + OPERATION_TYPE_MAP.put(WMS_WAREHOUSE_TYPE_AGV, WMS_OPERATION_TYPE_AUTO); + OPERATION_TYPE_MAP.put(WMS_WAREHOUSE_TYPE_WORKBIN_AGV, WMS_OPERATION_TYPE_MANUAL); + } + + public static final Map OUTSTOCK_WAY_MAP = new HashMap(); + static { + OPERATION_TYPE_MAP.put(WMS_WAREHOUSE_TYPE_NORMAL, WMS_STOCK_WAY_MANUAL); + OPERATION_TYPE_MAP.put(WMS_WAREHOUSE_TYPE_AGV, WMS_STOCK_WAY_AGV); + OPERATION_TYPE_MAP.put(WMS_WAREHOUSE_TYPE_WORKBIN_AGV, WMS_STOCK_WAY_MANUAL); + } + + + /** + * 库位状态 + * */ + public static final String WMS_BASE_LOCATION_STATUS_NORMAL = "1";//正常 + public static final String WMS_BASE_LOCATION_STATUS_AUTO_LOCK = "2";//自动锁定 + public static final String WMS_BASE_LOCATION_STATUS_MANUAL_LOCK = "3";//人工锁定 + public static final String WMS_BASE_LOCATION_STATUS_MOVE_LOCK = "4";//移库锁定 + public static final String WMS_BASE_LOCATION_STATUS_MERGE_LOCK = "5";//合库锁定 + + /** + * 入库过度库位标识 + * */ + public static final String WMS_BASE_LOCATION_INSTOCK_FLAG_YES = "1";//是 + public static final String WMS_BASE_LOCATION_INSTOCK_FLAG_NO = "0";//否 + + /** + * 出库过度库位标识 + * */ + public static final String WMS_BASE_LOCATION_OUTSTOCK_FLAG_YES = "1";//是 + public static final String WMS_BASE_LOCATION_OUTSTOCK_FLAG_NO = "0";//否 + + + /*原材料出库任务类型*/ + public static final String WMS_RAW_OUTSTOCK_TASK_TYPE_PRODUCTION_PICKING = "1";//生产领料 + public static final String WMS_RAW_OUTSTOCK_TASK_TYPE_MOVE = "2";//移库出库 + public static final String WMS_RAW_OUTSTOCK_TASK_TYPE_MERGE = "3";//合库出库 + public static final String WMS_RAW_OUTSTOCK_TASK_TYPE_OTHER = "9";//其他 + + /*原材料库存完整标识*/ + public static final String WMS_RAW_STOCK_COMPLETE_FLAG_YES = "1";//是 + public static final String WMS_RAW_STOCK_COMPLETE_FLAG_NO = "0";//否 } diff --git a/hw-common/hw-common-core/src/main/java/com/hw/common/core/web/controller/BaseController.java b/hw-common/hw-common-core/src/main/java/com/hw/common/core/web/controller/BaseController.java index 56faad00..f6106c70 100644 --- a/hw-common/hw-common-core/src/main/java/com/hw/common/core/web/controller/BaseController.java +++ b/hw-common/hw-common-core/src/main/java/com/hw/common/core/web/controller/BaseController.java @@ -16,7 +16,7 @@ import com.hw.common.core.web.page.TableDataInfo; /** * web层通用数据处理 - * + * * @author ruoyi */ public class BaseController @@ -120,7 +120,7 @@ public class BaseController /** * 响应返回结果 - * + * * @param rows 影响行数 * @return 操作结果 */ @@ -131,7 +131,7 @@ public class BaseController /** * 响应返回结果 - * + * * @param result 结果 * @return 操作结果 */ @@ -139,4 +139,16 @@ public class BaseController { return result ? success() : error(); } + + + protected TableDataInfo getDataTable(List list,long total) + { + TableDataInfo rspData = new TableDataInfo(); + rspData.setCode(HttpStatus.SUCCESS); + rspData.setRows(list); + rspData.setMsg("查询成功"); + rspData.setTotal(total); + return rspData; + } + } diff --git a/hw-modules/hw-ems/src/main/java/com/hw/ems/base/domain/BaseMonitorInfo.java b/hw-modules/hw-ems/src/main/java/com/hw/ems/base/domain/BaseMonitorInfo.java index aea04f1e..a7879722 100644 --- a/hw-modules/hw-ems/src/main/java/com/hw/ems/base/domain/BaseMonitorInfo.java +++ b/hw-modules/hw-ems/src/main/java/com/hw/ems/base/domain/BaseMonitorInfo.java @@ -77,7 +77,7 @@ public class BaseMonitorInfo extends BaseEntity /** 建筑类型 */ @Excel(name = "建筑类型") - private String buildObjid; + private String buildId; /** 分项类型 */ @Excel(name = "分项类型") @@ -276,14 +276,14 @@ public class BaseMonitorInfo extends BaseEntity { return grade; } - public void setBuildId(String buildObjid) + public void setBuildId(String buildId) { - this.buildObjid = buildObjid; + this.buildId = buildId; } public String getBuildId() { - return buildObjid; + return buildId; } public void setSubentryId(String subentryId) { diff --git a/hw-modules/hw-ems/src/main/java/com/hw/ems/base/service/impl/BaseMonitorInfo1ServiceImpl.java b/hw-modules/hw-ems/src/main/java/com/hw/ems/base/service/impl/BaseMonitorInfo1ServiceImpl.java index d6ba65e5..b24d99b9 100644 --- a/hw-modules/hw-ems/src/main/java/com/hw/ems/base/service/impl/BaseMonitorInfo1ServiceImpl.java +++ b/hw-modules/hw-ems/src/main/java/com/hw/ems/base/service/impl/BaseMonitorInfo1ServiceImpl.java @@ -5,7 +5,10 @@ import java.util.Date; import java.util.List; import java.util.stream.Collectors; +import com.hw.common.core.constant.Constants; import com.hw.common.core.constant.SecurityConstants; +import com.hw.common.core.constant.TdEngineConstants; +import com.hw.common.core.domain.R; import com.hw.common.core.exception.ServiceException; import com.hw.common.core.utils.DateUtils; import com.hw.common.core.utils.StringUtils; @@ -18,6 +21,8 @@ import com.hw.tdengine.api.domain.TdField; import com.hw.tdengine.api.domain.TdTableVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import com.hw.tdengine.api.domain.AlterTagVo; /** @@ -79,6 +84,7 @@ public class BaseMonitorInfo1ServiceImpl implements IBaseMonitorInfo1Service { * @param baseMonitorInfo 计量设备信息 * @return 结果 */ + @Transactional(rollbackFor = Exception.class) @Override //@DS("#header.poolName") public int insertBaseMonitorInfo(BaseMonitorInfo baseMonitorInfo) { @@ -89,60 +95,64 @@ public class BaseMonitorInfo1ServiceImpl implements IBaseMonitorInfo1Service { //todo 新增父级为空判断,父级为空时会导致创建子表与创建计量设备与类型的对应对象失效 try { BaseMonitorInfo monitor = baseMonitorInfoMapper.selectBaseMonitorInfoByObjid(baseMonitorInfo.getParentId()); - //创建子表 - this.createEmsTbale(baseMonitorInfo.getMonitorId(), baseMonitorInfo.getBuildId(),baseMonitorInfo.getMonitorName(),baseMonitorInfo.getObjid()); - if (monitor != null){ - monitor.setAncestors(monitor.getAncestors() + "," + monitor.getMonitorId()); - String[] split = monitor.getAncestors().split(","); - monitor.setGrade(split.length); - } + + if (monitor != null) { + monitor.setAncestors(monitor.getAncestors() + "," + monitor.getMonitorId()); + String[] split = monitor.getAncestors().split(","); + monitor.setGrade(split.length); + } this.insertOrUpdateBaseTypeRelation(baseMonitorInfo.getMonitorId(), baseMonitorInfo.getBuildId(), baseMonitorInfo.getBusinessId(), baseMonitorInfo.getSubentryId()); List subsetList = this.selectMonitorSubsetList(new BaseMonitorInfo()); // 添加线损对象 this.insertLineLossList(subsetList); + + baseMonitorInfo.setCreateTime(DateUtils.getNowDate()); + baseMonitorInfo.setCreateBy(SecurityUtils.getUsername()); + int result = baseMonitorInfoMapper.insertBaseMonitorInfo(baseMonitorInfo); + + //创建TDEngine子表 + this.createEmsTbale(baseMonitorInfo.getMonitorId(), baseMonitorInfo.getBuildId(), baseMonitorInfo.getMonitorName(), baseMonitorInfo.getObjid()); + return result; } catch (Exception e) { System.out.println("新增计量设备信息异常1111:" + e.getMessage()); } + return 0; + - baseMonitorInfo.setCreateTime(DateUtils.getNowDate()); - baseMonitorInfo.setCreateBy(SecurityUtils.getUsername()); - return baseMonitorInfoMapper.insertBaseMonitorInfo(baseMonitorInfo); } + /** * 创建能源子表 */ - //todo 调用tde 在创建计量设备时创建子表 - public void createEmsTbale(String monitorId,String buildobjid,String monitorName,Long objid){ - //调用tde创建一个子表 - TdTableVo tableVo = new TdTableVo(); - tableVo.setDatabaseName("db_hwmes"); - tableVo.setSuperTableName("st_electricity"); - tableVo.setTableName("t_e_"+monitorId); - List fields = new ArrayList(); - List field2s = new ArrayList(); - TdField field = new TdField(); - TdField field2 = new TdField(); - TdField field3 = new TdField(); - TdField field4 = new TdField(); - field.setFieldName("buildobjid"); - field.setFieldValue(buildobjid); - field.setDataType("int"); - field2.setFieldName("monitorname"); - field2.setFieldValue(monitorName); - field2.setDataType("nchar"); - field3.setFieldName("monitorobjid"); - field3.setDataType("int"); - field3.setFieldValue(objid); - fields.add(field); - fields.add(field2); - fields.add(field3); - field2s.add(field4); - tableVo.setSchemaFields(field2s); - tableVo.setTagsFieldValues(fields); - remoteTdEngineService.createTable(tableVo, SecurityConstants.INNER); + public void createEmsTbale(String monitorId, String buildid, String monitorName, Long objid) { + //调用tde创建一个子表 + TdTableVo tableVo = new TdTableVo(); + tableVo.setDatabaseName("db_hwmes"); + tableVo.setSuperTableName("st_electricity"); + tableVo.setTableName(TdEngineConstants.getEmsTableName(objid)); + List fields = new ArrayList(); + TdField field = new TdField(); + TdField field2 = new TdField(); + TdField field3 = new TdField(); + TdField field4 = new TdField(); + field.setFieldName(TdEngineConstants.ST_TAG_EMS_BUILDID); + field.setFieldValue(buildid); + field2.setFieldName(TdEngineConstants.ST_TAG_EMS_MONITORNAME); + field2.setFieldValue(monitorName); + field3.setFieldName(TdEngineConstants.ST_TAG_EMS_MONITOROBJID); + field3.setFieldValue(objid); + field4.setFieldName(TdEngineConstants.ST_TAG_EMS_MONITORID); + field4.setFieldValue(monitorId); + fields.add(field); + fields.add(field2); + fields.add(field3); + fields.add(field4); + tableVo.setTagsFieldValues(fields); + remoteTdEngineService.createTable(tableVo, SecurityConstants.INNER); + + } - } /** * 新增线损对象信息 * @@ -191,18 +201,18 @@ public class BaseMonitorInfo1ServiceImpl implements IBaseMonitorInfo1Service { * @param baseMonitorInfo 计量设备信息 * @return 结果 */ + @Transactional(rollbackFor = Exception.class) @Override //@DS("#header.poolName") public int updateBaseMonitorInfo(BaseMonitorInfo baseMonitorInfo) { List baseMonitorInfos = baseMonitorInfoMapper.checkMonitorIdLegal(baseMonitorInfo); - if (baseMonitorInfos.size() > 1){ - throw new ServiceException("计量设备编号重复:" + baseMonitorInfo.getMonitorId()); + if (baseMonitorInfos.size() > 1) { + throw new ServiceException("计量设备编号重复:" + baseMonitorInfo.getMonitorId()); } try { BaseMonitorInfo newParenMonitorInfo = baseMonitorInfoMapper.selectBaseMonitorInfoByObjid(baseMonitorInfo.getParentId()); BaseMonitorInfo oldDeptMonitorInfo = selectBaseMonitorInfoByObjid(baseMonitorInfo.getObjid()); - if (StringUtils.isNotNull(newParenMonitorInfo) && StringUtils.isNotNull(oldDeptMonitorInfo)) - { + if (StringUtils.isNotNull(newParenMonitorInfo) && StringUtils.isNotNull(oldDeptMonitorInfo)) { String newAncestors = newParenMonitorInfo.getAncestors() + "," + oldDeptMonitorInfo.getMonitorId(); String oldAncestors = oldDeptMonitorInfo.getAncestors(); baseMonitorInfo.setAncestors(newAncestors); @@ -212,33 +222,87 @@ public class BaseMonitorInfo1ServiceImpl implements IBaseMonitorInfo1Service { updateMonitorChildren(baseMonitorInfo.getMonitorId(), newAncestors, oldAncestors); } - this.insertOrUpdateBaseTypeRelation(baseMonitorInfo.getMonitorId(),baseMonitorInfo.getBuildId(), - baseMonitorInfo.getBusinessId(),baseMonitorInfo.getSubentryId()); + this.insertOrUpdateBaseTypeRelation(baseMonitorInfo.getMonitorId(), baseMonitorInfo.getBuildId(), + baseMonitorInfo.getBusinessId(), baseMonitorInfo.getSubentryId()); + baseMonitorInfo.setUpdateTime(DateUtils.getNowDate()); + baseMonitorInfo.setUpdateBy(SecurityUtils.getUsername()); + int result = baseMonitorInfoMapper.updateBaseMonitorInfo(baseMonitorInfo); + this.updateTdEngineTable(baseMonitorInfo, oldDeptMonitorInfo); + return result; } catch (Exception e) { e.printStackTrace(); } - baseMonitorInfo.setUpdateTime(DateUtils.getNowDate()); - baseMonitorInfo.setUpdateBy(SecurityUtils.getUsername()); - return baseMonitorInfoMapper.updateBaseMonitorInfo(baseMonitorInfo); + return 0; } + /** * 修改子元素关系 - * @param monitorId 被修改的ID + * + * @param monitorId 被修改的ID * @param newAncestors 新的父ID集合 * @param oldAncestors 旧的父ID集合 */ private void updateMonitorChildren(String monitorId, String newAncestors, String oldAncestors) { List children = baseMonitorInfoMapper.selectChildrenMonitorById(monitorId); - for (BaseMonitorInfo child : children) - { + for (BaseMonitorInfo child : children) { child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors)); } - if (children.size() > 0) - { + if (children.size() > 0) { baseMonitorInfoMapper.updateMonitorChildren(children); } } + + + /** + * @param: baseMonitorInfo 前端传的对象 + * @param: dbBaseMonitorInfo 目前数据库的对象 + * @description 更新TdEngine数据库tag + * @author xins + * @date 2023-12-30 16:50 + */ + private void updateTdEngineTable(BaseMonitorInfo baseMonitorInfo, BaseMonitorInfo dbBaseMonitorInfo) { + String databaseName = TdEngineConstants.EMS_DATABASE_NAME; + String tableName = TdEngineConstants.getEmsTableName(baseMonitorInfo.getObjid()); + List alterTagVos = new ArrayList(); + + R tdReturnMsg; + if (!baseMonitorInfo.getMonitorId().equals(dbBaseMonitorInfo.getMonitorId())) { + AlterTagVo alterTagVo = new AlterTagVo(); + alterTagVo.setDatabaseName(databaseName); + alterTagVo.setTableName(tableName); + alterTagVo.setTagName(TdEngineConstants.ST_TAG_EMS_MONITORID); + alterTagVo.setTagValue("'" + baseMonitorInfo.getMonitorId() + "'"); + alterTagVos.add(alterTagVo); + } + if (!baseMonitorInfo.getMonitorName().equals(dbBaseMonitorInfo.getMonitorName())) { + AlterTagVo alterTagVo = new AlterTagVo(); + alterTagVo.setDatabaseName(databaseName); + alterTagVo.setTableName(tableName); + alterTagVo.setTagName(TdEngineConstants.ST_TAG_EMS_MONITORNAME); + alterTagVo.setTagValue("'" + baseMonitorInfo.getMonitorName() + "'"); + alterTagVos.add(alterTagVo); + } + + if (!baseMonitorInfo.getBuildId().equals(dbBaseMonitorInfo.getBuildId())) { + AlterTagVo alterTagVo = new AlterTagVo(); + alterTagVo.setDatabaseName(databaseName); + alterTagVo.setTableName(tableName); + alterTagVo.setTagName(TdEngineConstants.ST_TAG_EMS_BUILDID); + alterTagVo.setTagValue("'" +baseMonitorInfo.getBuildId()+ "'"); + alterTagVos.add(alterTagVo); + } + + if (!alterTagVos.isEmpty()) { + tdReturnMsg = this.remoteTdEngineService.alterTableTags(alterTagVos, SecurityConstants.INNER); + if (tdReturnMsg.getCode() != Constants.SUCCESS) {//抛出异常,回滚事务 + throw new RuntimeException(tdReturnMsg.getMsg()); + } + } + + } + + /** * 批量删除计量设备信息 * @@ -387,5 +451,4 @@ public class BaseMonitorInfo1ServiceImpl implements IBaseMonitorInfo1Service { } - } diff --git a/hw-modules/hw-ems/src/main/java/com/hw/ems/record/controller/RecordDnbInstantController.java b/hw-modules/hw-ems/src/main/java/com/hw/ems/record/controller/RecordDnbInstantController.java index c87d831e..e2303b2e 100644 --- a/hw-modules/hw-ems/src/main/java/com/hw/ems/record/controller/RecordDnbInstantController.java +++ b/hw-modules/hw-ems/src/main/java/com/hw/ems/record/controller/RecordDnbInstantController.java @@ -8,6 +8,7 @@ import com.hw.common.log.annotation.Log; import com.hw.common.log.enums.BusinessType; import com.hw.common.security.annotation.RequiresPermissions; import com.hw.ems.record.domain.RecordDnbInstant; +import com.hw.ems.record.domain.vo.RecordDnbInstantDataVo; import com.hw.ems.record.service.IRecordDnbInstantService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -76,16 +77,15 @@ public class RecordDnbInstantController extends BaseController { * 查询电实时数据列表 */ @RequiresPermissions("record:dnbInstant:list") - @PostMapping("/list") + @GetMapping("/list") @ResponseBody - public TableDataInfo list(@RequestBody RecordDnbInstant recordDnbInstant) + public TableDataInfo list(RecordDnbInstant recordDnbInstant) { startPage(); - List list = recordDnbInstantService.selectRecordDnbInstantList(recordDnbInstant); - if (list == null){ - return null; - } - return getDataTable(list); + RecordDnbInstantDataVo recordDnbInstantDataVo = recordDnbInstantService.selectRecordDnbInstantList(recordDnbInstant); + List records = recordDnbInstantDataVo.getRecordDnbInstants(); + int count = recordDnbInstantDataVo.getCount(); + return getDataTable(records,count); } /** @@ -122,7 +122,8 @@ public class RecordDnbInstantController extends BaseController { @ResponseBody public void export(HttpServletResponse response,RecordDnbInstant recordDnbInstant) { - List list = recordDnbInstantService.selectRecordDnbInstantList(recordDnbInstant); + RecordDnbInstantDataVo recordDnbInstantDataVo = recordDnbInstantService.selectRecordDnbInstantList(recordDnbInstant); + List list = recordDnbInstantDataVo.getRecordDnbInstants(); ExcelUtil util = new ExcelUtil<>(RecordDnbInstant.class); util.exportExcel(response,list, "电实时数据数据"); } diff --git a/hw-modules/hw-ems/src/main/java/com/hw/ems/record/domain/vo/RecordDnbInstantDataVo.java b/hw-modules/hw-ems/src/main/java/com/hw/ems/record/domain/vo/RecordDnbInstantDataVo.java new file mode 100644 index 00000000..7c5f528c --- /dev/null +++ b/hw-modules/hw-ems/src/main/java/com/hw/ems/record/domain/vo/RecordDnbInstantDataVo.java @@ -0,0 +1,21 @@ +package com.hw.ems.record.domain.vo; + +import com.hw.ems.record.domain.RecordDnbInstant; +import lombok.Data; + +import java.util.List; + +/** + * @Description: 电历史数据返回VO + * @ClassName: RecordDnbInstantDataVo + * @Author : xins + * @Date :2023-12-30 15:35 + * @Version :1.0 + */ +@Data +public class RecordDnbInstantDataVo { + + private int count; + + private List recordDnbInstants; +} diff --git a/hw-modules/hw-ems/src/main/java/com/hw/ems/record/service/IRecordDnbInstantService.java b/hw-modules/hw-ems/src/main/java/com/hw/ems/record/service/IRecordDnbInstantService.java index 8fb3a6fe..c8b9e5ac 100644 --- a/hw-modules/hw-ems/src/main/java/com/hw/ems/record/service/IRecordDnbInstantService.java +++ b/hw-modules/hw-ems/src/main/java/com/hw/ems/record/service/IRecordDnbInstantService.java @@ -1,7 +1,9 @@ package com.hw.ems.record.service; +import com.alibaba.fastjson2.JSONObject; import com.hw.ems.record.domain.RecordDnbInstant; +import com.hw.ems.record.domain.vo.RecordDnbInstantDataVo; import java.util.List; import java.util.Map; @@ -27,7 +29,7 @@ public interface IRecordDnbInstantService { * @param recordDnbInstant 电实时数据 * @return 电实时数据集合 */ - public List selectRecordDnbInstantList(RecordDnbInstant recordDnbInstant); + public RecordDnbInstantDataVo selectRecordDnbInstantList(RecordDnbInstant recordDnbInstant); /** * 新增电实时数据 diff --git a/hw-modules/hw-ems/src/main/java/com/hw/ems/record/service/impl/RecordAlarmDataServiceImpl.java b/hw-modules/hw-ems/src/main/java/com/hw/ems/record/service/impl/RecordAlarmDataServiceImpl.java index 3646c765..6df615f5 100644 --- a/hw-modules/hw-ems/src/main/java/com/hw/ems/record/service/impl/RecordAlarmDataServiceImpl.java +++ b/hw-modules/hw-ems/src/main/java/com/hw/ems/record/service/impl/RecordAlarmDataServiceImpl.java @@ -363,7 +363,7 @@ public class RecordAlarmDataServiceImpl implements IRecordAlarmDataService { tdSelectDto.setSchemaFieldValues(listTdfields); List baseMonitorInfos = baseMonitorInfo1Service.selectBaseMonitorInfoList(new BaseMonitorInfo()); for (BaseMonitorInfo baseMonitorInfo : baseMonitorInfos){ - tdSelectDto.setTableName(TdEngineConstants.getEmsTableName(baseMonitorInfo.getMonitorId())); + tdSelectDto.setTableName(TdEngineConstants.getEmsTableName(baseMonitorInfo.getObjid())); // tdSelectDto.setTableName(TdEngineConstants.getEmsTableName("ceshi7")); tdSelectDto.setTagsName("monitorobjid"); //查出每个计量设备最新的一条实时数据 diff --git a/hw-modules/hw-ems/src/main/java/com/hw/ems/record/service/impl/RecordDnbInstantServiceImpl.java b/hw-modules/hw-ems/src/main/java/com/hw/ems/record/service/impl/RecordDnbInstantServiceImpl.java index 45243ff2..bc5b58b8 100644 --- a/hw-modules/hw-ems/src/main/java/com/hw/ems/record/service/impl/RecordDnbInstantServiceImpl.java +++ b/hw-modules/hw-ems/src/main/java/com/hw/ems/record/service/impl/RecordDnbInstantServiceImpl.java @@ -8,6 +8,7 @@ import java.time.format.DateTimeFormatter; import java.util.*; +import com.alibaba.fastjson2.JSONObject; import com.hw.common.core.constant.SecurityConstants; import com.hw.common.core.constant.TdEngineConstants; import com.hw.common.core.domain.R; @@ -19,14 +20,14 @@ import com.hw.ems.base.domain.BaseMonitorInfo; import com.hw.ems.base.service.IBaseEnergyTypeService; import com.hw.ems.base.service.IBaseMonitorInfoService; import com.hw.ems.record.domain.RecordDnbInstant; +import com.hw.ems.record.domain.vo.RecordDnbInstantDataVo; import com.hw.ems.record.mapper.RecordDnbInstantMapper; import com.hw.ems.record.service.IRecordDnbInstantService; import com.hw.ems.report.domain.ReportPointDnb; import com.hw.ems.report.service.IReportPointDnbService; import com.hw.tdengine.api.RemoteTdEngineService; -import com.hw.tdengine.api.domain.TdHistorySelectDto; -import com.hw.tdengine.api.domain.TdReturnDataVo; -import com.hw.tdengine.api.domain.TdSuperTableSelectVo; +import com.hw.tdengine.api.domain.*; +import com.hw.tdengine.api.domain.ems.TdSuperTableEmsSelectVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -81,70 +82,73 @@ public class RecordDnbInstantServiceImpl implements IRecordDnbInstantService { @Override //@DS("#header.poolName") // @DataScope(deptAlias = "null") - public List selectRecordDnbInstantList(RecordDnbInstant recordDnbInstant) { -// todo 调用tde引擎查询实时数据 + public RecordDnbInstantDataVo selectRecordDnbInstantList(RecordDnbInstant recordDnbInstant) { + RecordDnbInstantDataVo recordDnbInstantDataVo = new RecordDnbInstantDataVo(); try { - List> list = new ArrayList>(); + Integer pageNum = Integer.valueOf((String) recordDnbInstant.getParams().get("pageNum")); + Integer pageSize = Integer.valueOf((String) recordDnbInstant.getParams().get("pageSize")); + Integer offset = (pageNum - 1) * pageSize; List records = new ArrayList(); - List baseMonitorInfos = baseMonitorInfoService.selectBaseMonitorInfoList(new BaseMonitorInfo()); - String stratTime = (String)recordDnbInstant.getParams().get("beginCollectTime"); - String endTime = (String)recordDnbInstant.getParams().get("endCollectTime"); + BaseMonitorInfo queryMonitorInfo = new BaseMonitorInfo(); + queryMonitorInfo.setMonitorId(recordDnbInstant.getMonitorId()); +// List baseMonitorInfos = baseMonitorInfoService.selectBaseMonitorInfoList(queryMonitorInfo); + String stratTime = (String) recordDnbInstant.getParams().get("beginTime"); + String endTime = (String) recordDnbInstant.getParams().get("endTime"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date dateStrat = sdf.parse(stratTime); Date dateEnd = sdf.parse(endTime); - TdHistorySelectDto tdHistorySelectDto = new TdHistorySelectDto(); - tdHistorySelectDto.setDatabaseName("db_hwmes"); - /** - * 先判断是要查询总的电实时数据还是查询单个计量设备的电实时数据 - * */ -// if (recordDnbInstant.getMonitorId()==""||recordDnbInstant.getMonitorId()==null) { -// TdSuperTableSelectVo tdSuperTableSelectVo = new TdSuperTableSelectVo(); -// tdSuperTableSelectVo.setDatabaseName("db_hwmes"); -// tdSuperTableSelectVo.setSuperTableName("st_electricity"); -// //获取13位的时间戳 -// tdSuperTableSelectVo.setStartTime(dateStrat.getTime()); -// tdSuperTableSelectVo.setEndTime(dateEnd.getTime()); -//// R>> latestDataByTags = remoteTdEngineService.getLatestDataByTags(tdSuperTableSelectVo, SecurityConstants.INNER); -//// List> data = latestDataByTags.getData(); -// return remoteTdEngineService.getLatestDataByTags(tdSuperTableSelectVo, SecurityConstants.INNER).getData(); -// } - for (BaseMonitorInfo baseMonitorInfo:baseMonitorInfos){ - tdHistorySelectDto.setTableName(TdEngineConstants.getEmsTableName(baseMonitorInfo.getMonitorId())); - tdHistorySelectDto.setStartTime(dateStrat.getTime()); - tdHistorySelectDto.setEndTime(dateEnd.getTime()); - tdHistorySelectDto.setFirstFieldName("ts"); -// list = (List>)remoteTdEngineService.getHistoryData(tdHistorySelectDto, SecurityConstants.INNER); -// list.addAll((List>)remoteTdEngineService.getHistoryData(tdHistorySelectDto, SecurityConstants.INNER)); - List> dataList = remoteTdEngineService.getHistoryData(tdHistorySelectDto, SecurityConstants.INNER).getData().getDataList(); - for (Map data : dataList){ - RecordDnbInstant recordDnbInstant1 = new RecordDnbInstant(); - recordDnbInstant1.setObjid(baseMonitorInfo.getObjid()); - recordDnbInstant1.setMonitorId(baseMonitorInfo.getMonitorId()); - recordDnbInstant1.setMonitorName(baseMonitorInfo.getMonitorName()); - recordDnbInstant1.setVA(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("volatagea"))))); - recordDnbInstant1.setVB(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("volatageb"))))); - recordDnbInstant1.setVC(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("volatagec"))))); - recordDnbInstant1.setIA(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("currenta"))))); - recordDnbInstant1.setIB(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("currentb"))))); - recordDnbInstant1.setIC(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("currentc"))))); - recordDnbInstant1.setGlys(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("glys"))))); - recordDnbInstant1.setZxyg(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("zxyg"))))); - recordDnbInstant1.setActivePower(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("activepower"))))); - recordDnbInstant1.setReactivePower(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("reactivepower"))))); - //调整时间格式 - String substring = String.valueOf(data.get("ts")).replaceAll("T", " ").substring(0, 19); - recordDnbInstant1.setCollectTime(sdf.parse(substring)); -// recordDnbInstant.setConsumption(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get(0).get("consuption"))))); - recordDnbInstant1.setCollectType(Long.valueOf(String.valueOf(data.get("collecttype")))); - records.add(recordDnbInstant1); - } + + TdSuperTableEmsSelectVo tdSuperTableCommonSelectVo = new TdSuperTableEmsSelectVo(); + tdSuperTableCommonSelectVo.setDatabaseName("db_hwmes"); + tdSuperTableCommonSelectVo.setSuperTableName("st_electricity"); + tdSuperTableCommonSelectVo.setStartTime(dateStrat.getTime()); + tdSuperTableCommonSelectVo.setEndTime(dateEnd.getTime()); + tdSuperTableCommonSelectVo.setFirstFieldName("ts"); + tdSuperTableCommonSelectVo.setOrderByFieldName("ts"); + tdSuperTableCommonSelectVo.setSort("desc"); + tdSuperTableCommonSelectVo.setOffset(offset); + tdSuperTableCommonSelectVo.setLimit(pageSize); + + Object monitorObjidValue = recordDnbInstant.getParams().get("monitorObjid"); + if (monitorObjidValue != null) { + tdSuperTableCommonSelectVo.setMonitorObjid(Long.valueOf(String.valueOf(monitorObjidValue))); } - return records; + + TdReturnDataVo tdReturnDataVo = remoteTdEngineService.getSuperTableHistoryData(tdSuperTableCommonSelectVo, SecurityConstants.INNER).getData(); + if (tdReturnDataVo == null) { + return recordDnbInstantDataVo; + } + List> dataList = tdReturnDataVo.getDataList(); + + for (Map data : dataList) { + RecordDnbInstant recordDnbInstant1 = new RecordDnbInstant(); + recordDnbInstant1.setObjid(Long.valueOf(String.valueOf(data.get(TdEngineConstants.ST_TAG_EMS_MONITOROBJID)))); + recordDnbInstant1.setMonitorId(String.valueOf(data.get(TdEngineConstants.ST_TAG_EMS_MONITORID))); + recordDnbInstant1.setMonitorName(String.valueOf(data.get(TdEngineConstants.ST_TAG_EMS_MONITORNAME))); + recordDnbInstant1.setVA(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("volatagea"))))); + recordDnbInstant1.setVB(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("volatageb"))))); + recordDnbInstant1.setVC(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("volatagec"))))); + recordDnbInstant1.setIA(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("currenta"))))); + recordDnbInstant1.setIB(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("currentb"))))); + recordDnbInstant1.setIC(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("currentc"))))); + recordDnbInstant1.setGlys(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("glys"))))); + recordDnbInstant1.setZxyg(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("zxyg"))))); + recordDnbInstant1.setActivePower(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("activepower"))))); + recordDnbInstant1.setReactivePower(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("reactivepower"))))); + //调整时间格式 + String substring = String.valueOf(data.get("ts")).replaceAll("T", " ").substring(0, 19); + recordDnbInstant1.setCollectTime(sdf.parse(substring)); +// recordDnbInstant.setConsumption(BigDecimal.valueOf(Double.valueOf(String.valueOf(data.get("consumption"))))); + recordDnbInstant1.setCollectType(Long.valueOf(String.valueOf(data.get("collecttype")))); + records.add(recordDnbInstant1); + } + recordDnbInstantDataVo.setCount(tdReturnDataVo.getCount()); + recordDnbInstantDataVo.setRecordDnbInstants(records); + return recordDnbInstantDataVo; } catch (ParseException e) { e.printStackTrace(); } - List lists = new ArrayList<>(); - return lists; + return recordDnbInstantDataVo; } /** @@ -251,7 +255,8 @@ public class RecordDnbInstantServiceImpl implements IRecordDnbInstantService { /** * 获取最新实时电数据 - * 需要先排序在查询出每个设备的最新数据 + * 需要先排序在查询出每个设备的最新数据 + * * @param baseDnbInstant * @return */ @@ -315,10 +320,10 @@ public class RecordDnbInstantServiceImpl implements IRecordDnbInstantService { @Override //@DS("#header.poolName") public List voltageCurrentCurve(RecordDnbInstant dnbInstant) { - if (StringUtils.isEmpty(dnbInstant.getMonitorId())){ + if (StringUtils.isEmpty(dnbInstant.getMonitorId())) { return null; } - if (StringUtils.isEmpty(dnbInstant.getStartTime()) || StringUtils.isEmpty(dnbInstant.getEndTime())){ + if (StringUtils.isEmpty(dnbInstant.getStartTime()) || StringUtils.isEmpty(dnbInstant.getEndTime())) { String nowTime = DateUtils.getTime(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime modifiedDateTime = LocalDateTime.parse(nowTime, formatter).minusMinutes(30); @@ -331,7 +336,7 @@ public class RecordDnbInstantServiceImpl implements IRecordDnbInstantService { /** * 定时任务用:通过定时任务获取电实时数据 - * */ + */ //todo 通过tde 将电实时数据存入到电整点数据中 @Override public void getDnbInstantByJob() { @@ -341,9 +346,9 @@ public class RecordDnbInstantServiceImpl implements IRecordDnbInstantService { List baseEnergyTypes = baseEnergyTypeService.selectBaseEnergyTypeList(new BaseEnergyType()); //获取当前时间与一小时前时间 - long endTime= System.currentTimeMillis(); - //从一小时前开始,十点的话就是从九点开始,不是九点零一,开始就 - long startTime = System.currentTimeMillis()-60*60*1000-10; + long endTime = System.currentTimeMillis(); + //从一小时前开始,十点的话就是从九点开始,不是九点零一,开始就 + long startTime = System.currentTimeMillis() - 60 * 60 * 1000 - 10; tdHistorySelectDto.setStartTime(startTime); tdHistorySelectDto.setEndTime(endTime); Date date = new Date(); @@ -353,45 +358,46 @@ public class RecordDnbInstantServiceImpl implements IRecordDnbInstantService { List baseMonitorInfos = baseMonitorInfoService.selectBaseMonitorInfoList(new BaseMonitorInfo()); List reportPoints = new ArrayList(); //根据计量设备id获取能源表名称 - if (!baseMonitorInfos.isEmpty()){ - for (BaseMonitorInfo baseMonitorInfo : baseMonitorInfos) { - try { - String emsTableName = TdEngineConstants.getEmsTableName(baseMonitorInfo.getMonitorId()); - //获取当前数据以及一小时前的数据 - tdHistorySelectDto.setTableName(emsTableName); + if (!baseMonitorInfos.isEmpty()) { + for (BaseMonitorInfo baseMonitorInfo : baseMonitorInfos) { + try { + String emsTableName = TdEngineConstants.getEmsTableName(baseMonitorInfo.getObjid()); + //获取当前数据以及一小时前的数据 + tdHistorySelectDto.setTableName(emsTableName); // tdHistorySelectDto.setTableName("t_e_ceshi7"); - List> dnbInstant =remoteTdEngineService.getHistoryData(tdHistorySelectDto, SecurityConstants.INNER).getData().getDataList(); - R historyData = remoteTdEngineService.getHistoryData(tdHistorySelectDto, SecurityConstants.INNER); - ReportPointDnb report = new ReportPointDnb(); - report.setMonitorId(baseMonitorInfo.getMonitorId()); - report.setMonitorName(baseMonitorInfo.getMonitorName()); - report.setpMonitorId(String.valueOf(baseMonitorInfo.getParentId())); - report.setAddress(baseMonitorInfo.getMonitorAddr()); - BigDecimal MaxZXYG= BigDecimal.valueOf(Double.valueOf(String.valueOf(dnbInstant.get(dnbInstant.size()-1).get("zxyg")))); - BigDecimal MinZXYG = BigDecimal.valueOf(Double.valueOf(String.valueOf(dnbInstant.get(0).get("zxyg")))); - //pt ct值暂时无用,默认为1 需要时从计量设备信息中根据id获取 - int pt = 1; - int ct = 1; - //乘ct值和pt值 - /** - * (MAX(ifnull(t1.zxyg,0)) - MIN(ifnull(t1.zxyg,0))) * ifnull(t2.pt,1) * ifnull(t2.ct,1)as expend, - * 0 as price, - * hour(date_sub(@nowDate, interval 1 hour)) as point_time, - * DATE_FORMAT(date_sub(@nowDate, interval 1 hour),'%Y-%m-%d %H:00:00') as begin_time, - * DATE_FORMAT(@nowDate,'%Y-%m-%d %H:00:00') as end_time, - * DATE_FORMAT(date_sub(@nowDate,interval 1 hour),'%Y-%m-%d %H:00:00') as record_time*/ - report.setExpend(MaxZXYG.subtract(MinZXYG).multiply(new BigDecimal(pt)).multiply(new BigDecimal(ct))); - report.setPrice(new BigDecimal(0)); - report.setPointTime(String.valueOf(hours-1)); - report.setMeterValue(MaxZXYG.subtract(MinZXYG)); - report.setRecordTime(sdf.parse(sdf.format(startTime))); - report.setBeginTime(sdf.parse(sdf.format(startTime))); - report.setEndTime(sdf.parse(sdf.format(endTime))); - reportPoints.add(report); - } catch (ParseException e) { - e.printStackTrace(); + List> dnbInstant = remoteTdEngineService.getHistoryData(tdHistorySelectDto, SecurityConstants.INNER).getData().getDataList(); + R historyData = remoteTdEngineService.getHistoryData(tdHistorySelectDto, SecurityConstants.INNER); + ReportPointDnb report = new ReportPointDnb(); + report.setMonitorId(baseMonitorInfo.getMonitorId()); + report.setMonitorName(baseMonitorInfo.getMonitorName()); + report.setpMonitorId(String.valueOf(baseMonitorInfo.getParentId())); + report.setAddress(baseMonitorInfo.getMonitorAddr()); + BigDecimal MaxZXYG = BigDecimal.valueOf(Double.valueOf(String.valueOf(dnbInstant.get(dnbInstant.size() - 1).get("zxyg")))); + BigDecimal MinZXYG = BigDecimal.valueOf(Double.valueOf(String.valueOf(dnbInstant.get(0).get("zxyg")))); + //pt ct值暂时无用,默认为1 需要时从计量设备信息中根据id获取 + int pt = 1; + int ct = 1; + //乘ct值和pt值 + /** + * (MAX(ifnull(t1.zxyg,0)) - MIN(ifnull(t1.zxyg,0))) * ifnull(t2.pt,1) * ifnull(t2.ct,1)as expend, + * 0 as price, + * hour(date_sub(@nowDate, interval 1 hour)) as point_time, + * DATE_FORMAT(date_sub(@nowDate, interval 1 hour),'%Y-%m-%d %H:00:00') as begin_time, + * DATE_FORMAT(@nowDate,'%Y-%m-%d %H:00:00') as end_time, + * DATE_FORMAT(date_sub(@nowDate,interval 1 hour),'%Y-%m-%d %H:00:00') as record_time*/ + report.setExpend(MaxZXYG.subtract(MinZXYG).multiply(new BigDecimal(pt)).multiply(new BigDecimal(ct))); + report.setPrice(new BigDecimal(0)); + report.setPointTime(String.valueOf(hours - 1)); + report.setMeterValue(MaxZXYG.subtract(MinZXYG)); + report.setRecordTime(sdf.parse(sdf.format(startTime))); + report.setBeginTime(sdf.parse(sdf.format(startTime))); + report.setEndTime(sdf.parse(sdf.format(endTime))); + reportPoints.add(report); + } catch (ParseException e) { + e.printStackTrace(); + } } - }} + } //将获取到的数据存入到实时数据中 for (ReportPointDnb p : reportPoints) { reportPointDnbService.insertReportPointDnb(p); diff --git a/hw-modules/hw-ems/src/main/resources/mapper/base/BaseMonitorInfo1Mapper.xml b/hw-modules/hw-ems/src/main/resources/mapper/base/BaseMonitorInfo1Mapper.xml index 13e7da23..473eb6a9 100644 --- a/hw-modules/hw-ems/src/main/resources/mapper/base/BaseMonitorInfo1Mapper.xml +++ b/hw-modules/hw-ems/src/main/resources/mapper/base/BaseMonitorInfo1Mapper.xml @@ -15,7 +15,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -41,7 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select objid, parent_id, monitor_id, monitor_name, monitor_addr, monitor_type, monitor_status, - collect_device_id, ancestors, grade, build_objid, subentry_id, business_id, meter_type_id, + collect_device_id, ancestors, grade, build_id, subentry_id, business_id, meter_type_id, meter_id, correct_value, pt, ct, is_ammeter, is_key_monitor, is_circuit, dept_id, user_id, create_by, create_time, update_by, update_time, public_share_type,monitor_hierarchy,room_code,room_name,physical_code from base_monitor_info @@ -57,7 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and collect_device_id = #{collectDeviceId} and ancestors = #{ancestors} and grade = #{grade} - and build_objid = #{buildObjid} + and build_id = #{buildId} and subentry_id = #{subentryId} and business_id = #{businessId} and meter_type_id = #{meterTypeId} @@ -118,7 +118,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" collect_device_id, ancestors, grade, - build_objid, + build_id, subentry_id, business_id, meter_type_id, @@ -151,7 +151,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{collectDeviceId}, #{ancestors}, #{grade}, - #{buildObjid}, + #{buildId}, #{subentryId}, #{businessId}, #{meterTypeId}, @@ -188,7 +188,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" collect_device_id = #{collectDeviceId}, ancestors = #{ancestors}, grade = #{grade}, - build_objid = #{buildObjid}, + build_id = #{buildId}, subentry_id = #{subentryId}, business_id = #{businessId}, meter_type_id = #{meterTypeId}, diff --git a/hw-modules/hw-ems/src/main/resources/mapper/base/BaseMonitorInfoMapper.xml b/hw-modules/hw-ems/src/main/resources/mapper/base/BaseMonitorInfoMapper.xml index ec60bffc..8dbfa7dd 100644 --- a/hw-modules/hw-ems/src/main/resources/mapper/base/BaseMonitorInfoMapper.xml +++ b/hw-modules/hw-ems/src/main/resources/mapper/base/BaseMonitorInfoMapper.xml @@ -15,7 +15,7 @@ - + @@ -37,7 +37,7 @@ select objid, parent_id, monitor_id, monitor_name, monitor_addr, monitor_type, - monitor_status, collect_device_id, ancestors, grade, build_objid, subentry_id, + monitor_status, collect_device_id, ancestors, grade, build_id, subentry_id, business_id, meter_type_id, meter_id, correct_value, pt, ct, is_ammeter, is_key_monitor, is_circuit, dept_id, user_id, create_by, create_time, update_by, update_time from base_monitor_info @@ -54,7 +54,7 @@ and collect_device_id = #{collectDeviceId} and ancestors = #{ancestors} and grade = #{grade} - and build_objid = #{buildObjid} + and build_id = #{buildId} and subentry_id = #{subentryId} and business_id = #{businessId} and meter_type_id = #{meterTypeId} @@ -70,7 +70,7 @@ select objid,is_key_monitor parent_id, monitor_id, monitor_name, monitor_addr, monitor_type, - monitor_status, collect_device_id, ancestors, grade, build_objid, subentry_id, + monitor_status, collect_device_id, ancestors, grade, build_id, subentry_id, business_id, meter_type_id, meter_id, correct_value, pt, ct, is_ammeter, is_key_monitor, is_circuit, dept_id, user_id, create_by, create_time, update_by, update_time from base_monitor_info @@ -245,7 +245,7 @@ and collect_device_id = #{collectDeviceId} and ancestors = #{ancestors} and grade = #{grade} - and build_objid = #{buildObjid} + and build_id = #{buildId} and subentry_id = #{subentryId} and business_id = #{businessId} and meter_type_id = #{meterTypeId} diff --git a/hw-modules/hw-tdengine/src/main/java/com/hw/tdengine/controller/TdEngineController.java b/hw-modules/hw-tdengine/src/main/java/com/hw/tdengine/controller/TdEngineController.java index d696f10c..966962d2 100644 --- a/hw-modules/hw-tdengine/src/main/java/com/hw/tdengine/controller/TdEngineController.java +++ b/hw-modules/hw-tdengine/src/main/java/com/hw/tdengine/controller/TdEngineController.java @@ -5,6 +5,7 @@ import com.hw.common.core.validated.tdengine.AddTdSTableColumn; import com.hw.common.core.validated.tdengine.InsertTdTable; import com.hw.common.security.annotation.InnerAuth; import com.hw.tdengine.api.domain.*; +import com.hw.tdengine.api.domain.ems.TdSuperTableEmsSelectVo; import com.hw.tdengine.service.IDeviceStatusService; import com.hw.tdengine.service.ITdEngineService; import org.slf4j.Logger; @@ -188,7 +189,7 @@ public class TdEngineController { try { TdFieldVo modifyTdFieldVo = TdFieldVo.convertField(modifyTdField); this.tdEngineService.modifySuperTableColumn(databaseName, superTableName, modifyTdFieldVo); - log.info("successfully modified column for superTable {} " , superTableName); + log.info("successfully modified column for superTable {} ", superTableName); return R.ok("successfully modified column for superTable " + superTableName); } catch (UncategorizedSQLException e) { String message = e.getCause().getMessage(); @@ -395,6 +396,31 @@ public class TdEngineController { } } + + @InnerAuth + @PostMapping("/getSuperTableHistoryData") + public R getSuperTableHistoryData(@Validated @RequestBody TdSuperTableEmsSelectVo tdSuperTableEmsSelectVo) { + try { + int count = this.tdEngineService.getCountOfSuperTableHistoryData(tdSuperTableEmsSelectVo); + TdReturnDataVo returnDataVo = new TdReturnDataVo(); + returnDataVo.setCount(count); + returnDataVo.setDataList(this.tdEngineService.getSuperTableHistoryData(tdSuperTableEmsSelectVo)); + return R.ok(returnDataVo); + } catch (UncategorizedSQLException e) { + String message = e.getCause().getMessage(); + try { + message = message.substring(message.lastIndexOf("invalid operation")); + } catch (Exception ex) { + } + log.error(message); + return R.fail(message); + } catch (Exception e) { + log.error(e.getMessage()); + return R.fail(e.getMessage()); + } + } + + /** * @return R * @param: queryDeviceStatus @@ -436,7 +462,7 @@ public class TdEngineController { @PostMapping("/getLastOnlineDevices") public R getLastOnlineDevices(@RequestBody DeviceStatus queryDeviceStatus) { try { - List> deviceStatusMapList = this.deviceStatusService.getLastOnlineDevices(queryDeviceStatus); + List> deviceStatusMapList = this.deviceStatusService.getLastOnlineDevices(queryDeviceStatus); return R.ok(deviceStatusMapList); } catch (UncategorizedSQLException e) { String message = e.getCause().getMessage(); @@ -464,7 +490,7 @@ public class TdEngineController { @PostMapping("/getDeviceStatusList") public R>> getDeviceStatusList(@RequestBody DeviceStatus queryDeviceStatus) { try { - List> deviceStatusMapList = this.deviceStatusService.getDeviceStatusList(queryDeviceStatus); + List> deviceStatusMapList = this.deviceStatusService.getDeviceStatusList(queryDeviceStatus); return R.ok(deviceStatusMapList); } catch (UncategorizedSQLException e) { String message = e.getCause().getMessage(); @@ -480,4 +506,36 @@ public class TdEngineController { } } + + + /** + * @return R + * @param: alterTagVos + * @description 批量修改子表tag值 + * @author xins + * @date 2023-08-30 11:17 + */ + @InnerAuth + @PostMapping("/alterTableTags") + public R alterTableTags(@Validated @RequestBody List alterTagVos) { + + try { + this.tdEngineService.alterTableTags(alterTagVos); + log.info("successfully altered tag " + alterTagVos.toString()); + return R.ok("successfully altered tag " + alterTagVos.toString()); + } catch (UncategorizedSQLException e) { + String message = e.getCause().getMessage(); + try { + message = message.substring(message.lastIndexOf("invalid operation")); + } catch (Exception ex) { + } + log.error(message); + return R.fail(message); + } catch (Exception e) { + log.error(e.getMessage()); + return R.fail(e.getMessage()); + } + } + + } diff --git a/hw-modules/hw-tdengine/src/main/java/com/hw/tdengine/mapper/TdEngineMapper.java b/hw-modules/hw-tdengine/src/main/java/com/hw/tdengine/mapper/TdEngineMapper.java index 87fd769a..81b5aab7 100644 --- a/hw-modules/hw-tdengine/src/main/java/com/hw/tdengine/mapper/TdEngineMapper.java +++ b/hw-modules/hw-tdengine/src/main/java/com/hw/tdengine/mapper/TdEngineMapper.java @@ -1,6 +1,7 @@ package com.hw.tdengine.mapper; import com.hw.tdengine.api.domain.*; +import com.hw.tdengine.api.domain.ems.TdSuperTableEmsSelectVo; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -143,7 +144,7 @@ public interface TdEngineMapper { /** - * @return List> + * @return List> * @param: tdSelectDto * @description 获取历史数据 * @author xins @@ -153,6 +154,19 @@ public interface TdEngineMapper { int getCountOfHistoryData(TdHistorySelectDto tdHistorySelectDto); + + /** + * @return List> + * @param: tdSelectDto + * @description 获取历史数据 + * @author xins + * @date 2023-08-29 15:50 + */ + List> getSuperTableHistoryData(TdSuperTableEmsSelectVo tdSuperTableEmsSelectVo); + + int getCountOfSuperTableHistoryData(TdSuperTableEmsSelectVo tdSuperTableEmsSelectVo); + + // /** // * 检查表是否存在 // * @param dataBaseName diff --git a/hw-modules/hw-tdengine/src/main/java/com/hw/tdengine/service/ITdEngineService.java b/hw-modules/hw-tdengine/src/main/java/com/hw/tdengine/service/ITdEngineService.java index 0c2e219a..160b5ca5 100644 --- a/hw-modules/hw-tdengine/src/main/java/com/hw/tdengine/service/ITdEngineService.java +++ b/hw-modules/hw-tdengine/src/main/java/com/hw/tdengine/service/ITdEngineService.java @@ -1,6 +1,7 @@ package com.hw.tdengine.service; import com.hw.tdengine.api.domain.*; +import com.hw.tdengine.api.domain.ems.TdSuperTableEmsSelectVo; import java.util.List; import java.util.Map; @@ -134,6 +135,29 @@ public interface ITdEngineService { public int getCountOfHistoryData(TdHistorySelectDto tdHistorySelectDto); + /** + * @return List> + * @param: tdSuperTableEmsSelectVo + * @description 获取超级表历史数据 + * @author xins + * @date 2023-12-29 22:40 + */ + public List> getSuperTableHistoryData(TdSuperTableEmsSelectVo tdSuperTableEmsSelectVo); + + /** + * @param: tdSuperTableEmsSelectVo + * @description 获取超级表历史数据总数量 + * @author xins + * @date 2023-12-29 22:40 + * @return int + */ + public int getCountOfSuperTableHistoryData(TdSuperTableEmsSelectVo tdSuperTableEmsSelectVo); + + /** + * 批量更新表的tag + * @param alterTagVos + */ + public void alterTableTags(List alterTagVos); // void initSTableFrame(String msg) throws Exception; // List> getRealtimeData(SelectVisualDto selectVisualDto); diff --git a/hw-modules/hw-tdengine/src/main/java/com/hw/tdengine/service/impl/TdEngineServiceImpl.java b/hw-modules/hw-tdengine/src/main/java/com/hw/tdengine/service/impl/TdEngineServiceImpl.java index e25621a5..012080a1 100644 --- a/hw-modules/hw-tdengine/src/main/java/com/hw/tdengine/service/impl/TdEngineServiceImpl.java +++ b/hw-modules/hw-tdengine/src/main/java/com/hw/tdengine/service/impl/TdEngineServiceImpl.java @@ -1,6 +1,7 @@ package com.hw.tdengine.service.impl; import com.hw.tdengine.api.domain.*; +import com.hw.tdengine.api.domain.ems.TdSuperTableEmsSelectVo; import com.hw.tdengine.mapper.TdEngineMapper; import com.hw.tdengine.service.ITdEngineService; import org.apache.commons.lang3.StringUtils; @@ -238,6 +239,49 @@ public class TdEngineServiceImpl implements ITdEngineService { int count = this.tdEngineMapper.getCountOfHistoryData(tdHistorySelectDto); return count; } + + + + + /** + * @return List> + * @param: tdSuperTableCommonSelectVo + * @description 获取超级表历史数据 + * @author xins + * @date 2023-12-29 22:40 + */ + @Override + public List> getSuperTableHistoryData(TdSuperTableEmsSelectVo tdSuperTableEmsSelectVo) { + List> historyDataMaps = this.tdEngineMapper.getSuperTableHistoryData(tdSuperTableEmsSelectVo); + return historyDataMaps; + } + + /** + * @param: tdSuperTableEmsSelectVo + * @description 获取超级表历史数据总数量 + * @author xins + * @date 2023-12-29 22:40 + * @return int + */ + @Override + public int getCountOfSuperTableHistoryData(TdSuperTableEmsSelectVo tdSuperTableEmsSelectVo){ + int count = this.tdEngineMapper.getCountOfSuperTableHistoryData(tdSuperTableEmsSelectVo); + return count; + } + + + /** + * 批量更新表的tag + * @param alterTagVos + */ + @Override + public void alterTableTags(List alterTagVos) { + alterTagVos.forEach(alterTagVo -> { + this.tdEngineMapper.alterTableTag(alterTagVo.getDatabaseName(), alterTagVo.getTableName(), alterTagVo.getTagName(), alterTagVo.getTagValue()); + }); + } + + // // /** // * 检查数据库表是否存在 diff --git a/hw-modules/hw-tdengine/src/main/resources/mapper/tdengine/TdEngineMapper.xml b/hw-modules/hw-tdengine/src/main/resources/mapper/tdengine/TdEngineMapper.xml index dd81aa81..e935dac0 100644 --- a/hw-modules/hw-tdengine/src/main/resources/mapper/tdengine/TdEngineMapper.xml +++ b/hw-modules/hw-tdengine/src/main/resources/mapper/tdengine/TdEngineMapper.xml @@ -313,6 +313,55 @@ + + + + + + + + 搜索 - 重置 + 重置 导出 @@ -97,19 +100,19 @@ - + @@ -117,11 +120,10 @@