From 5c38593cad55879a188dd88824a2cde415b68c7a Mon Sep 17 00:00:00 2001 From: haungxing <1203316822@qq.com> Date: Thu, 22 Aug 2024 10:51:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=90=91=E9=87=8F=E5=BA=93=E7=BB=B4?= =?UTF-8?q?=E6=8A=A4=E4=B8=B4=E6=97=B6=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bigmodel/api/wrapper/BaseSyncWrapper.java | 21 ++++++ .../bigmodel/maintenance/entity/ControlEntity.java | 2 +- hzims-service/hzims-big-model/pom.xml | 5 ++ .../control/DataSourceExecuteController.java | 33 ---------- .../business/control/RemoteController.java | 34 ---------- .../controller/DataSourceExecuteController.java | 33 ++++++++++ .../business/controller/RemoteController.java | 34 ++++++++++ .../business/wrapper/CanvasSyncWrapper.java | 21 ++++++ .../bigmodel/configuration/WeaviateConfig.java | 20 ++++++ .../maintenance/entity/SyncPropertyEntity.java | 40 ++++++++++++ .../maintenance/service/TableColumnService.java | 6 +- .../bigmodel/zhipuai/config/ZhipuAiConfig.java | 35 ++++++++++ .../operational/station/aspect/AddVideoAspect.java | 76 ---------------------- .../station/aspect/VideoSyncAspect.java | 58 +++++++++++++++++ .../station/wrapper/VideoSyncWrapper.java | 38 +++++++++++ 15 files changed, 309 insertions(+), 147 deletions(-) create mode 100644 hzims-service-api/big-model-api/src/main/java/com/hnac/hzims/bigmodel/api/wrapper/BaseSyncWrapper.java delete mode 100644 hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/business/control/DataSourceExecuteController.java delete mode 100644 hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/business/control/RemoteController.java create mode 100644 hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/business/controller/DataSourceExecuteController.java create mode 100644 hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/business/controller/RemoteController.java create mode 100644 hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/business/wrapper/CanvasSyncWrapper.java create mode 100644 hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/configuration/WeaviateConfig.java create mode 100644 hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/maintenance/entity/SyncPropertyEntity.java delete mode 100644 hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/aspect/AddVideoAspect.java create mode 100644 hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/aspect/VideoSyncAspect.java create mode 100644 hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/wrapper/VideoSyncWrapper.java diff --git a/hzims-service-api/big-model-api/src/main/java/com/hnac/hzims/bigmodel/api/wrapper/BaseSyncWrapper.java b/hzims-service-api/big-model-api/src/main/java/com/hnac/hzims/bigmodel/api/wrapper/BaseSyncWrapper.java new file mode 100644 index 0000000..4cef0d1 --- /dev/null +++ b/hzims-service-api/big-model-api/src/main/java/com/hnac/hzims/bigmodel/api/wrapper/BaseSyncWrapper.java @@ -0,0 +1,21 @@ +package com.hnac.hzims.bigmodel.api.wrapper; + +import com.hnac.hzims.bigmodel.api.dto.SyncDTO; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author: huangxing + * @Date: 2024/08/20 09:23 + * @Describe 对象转换为同步对象基础类 + */ +public abstract class BaseSyncWrapper { + + public abstract S convert(O obj); + + public List listVO(List list) { + return list.stream().map(this::convert).collect(Collectors.toList()); + } + +} diff --git a/hzims-service-api/big-model-api/src/main/java/com/hnac/hzims/bigmodel/maintenance/entity/ControlEntity.java b/hzims-service-api/big-model-api/src/main/java/com/hnac/hzims/bigmodel/maintenance/entity/ControlEntity.java index 889b04a..d2176e8 100644 --- a/hzims-service-api/big-model-api/src/main/java/com/hnac/hzims/bigmodel/maintenance/entity/ControlEntity.java +++ b/hzims-service-api/big-model-api/src/main/java/com/hnac/hzims/bigmodel/maintenance/entity/ControlEntity.java @@ -26,7 +26,7 @@ public class ControlEntity extends TenantEntity implements Serializable { @ApiModelProperty(value = "itemId",required = true) private String itemId; - @ApiModelProperty(value = "站点名称",required = true) + @ApiModelProperty(value = "站点名称") @QueryField(condition = SqlCondition.LIKE) private String stationName; diff --git a/hzims-service/hzims-big-model/pom.xml b/hzims-service/hzims-big-model/pom.xml index d3624b5..61973c4 100644 --- a/hzims-service/hzims-big-model/pom.xml +++ b/hzims-service/hzims-big-model/pom.xml @@ -83,6 +83,11 @@ oapi-java-sdk release-V4-2.0.2 + + io.weaviate + client + 4.7.0 + diff --git a/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/business/control/DataSourceExecuteController.java b/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/business/control/DataSourceExecuteController.java deleted file mode 100644 index 4efcf3b..0000000 --- a/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/business/control/DataSourceExecuteController.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.hnac.hzims.bigmodel.business.control; - -import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; -import com.hnac.hzims.bigmodel.business.service.DataSourceService; -import com.hnac.hzims.bigmodel.business.vo.SqlVO; -import io.swagger.annotations.ApiOperation; -import lombok.AllArgsConstructor; -import org.springblade.core.tool.api.R; -import org.springframework.web.bind.annotation.*; - -import javax.validation.Valid; -import java.util.List; -import java.util.Map; - -/** - * @Author: huangxing - * @Date: 2024/06/28 14:07 - */ -@RestController -@RequestMapping("/dataSource/execute") -@AllArgsConstructor -public class DataSourceExecuteController { - - private final DataSourceService dataSourceService; - - @PostMapping("/executeQuery") - @ApiOperation("执行大模型sql") - @ApiOperationSupport(order = 1) - public R>> executeQuery(@RequestBody @Valid SqlVO sqlVO) { - return R.data(dataSourceService.queryListOnSpecificDataSource(sqlVO)); - } - -} diff --git a/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/business/control/RemoteController.java b/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/business/control/RemoteController.java deleted file mode 100644 index 3b4422c..0000000 --- a/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/business/control/RemoteController.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.hnac.hzims.bigmodel.business.control; - -import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; -import com.hnac.hzims.bigmodel.BigModelConstants; -import com.hnac.hzims.bigmodel.business.service.RemoteService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.AllArgsConstructor; -import org.springblade.core.tool.api.R; -import org.springblade.system.dto.ControlDTO; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * @Author: huangxing - * @Date: 2024/06/24 14:42 - */ -@AllArgsConstructor -@RequestMapping("/remote") -@RestController -@Api(value = "数据平台遥控指令管理",tags = "数据平台遥控指令管理") -public class RemoteController { - - private final RemoteService remoteService; - - @ApiOperation("下发遥控指令") - @ApiOperationSupport(order = 1) - @PostMapping("/sendRemoteControl") - public R sendRemoteControl(ControlDTO controlDTO) { - return remoteService.sendRemoteControl(controlDTO); - } - -} diff --git a/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/business/controller/DataSourceExecuteController.java b/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/business/controller/DataSourceExecuteController.java new file mode 100644 index 0000000..47e7cc5 --- /dev/null +++ b/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/business/controller/DataSourceExecuteController.java @@ -0,0 +1,33 @@ +package com.hnac.hzims.bigmodel.business.controller; + +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.hnac.hzims.bigmodel.business.service.DataSourceService; +import com.hnac.hzims.bigmodel.business.vo.SqlVO; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springblade.core.tool.api.R; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Map; + +/** + * @Author: huangxing + * @Date: 2024/06/28 14:07 + */ +@RestController +@RequestMapping("/dataSource/execute") +@AllArgsConstructor +public class DataSourceExecuteController { + + private final DataSourceService dataSourceService; + + @PostMapping("/executeQuery") + @ApiOperation("执行大模型sql") + @ApiOperationSupport(order = 1) + public R>> executeQuery(@RequestBody @Valid SqlVO sqlVO) { + return R.data(dataSourceService.queryListOnSpecificDataSource(sqlVO)); + } + +} diff --git a/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/business/controller/RemoteController.java b/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/business/controller/RemoteController.java new file mode 100644 index 0000000..ac0c0b3 --- /dev/null +++ b/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/business/controller/RemoteController.java @@ -0,0 +1,34 @@ +package com.hnac.hzims.bigmodel.business.controller; + +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.hnac.hzims.bigmodel.business.service.RemoteService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springblade.core.tool.api.R; +import org.springblade.system.dto.ControlDTO; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Author: huangxing + * @Date: 2024/06/24 14:42 + */ +@AllArgsConstructor +@RequestMapping("/remote") +@RestController +@Api(value = "数据平台遥控指令管理",tags = "数据平台遥控指令管理") +public class RemoteController { + + private final RemoteService remoteService; + + @ApiOperation("下发遥控指令") + @ApiOperationSupport(order = 1) + @PostMapping("/sendRemoteControl") + public R sendRemoteControl(@RequestBody ControlDTO controlDTO) { + return remoteService.sendRemoteControl(controlDTO); + } + +} diff --git a/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/business/wrapper/CanvasSyncWrapper.java b/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/business/wrapper/CanvasSyncWrapper.java new file mode 100644 index 0000000..306e13d --- /dev/null +++ b/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/business/wrapper/CanvasSyncWrapper.java @@ -0,0 +1,21 @@ +package com.hnac.hzims.bigmodel.business.wrapper; + +import com.hnac.hzims.bigmodel.api.dto.CanvasSyncDTO; +import com.hnac.hzims.bigmodel.api.wrapper.BaseSyncWrapper; +import com.hnac.hzinfo.sdk.v5.scada.vo.CanvasVO; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Component; + +/** + * @Author: huangxing + * @Date: 2024/08/20 16:49 + */ +@Component +@AllArgsConstructor +public class CanvasSyncWrapper extends BaseSyncWrapper { + + @Override + public CanvasSyncDTO convert(CanvasVO obj) { + return null; + } +} diff --git a/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/configuration/WeaviateConfig.java b/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/configuration/WeaviateConfig.java new file mode 100644 index 0000000..022663a --- /dev/null +++ b/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/configuration/WeaviateConfig.java @@ -0,0 +1,20 @@ +package com.hnac.hzims.bigmodel.configuration; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.reactive.function.client.WebClient; +import reactor.core.publisher.Mono; + +/** + * @Author: huangxing + * @Date: 2024/08/21 15:22 + */ +@Configuration +public class WeaviateConfig { + + @Bean + public WebClient weaviateClient() { + return WebClient.create("http://192.168.60.16:9992"); + } + +} diff --git a/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/maintenance/entity/SyncPropertyEntity.java b/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/maintenance/entity/SyncPropertyEntity.java new file mode 100644 index 0000000..c800041 --- /dev/null +++ b/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/maintenance/entity/SyncPropertyEntity.java @@ -0,0 +1,40 @@ +package com.hnac.hzims.bigmodel.maintenance.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +import java.io.Serializable; + +/** + * @Author: huangxing + * @Date: 2024/08/21 08:33 + */ +@Data +@EqualsAndHashCode +@ApiModel(value = "同步向量库基础配置",description = "同步向量库基础配置") +@TableName("") +public class SyncPropertyEntity extends TenantEntity implements Serializable { + + @ApiModelProperty("配置编号") + private String code; + + @ApiModelProperty("数据源") + private String datasource; + + @ApiModelProperty("数据源名称") + private String datasourceName; + + @ApiModelProperty("数据库表名") + private String tableName; + + @ApiModelProperty("向量数据库表名,由小写字母以及_组成") + private String vectorTableName; + + @ApiModelProperty("表描述") + private String tableDesc; + +} diff --git a/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/maintenance/service/TableColumnService.java b/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/maintenance/service/TableColumnService.java index 91f04fb..b8d4fc3 100644 --- a/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/maintenance/service/TableColumnService.java +++ b/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/maintenance/service/TableColumnService.java @@ -20,17 +20,17 @@ public class TableColumnService { private final DataSourceService dataSourceService; public List> getDatabase(String datasource) { - String sql = "select distinct `table_schema` as tableName from `information_schema`.`tables` where `table_schema` <> 'information_schema';"; + String sql = "select distinct UPPER(`table_schema`) as tableName from `information_schema`.`tables` where `table_schema` <> 'information_schema';"; return dataSourceService.queryListOnSpecificDataSource(sql,datasource); } public List> getTables(String datasource,String database) { - String sql = "select distinct `table_name` as tableName from `information_schema`.`tables` where `table_schema` = '" + database + "';"; + String sql = "select distinct UPPER(`table_name`) as tableName from `information_schema`.`tables` where `table_schema` = '" + database + "';"; return dataSourceService.queryListOnSpecificDataSource(sql,datasource); } public List> getColumns(String datasource,String database,String tableName) { - String sql = "select distinct `column_name` as columnName,`column_comment` as columnComment from `information_schema`.`COLUMNS` where `TABLE_SCHEMA` = '" + database + "' and `TABLE_NAME` = '" + tableName + "';"; + String sql = "select distinct UPPER(`column_name`) as columnName,UPPER(`column_comment`) as columnComment from `information_schema`.`COLUMNS` where `TABLE_SCHEMA` = '" + database + "' and `TABLE_NAME` = '" + tableName + "';"; return dataSourceService.queryListOnSpecificDataSource(sql,datasource); } diff --git a/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/zhipuai/config/ZhipuAiConfig.java b/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/zhipuai/config/ZhipuAiConfig.java index 1c5a8b2..b28a3a5 100644 --- a/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/zhipuai/config/ZhipuAiConfig.java +++ b/hzims-service/hzims-big-model/src/main/java/com/hnac/hzims/bigmodel/zhipuai/config/ZhipuAiConfig.java @@ -1,11 +1,22 @@ package com.hnac.hzims.bigmodel.zhipuai.config; +import com.alibaba.fastjson.JSON; import com.zhipu.oapi.ClientV4; +import io.weaviate.client.Config; +import io.weaviate.client.WeaviateAuthClient; +import io.weaviate.client.WeaviateClient; +import io.weaviate.client.base.Result; +import io.weaviate.client.v1.auth.exception.AuthException; +import io.weaviate.client.v1.data.model.WeaviateObject; +import io.weaviate.client.v1.misc.model.Meta; import lombok.AllArgsConstructor; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import java.util.HashMap; +import java.util.List; + /** * @Author: ypj * @Date: 2024/8/9 17:01 @@ -21,4 +32,28 @@ public class ZhipuAiConfig { public ClientV4 clientV4() { return new ClientV4.Builder(properties.getApiSecret()).build(); } + +// public static void main(String[] args) throws AuthException { +// Config config = new Config("http", "192.168.60.16:9992"); +// WeaviateClient client = WeaviateAuthClient.apiKey(config,"123"); +// // 新增 HZIMS_TEST +//// Result craeteTableTest = client.data().creator().withClassName("HZIMS_TEST").run(); +//// System.out.println(JSON.toJSONString(craeteTableTest)); +//// Result> searchResult = client.data().objectsGetter().withClassName("HZIMS_TEST").run(); +//// System.out.println(JSON.toJSONString(searchResult)); +// // 新增数据 +//// HashMap hashMap = new HashMap() {{ +//// put("id_", "13412423423412"); +//// put("name", "test"); +//// }}; +//// Result hzimsTest = client.data().creator().withClassName("HZIMS_TEST").withProperties(hashMap).withVector(new Float[]{}).run(); +//// System.out.println(JSON.toJSONString(hzimsTest)); +//// Result> searchResult = client.data().objectsGetter().withClassName("HZIMS_TEST").run(); +//// System.out.println(JSON.toJSONString(searchResult)); +// // 删除数据 +// Result hzimsTest = client.data().deleter().withClassName("HZIMS_TEST").withID("14c6847d-b758-475f-968d-64b0e193e43e").run(); +// System.out.println(JSON.toJSONString(hzimsTest)); +// Result> searchResult = client.data().objectsGetter().withClassName("HZIMS_TEST").run(); +// System.out.println(JSON.toJSONString(searchResult)); +// } } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/aspect/AddVideoAspect.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/aspect/AddVideoAspect.java deleted file mode 100644 index 272eda4..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/aspect/AddVideoAspect.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.hnac.hzims.operational.station.aspect; - -import com.alibaba.fastjson.JSON; -import com.google.common.collect.Lists; -import com.hnac.hzims.bigmodel.api.constants.MqttTopicConstants; -import com.hnac.hzims.bigmodel.api.dto.VideoSyncDTO; -import com.hnac.hzims.operational.station.entity.StationVideoTypeEntity; -import com.hnac.hzims.operational.station.feign.IStationClient; -import com.hnac.hzims.operational.station.service.IStationService; -import com.hnac.hzims.operational.station.vo.StationVO; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.aspectj.lang.JoinPoint; -import org.aspectj.lang.annotation.After; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Pointcut; -import org.springblade.core.tool.utils.BeanUtil; -import org.springblade.core.tool.utils.Func; -import org.springblade.mqtt.producer.IMqttSender; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; - -/** - * @Author: huangxing - * @Date: 2024/08/09 14:02 - */ -@Aspect -@Component -@AllArgsConstructor -@Slf4j -public class AddVideoAspect { - - private final IStationService stationService; - private final IMqttSender mqttSender; - - @Pointcut("execution(* com.hnac.hzims.operational.station.service.IStationVideoTypeService.saveBatch(..)) " + - "|| execution(* com.hnac.hzims.operational.station.service.IStationVideoTypeService.save(..)) " + - "|| execution(* com.hnac.hzims.operational.station.service.IStationVideoTypeService.updateById(..)) " + - "|| execution(* com.hnac.hzims.operational.station.service.IStationVideoTypeService.updateBatchById(..))") - private void pointCut() { - - } - - @After("pointCut()") - public void after(JoinPoint point) { - Object[] args = point.getArgs(); - if(args.length == 1) { - Object arg = args[0]; - if(arg instanceof StationVideoTypeEntity) { - List videoSyncDTOS = Lists.newArrayList(this.convert((StationVideoTypeEntity) arg)); - mqttSender.sendToMqtt(MqttTopicConstants.TOPIC_VIDEO_INSERT, JSON.toJSONString(videoSyncDTOS)); - } - else if(arg instanceof List) { - List videoList = (List) args[0]; - List videoSyncDTOS = videoList.stream().map(this::convert).collect(Collectors.toList()); - mqttSender.sendToMqtt(MqttTopicConstants.TOPIC_VIDEO_INSERT, JSON.toJSONString(videoSyncDTOS)); - } - } - } - - private VideoSyncDTO convert(StationVideoTypeEntity entity) { - VideoSyncDTO videoSyncDTO = BeanUtil.copy(entity,VideoSyncDTO.class); - StationVO station = stationService.getStationByCode(entity.getStationId()); - String stationName = Optional.ofNullable(station).map(StationVO::getName).orElse(""); - videoSyncDTO.setId(String.valueOf(entity.getId())); - videoSyncDTO.setItemId(String.valueOf(entity.getId())); - videoSyncDTO.setStationName(stationName); - videoSyncDTO.setItemName(stationName + " " + videoSyncDTO.getName()); - return videoSyncDTO; - } - -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/aspect/VideoSyncAspect.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/aspect/VideoSyncAspect.java new file mode 100644 index 0000000..b5b2e7b --- /dev/null +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/aspect/VideoSyncAspect.java @@ -0,0 +1,58 @@ +package com.hnac.hzims.operational.station.aspect; + +import com.alibaba.fastjson.JSON; +import com.google.common.collect.Lists; +import com.hnac.hzims.bigmodel.api.constants.MqttTopicConstants; +import com.hnac.hzims.bigmodel.api.dto.VideoSyncDTO; +import com.hnac.hzims.operational.station.entity.StationVideoTypeEntity; +import com.hnac.hzims.operational.station.wrapper.VideoSyncWrapper; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.After; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.springblade.mqtt.producer.IMqttSender; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @Author: huangxing + * @Date: 2024/08/09 14:02 + */ +@Aspect +@Component +@AllArgsConstructor +@Slf4j +public class VideoSyncAspect { + + private final VideoSyncWrapper wrapper; + private final IMqttSender mqttSender; + + @Pointcut("execution(* com.hnac.hzims.operational.station.service.IStationVideoTypeService.saveBatch(..)) " + + "|| execution(* com.hnac.hzims.operational.station.service.IStationVideoTypeService.save(..)) " + + "|| execution(* com.hnac.hzims.operational.station.service.IStationVideoTypeService.updateById(..)) " + + "|| execution(* com.hnac.hzims.operational.station.service.IStationVideoTypeService.updateBatchById(..))") + private void pointCut() { + + } + + @After("pointCut()") + public void after(JoinPoint point) { + Object[] args = point.getArgs(); + if(args.length == 1) { + Object arg = args[0]; + if(arg instanceof StationVideoTypeEntity) { + List videoSyncDTOS = Lists.newArrayList(wrapper.convert((StationVideoTypeEntity) arg)); + mqttSender.sendToMqtt(MqttTopicConstants.TOPIC_VIDEO_INSERT, JSON.toJSONString(videoSyncDTOS)); + } + else if(arg instanceof List) { + List videoList = (List) args[0]; + List videoSyncDTOS = wrapper.listVO(videoList); + mqttSender.sendToMqtt(MqttTopicConstants.TOPIC_VIDEO_INSERT, JSON.toJSONString(videoSyncDTOS)); + } + } + } + +} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/wrapper/VideoSyncWrapper.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/wrapper/VideoSyncWrapper.java new file mode 100644 index 0000000..72ce88c --- /dev/null +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/wrapper/VideoSyncWrapper.java @@ -0,0 +1,38 @@ +package com.hnac.hzims.operational.station.wrapper; + +import com.hnac.hzims.bigmodel.api.dto.VideoSyncDTO; +import com.hnac.hzims.bigmodel.api.wrapper.BaseSyncWrapper; +import com.hnac.hzims.operational.station.entity.StationVideoTypeEntity; +import com.hnac.hzims.operational.station.service.IStationService; +import com.hnac.hzims.operational.station.vo.StationVO; +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.SpringUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Optional; + +/** + * @Author: huangxing + * @Date: 2024/08/20 11:21 + */ +@Component +@AllArgsConstructor +public class VideoSyncWrapper extends BaseSyncWrapper { + + private final IStationService stationService; + + @Override + public VideoSyncDTO convert(StationVideoTypeEntity entity) { + VideoSyncDTO videoSyncDTO = BeanUtil.copy(entity,VideoSyncDTO.class); + StationVO station = stationService.getStationByCode(entity.getStationId()); + String stationName = Optional.ofNullable(station).map(StationVO::getName).orElse(""); + videoSyncDTO.setId(String.valueOf(entity.getId())); + videoSyncDTO.setItemId(String.valueOf(entity.getId())); + videoSyncDTO.setStationName(stationName); + videoSyncDTO.setItemName(stationName + " " + videoSyncDTO.getName()); + return videoSyncDTO; + } +}