Browse Source

Merge pull request 'master' (#3) from master into V3

Reviewed-on: http://git.lrdaiot.cn:9000/thing/thing_api/pulls/3
qingyuan_dev_new
夏超 1 year ago
parent
commit
6bb43be9cb
  1. 14
      application/pom.xml
  2. 37
      common/util/src/main/java/com/thing/common/util/thread/TBExecutors.java
  3. 6
      modules/filter-rule/pom.xml
  4. 16
      modules/filter-rule/src/main/java/com/thing/filter/rule/listener/FilterLogSaveEventListener.java
  5. 18
      modules/filter-rule/src/main/java/com/thing/filter/rule/service/impl/FilterLogServiceImpl.java
  6. 20
      modules/filter-rule/src/main/java/com/thing/filter/rule/service/impl/FilterRuleServiceImpl.java
  7. 1
      modules/thing/src/main/java/com/thing/device/analysisdata/service/impl/AnalysisDataServiceImpl.java
  8. 16
      modules/thing/src/main/java/com/thing/device/menu/controller/IotThingMenuConfigController.java
  9. 1
      modules/thing/src/main/java/com/thing/thing/api/service/impl/IotThingApiServiceImpl.java
  10. 1
      modules/thing/src/main/java/com/thing/thing/dictRelation/param/IotThingDictRelationParamDTO.java
  11. 2
      pom.xml

14
application/pom.xml

@ -133,6 +133,13 @@
<groupId>com.thing.modules</groupId> <groupId>com.thing.modules</groupId>
<artifactId>filter-rule</artifactId> <artifactId>filter-rule</artifactId>
</dependency> </dependency>
<!-- test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies> </dependencies>
@ -146,6 +153,13 @@
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
</plugin> </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins> </plugins>
</build> </build>

37
common/util/src/main/java/com/thing/common/util/thread/TBExecutors.java

@ -1,37 +0,0 @@
package com.thing.common.util.thread;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ForkJoinPool;
public class TBExecutors {
/**
*从ExecutorService分叉以提供线程轮询名称的方法
*
* 创建一个线程池保持足够的线程来支持
* 给定的并行性级别并且可能使用多个队列来
* 减少争用并行度级别对应于
* 最大数量的线程积极参与或可
* 参与任务处理线程的实际数量可能
* 动态增长和收缩偷工作的人不会
* 保证提交任务的顺序
* 执行
*
* @param parallelism the targeted parallelism level
* @param namePrefix used to define thread name
* @return the newly created thread pool
* @throws IllegalArgumentException if {@code parallelism <= 0}
* @since 1.8
*/
public static ExecutorService newWorkStealingPool(int parallelism, String namePrefix) {
return new ForkJoinPool(parallelism,
new ForkJoinWorkerThreadFactory(namePrefix),
null, true);
}
public static ExecutorService newWorkStealingPool(int parallelism, Class clazz) {
return newWorkStealingPool(parallelism, clazz.getSimpleName());
}
}

6
modules/filter-rule/pom.xml

@ -21,5 +21,11 @@
<groupId>com.thing.modules</groupId> <groupId>com.thing.modules</groupId>
<artifactId>thing</artifactId> <artifactId>thing</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
</dependency>
</dependencies> </dependencies>
</project> </project>

16
modules/filter-rule/src/main/java/com/thing/filter/rule/listener/FilterLogSaveEventListener.java

@ -2,13 +2,12 @@ package com.thing.filter.rule.listener;
import static com.thing.filter.rule.event.FilterSuccessEvent.FILTER_SUCCESS; import static com.thing.filter.rule.event.FilterSuccessEvent.FILTER_SUCCESS;
import com.mybatisflex.core.keygen.impl.SnowFlakeIDKeyGenerator;
import com.thing.common.core.enumeration.AggType; import com.thing.common.core.enumeration.AggType;
import com.thing.common.core.utils.DateTimeUtils; import com.thing.common.core.utils.DateTimeUtils;
import com.thing.common.core.utils.MapUtil; import com.thing.common.core.utils.MapUtil;
import com.thing.common.data.tskv.TsKvDTO; import com.thing.common.data.tskv.TsKvDTO;
import com.thing.common.data.tskv.TsKvEntity; import com.thing.common.data.tskv.TsKvEntity;
import com.thing.common.orm.utils.IdGenerator;
import com.thing.common.tskv.event.FilterLogSaveEvent; import com.thing.common.tskv.event.FilterLogSaveEvent;
import com.thing.common.tskv.service.TsKvService; import com.thing.common.tskv.service.TsKvService;
import com.thing.filter.rule.dto.FilterRuleDTO; import com.thing.filter.rule.dto.FilterRuleDTO;
@ -19,21 +18,18 @@ import com.thing.filter.rule.event.FilterSuccessEvent;
import com.thing.filter.rule.service.FilterLogService; import com.thing.filter.rule.service.FilterLogService;
import com.thing.filter.rule.service.FilterRuleService; import com.thing.filter.rule.service.FilterRuleService;
import com.thing.queue.util.Topics; import com.thing.queue.util.Topics;
import java.time.LocalDateTime;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/** /**
* @author siyang * @author siyang
* @date 2024-03-21 * @date 2024-03-21
@ -200,7 +196,7 @@ public class FilterLogSaveEventListener {
.appendSourceInfo(detail, tskv.getTs(), tskv.getVal()) .appendSourceInfo(detail, tskv.getTs(), tskv.getVal())
.setStatus(LogStatus.MISMATCH.getCode()); .setStatus(LogStatus.MISMATCH.getCode());
filterLog filterLog
.setId(new SnowFlakeIDKeyGenerator().nextId())
.setId(IdGenerator.nextId())
.setTenantCode(detail.getTenantCode()) .setTenantCode(detail.getTenantCode())
.setCompanyId(detail.getCompanyId()) .setCompanyId(detail.getCompanyId())
.setDeptId(detail.getDeptId()) .setDeptId(detail.getDeptId())

18
modules/filter-rule/src/main/java/com/thing/filter/rule/service/impl/FilterLogServiceImpl.java

@ -1,6 +1,8 @@
package com.thing.filter.rule.service.impl; package com.thing.filter.rule.service.impl;
import cn.hutool.core.map.MapUtil;
import static com.thing.filter.rule.entity.table.FilterLogEntityTableDef.FILTER_LOG_ENTITY;
import static com.thing.filter.rule.entity.table.FilterRuleEntityTableDef.FILTER_RULE_ENTITY;
import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.query.QueryWrapper;
@ -13,16 +15,12 @@ import com.thing.filter.rule.enumeration.LogStatus;
import com.thing.filter.rule.mapper.FilterLogMapper; import com.thing.filter.rule.mapper.FilterLogMapper;
import com.thing.filter.rule.service.FilterLogService; import com.thing.filter.rule.service.FilterLogService;
import com.thing.sys.security.context.UserContext; import com.thing.sys.security.context.UserContext;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import static com.thing.filter.rule.entity.table.FilterLogEntityTableDef.FILTER_LOG_ENTITY;
import static com.thing.filter.rule.entity.table.FilterRuleEntityTableDef.FILTER_RULE_ENTITY;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
/** /**
* 过滤日志 * 过滤日志
@ -38,8 +36,8 @@ public class FilterLogServiceImpl extends BaseServiceImpl<FilterLogMapper, Filte
@Override @Override
public QueryWrapper getWrapper(Map<String, Object> params) { public QueryWrapper getWrapper(Map<String, Object> params) {
String filterRuleName = MapUtil.getStr(params, "filterRuleName");
Integer status = MapUtil.getInt(params, "status");
String filterRuleName = MapUtils.getString(params, "filterRuleName");
Integer status = MapUtils.getInteger(params, "status");
return QueryWrapper.create() return QueryWrapper.create()
.select( .select(
FILTER_RULE_ENTITY.NAME.as("filter_rule_name"), FILTER_RULE_ENTITY.NAME.as("filter_rule_name"),

20
modules/filter-rule/src/main/java/com/thing/filter/rule/service/impl/FilterRuleServiceImpl.java

@ -3,9 +3,6 @@ package com.thing.filter.rule.service.impl;
import static com.thing.filter.rule.entity.table.FilterRuleDetailEntityTableDef.FILTER_RULE_DETAIL_ENTITY; import static com.thing.filter.rule.entity.table.FilterRuleDetailEntityTableDef.FILTER_RULE_DETAIL_ENTITY;
import static com.thing.filter.rule.entity.table.FilterRuleEntityTableDef.FILTER_RULE_ENTITY; import static com.thing.filter.rule.entity.table.FilterRuleEntityTableDef.FILTER_RULE_ENTITY;
import cn.hutool.core.map.MapUtil;
import com.mybatisflex.core.keygen.impl.SnowFlakeIDKeyGenerator;
import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.query.QueryWrapper;
import com.thing.common.cache.constants.CacheNameEnum; import com.thing.common.cache.constants.CacheNameEnum;
@ -15,6 +12,7 @@ import com.thing.common.core.utils.ConvertUtils;
import com.thing.common.core.utils.FormulaUtil; import com.thing.common.core.utils.FormulaUtil;
import com.thing.common.core.web.response.PageData; import com.thing.common.core.web.response.PageData;
import com.thing.common.orm.service.impl.BaseServiceImpl; import com.thing.common.orm.service.impl.BaseServiceImpl;
import com.thing.common.orm.utils.IdGenerator;
import com.thing.filter.rule.dto.FilterRuleDTO; import com.thing.filter.rule.dto.FilterRuleDTO;
import com.thing.filter.rule.dto.FilterRuleDetailDTO; import com.thing.filter.rule.dto.FilterRuleDetailDTO;
import com.thing.filter.rule.entity.FilterRuleDetailEntity; import com.thing.filter.rule.entity.FilterRuleDetailEntity;
@ -22,19 +20,17 @@ import com.thing.filter.rule.entity.FilterRuleEntity;
import com.thing.filter.rule.mapper.FilterRuleMapper; import com.thing.filter.rule.mapper.FilterRuleMapper;
import com.thing.filter.rule.service.FilterRuleDetailService; import com.thing.filter.rule.service.FilterRuleDetailService;
import com.thing.filter.rule.service.FilterRuleService; import com.thing.filter.rule.service.FilterRuleService;
import com.thing.sys.security.context.UserContext; import com.thing.sys.security.context.UserContext;
import java.util.*;
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.stream.Collectors;
/** /**
* 过滤规则表 * 过滤规则表
* *
@ -50,9 +46,9 @@ public class FilterRuleServiceImpl extends BaseServiceImpl<FilterRuleMapper, Fil
@Override @Override
public QueryWrapper getWrapper(Map<String, Object> params) { public QueryWrapper getWrapper(Map<String, Object> params) {
String name = MapUtil.getStr(params, "name");
String thingKeyword = MapUtil.getStr(params, "thingKeyword");
String attrKeyword = MapUtil.getStr(params, "attrKeyword");
String name = MapUtils.getString(params, "name");
String thingKeyword = MapUtils.getString(params, "thingKeyword");
String attrKeyword = MapUtils.getString(params, "attrKeyword");
QueryWrapper wrapper = QueryWrapper wrapper =
QueryWrapper.create() QueryWrapper.create()
.select(FILTER_RULE_ENTITY.ALL_COLUMNS) .select(FILTER_RULE_ENTITY.ALL_COLUMNS)
@ -190,7 +186,7 @@ public class FilterRuleServiceImpl extends BaseServiceImpl<FilterRuleMapper, Fil
* 之前与领导商量采用 {@link AggFunction} 示例中给出的公式写法不过被否定了认为用户是傻子无法理解那种写法摊手.jpg * 之前与领导商量采用 {@link AggFunction} 示例中给出的公式写法不过被否定了认为用户是傻子无法理解那种写法摊手.jpg
*/ */
private void generateDefaultInfo(FilterRuleDTO filterRule) { private void generateDefaultInfo(FilterRuleDTO filterRule) {
filterRule.setId(Optional.ofNullable(filterRule.getId()).orElse(new SnowFlakeIDKeyGenerator().nextId()));
filterRule.setId(Optional.ofNullable(filterRule.getId()).orElse(IdGenerator.nextId()));
filterRule.setEnable(Optional.ofNullable(filterRule.getEnable()).orElse(true)); filterRule.setEnable(Optional.ofNullable(filterRule.getEnable()).orElse(true));
// 生成过滤规则描述 // 生成过滤规则描述
List<FilterRuleDetailDTO> details = filterRule.getDetails(); List<FilterRuleDetailDTO> details = filterRule.getDetails();

1
modules/thing/src/main/java/com/thing/device/analysisdata/service/impl/AnalysisDataServiceImpl.java

@ -247,6 +247,7 @@ public class AnalysisDataServiceImpl implements AnalysisDataService {
if(first.isPresent()){ if(first.isPresent()){
IotThingSourceDTO iotThingSourceDTO = first.get(); IotThingSourceDTO iotThingSourceDTO = first.get();
relationDTO.setThingAttrUnit(iotThingSourceDTO.getThingAttrUnit()); relationDTO.setThingAttrUnit(iotThingSourceDTO.getThingAttrUnit());
relationDTO.setDataDealConfig(iotThingSourceDTO.getDataDealConfig());
}}); }});
viewSourceDTO.setDictList(relationDTOList); viewSourceDTO.setDictList(relationDTOList);
return viewSourceDTO; return viewSourceDTO;

16
modules/thing/src/main/java/com/thing/device/menu/controller/IotThingMenuConfigController.java

@ -1,6 +1,7 @@
package com.thing.device.menu.controller; package com.thing.device.menu.controller;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.thing.common.core.annotation.LogOperation; import com.thing.common.core.annotation.LogOperation;
import com.thing.common.core.constants.Constant; import com.thing.common.core.constants.Constant;
@ -13,6 +14,8 @@ import com.thing.common.core.web.response.PageData;
import com.thing.common.core.web.response.Result; import com.thing.common.core.web.response.Result;
import com.thing.device.menu.dto.IotThingMenuConfigDTO; import com.thing.device.menu.dto.IotThingMenuConfigDTO;
import com.thing.device.menu.service.IotThingMenuConfigService; import com.thing.device.menu.service.IotThingMenuConfigService;
import com.thing.thing.relation.root.dto.IotThingRelationRootDTO;
import com.thing.thing.relation.root.service.IotThingRelationRootService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.Parameters;
@ -30,6 +33,7 @@ import java.util.Map;
public class IotThingMenuConfigController { public class IotThingMenuConfigController {
private final IotThingMenuConfigService iotThingMenuConfigService; private final IotThingMenuConfigService iotThingMenuConfigService;
private final IotThingRelationRootService relationRootService;
@GetMapping("page") @GetMapping("page")
@Operation(summary = "分页") @Operation(summary = "分页")
@ -70,6 +74,18 @@ public class IotThingMenuConfigController {
} }
} }
} }
if (ObjectUtil.isNotNull(data) && ObjectUtil.isNotNull(data.getMenuConfig())) {
JSONArray jsonArray = JSONArray.parseArray(data.getMenuConfig());
if (jsonArray != null && !jsonArray.isEmpty()) {
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
Long id = jsonObject.getLong("id");
IotThingRelationRootDTO relationRootDTO = relationRootService.findById(id);
jsonObject.put("name", relationRootDTO.getName());
}
data.setMenuConfig(jsonArray.toString());
}
}
return new Result<IotThingMenuConfigDTO>().ok(data); return new Result<IotThingMenuConfigDTO>().ok(data);
} }

1
modules/thing/src/main/java/com/thing/thing/api/service/impl/IotThingApiServiceImpl.java

@ -319,6 +319,7 @@ public class IotThingApiServiceImpl extends BaseServiceImpl<IotThingApiMapper, I
apiEntity.setReqParams(reqParams); apiEntity.setReqParams(reqParams);
} }
Long tenantCode = MapUtil.getLong(params, "tenantCode"); Long tenantCode = MapUtil.getLong(params, "tenantCode");
apiLog(apiEntity, apiEntity.getCreator().toString());
//获取函数主体 //获取函数主体
if (StringUtils.isBlank(apiEntity.getCallBody())) { if (StringUtils.isBlank(apiEntity.getCallBody())) {
return encapsulationQuery1(apiEntity.getThingCondition(), apiEntity.getAttrCondition(), apiEntity.getTimeCondition(), reqParams, page, limit, apiEntity.getSort(), tenantCode); return encapsulationQuery1(apiEntity.getThingCondition(), apiEntity.getAttrCondition(), apiEntity.getTimeCondition(), reqParams, page, limit, apiEntity.getSort(), tenantCode);

1
modules/thing/src/main/java/com/thing/thing/dictRelation/param/IotThingDictRelationParamDTO.java

@ -77,6 +77,7 @@ public class IotThingDictRelationParamDTO implements Serializable {
private String dataTreatingMark; private String dataTreatingMark;
@Schema(description = "映射子集(子数据列表)") @Schema(description = "映射子集(子数据列表)")
private String childConfig; private String childConfig;
private String dataDealConfig;
@Schema(description = "是否是模板,1模板,0 非模板(默认)") @Schema(description = "是否是模板,1模板,0 非模板(默认)")
private String templateMark; private String templateMark;
@Schema(description = "物实体ID集合(新增指标)") @Schema(description = "物实体ID集合(新增指标)")

2
pom.xml

@ -8,7 +8,7 @@
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.2</version>
<version>3.3.2</version>
</parent> </parent>

Loading…
Cancel
Save