Compare commits

...

81 Commits

Author SHA1 Message Date
sy200 e0962bcc53 feat:()重构故障代码 2024-10-10 19:04:15 +08:00
sy200 1565dd577c feat:()优化代码结构 2024-10-10 10:59:03 +08:00
sy200 ac8e4bcc94 feat:()添加故障规则信息 2024-10-09 16:09:15 +08:00
ywt d472b8d326 Merge branch 'dev.gateway.aliyun' into dev 2024-10-09 14:06:15 +08:00
ywt edeeb878c5 feat(): 创建实例,将实例缓存到redis中,测试轮询 2024-10-09 14:05:43 +08:00
李东佳 e7ff873329 feat(): 更新协议解析方法 2024-10-09 12:23:44 +08:00
李东佳 7bfd5f8f88 Merge branch 'dev.perfect.protocol' into dev 2024-10-09 12:18:07 +08:00
李东佳 c8c16b9c80 feat(): 更新注入方法 2024-10-09 12:13:20 +08:00
李东佳 820039d3fe feat(): 优化协议解析方法 2024-10-09 09:13:37 +08:00
晨哀 e31070e5ba Merge remote-tracking branch 'origin/dev.processing.beautify' into dev 2024-10-09 08:19:17 +08:00
晨哀 4a8cf4e603 feat:() 优化登录 2024-10-09 08:14:40 +08:00
sy200 2ef6ba2f6b feat:()修改配置 2024-10-09 08:08:18 +08:00
sy200 11d1d68511 feat:()添加存储故障Redis信息方法 2024-10-09 08:05:12 +08:00
sy200 f166853e31 feat:()添加存储围栏组Redis信息方法 2024-10-08 21:42:52 +08:00
晨哀 813fcf1b55 feat:() 解决合并冲突 2024-10-08 12:12:57 +08:00
晨哀 61f1ea45b2 Merge remote-tracking branch 'origin/dev.processing.optimize' into dev
# Conflicts:
#	cloud-modules/cloud-modules-processing/src/main/java/com/muyu/processing/consumer/OnLineMonitoringConsumer.java
2024-10-08 12:05:36 +08:00
sy200 83961147fc feat:()修改策略信息存储方法 2024-10-08 12:02:58 +08:00
晨哀 ad0460a90b feat:() 测试数据库添加事件 2024-10-08 12:01:03 +08:00
sy200 171df03d7c Merge branch 'dev.redis' into dev 2024-10-08 11:56:05 +08:00
sy200 a1ed677f0f feat:()修改策略信息存储方法 2024-10-08 11:50:31 +08:00
晨哀 72ac72330e feat:() 更改kafka模式 2024-10-08 11:27:39 +08:00
李东佳 3c2667ec37 feat(): 修改bootstrap配置文件命名空间 2024-10-08 10:53:50 +08:00
李东佳 90e94c2736 Merge branch 'dev.fault' into dev
# Conflicts:
#	cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/bootstrap.yml
2024-10-08 10:50:55 +08:00
李东佳 914b638efd feat(): 添加故障方法 2024-10-08 10:47:40 +08:00
ywt 27479e2b49 feat(): 重构创建实例代码以及删除 2024-10-08 10:43:19 +08:00
晨哀 1e9c92e4d3 feat:() 优化上下线监听队列名称 和新增发送事件方法 2024-10-08 10:16:25 +08:00
sy200 2e5cb19f4f feat:()修改策略信息存储方法 2024-10-08 09:53:06 +08:00
sy200 51ca5ef6f4 feat:()修改策略信息存储方法 2024-10-08 08:49:30 +08:00
晨哀 e2e943749e feat:() 优化下线监听 2024-10-07 21:41:41 +08:00
晨哀 013fe5809d feat:() 优化kafka消费者和上线监听 添加注解 2024-10-07 20:46:24 +08:00
晨哀 7f45b28116 feat:() 优化kafka消费者和上线监听 2024-10-07 20:37:45 +08:00
晨哀 d3f2444521 feat:() 优化kafka消费者 2024-10-07 20:00:24 +08:00
晨哀 2695602972 Merge remote-tracking branch 'origin/dev' into dev 2024-10-07 18:37:40 +08:00
sy200 eb5960822e feat:()修改车辆列表方法 2024-10-07 18:33:41 +08:00
ywt 620decf638 Merge branch 'dev.gateway.aliyuninitecs' into dev 2024-10-07 16:12:06 +08:00
ywt bfa5391ae1 feat(): 三次修改rabbitmq配置 2024-10-07 16:11:37 +08:00
ywt 3629d522bb Merge remote-tracking branch 'origin/dev' into dev 2024-10-07 14:33:58 +08:00
sy200 d2462e6456 feat:()修改存列表方法 2024-10-07 14:31:56 +08:00
sy200 d2b29e6323 feat:()修改报错 2024-10-07 12:11:58 +08:00
sy200 afdcc48a42 Merge branch 'dev.server' into dev
# Conflicts:
#	cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/VehicleController.java
#	cloud-modules/cloud-modules-protocol-parsing/src/main/java/com/muyu/cloud/protocol/parsing/test/ParsingTest.java
2024-10-07 12:07:02 +08:00
sy200 74739614e5 feat:()修改存报文模版的方法 2024-10-07 12:01:41 +08:00
李东佳 dc4f5bbdcb fix():解决报错 2024-10-07 11:45:44 +08:00
sy200 9e1f941be5 feat:()查看车辆绑定围栏组的信息 2024-10-07 11:15:26 +08:00
ywt 689a630024 Merge branch 'dev.gateway.aliyuninitecs' into dev 2024-10-07 10:49:19 +08:00
ywt 8ac2d539f4 feat(): 二次修改rabbitmq配置 2024-10-07 10:48:59 +08:00
ywt 75f8da414d Merge branch 'dev.gateway.aliyuninitecs' into dev 2024-10-07 10:30:26 +08:00
ywt 6903066127 Merge remote-tracking branch 'origin/dev' into dev 2024-10-07 10:30:17 +08:00
ywt c5de9a5bed feat(): 修改rabbitmq配置 2024-10-07 10:29:50 +08:00
晨哀 edb3e74824 Merge remote-tracking branch 'origin/dev.processing' into dev 2024-10-07 10:16:28 +08:00
晨哀 2430d10401 feat:() 新增缓存和修改上线下线监听 2024-10-07 10:10:26 +08:00
sy200 929275fd5a Merge remote-tracking branch 'origin/dev' into dev
# Conflicts:
#	cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/AllMessageValueCacheService.java
#	cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/VehicleTypeController.java
2024-10-07 09:28:55 +08:00
sy200 802cd54947 Merge branch 'dev.server' into dev 2024-10-07 09:14:35 +08:00
sy200 a00e5345b4 feat:()修改代码方法 2024-10-06 21:20:41 +08:00
ywt 3c1b78218e Merge branch 'dev.gateway.aliyuninitecs' into dev 2024-10-06 15:53:29 +08:00
ywt 849d5328ac feat(): 获取http连接的参数 2024-10-06 15:52:32 +08:00
ywt 152296d63a Merge remote-tracking branch 'origin/dev' into dev 2024-10-06 15:18:06 +08:00
ywt 30560b90cf feat(): 创建实力数量、车辆服务器、返回创建码、车辆鉴权的参数、车辆VIN实体类 2024-10-06 15:17:28 +08:00
sy200 0be090d11b feat:()优化代码 2024-10-06 14:42:13 +08:00
李东佳 b29363a31a feat():更改nacos命名空间 2024-10-06 14:28:52 +08:00
李东佳 3b35565404 feat():删除远程调用方法 2024-10-06 14:17:59 +08:00
李东佳 846a03f75c fix(): 修改报文数据解析获取报文数据模版方法 2024-10-06 09:55:24 +08:00
李东佳 542a656dc6 fix(): 修改报文数据解析获取报文数据模版方法 2024-10-04 22:09:59 +08:00
sy200 832da812c3 feat:()添加列表Redis方法 2024-10-04 20:49:56 +08:00
李东佳 a834f9d1bd fix(): 修改报文数据的缓存方法 2024-10-04 20:46:16 +08:00
李东佳 960d68f72e fix(): 修改报文数据的缓存方法 2024-10-04 20:38:00 +08:00
李东佳 2c5387f048 feat(): 添加车辆类型缓存方法 2024-10-04 20:05:55 +08:00
sy200 f57deada17 Merge branch 'dev.server' into dev 2024-10-04 16:49:03 +08:00
晨哀 eade0c66ea feat:() 新增下线监听和修改上线监听 2024-10-04 16:48:40 +08:00
sy200 ef0311d362 feat:()添加列表Redis方法 2024-10-04 16:43:47 +08:00
晨哀 0a2fc7a9ce feat:() 添加数据库事件 2024-10-04 10:25:26 +08:00
晨哀 98560aacdc feat:() 新增事件监听器 2024-10-04 10:24:43 +08:00
晨哀 4e1790a47c feat:() 新增事件类型,事件监听接口,策略发送事件 2024-10-04 10:24:15 +08:00
晨哀 d02813f7e4 feat:() 新增MQ生产者 和 修改kafka生产者的信息 2024-10-04 10:18:16 +08:00
晨哀 0e391451b0 feat:() 新增iotdb配置文件,iotdb测试 2024-10-04 10:08:23 +08:00
晨哀 f56787b5a8 feat:() 来类加注解 2024-10-04 10:01:38 +08:00
晨哀 7033d0e9dd feat:() 新增MQ配置文件 和 MQ消费者 2024-10-04 10:01:08 +08:00
晨哀 84b54e9116 feat:() 新增MQ和Caffeine缓存库依赖 和 修改配置文件 2024-10-04 09:46:03 +08:00
ywt 5bb0737c82 10.4新建分支 2024-10-04 09:33:54 +08:00
sy200 d1440fb706 feat:()优化代码 2024-10-04 09:13:30 +08:00
sy200 3ed255fe1e feat:()添加报文模版缓存 2024-10-02 14:33:01 +08:00
sy200 1d91e51199 feat:()添加报文模版缓存 2024-10-02 09:40:38 +08:00
168 changed files with 4530 additions and 843 deletions

View File

@ -34,7 +34,7 @@ public class TokenController {
@PostMapping("login") @PostMapping("login")
public Result<?> login (@RequestBody LoginBody form) { public Result<?> login (@RequestBody LoginBody form) {
// 用户登录 // 用户登录
LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword()); LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword(),form.getFirmId());
// 获取登录token // 获取登录token
return Result.success(tokenService.createToken(userInfo)); return Result.success(tokenService.createToken(userInfo));
} }

View File

@ -1,10 +1,19 @@
package com.muyu.auth.form; package com.muyu.auth.form;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/** /**
* *
* *
* @author muyu * @author muyu
*/ */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class LoginBody { public class LoginBody {
/** /**
* *
@ -16,19 +25,9 @@ public class LoginBody {
*/ */
private String password; private String password;
public String getUsername () { /**
return username; * Id
} */
private Long firmId;
public void setUsername (String username) {
this.username = username;
}
public String getPassword () {
return password;
}
public void setPassword (String password) {
this.password = password;
}
} }

View File

@ -37,14 +37,15 @@ public class SysLoginService {
@Autowired @Autowired
private RedisService redisService; private RedisService redisService;
/** /**
* *
*/ */
public LoginUser login (String username, String password) { public LoginUser login (String username, String password, Long firmId) {
// 用户名或密码为空 错误 // 用户名或密码为空 错误
if (StringUtils.isAnyBlank(username, password)) { if (StringUtils.isAnyBlank(username, password,String.valueOf(firmId))) {
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户/密码必须填写"); recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户/密码必须填写");
throw new ServiceException("用户/密码必须填写"); throw new ServiceException("用户/密码/公司 必须填写");
} }
// 密码如果不在指定范围内 错误 // 密码如果不在指定范围内 错误
if (password.length() < UserConstants.PASSWORD_MIN_LENGTH if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
@ -60,12 +61,21 @@ public class SysLoginService {
} }
// IP黑名单校验 // IP黑名单校验
String blackStr = Convert.toStr(redisService.getCacheObject(CacheConstants.SYS_LOGIN_BLACKIPLIST)); String blackStr = Convert.toStr(redisService.getCacheObject(CacheConstants.SYS_LOGIN_BLACKIPLIST));
if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr())) { if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr())) {
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "很遗憾访问IP已被列入系统黑名单"); recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "很遗憾访问IP已被列入系统黑名单");
throw new ServiceException("很遗憾访问IP已被列入系统黑名单"); throw new ServiceException("很遗憾访问IP已被列入系统黑名单");
} }
// 查询用户信息
Result<LoginUser> userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER); Result<LoginUser> userResult = null;
if (firmId == 1){
userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER);
}else {
userResult = remoteUserService.getFirmUserInfo(username, firmId,SecurityConstants.INNER);
}
if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData())) { if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData())) {
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "登录用户不存在"); recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "登录用户不存在");

View File

@ -16,6 +16,11 @@ public class ServiceNameConstants {
*/ */
public static final String SYSTEM_SERVICE = "cloud-system"; public static final String SYSTEM_SERVICE = "cloud-system";
/**
* serviceid
*/
public static final String ENTERPRISE_SERVICE = "cloud-car";
/** /**
* serviceid * serviceid
*/ */

View File

@ -151,6 +151,17 @@ public class JwtUtils {
return getValue(claims, SecurityConstants.DETAILS_USERNAME); return getValue(claims, SecurityConstants.DETAILS_USERNAME);
} }
/**
*
*
* @param claims
*
* @return
*/
public static String getDatabaseName (Claims claims) {
return getValue(claims, SecurityConstants.DATABASE_NAME);
}
/** /**
* *
* *

View File

@ -11,6 +11,9 @@
<artifactId>cloud-common-rabbit</artifactId> <artifactId>cloud-common-rabbit</artifactId>
<description>
cloud-common-rabbit 模块提供RabbitMq消息队列的相关配置
</description>
<properties> <properties>
<maven.compiler.source>17</maven.compiler.source> <maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target> <maven.compiler.target>17</maven.compiler.target>
@ -32,4 +35,4 @@
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -1 +1 @@
com.muyu.common.rabbit.RabbitListenerConfigurer com.muyu.common.rabbit.RabbitListenerConfigurer

View File

@ -6,6 +6,7 @@ import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations; import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@ -17,6 +18,7 @@ import java.util.concurrent.TimeUnit;
**/ **/
@SuppressWarnings(value = {"unchecked", "rawtypes"}) @SuppressWarnings(value = {"unchecked", "rawtypes"})
@Component @Component
//@Service
public class RedisService { public class RedisService {
@Autowired @Autowired
public RedisTemplate redisTemplate; public RedisTemplate redisTemplate;

View File

@ -9,9 +9,12 @@ import com.muyu.cloud.common.many.datasource.factory.DruidDataSourceFactory;
import com.muyu.cloud.common.many.datasource.role.DynamicDataSource; import com.muyu.cloud.common.many.datasource.role.DynamicDataSource;
import com.muyu.cloud.common.saas.domain.model.EntInfo; import com.muyu.cloud.common.saas.domain.model.EntInfo;
import com.muyu.cloud.common.saas.exception.SaaSException; import com.muyu.cloud.common.saas.exception.SaaSException;
import com.muyu.common.core.constant.SecurityConstants;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import com.muyu.common.core.utils.SpringUtils; import com.muyu.common.core.utils.SpringUtils;
import com.muyu.common.system.domain.SysFirm;
import com.muyu.common.system.domain.SysUser; import com.muyu.common.system.domain.SysUser;
import com.muyu.common.system.domain.resp.SysFirmResp;
import com.muyu.common.system.remote.RemoteUserService; import com.muyu.common.system.remote.RemoteUserService;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationArguments;
@ -20,6 +23,7 @@ import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -36,22 +40,25 @@ import java.util.Map;
@AutoConfiguration(before = MybatisPlusAutoConfiguration.class) @AutoConfiguration(before = MybatisPlusAutoConfiguration.class)
public class ManyDataSource implements ApplicationRunner{ public class ManyDataSource implements ApplicationRunner{
private List<EntInfo> dataSourceInfoList(){ private List<EntInfo> dataSourceInfoList(){
RemoteUserService remoteUserService = SpringUtils.getBean(RemoteUserService.class); RemoteUserService remoteUserService = SpringUtils.getBean(RemoteUserService.class);
Result<List<SysUser>> tableDataInfoResult = remoteUserService.companyList(); Result<List<SysFirmResp>> firmList = remoteUserService.getFirmList(SecurityConstants.INNER);
if (tableDataInfoResult==null){ if (firmList==null) {
throw new SaaSException("saas远调数据源错误"); throw new SaaSException("saas远调数据源错误");
} }
List<SysUser> data = tableDataInfoResult.getData();
if (tableDataInfoResult.getCode() == Result.SUCCESS && data !=null){ List<SysFirmResp> data = firmList.getData();
if (firmList.getCode() == Result.SUCCESS && data !=null){
List<EntInfo> list = new ArrayList<>(); List<EntInfo> list = new ArrayList<>();
for (SysUser row : data) { for (SysFirmResp row : data) {
list.add( list.add(
EntInfo.builder() EntInfo.builder()
.entCode(row.getDatabaseName()) .url(row.getSysFirmDatasource().getUrl())
.ip(DatasourceContent.IP) .entCode(row.getSysFirmDatasource().getDatabase())
.port(DatasourceContent.PORT) .ip(row.getSysFirmDatasource().getIp())
.port(row.getSysFirmDatasource().getPort())
.password(row.getSysFirmDatasource().getPassword())
.username(row.getSysFirmDatasource().getUsername())
.build() .build()
); );
} }
@ -79,7 +86,7 @@ public class ManyDataSource implements ApplicationRunner{
Map<Object, Object> dataSourceMap = new HashMap<>(); Map<Object, Object> dataSourceMap = new HashMap<>();
dataSourceInfoList() dataSourceInfoList()
.stream() .stream()
.map(entInfo -> DataSourceInfo.hostAndPortBuild(entInfo.getEntCode(), entInfo.getIp(), entInfo.getPort())) .map(entInfo -> DataSourceInfo.hostAndPortBuild(entInfo))
.forEach(dataSourceInfo -> { .forEach(dataSourceInfo -> {
dataSourceMap.put(dataSourceInfo.getKey(), druidDataSourceFactory.create(dataSourceInfo)); dataSourceMap.put(dataSourceInfo.getKey(), druidDataSourceFactory.create(dataSourceInfo));
}); });
@ -98,7 +105,7 @@ public class ManyDataSource implements ApplicationRunner{
DynamicDataSource dynamicDataSource = SpringUtils.getBean(DynamicDataSource.class); DynamicDataSource dynamicDataSource = SpringUtils.getBean(DynamicDataSource.class);
for (EntInfo entInfo : dataSourceInfoList()) { for (EntInfo entInfo : dataSourceInfoList()) {
DataSourceInfo dataSourceInfo = DataSourceInfo.hostAndPortBuild( DataSourceInfo dataSourceInfo = DataSourceInfo.hostAndPortBuild(
entInfo.getEntCode(), entInfo.getIp(), entInfo.getPort() entInfo
); );
DruidDataSource druidDataSource = druidDataSourceFactory.create(dataSourceInfo); DruidDataSource druidDataSource = druidDataSourceFactory.create(dataSourceInfo);
dynamicDataSource.put(dataSourceInfo.getKey(), druidDataSource); dynamicDataSource.put(dataSourceInfo.getKey(), druidDataSource);

View File

@ -1,7 +1,9 @@
package com.muyu.cloud.common.many.datasource.domain.model; package com.muyu.cloud.common.many.datasource.domain.model;
import com.muyu.cloud.common.many.datasource.constents.DatasourceContent; import com.muyu.cloud.common.many.datasource.constents.DatasourceContent;
import com.muyu.cloud.common.saas.domain.model.EntInfo;
import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.StringUtils;
import com.muyu.common.system.domain.SysFirmDatasource;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@ -39,12 +41,12 @@ public class DataSourceInfo {
private String password; private String password;
public static DataSourceInfo hostAndPortBuild(String key, String host, Integer port) { public static DataSourceInfo hostAndPortBuild(EntInfo entInfo) {
return DataSourceInfo.builder() return DataSourceInfo.builder()
.key(key) .key(entInfo.getEntCode())
.url(StringUtils.format(DatasourceContent.DATASOURCE_URL, host, port, key)) .url(StringUtils.format(entInfo.getUrl(), entInfo.getIp(), entInfo.getPort(), entInfo.getEntCode()))
.password(DatasourceContent.PASSWORD) .password(entInfo.getUsername())
.userName(DatasourceContent.USER_NAME) .userName(entInfo.getPassword())
.build(); .build();
} }
} }

View File

@ -19,7 +19,13 @@ public class EntInfo {
private String entCode; private String entCode;
private String url;
private String ip; private String ip;
private Integer port; private Integer port;
private String username;
private String password;
} }

View File

@ -56,7 +56,7 @@ public class TokenService {
claimsMap.put(SecurityConstants.USER_KEY, token); claimsMap.put(SecurityConstants.USER_KEY, token);
claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId); claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName); claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
claimsMap.put(SecurityConstants.DATABASE_NAME, loginUser.getSysUser().getDatabaseName()); claimsMap.put(SecurityConstants.DATABASE_NAME, loginUser.getSysUser().getDatabase());
// 接口返回信息 // 接口返回信息
Map<String, Object> rspMap = new HashMap<String, Object>(); Map<String, Object> rspMap = new HashMap<String, Object>();
rspMap.put("access_token", JwtUtils.createToken(claimsMap)); rspMap.put("access_token", JwtUtils.createToken(claimsMap));

View File

@ -63,4 +63,5 @@ public class LoginUser implements Serializable {
*/ */
private SysUser sysUser; private SysUser sysUser;
} }

View File

@ -78,6 +78,10 @@ public class SysDept extends BaseEntity {
* *
*/ */
private String parentName; private String parentName;
/**
* Id
*/
private Long firmId;
/** /**
* *

View File

@ -0,0 +1,29 @@
package com.muyu.common.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @Author
* @Packagecom.muyu.system.domain
* @Projectcloud-vehicle
* @nameSysFirm
* @Date2024/10/8 19:41
*/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@TableName("sys_firm")
public class SysFirm {
@TableId(type = IdType.AUTO)
private Integer firmId;
private String firmName;
private String firmCode;
private Integer datasourceId;
}

View File

@ -0,0 +1,32 @@
package com.muyu.common.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @Author
* @Packagecom.muyu.system.domain
* @Projectcloud-vehicle
* @nameSysFirmDatasource
* @Date2024/10/8 19:44
*/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@TableName("sys_firm_datasource")
public class SysFirmDatasource {
@TableId(type = IdType.AUTO)
private Long id;
private String url;
private String ip;
private Integer port;
private String database;
private String username;
private String password;
}

View File

@ -55,6 +55,11 @@ public class SysUser extends BaseEntity {
@Excel(name = "用户名称") @Excel(name = "用户名称")
private String nickName; private String nickName;
/**
*
*/
private String userType;
/** /**
* *
*/ */
@ -106,6 +111,9 @@ public class SysUser extends BaseEntity {
@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT) @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
private Date loginDate; private Date loginDate;
private String database;
/** /**
* *
*/ */
@ -136,10 +144,10 @@ public class SysUser extends BaseEntity {
private Long roleId; private Long roleId;
/** /**
* * Id
* @param userId * @param userId
*/ */
private String databaseName; private String firmId;
public SysUser (Long userId) { public SysUser (Long userId) {

View File

@ -0,0 +1,30 @@
package com.muyu.common.system.domain.resp;
import com.muyu.common.system.domain.SysFirm;
import com.muyu.common.system.domain.SysFirmDatasource;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author
* @Packagecom.muyu.common.system.domain
* @Projectcloud-vehicle
* @nameSysFirmDTO
* @Date2024/10/8 20:23
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SysFirmResp {
/**
*
*/
private SysFirm sysFirm;
/**
*
*/
private SysFirmDatasource sysFirmDatasource;
}

View File

@ -3,7 +3,9 @@ package com.muyu.common.system.remote;
import com.muyu.common.core.constant.SecurityConstants; import com.muyu.common.core.constant.SecurityConstants;
import com.muyu.common.core.constant.ServiceNameConstants; import com.muyu.common.core.constant.ServiceNameConstants;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import com.muyu.common.system.domain.SysFirm;
import com.muyu.common.system.domain.SysUser; import com.muyu.common.system.domain.SysUser;
import com.muyu.common.system.domain.resp.SysFirmResp;
import com.muyu.common.system.remote.factory.RemoteUserFallbackFactory; import com.muyu.common.system.remote.factory.RemoteUserFallbackFactory;
import com.muyu.common.system.domain.LoginUser; import com.muyu.common.system.domain.LoginUser;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
@ -40,6 +42,8 @@ public interface RemoteUserService {
@PostMapping("/user/register") @PostMapping("/user/register")
public Result<Boolean> registerUserInfo (@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); public Result<Boolean> registerUserInfo (@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
@GetMapping("/user/companyList") @GetMapping("/firm/firmInnList")
public Result<List<SysUser>> companyList (); Result<List<SysFirmResp>> getFirmList(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
@GetMapping("/user/firmUserInfo/{username}/{firmId}")
Result<LoginUser> getFirmUserInfo(@PathVariable("username") String username,@PathVariable("firmId") Long firmId,@RequestHeader(SecurityConstants.FROM_SOURCE) String inner);
} }

View File

@ -1,6 +1,7 @@
package com.muyu.common.system.remote.factory; package com.muyu.common.system.remote.factory;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import com.muyu.common.system.domain.resp.SysFirmResp;
import com.muyu.common.system.remote.RemoteUserService; import com.muyu.common.system.remote.RemoteUserService;
import com.muyu.common.system.domain.SysUser; import com.muyu.common.system.domain.SysUser;
import com.muyu.common.system.domain.LoginUser; import com.muyu.common.system.domain.LoginUser;
@ -33,9 +34,15 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
public Result<Boolean> registerUserInfo (SysUser sysUser, String source) { public Result<Boolean> registerUserInfo (SysUser sysUser, String source) {
return Result.error("注册用户失败:" + throwable.getMessage()); return Result.error("注册用户失败:" + throwable.getMessage());
} }
@Override @Override
public Result<List<SysUser>> companyList() { public Result<List<SysFirmResp>> getFirmList(String source) {
return Result.error("saas连接system失败:" + throwable.getMessage()); return Result.error("注册用户失败:" + throwable.getMessage());
}
@Override
public Result<LoginUser> getFirmUserInfo(String username, Long firmId, String inner) {
return Result.error("注册用户失败:" + throwable.getMessage());
} }
}; };
} }

View File

@ -71,6 +71,7 @@ public class AuthFilter implements GlobalFilter, Ordered {
addHeader(mutate, SecurityConstants.USER_KEY, userkey); addHeader(mutate, SecurityConstants.USER_KEY, userkey);
addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid); addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid);
addHeader(mutate, SecurityConstants.DETAILS_USERNAME, username); addHeader(mutate, SecurityConstants.DETAILS_USERNAME, username);
addHeader(mutate,SecurityConstants.DATABASE_NAME, JwtUtils.getDatabaseName(claims));
// 内部请求来源参数清除 // 内部请求来源参数清除
removeHeader(mutate, SecurityConstants.FROM_SOURCE); removeHeader(mutate, SecurityConstants.FROM_SOURCE);
return chain.filter(exchange.mutate().request(mutate.build()).build()); return chain.filter(exchange.mutate().request(mutate.build()).build());

View File

@ -0,0 +1,27 @@
package com.muyu.enterprise.cache;
import com.muyu.common.cache.CacheAbsBacis;
import com.muyu.domain.Fence;
import com.muyu.domain.req.FenceReq;
import com.muyu.domain.resp.FenceResp;
/**
*
*/
public class AllFenceCahceService extends CacheAbsBacis<String, FenceResp> {
@Override
public void clear() {
}
@Override
public String keyPre() {
return "AllFence:info:";
}
@Override
public String decode(String key) {
return key.replace("AllFence:info:", "");
}
}

View File

@ -0,0 +1,29 @@
package com.muyu.enterprise.cache;
import com.muyu.common.cache.CacheAbsBacis;
import com.muyu.domain.BoundMiddle;
import com.muyu.domain.resp.BoundFenceGroup;
import com.muyu.domain.resp.FenceResp;
import java.util.List;
/**
*
*/
public class AllFenceGroupCahceService extends CacheAbsBacis<String, List<BoundFenceGroup>> {
@Override
public void clear() {
}
@Override
public String keyPre() {
return "AllFenceGroup:info:";
}
@Override
public String decode(String key) {
return key.replace("AllFenceGroup:info:", "");
}
}

View File

@ -0,0 +1,31 @@
package com.muyu.enterprise.cache;
import com.muyu.common.cache.CacheAbsBacis;
import com.muyu.domain.MessageTemplate;
import com.muyu.domain.MessageValue;
import com.muyu.domain.req.MessageValueReq;
import com.muyu.domain.resp.MessageValueListResp;
import java.util.List;
/**
*
*/
public class AllMessageValueCacheService extends CacheAbsBacis<String, List<MessageValueListResp>> {
@Override
public void clear() {
}
@Override
public String keyPre() {
return "AllMessagevalue:info:";
}
@Override
public String decode(String key) {
return key.replace("AllMessagevalue:info:", "");
}
}

View File

@ -0,0 +1,36 @@
package com.muyu.enterprise.cache;
import com.muyu.common.cache.CacheAbsBacis;
import com.muyu.domain.Vehicle;
import com.muyu.domain.req.VehicleAddReq;
import com.muyu.domain.req.VehicleManageReq;
import com.muyu.domain.resp.VehicleManageResp;
import java.util.List;
/**
*
*/
public class AllVehicleCacheService extends CacheAbsBacis<String, VehicleManageResp> {
@Override
public void clear() {
}
/**
* key
* @return
*/
@Override
public String keyPre() {
return "AllVehicle:info:";
}
@Override
public String decode(String key) {
return key.replace("AllVehicle:info:", "");
}
}

View File

@ -0,0 +1,24 @@
package com.muyu.enterprise.cache;
import com.muyu.common.cache.CacheAbsBacis;
import com.muyu.domain.VehicleType;
/**
*
*/
public class AllVehicleTypeCacheService extends CacheAbsBacis<String, VehicleType> {
@Override
public void clear() {
}
@Override
public String keyPre() {
return "AllVehicleType:info:";
}
@Override
public String decode(String key) {
return key.replace("AllVehicleType:info:", "");
}
}

View File

@ -0,0 +1,24 @@
package com.muyu.enterprise.cache;
import com.muyu.common.cache.CacheAbsBacis;
import com.muyu.domain.WarnRule;
/**
*
*/
public class AllWarnRuleCacheService extends CacheAbsBacis<String, WarnRule> {
@Override
public void clear() {
}
@Override
public String keyPre() {
return "AllWarnRule:info:";
}
@Override
public String decode(String key) {
return key.replace("AllWarnRule:info:", "");
}
}

View File

@ -0,0 +1,27 @@
package com.muyu.enterprise.cache;
import com.muyu.common.cache.CacheAbsBacis;
import com.muyu.domain.resp.WarnStrategyAndVinResp;
import com.muyu.domain.resp.WarnVehicleResp;
import java.util.List;
/**
*
*/
public class AllWarnStrategyAndVinCacheService extends CacheAbsBacis<String, WarnStrategyAndVinResp> {
@Override
public void clear() {
}
@Override
public String keyPre() {
return "AllWarnStrategy:info:";
}
@Override
public String decode(String key) {
return key.replace("AllWarnStrategy:info:", "");
}
}

View File

@ -0,0 +1,28 @@
package com.muyu.enterprise.cache;
import com.muyu.common.cache.CacheAbsBacis;
import com.muyu.domain.WarnStrategy;
import com.muyu.domain.resp.WarnStrategyAndVinResp;
import com.muyu.domain.resp.WarnVehicleResp;
import java.util.List;
/**
*
*/
public class AllWarnStrategyCacheService extends CacheAbsBacis<String, WarnVehicleResp> {
@Override
public void clear() {
}
@Override
public String keyPre() {
return "AllWarnStrategy:info:";
}
@Override
public String decode(String key) {
return key.replace("AllWarnStrategy:info:", "");
}
}

View File

@ -2,6 +2,9 @@ package com.muyu.enterprise.cache;
import com.muyu.common.cache.CacheAbsBacis; import com.muyu.common.cache.CacheAbsBacis;
import com.muyu.domain.Fence; import com.muyu.domain.Fence;
import com.muyu.domain.resp.FenceResp;
import java.util.List;
/** /**
* *
@ -21,4 +24,5 @@ public class FenceCahceService extends CacheAbsBacis<String, Fence> {
public String decode(String key) { public String decode(String key) {
return key.replace("fence:info:", ""); return key.replace("fence:info:", "");
} }
} }

View File

@ -0,0 +1,28 @@
package com.muyu.enterprise.cache;
import com.muyu.common.cache.CacheAbsBacis;
import com.muyu.domain.Fence;
import com.muyu.domain.FenceGroup;
import com.muyu.domain.req.BoundFenceGroupReq;
import com.muyu.domain.req.FenceGroupAddReq;
/**
*
*/
public class FenceGroupCahceService extends CacheAbsBacis<String, BoundFenceGroupReq> {
@Override
public void clear() {
}
@Override
public String keyPre() {
return "fenceGroup:info:";
}
@Override
public String decode(String key) {
return key.replace("fenceGroup:info:", "");
}
}

View File

@ -0,0 +1,26 @@
package com.muyu.enterprise.cache;
import com.muyu.common.cache.CacheAbsBacis;
import com.muyu.domain.MessageTemplate;
/**
*
*/
public class MessageTemplateCacheService extends CacheAbsBacis<String, MessageTemplate> {
@Override
public void clear() {
}
@Override
public String keyPre() {
return "messageTemplate:info:";
}
@Override
public String decode(String key) {
return key.replace("messageTemplate:info:", "");
}
}

View File

@ -0,0 +1,26 @@
package com.muyu.enterprise.cache;
import com.muyu.common.cache.CacheAbsBacis;
import com.muyu.domain.MessageValue;
/**
*
*/
public class MessageValueCacheService extends CacheAbsBacis<String, MessageValue> {
@Override
public void clear() {
}
@Override
public String keyPre() {
return "messagevalue:info:";
}
@Override
public String decode(String key) {
return key.replace("messagevalue:info:", "");
}
}

View File

@ -4,7 +4,7 @@ import com.muyu.common.cache.CacheAbsBacis;
import com.muyu.domain.Vehicle; import com.muyu.domain.Vehicle;
/** /**
* *
*/ */
public class VehicleCacheService extends CacheAbsBacis<String, Vehicle> { public class VehicleCacheService extends CacheAbsBacis<String, Vehicle> {

View File

@ -1,11 +1,12 @@
package com.muyu.enterprise.cache; package com.muyu.enterprise.cache;
import com.muyu.common.cache.CacheAbsBacis; import com.muyu.common.cache.CacheAbsBacis;
import com.muyu.domain.VehicleType;
/** /**
* *
*/ */
public class FaultCacheService extends CacheAbsBacis { public class VehicleTypeCacheService extends CacheAbsBacis<String, VehicleType> {
@Override @Override
public void clear() { public void clear() {
@ -13,11 +14,11 @@ public class FaultCacheService extends CacheAbsBacis {
@Override @Override
public String keyPre() { public String keyPre() {
return "fault:info:"; return "vehicleType:info:";
} }
@Override @Override
public String decode(String key) { public String decode(String key) {
return key.replace("fault:info:", ""); return key.replace("vehicleType:info:", "");
} }
} }

View File

@ -14,11 +14,11 @@ public class WarnRuleCacheService extends CacheAbsBacis<String, WarnRule> {
@Override @Override
public String keyPre() { public String keyPre() {
return "warn:info:"; return "warnRule:info:";
} }
@Override @Override
public String decode(String key) { public String decode(String key) {
return key.replace("warn:info:", ""); return key.replace("warnRule:info:", "");
} }
} }

View File

@ -3,11 +3,12 @@ package com.muyu.enterprise.cache;
import com.muyu.common.cache.CacheAbsBacis; import com.muyu.common.cache.CacheAbsBacis;
import com.muyu.domain.WarnRule; import com.muyu.domain.WarnRule;
import com.muyu.domain.WarnStrategy; import com.muyu.domain.WarnStrategy;
import com.muyu.domain.resp.WarnRuleResp;
/** /**
* *
*/ */
public class WarnStrategyCacheService extends CacheAbsBacis<String, WarnStrategy> { public class WarnStrategyCacheService extends CacheAbsBacis<String, WarnRuleResp> {
@Override @Override
public void clear() { public void clear() {
@ -15,11 +16,11 @@ public class WarnStrategyCacheService extends CacheAbsBacis<String, WarnStrategy
@Override @Override
public String keyPre() { public String keyPre() {
return "warn:info:"; return "warnStrategy:info:";
} }
@Override @Override
public String decode(String key) { public String decode(String key) {
return key.replace("warn:info:", ""); return key.replace("warnStrategy:info:", "");
} }
} }

View File

@ -1,5 +1,16 @@
com.muyu.enterprise.cache.VehicleCacheService com.muyu.enterprise.cache.AllFenceCahceService
com.muyu.enterprise.cache.FaultCacheService com.muyu.enterprise.cache.AllFenceGroupCahceService
com.muyu.enterprise.cache.AllMessageValueCacheService
com.muyu.enterprise.cache.AllVehicleCacheService
com.muyu.enterprise.cache.AllVehicleTypeCacheService
com.muyu.enterprise.cache.AllWarnRuleCacheService
com.muyu.enterprise.cache.AllWarnStrategyAndVinCacheService
com.muyu.enterprise.cache.AllWarnStrategyCacheService
com.muyu.enterprise.cache.FenceCahceService com.muyu.enterprise.cache.FenceCahceService
com.muyu.enterprise.cache.FenceGroupCahceService
com.muyu.enterprise.cache.MessageTemplateCacheService
com.muyu.enterprise.cache.MessageValueCacheService
com.muyu.enterprise.cache.VehicleCacheService
com.muyu.enterprise.cache.VehicleTypeCacheService
com.muyu.enterprise.cache.WarnRuleCacheService com.muyu.enterprise.cache.WarnRuleCacheService
com.muyu.enterprise.cache.WarnStrategyCacheService com.muyu.enterprise.cache.WarnStrategyCacheService

View File

@ -0,0 +1,30 @@
package com.muyu.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.common.core.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @AuthorChenYan
* @Project2112-car-cloud-server
* @Packagecom.muyu.fault.domain
* @FilenameCustom
* @Description TODO
* @Date2024/9/21 19:15
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "custom")
public class Custom {
@TableId(value = "c_id", type = IdType.AUTO)
private Integer cId;
@Excel(name = "值")
private String customName;
}

View File

@ -0,0 +1,49 @@
package com.muyu.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.muyu.common.core.web.domain.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
*
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@Tag(name = "fault", description = "故障信息")
public class Fault extends BaseEntity {
/**
* id
*/
@TableId(value = "fault_id")
@Schema(description = "主键",type = "Integer")
private Long faultId;
/**
*
*/
@Schema(description = "故障类别",type = "String")
private String faultType;
/**
*
*/
@Schema(description = "故障规则(判定方式)",type = "String")
private String faultCustom;
/**
*
*/
@Schema(description = "报文外键",type = "Integer")
private Integer messageId;
}

View File

@ -0,0 +1,21 @@
package com.muyu.domain;
/**
* @AuthorChenYan
* @Project2112-car-cloud-server
* @Packagecom.muyu.fault.domain
* @FilenameFaultConstant
* @Description TODO
* @Date2024/9/19 14:33
*/
public class FaultConstant {
/**
*
*/
public static final String FAULT_INFO_PREFIX = "fault:";
/**
*
*/
public static final String FAULT_LIST = "fault_list";
}

View File

@ -0,0 +1,26 @@
package com.muyu.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import lombok.experimental.SuperBuilder;
/**
*
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "fault_rule", autoResultMap = true)
public class FaultRule {
/**
* id
*/
@TableId(value = "fault_rule_id")
private Long faultRuleId;
private Long vehicleTypeId;
private Long messageValueId;
private String faultCondition;
private Double triggerValue;
}

View File

@ -0,0 +1,152 @@
package com.muyu.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.system.domain.SysUser;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
/**
* @Author
* @Packagecom.muyu.domain
* @Projectcloud-vehicle
* @nameFirmUser
* @Date2024/10/8 18:59
*/
@EqualsAndHashCode(callSuper = true)
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@TableName("sys_user")
@Tag(name = "企业用户")
public class FirmUser extends BaseEntity {
/**
* ID
*/
@Schema(name = "用户ID")
@TableId(type = IdType.AUTO)
private Long userId;
/**
* ID
*/
@Schema(name = "部门ID")
private Long deptId;
/**
*
*/
@Schema(name = "用户账号")
private String userName;
/**
*
*/
@Schema(name = "用户昵称")
private String nickName;
/**
* 00
*/
@Schema(name = "用户类型00系统用户")
private String userType;
/**
*
*/
@Schema(name = "用户邮箱")
private String email;
/**
*
*/
@Schema(name = "手机号码")
private String phonenumber;
/**
* 0 1 2
*/
@Schema(name = "用户性别0男 1女 2未知")
private String sex;
/**
*
*/
@Schema(name = "头像地址")
private String avatar;
/**
*
*/
@Schema(name = "密码")
private String password;
/**
* 0 1
*/
@Schema(name = "帐号状态0正常 1停用")
private String status;
/**
* 0 2
*/
@Schema(name = "删除标志0代表存在 2代表删除")
private String delFlag;
/**
* IP
*/
@Schema(name = "最后登录IP")
private String loginIp;
/**
*
*/
@Schema(name = "最后登录时间")
private Date loginDate;
public static FirmUser builderFirmUser(SysUser sysUser) {
return FirmUser.builder()
.userId(sysUser.getUserId())
.deptId(sysUser.getDeptId())
.userType(sysUser.getUserType())
.userName(sysUser.getUserName())
.nickName(sysUser.getNickName())
.email(sysUser.getEmail())
.phonenumber(sysUser.getPhonenumber())
.sex(sysUser.getSex())
.avatar(sysUser.getAvatar())
.password(sysUser.getPassword())
.status(sysUser.getStatus())
.delFlag(sysUser.getDelFlag())
.loginIp(sysUser.getLoginIp())
.loginDate(sysUser.getLoginDate())
.createBy(sysUser.getCreateBy())
.createTime(sysUser.getCreateTime())
.updateBy(sysUser.getUpdateBy())
.updateTime(sysUser.getUpdateTime())
.remark(sysUser.getRemark())
.build();
}
public static SysUser builderSysUser(FirmUser sysUser) {
return SysUser.builder()
.userId(sysUser.getUserId())
.deptId(sysUser.getDeptId())
.userName(sysUser.getUserName())
.userType(sysUser.getUserType())
.nickName(sysUser.getNickName())
.email(sysUser.getEmail())
.phonenumber(sysUser.getPhonenumber())
.sex(sysUser.getSex())
.avatar(sysUser.getAvatar())
.password(sysUser.getPassword())
.status(sysUser.getStatus())
.delFlag(sysUser.getDelFlag())
.loginIp(sysUser.getLoginIp())
.loginDate(sysUser.getLoginDate())
.createBy(sysUser.getCreateBy())
.createTime(sysUser.getCreateTime())
.updateBy(sysUser.getUpdateBy())
.updateTime(sysUser.getUpdateTime())
.remark(sysUser.getRemark())
.build();
}
}

View File

@ -12,12 +12,7 @@ import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
/** /**
* @Author: LiDongJia *
* @Package: com.muyu.car.domain
* @Project: 2112-car-cloud-server
* @name: MessageTemplate
* @Date: 2024/9/18 21:11
* @Description:
*/ */
@Data @Data
@SuperBuilder @SuperBuilder

View File

@ -119,6 +119,17 @@ public class Vehicle extends BaseEntity {
@Schema(type = "Integer",description = "电子围栏外键") @Schema(type = "Integer",description = "电子围栏外键")
private Integer fenceGroupId; private Integer fenceGroupId;
/** 策略id */
@Schema(type = "Long",description = "策略id")
private Long warnStrategyId;
/** 故障id */
@Schema(type = "Long",description = "策略id")
private Long faultId;
public static Vehicle addBuild(VehicleAddReq vehicleAddReq){ public static Vehicle addBuild(VehicleAddReq vehicleAddReq){
return Vehicle.builder() return Vehicle.builder()
.licenceNumber(vehicleAddReq.getLicenceNumber()) .licenceNumber(vehicleAddReq.getLicenceNumber())
@ -132,6 +143,8 @@ public class Vehicle extends BaseEntity {
.vehicleStatus(vehicleAddReq.getVehicleStatus()) .vehicleStatus(vehicleAddReq.getVehicleStatus())
.companyId(vehicleAddReq.getCompanyId()) .companyId(vehicleAddReq.getCompanyId())
.fenceGroupId(vehicleAddReq.getFenceGroupId()) .fenceGroupId(vehicleAddReq.getFenceGroupId())
.warnStrategyId(vehicleAddReq.getWarnStrategyId())
.faultId(vehicleAddReq.getFaultId())
.build(); .build();
} }
@ -149,6 +162,8 @@ public class Vehicle extends BaseEntity {
.vehicleStatus(vehicleUpdReq.getVehicleStatus()) .vehicleStatus(vehicleUpdReq.getVehicleStatus())
.companyId(vehicleUpdReq.getCompanyId()) .companyId(vehicleUpdReq.getCompanyId())
.fenceGroupId(vehicleUpdReq.getFenceGroupId()) .fenceGroupId(vehicleUpdReq.getFenceGroupId())
.warnStrategyId(vehicleUpdReq.getWarnStrategyId())
.faultId(vehicleUpdReq.getFaultId())
.build(); .build();
} }

View File

@ -3,9 +3,6 @@ package com.muyu.domain;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.annotation.Excel.ColumnType;
import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.common.core.web.domain.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
@ -44,7 +41,16 @@ public class VehicleType extends BaseEntity {
* *
*/ */
@Schema(type = "Integer",description = "报文模版外键") @Schema(type = "Integer",description = "报文模版外键")
private Integer messageTemplateId; private Long messageTemplateId;
/**
*
*/
public static VehicleType addBuilder(VehicleType vehicleType) {
return VehicleType.builder().
vehicleTypeId(vehicleType.getVehicleTypeId()).
vehicleTypeName(vehicleType.getVehicleTypeName()).
build();
}
} }

View File

@ -43,11 +43,6 @@ public class WarnRule extends BaseEntity{
@Excel(name = "规则名称") @Excel(name = "规则名称")
private String ruleName; private String ruleName;
/** 策略id */
@Schema(type = "Integer",description = "策略id")
@Excel(name = "策略id")
private Integer strategyId;
/** 报文数据类型id */ /** 报文数据类型id */
@Schema(type = "Integer",description = "报文数据类型id") @Schema(type = "Integer",description = "报文数据类型id")
@Excel(name = "报文数据类型id") @Excel(name = "报文数据类型id")
@ -75,11 +70,18 @@ public class WarnRule extends BaseEntity{
@Excel(name = "最小值") @Excel(name = "最小值")
private Integer minValue; private Integer minValue;
/**
* id
*/
@Schema(type = "Integer",description = "策略外键id")
@Excel(name = "策略外键id")
private Integer warnStrategyId;
public static WarnRule updateBuilder(WarnRule warnRule, Supplier<Long> supplier) { public static WarnRule updateBuilder(WarnRule warnRule, Supplier<Long> supplier) {
return WarnRule.builder() return WarnRule.builder()
.warnRuleId(supplier.get()) .warnRuleId(supplier.get())
.ruleName(warnRule.getRuleName()) .ruleName(warnRule.getRuleName())
.strategyId(warnRule.getStrategyId())
.msgTypeId(warnRule.getMsgTypeId()) .msgTypeId(warnRule.getMsgTypeId())
.slideTime(warnRule.getSlideTime()) .slideTime(warnRule.getSlideTime())
.slideFrequency(warnRule.getSlideFrequency()) .slideFrequency(warnRule.getSlideFrequency())
@ -94,7 +96,6 @@ public class WarnRule extends BaseEntity{
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getWarnRuleId()) .append("id", getWarnRuleId())
.append("ruleName", getRuleName()) .append("ruleName", getRuleName())
.append("strategyId", getStrategyId())
.append("msgTypeId", getMsgTypeId()) .append("msgTypeId", getMsgTypeId())
.append("slideTime", getSlideTime()) .append("slideTime", getSlideTime())
.append("slideFrequency", getSlideFrequency()) .append("slideFrequency", getSlideFrequency())

View File

@ -51,6 +51,7 @@ public class WarnStrategy extends BaseEntity{
private Long vehicleTypeId; private Long vehicleTypeId;
public static WarnStrategy updateBuilder(WarnStrategy warnStrategy, Supplier<Long> supplier) { public static WarnStrategy updateBuilder(WarnStrategy warnStrategy, Supplier<Long> supplier) {
return WarnStrategy.builder() return WarnStrategy.builder()
.warnStrategyId(supplier.get()) .warnStrategyId(supplier.get())

View File

@ -0,0 +1,30 @@
package com.muyu.domain.req;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
*
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Tag(name = "绑定围栏组参数")
public class BoundFenceGroupReq {
/**
* Id
*/
private Long vehicleId;
/**
* Ids
*/
private Long[] fenceGroupIds;
}

View File

@ -1,55 +0,0 @@
//package com.muyu.domain.req;
//
//import com.baomidou.mybatisplus.annotation.IdType;
//import com.baomidou.mybatisplus.annotation.TableId;
//import com.muyu.domain.Fence;
//import io.swagger.v3.oas.annotations.media.Schema;
//import io.swagger.v3.oas.annotations.tags.Tag;
//import lombok.AllArgsConstructor;
//import lombok.Builder;
//import lombok.Data;
//import lombok.NoArgsConstructor;
//
//import java.util.List;
//
//@Data
//@Builder
//@AllArgsConstructor
//@NoArgsConstructor
//@Tag(name = "查看绑定的围栏信息")
//public class HaveFence {
//
// /**
// * 主键
// */
// @Schema(type = "Long",description = "主键")
// @TableId(value = "id",type = IdType.AUTO)
// private Long id;
//
// /**
// * 围栏名称
// */
// @Schema(type = "String",description = "围栏名称")
// private String fenceName;
//
// /**
// * 坐标
// */
// @Schema(type = "String",description = "坐标")
// private String coordinates;
//
// /**
// * 描述
// */
// @Schema(type = "String",description = "描述")
// private String description;
//
// /**
// * 电子围栏列表
// */
// @Schema(type = "List<Fence>",description = "电子围栏列表")
// List<Fence> fenceList;
//
//
//
//}

View File

@ -1,5 +1,7 @@
package com.muyu.domain.req; package com.muyu.domain.req;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.annotation.Excel; import com.muyu.common.core.annotation.Excel;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
@ -94,4 +96,14 @@ public class VehicleAddReq {
*/ */
@Schema(title = "电子围栏外键", type = "Integer", defaultValue = "1", description = "电子围栏外键") @Schema(title = "电子围栏外键", type = "Integer", defaultValue = "1", description = "电子围栏外键")
private Integer fenceGroupId; private Integer fenceGroupId;
/** 策略id */
@Schema(type = "Long",description = "策略id")
@TableId( type = IdType.AUTO)
private Long warnStrategyId;
/** 故障id */
@Schema(type = "Long",description = "策略id")
private Long faultId;
} }

View File

@ -1,5 +1,7 @@
package com.muyu.domain.req; package com.muyu.domain.req;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.annotation.Excel; import com.muyu.common.core.annotation.Excel;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
@ -94,4 +96,14 @@ public class VehicleUpdReq {
*/ */
@Schema(title = "电子围栏外键", type = "Integer", defaultValue = "1", description = "电子围栏外键") @Schema(title = "电子围栏外键", type = "Integer", defaultValue = "1", description = "电子围栏外键")
private Integer fenceGroupId; private Integer fenceGroupId;
/** 策略id */
@Schema(type = "Long",description = "策略id")
@TableId( type = IdType.AUTO)
private Long warnStrategyId;
/** 故障id */
@Schema(type = "Long",description = "策略id")
private Long faultId;
} }

View File

@ -23,4 +23,7 @@ public class WarnVehicleReq {
@Excel(name = "策略名称") @Excel(name = "策略名称")
private String strategyName; private String strategyName;
} }

View File

@ -0,0 +1,45 @@
package com.muyu.domain.resp;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Tag(name = "车辆绑定的围栏组", description = "车辆绑定的围栏组")
public class BoundFenceGroup {
/**
*
*/
@TableId(value = "fence_group_id" ,type = IdType.AUTO)
@Schema(type = "Long",description = "围栏组id")
private Long fenceGroupId;
/**
*
*/
@Schema(type = "String",description = "优先级")
private String priority;
/**
* 0: 1:
*/
@Schema(type = "Integer",description = "状态 0:启用 1:禁止")
private Integer status;
/**
*
*/
@Schema(type = "String",description = "围栏组类型")
private String groupType;
}

View File

@ -0,0 +1,25 @@
package com.muyu.domain.resp;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@Tag(name = "故障规则列表响应数据")
public class FaultRuleResp {
private Long faultRuleId;
private String vehicleTypeName;
private String messageValueName;
private String faultCondition;
private Double triggerValue;
}

View File

@ -53,6 +53,12 @@ public class MessageValueListResp {
@Schema(type = "Integer",title = "起始下标") @Schema(type = "Integer",title = "起始下标")
private Integer messageStartIndex; private Integer messageStartIndex;
/**
*
*/
@Schema(type = "Long",description = "报文模版主键")
private Long messageTemplateId;
/** /**
* *
*/ */

View File

@ -0,0 +1,58 @@
package com.muyu.domain.resp;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.muyu.common.core.annotation.Excel;
import com.muyu.domain.WarnRule;
import com.muyu.domain.WarnStrategy;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Tag(name = "规则列表", description = "规则列表")
public class WarnRuleResp {
/** 策略id */
@Schema(type = "Long",description = "策略id")
@TableId( type = IdType.AUTO)
private Long warnStrategyId;
/** 策略名称 */
@Schema(type = "String",description = "策略名称")
@Excel(name = "策略名称")
private String strategyName;
/** 报文模版id */
@Schema(type = "Integer",description = "报文模版id")
@Excel(name = "报文模版id")
private Integer messageTemplateId;
/** 车辆类型id */
@Schema(type = "Long",description = "车辆类型id")
@Excel(name = "车辆类型id")
private Long vehicleTypeId;
/** 规则集合 */
@Schema(type = "List",description = "规则集合")
private List<WarnRule> warnRuleList;
public static WarnRuleResp build(WarnStrategy warnStrategy, List<WarnRule> warnRuleList){
return WarnRuleResp.builder()
.warnStrategyId(warnStrategy.getWarnStrategyId())
.strategyName(warnStrategy.getStrategyName())
.messageTemplateId(warnStrategy.getMessageTemplateId())
.vehicleTypeId(warnStrategy.getVehicleTypeId())
.warnRuleList(warnRuleList)
.build();
}
}

View File

@ -0,0 +1,56 @@
package com.muyu.domain.resp;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.muyu.common.core.annotation.Excel;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Tag(name = "WarnStrategyAndVin缓存预警信息获取vin")
public class WarnStrategyAndVinResp {
/**
* VIN
*/
@Schema(type = "String",description = "车辆VIN")
@Excel(name = "车辆VIN")
private String vehicleVin;
/**
* id
*/
@Schema(type = "Long",description = "策略id")
@TableId( type = IdType.AUTO)
private Long warnStrategyId;
/**
*
*/
@Schema(type = "String",description = "策略名称")
@Excel(name = "策略名称")
private String strategyName;
/**
* id
*/
@Schema(type = "Integer",description = "报文模版id")
@Excel(name = "报文模版id")
private Integer messageTemplateId;
/**
* id
*/
@Schema(type = "Long",description = "车辆类型id")
@Excel(name = "车辆类型id")
private Long vehicleTypeId;
}

View File

@ -66,4 +66,13 @@ public class WarnVehicleResp {
@Schema(type = "String",description = "报文模版名称") @Schema(type = "String",description = "报文模版名称")
private String messageTemplateName; private String messageTemplateName;
/**
* id
*/
@Schema(type = "Integer",description = "报文模版id")
@Excel(name = "报文模版id")
private Integer messageTemplateId;
} }

View File

@ -0,0 +1,58 @@
package com.muyu.domain.vo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.common.core.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @AuthorChenYan
* @Project2112-car-cloud-server
* @Packagecom.muyu.fault.domain
* @FilenameCustom
* @Description TODO
* @Date2024/9/21 18:39
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "rule")
public class RuleVo {
@Excel(name = "id")
private Long id;
@Excel(name = "比较类型")
private Integer cId;
@Excel(name = "messageId")
private Long messageId;
@Excel(name = "标签")
private String messageLabel;
@Excel(name = "车辆id")
private Integer carId;
@Excel(name = "车辆故障类型id")
private Integer tId;
@Excel(name = "参数值")
private Integer ruleValue;
@Excel(name = "标准")
private String customName;
@Excel(name = "故障类型name")
private String typeName;
@Excel(name = "车辆类型name")
private String carName;
}

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.muyu</groupId>
<artifactId>cloud-modules-enterprise</artifactId>
<version>3.6.3</version>
</parent>
<artifactId>cloud-modules-enterprise-remote</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-modules-enterprise-common</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,28 @@
package com.muyu.enterprise.remote;
import com.muyu.common.core.constant.SecurityConstants;
import com.muyu.common.core.constant.ServiceNameConstants;
import com.muyu.common.core.domain.Result;
import com.muyu.common.system.domain.SysUser;
import com.muyu.enterprise.remote.factory.RemoteFirmUserFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestHeader;
/**
* @Author
* @Packagecom.muyu.enterpries.remote
* @Projectcloud-vehicle
* @nameRemoteFirmUserService
* @Date2024/10/8 19:58
*/
@FeignClient(contextId = "remoteFirmUserService",
value = ServiceNameConstants.ENTERPRISE_SERVICE,
fallbackFactory = RemoteFirmUserFallbackFactory.class)
public interface RemoteFirmUserService {
@GetMapping("/firm/query_by_username/{username}")
Result<SysUser> queryByUsername(@PathVariable("username") String username,@RequestHeader(SecurityConstants.INNER) String source,@RequestHeader("ent_code") String databaseName);
}

View File

@ -0,0 +1,34 @@
package com.muyu.enterprise.remote.factory;
import com.muyu.common.core.domain.Result;
import com.muyu.common.system.domain.SysUser;
import com.muyu.common.system.remote.factory.RemoteFileFallbackFactory;
import com.muyu.enterprise.remote.RemoteFirmUserService;
import lombok.extern.log4j.Log4j2;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
/**
* @Author
* @Packagecom.muyu.enterprise.remote.factory
* @Projectcloud-vehicle
* @nameRemoteFirmUserFallbackFactory
* @Date2024/10/8 20:01
*/
@Component
@Log4j2
public class RemoteFirmUserFallbackFactory implements FallbackFactory<RemoteFirmUserService>
{
@Override
public RemoteFirmUserService create(Throwable cause) {
log.error("文件服务调用失败:{}", cause.getMessage());
return new RemoteFirmUserService() {
@Override
public Result<SysUser> queryByUsername(String username, String source,String databaseName) {
return Result.error("saas连接失败:" + cause.getMessage());
}
};
}
}

View File

@ -11,6 +11,7 @@
<artifactId>cloud-modules-enterprise-server</artifactId> <artifactId>cloud-modules-enterprise-server</artifactId>
<version>3.6.3</version> <version>3.6.3</version>
<!--企业业务平台--> <!--企业业务平台-->
<description> <description>
cloud-modules-enterprise-server 企业业务平台 cloud-modules-enterprise-server 企业业务平台
@ -22,6 +23,12 @@
</properties> </properties>
<dependencies> <dependencies>
<!-- <dependency>-->
<!-- <groupId>com.muyu</groupId>-->
<!-- <artifactId>cloud-common-saas</artifactId>-->
<!-- </dependency>-->
<!-- SpringCloud Alibaba Nacos --> <!-- SpringCloud Alibaba Nacos -->
<dependency> <dependency>
<groupId>com.alibaba.cloud</groupId> <groupId>com.alibaba.cloud</groupId>

View File

@ -1,15 +1,24 @@
package com.muyu.enterprise; package com.muyu.enterprise;
import com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceAutoConfigure;
import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration;
import com.muyu.common.security.annotation.EnableCustomConfig; import com.muyu.common.security.annotation.EnableCustomConfig;
import com.muyu.common.security.annotation.EnableMyFeignClients; import com.muyu.common.security.annotation.EnableMyFeignClients;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@Log4j2 @Log4j2
@EnableCustomConfig @EnableCustomConfig
@EnableMyFeignClients @EnableMyFeignClients
@SpringBootApplication @SpringBootApplication
// (
// exclude = {
// DataSourceAutoConfiguration.class,
// DruidDataSourceAutoConfigure.class,
// DynamicDataSourceAutoConfiguration.class
// })
public class CloudEnterpriseApplication { public class CloudEnterpriseApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(CloudEnterpriseApplication.class,args); SpringApplication.run(CloudEnterpriseApplication.class,args);

View File

@ -3,6 +3,7 @@ package com.muyu.enterprise.controller;
import com.muyu.common.redis.service.RedisService; import com.muyu.common.redis.service.RedisService;
import com.muyu.common.security.utils.SecurityUtils; import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.system.domain.LoginUser; import com.muyu.common.system.domain.LoginUser;
import com.muyu.enterprise.cache.AllFenceCahceService;
import com.muyu.enterprise.cache.FenceCahceService; import com.muyu.enterprise.cache.FenceCahceService;
import com.muyu.enterprise.cache.VehicleCacheService; import com.muyu.enterprise.cache.VehicleCacheService;
import com.muyu.enterprise.service.ElectService; import com.muyu.enterprise.service.ElectService;
@ -28,7 +29,9 @@ import java.security.Security;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
/**
*
*/
@RequestMapping("/elect") @RequestMapping("/elect")
@RestController @RestController
@Log4j2 @Log4j2
@ -43,6 +46,8 @@ public class ElectController extends BaseController {
@Autowired @Autowired
private FenceCahceService fenceCahceService; private FenceCahceService fenceCahceService;
@Autowired
private AllFenceCahceService allFenceCahceService;
/** /**
@ -54,7 +59,10 @@ public class ElectController extends BaseController {
public Result<TableDataInfo<FenceResp>> showList(@RequestBody @Validated FenceReq req) { public Result<TableDataInfo<FenceResp>> showList(@RequestBody @Validated FenceReq req) {
startPage(); startPage();
List<FenceResp> list = electService.selectFenceList(req); List<FenceResp> list = electService.selectFenceList(req);
fenceCahceService.get(String.valueOf(req)); //将列表存到Redis
for (FenceResp fenceResp : list) {
allFenceCahceService.put(fenceResp.getCoordinates(),fenceResp);
}
return getDataTable(list); return getDataTable(list);
} }
@ -70,9 +78,8 @@ public class ElectController extends BaseController {
//获取用户信息 //获取用户信息
LoginUser loginUser = SecurityUtils.getLoginUser(); LoginUser loginUser = SecurityUtils.getLoginUser();
//获取租户唯一标识 //获取租户唯一标识
String databaseName = loginUser.getSysUser().getDatabaseName();
//将信息存到Redis //将信息存到Redis
fenceCahceService.put(databaseName+fence.getCoordinates(),fence); fenceCahceService.put(fence.getCoordinates(),fence);
return Result.success(save?"操作成功":"操作失败"); return Result.success(save?"操作成功":"操作失败");
} }
@ -140,7 +147,7 @@ public class ElectController extends BaseController {
@DeleteMapping("/delMoreFence") @DeleteMapping("/delMoreFence")
@Operation(description = "批量删除电子围栏") @Operation(description = "批量删除电子围栏")
public Result delMore(@RequestBody List<Long> fenceIds){ public Result delMore(@RequestBody List<Long> fenceIds){
// electService.delMoreFence(fenceIds); //批量删除内容存到Redis
electService.removeBatchByIds(fenceIds); electService.removeBatchByIds(fenceIds);
return Result.success(null,"操作成功"); return Result.success(null,"操作成功");
} }
@ -155,5 +162,4 @@ public class ElectController extends BaseController {
return Result.success(fences); return Result.success(fences);
} }
} }

View File

@ -0,0 +1,67 @@
package com.muyu.enterprise.controller;
import com.muyu.common.core.domain.Result;
import com.muyu.domain.FaultRule;
import com.muyu.domain.resp.FaultRuleResp;
import com.muyu.enterprise.service.FaultRuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
*
*/
@RestController
@RequestMapping("/faultRule")
public class FaultRuleController {
@Autowired
private FaultRuleService faultRuleService;
/**
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
public Result<List<FaultRuleResp>> list() {
List<FaultRuleResp> list = faultRuleService.selectList();
return Result.success(list);
}
/**
*
* @param faultRule
* @return
*/
@PostMapping("/add")
public Result<String> add(@RequestBody FaultRule faultRule) {
faultRuleService.save(faultRule);
return Result.success("新增成功");
}
/**
*
* @param faultRule
* @return
*/
@PutMapping("/update")
public Result<String> update(@RequestBody FaultRule faultRule) {
faultRuleService.updateById(faultRule);
return Result.success("更新成功");
}
/**
*
* @param faultRuleId
* @return
*/
@DeleteMapping("delete/{faultRuleId}")
public Result<String> delete(@PathVariable("faultRuleId") Long faultRuleId) {
faultRuleService.removeById(faultRuleId);
return Result.success("删除成功");
}
}

View File

@ -0,0 +1,104 @@
package com.muyu.enterprise.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.web.controller.BaseController;
import com.muyu.common.security.annotation.InnerAuth;
import com.muyu.common.system.domain.SysUser;
import com.muyu.domain.FirmUser;
import com.muyu.enterprise.service.FirmUserService;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* @Author
* @Packagecom.muyu.enterprise.controller
* @Projectcloud-vehicle
* @nameSysUserController
* @Date2024/10/8 18:59
*/
@RestController
@RequestMapping("/firm_user")
@Tag(name = "企业用户控制层")
public class FirmUserController extends BaseController {
/**
*
*/
@Resource
private FirmUserService firmUserService;
/**
*
* @return
*/
@Schema(description = "企业用户列表")
@GetMapping("/list")
public Result<FirmUser> list(){
return success(firmUserService.list());
}
/**
*
* @param userId
* @return
*/
@Schema(description = "查询企业用户")
@GetMapping("/query/{userId}")
public Result<FirmUser> query(@PathVariable("userId") Long userId){
return success(firmUserService.getById(userId));
}
@Schema(description = "根据用户名查询企业用户")
@GetMapping("/query_by_username/{username}")
@InnerAuth
public Result<SysUser> queryByUsername(@PathVariable("username") String username){
LambdaQueryWrapper<FirmUser> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(FirmUser::getUserName, username);
FirmUser firmUser = firmUserService.getOne(queryWrapper);
return success(FirmUser.builderSysUser(firmUser));
}
/**
*
* @param sysUser
* @return
*/
@Schema(description = "新增企业用户")
@PostMapping("/add")
public Result<Long> add(@RequestBody SysUser sysUser){
FirmUser firmUser = FirmUser.builderFirmUser(sysUser);
firmUserService.save(firmUser);
return success(firmUser.getUserId());
}
/**
*
* @param sysUser
* @return
*/
@Schema(description = "修改企业用户")
@PutMapping("/edit")
public Result edit(@RequestBody SysUser sysUser){
FirmUser firmUser = FirmUser.builderFirmUser(sysUser);
firmUserService.updateById(firmUser);
return success();
}
/**
*
* @param userId
* @return
*/
@Schema(description = "删除企业用户")
@DeleteMapping("/remove/{userId}")
public Result remove(@PathVariable("userId") Long userId){
firmUserService.removeById(userId);
return success();
}
}

View File

@ -1,8 +1,11 @@
package com.muyu.enterprise.controller; package com.muyu.enterprise.controller;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.system.domain.LoginUser;
import com.muyu.domain.MessageTemplate; import com.muyu.domain.MessageTemplate;
import com.muyu.domain.req.MessageTemplateAddReq; import com.muyu.domain.req.MessageTemplateAddReq;
import com.muyu.domain.resp.MessageTemplateListResp; import com.muyu.domain.resp.MessageTemplateListResp;
import com.muyu.enterprise.cache.MessageTemplateCacheService;
import com.muyu.enterprise.service.MessageTemplateService; import com.muyu.enterprise.service.MessageTemplateService;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
@ -14,12 +17,7 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
* @Author: LiDongJia *
* @Package: com.muyu.car.controller
* @Project: 2112-car-cloud-server
* @name: MessageTypeController
* @Date: 2024/9/18 20:18
* @Description:
*/ */
@Log4j2 @Log4j2
@RestController @RestController
@ -30,6 +28,11 @@ public class MessageTemplateController {
@Autowired @Autowired
private MessageTemplateService messageTemplateService; private MessageTemplateService messageTemplateService;
//缓存
@Autowired
private MessageTemplateCacheService templateCacheService;
/** /**
* *
*1 *1
@ -55,8 +58,14 @@ public class MessageTemplateController {
*/ */
@PostMapping("/") @PostMapping("/")
public Result<String> save(@RequestBody MessageTemplateAddReq messageTemplateAddReq) { public Result<String> save(@RequestBody MessageTemplateAddReq messageTemplateAddReq) {
messageTemplateService.save(MessageTemplate.addBuild(messageTemplateAddReq)); boolean save = messageTemplateService.save(MessageTemplate.addBuild(messageTemplateAddReq));
return Result.success("添加成功"); //获取用户信息
LoginUser loginUser = SecurityUtils.getLoginUser();
//获取租户唯一标识
//添加到缓存
templateCacheService.put(messageTemplateAddReq.getMessageTemplateName(), MessageTemplate.addBuild(messageTemplateAddReq));
return Result.success(save? "新增成功" : "新增失败");
} }
/** /**

View File

@ -1,5 +1,6 @@
package com.muyu.enterprise.controller; package com.muyu.enterprise.controller;
import com.muyu.enterprise.cache.AllMessageValueCacheService;
import com.muyu.enterprise.service.MessageValueService; import com.muyu.enterprise.service.MessageValueService;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import com.muyu.domain.MessageValue; import com.muyu.domain.MessageValue;
@ -16,12 +17,7 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
* @Author: LiDongJia *
* @Package: com.muyu.car.controller
* @Project: 2112-car-cloud-server
* @name: MessageValueController
* @Date: 2024/9/19 15:46
* @Description:
*/ */
@Log4j2 @Log4j2
@RestController @RestController
@ -32,6 +28,11 @@ public class MessageValueController {
@Autowired @Autowired
private MessageValueService messageValueService; private MessageValueService messageValueService;
//存Redis
@Autowired
private AllMessageValueCacheService allMessageValueCacheService;
/** /**
* *
* *
@ -42,6 +43,9 @@ public class MessageValueController {
@Operation(summary = "报文数据列表", description = "根据报文类别, 报文模版筛选报文数据") @Operation(summary = "报文数据列表", description = "根据报文类别, 报文模版筛选报文数据")
public Result<List<MessageValueListResp>> findAll(@RequestBody MessageValueReq messageValueReq) { public Result<List<MessageValueListResp>> findAll(@RequestBody MessageValueReq messageValueReq) {
List<MessageValueListResp> list = messageValueService.findAll(messageValueReq); List<MessageValueListResp> list = messageValueService.findAll(messageValueReq);
// for (MessageValueListResp messageValueListResp : list) {
// allMessageValueCacheService.put(String.valueOf(messageValueListResp.getMessageTemplateId()), (List<MessageValueListResp>) messageValueListResp);
// }
return Result.success(list); return Result.success(list);
} }
@ -93,6 +97,7 @@ public class MessageValueController {
@Operation(summary = "根据报文模版id查询报文数据", description = "根据报文模版id查询报文数据") @Operation(summary = "根据报文模版id查询报文数据", description = "根据报文模版id查询报文数据")
public Result<List<MessageValueListResp>> findByTemplateId(@PathVariable("templateId") Long templateId) { public Result<List<MessageValueListResp>> findByTemplateId(@PathVariable("templateId") Long templateId) {
List<MessageValueListResp> list = messageValueService.findByTemplateId(templateId); List<MessageValueListResp> list = messageValueService.findByTemplateId(templateId);
allMessageValueCacheService.put(String.valueOf(templateId), list);
return Result.success(list); return Result.success(list);
} }

View File

@ -12,6 +12,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
/**
* Controller
*/
@Log4j2 @Log4j2
@RequestMapping("/middle") @RequestMapping("/middle")
@RestController @RestController

View File

@ -1,19 +1,25 @@
package com.muyu.enterprise.controller; package com.muyu.enterprise.controller;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.system.domain.LoginUser;
import com.muyu.enterprise.cache.VehicleCacheService;
import com.muyu.enterprise.service.VehicleService;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import com.muyu.common.core.utils.poi.ExcelUtil; import com.muyu.common.core.utils.poi.ExcelUtil;
import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.web.controller.BaseController;
import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.domain.BoundMiddle; import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.system.domain.LoginUser;
import com.muyu.domain.Vehicle; import com.muyu.domain.Vehicle;
import com.muyu.domain.req.BoundFenceGroupReq;
import com.muyu.domain.req.VehicleAddReq; import com.muyu.domain.req.VehicleAddReq;
import com.muyu.domain.req.VehicleManageReq; import com.muyu.domain.req.VehicleManageReq;
import com.muyu.domain.req.VehicleUpdReq; import com.muyu.domain.req.VehicleUpdReq;
import com.muyu.domain.resp.BoundFenceGroup;
import com.muyu.domain.resp.VehicleManageResp; import com.muyu.domain.resp.VehicleManageResp;
import com.muyu.domain.resp.WarnRuleResp;
import com.muyu.enterprise.cache.AllFenceGroupCahceService;
import com.muyu.enterprise.cache.FenceGroupCahceService;
import com.muyu.enterprise.cache.VehicleCacheService;
import com.muyu.enterprise.cache.WarnStrategyCacheService;
import com.muyu.enterprise.service.VehicleService;
import com.muyu.enterprise.service.WarnStrategyService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
@ -25,12 +31,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
/** /**
* @Author: LiDongJia *
* @Package: com.muyu.car.controller
* @Project: 2112-car-cloud-server
* @name: VehicleController
* @Date: 2024/9/17 17:35
* @Description:
*/ */
@Log4j2 @Log4j2
@RestController @RestController
@ -41,9 +42,20 @@ public class VehicleController extends BaseController {
@Autowired @Autowired
private VehicleService vehicleService; private VehicleService vehicleService;
//车辆缓存 //添加车辆缓存
@Autowired @Autowired
private VehicleCacheService vehicleCacheService; private VehicleCacheService vehicleCacheService;
//缓存策略
@Autowired
private WarnStrategyService warnStrategyService;
@Autowired
private WarnStrategyCacheService warnStrategyCacheService;
//添加围栏组缓存信息
@Autowired
private FenceGroupCahceService fenceGroupCahceService;
//绑定的围栏组信息
@Autowired
private AllFenceGroupCahceService allFenceGroupCahceService;
/** /**
@ -56,6 +68,22 @@ public class VehicleController extends BaseController {
public Result<TableDataInfo<VehicleManageResp>> getVehicleList(@RequestBody VehicleManageReq vehicleManageReq) { public Result<TableDataInfo<VehicleManageResp>> getVehicleList(@RequestBody VehicleManageReq vehicleManageReq) {
startPage(); startPage();
List<VehicleManageResp> list = vehicleService.getVehicleList(vehicleManageReq); List<VehicleManageResp> list = vehicleService.getVehicleList(vehicleManageReq);
List<Vehicle> vehicleList = vehicleService.list();
vehicleList.forEach(vehicle -> {
vehicleCacheService.put(vehicle.getVehicleVin(), vehicle);
//根据车辆vin存储策略规则信息
if(vehicle.getWarnStrategyId()!=null){
WarnRuleResp respList = warnStrategyService.findByWarnStrategyId(vehicle.getWarnStrategyId());
warnStrategyCacheService.put(vehicle.getVehicleVin(), respList);
}
//根据车辆vin存储围栏信息
if(vehicle.getFenceGroupId()!=null){
//根据外键查询围栏组信息
List<BoundFenceGroup> boundMiddles = vehicleService.findByFenceGroupId(vehicle.getVehicleId());
allFenceGroupCahceService.put(vehicle.getVehicleVin(), boundMiddles);
}
});
return getDataTable(list); return getDataTable(list);
} }
@ -71,10 +99,9 @@ public class VehicleController extends BaseController {
boolean save = vehicleService.save(Vehicle.addBuild(vehicleAddReq)); boolean save = vehicleService.save(Vehicle.addBuild(vehicleAddReq));
//获取用户信息 //获取用户信息
LoginUser loginUser = SecurityUtils.getLoginUser(); LoginUser loginUser = SecurityUtils.getLoginUser();
//获取租户唯一标识 loginUser.getSysUser();
String databaseName = loginUser.getSysUser().getDatabaseName();
//存到redis //存到redis
vehicleCacheService.put(databaseName+vehicleAddReq.getVehicleVin(), Vehicle.addBuild(vehicleAddReq)); vehicleCacheService.put(vehicleAddReq.getVehicleVin(), Vehicle.addBuild(vehicleAddReq));
return Result.success(save? "新增成功" : "新增失败"); return Result.success(save? "新增成功" : "新增失败");
} }
@ -121,7 +148,6 @@ public class VehicleController extends BaseController {
/** /**
* *
*
* @param vehicleIds * @param vehicleIds
* @return * @return
*/ */
@ -142,11 +168,18 @@ public class VehicleController extends BaseController {
/** /**
* *
*/ */
@GetMapping("/addBoundFenceGroup") @PostMapping("/addBoundFenceGroup")
@Operation(description = "车辆绑定围栏组") @Operation(description = "车辆绑定围栏组")
public Result<String> boundFenceGroup( public Result boundFenceGroup(
@Validated @RequestBody BoundMiddle boundMiddle){ @Validated @RequestBody BoundFenceGroupReq boundFenceGroupReq){
return null; vehicleService.boundFenceGroup(boundFenceGroupReq);
Vehicle byId = vehicleService.getById(boundFenceGroupReq.getVehicleId());
String vehicleVin = byId.getVehicleVin();
if(byId!=null){
//将围栏组信息存入Redis
fenceGroupCahceService.put(vehicleVin, boundFenceGroupReq);
}
return Result.success("绑定成功");
} }
/** /**
@ -160,4 +193,5 @@ public class VehicleController extends BaseController {
Long templateId = vehicleService.findByVehicleVin(vehicleVin); Long templateId = vehicleService.findByVehicleVin(vehicleVin);
return Result.success(templateId); return Result.success(templateId);
} }
} }

View File

@ -1,25 +1,26 @@
package com.muyu.enterprise.controller; package com.muyu.enterprise.controller;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.system.domain.LoginUser;
import com.muyu.domain.MessageValue;
import com.muyu.domain.VehicleType; import com.muyu.domain.VehicleType;
import com.muyu.domain.req.MessageValueAddReq;
import com.muyu.domain.req.VehicleAddReq;
import com.muyu.enterprise.cache.AllVehicleTypeCacheService;
import com.muyu.enterprise.cache.VehicleCacheService;
import com.muyu.enterprise.cache.VehicleTypeCacheService;
import com.muyu.enterprise.service.VehicleTypeService; import com.muyu.enterprise.service.VehicleTypeService;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.List;
/** /**
* @Author: LiDongJia
* @Package: com.muyu.car.controller
* @Project: 2112-car-cloud-server
* @name: VehicleTypeController
* @Date: 2024/9/17 17:08
* @Description:
*/ */
@Log4j2 @Log4j2
@RestController @RestController
@ -30,13 +31,47 @@ public class VehicleTypeController {
@Autowired @Autowired
private VehicleTypeService vehicleTypeService; private VehicleTypeService vehicleTypeService;
@Autowired
private VehicleTypeCacheService vehicleTypeCacheService;
//存缓存
@Autowired
private AllVehicleTypeCacheService allVehicleTypeCacheService;
/** /**
* *
* @return * @return
*/ */
@RequestMapping(path = "/", method = RequestMethod.POST) @RequestMapping(path = "/findAll", method = RequestMethod.POST)
@Operation(summary = "车辆类型列表",description = "车辆类型列表") @Operation(summary = "车辆类型列表",description = "车辆类型列表")
public Result<List<VehicleType>> findAll(){ public Result<List<VehicleType>> findAll(){
return Result.success(vehicleTypeService.list()); List<VehicleType> list = vehicleTypeService.list();
// for (VehicleType vehicleType : list) {
// allVehicleTypeCacheService.put(String.valueOf(vehicleType.getVehicleTypeId()),vehicleType);
// }
list.forEach(vehicleType -> {
vehicleTypeCacheService.put(String.valueOf(vehicleType.getVehicleTypeId()), vehicleType);
});
return Result.success(list);
}
/**
*
* @param vehicleType
* @return
*/
@PostMapping("/add")
@Operation(summary = "添加报文数据", description = "新增报文数据")
public Result<String> save(@RequestBody VehicleType vehicleType) {
boolean save = vehicleTypeService.save(vehicleType);
// //获取用户信息
// LoginUser loginUser = SecurityUtils.getLoginUser();
// //获取租户唯一标识
// String databaseName = loginUser.getSysUser().getDatabaseName();
//存到redis
// vehicleTypeCacheService.put(databaseName+vehicleType.getVehicleTypeId(),vehicleType);
vehicleTypeCacheService.put(String.valueOf(vehicleType.getVehicleTypeId()),vehicleType);
return Result.success(save? "添加成功" : "添加失败");
} }
} }

View File

@ -11,6 +11,9 @@ import org.springframework.web.bind.annotation.*;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/**
*
*/
@RestController @RestController
@RequestMapping("/logs") @RequestMapping("/logs")
public class WarnLogsController { public class WarnLogsController {

View File

@ -4,6 +4,7 @@ import com.muyu.common.core.domain.Result;
import com.muyu.common.security.utils.SecurityUtils; import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.system.domain.LoginUser; import com.muyu.common.system.domain.LoginUser;
import com.muyu.domain.WarnRule; import com.muyu.domain.WarnRule;
import com.muyu.enterprise.cache.AllWarnRuleCacheService;
import com.muyu.enterprise.cache.WarnRuleCacheService; import com.muyu.enterprise.cache.WarnRuleCacheService;
import com.muyu.enterprise.service.WarnRuleService; import com.muyu.enterprise.service.WarnRuleService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
@ -13,6 +14,9 @@ import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
/**
*
*/
@RestController @RestController
@RequestMapping("/rule") @RequestMapping("/rule")
public class WarnRuleController { public class WarnRuleController {
@ -22,6 +26,10 @@ public class WarnRuleController {
@Autowired @Autowired
private WarnRuleCacheService warnRuleCacheService; private WarnRuleCacheService warnRuleCacheService;
//存列表
@Autowired
private AllWarnRuleCacheService allWarnRuleCacheServicel;
/** /**
* *
* @return * @return
@ -29,7 +37,11 @@ public class WarnRuleController {
@RequestMapping(path = "/ruleList",method = RequestMethod.POST) @RequestMapping(path = "/ruleList",method = RequestMethod.POST)
@Operation(summary = "规则列表", description = "获取所有规则列表") @Operation(summary = "规则列表", description = "获取所有规则列表")
public Result<List<WarnRule>> ruleList(){ public Result<List<WarnRule>> ruleList(){
return Result.success(warnRuleService.list()); List<WarnRule> list = warnRuleService.list();
for (WarnRule warnRule : list) {
allWarnRuleCacheServicel.put(warnRule.getRuleName(),warnRule);
}
return Result.success(list);
} }
/** /**
@ -55,8 +67,7 @@ public class WarnRuleController {
//获取用户信息 //获取用户信息
LoginUser loginUser = SecurityUtils.getLoginUser(); LoginUser loginUser = SecurityUtils.getLoginUser();
//获取租户唯一标识 //获取租户唯一标识
String databaseName = loginUser.getSysUser().getDatabaseName(); warnRuleCacheService.put(warnRule.getRuleName(),warnRule);
warnRuleCacheService.put(databaseName+warnRule.getRuleName(),warnRule);
return Result.success(save); return Result.success(save);
} }
@ -83,4 +94,13 @@ public class WarnRuleController {
return Result.success(warnRuleService.removeById(id)); return Result.success(warnRuleService.removeById(id));
} }
/**
* id
*/
@GetMapping("/getWarnStrategyList/{warnStrategyId}")
@Operation(summary = "根据外键id查询集合", description = "根据外键id查询集合")
public Result<List<WarnRule>> findByWarnStrategyId(@PathVariable("warnStrategyId") Long warnStrategyId) {
List<WarnRule> list = warnRuleService.findBywarnStrategyId(warnStrategyId);
return Result.success(list);
}
} }

View File

@ -4,6 +4,10 @@ import com.muyu.common.core.domain.Result;
import com.muyu.common.security.utils.SecurityUtils; import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.system.domain.LoginUser; import com.muyu.common.system.domain.LoginUser;
import com.muyu.domain.WarnStrategy; import com.muyu.domain.WarnStrategy;
import com.muyu.domain.resp.WarnRuleResp;
import com.muyu.domain.resp.WarnStrategyAndVinResp;
import com.muyu.enterprise.cache.AllWarnStrategyAndVinCacheService;
import com.muyu.enterprise.cache.AllWarnStrategyCacheService;
import com.muyu.enterprise.cache.WarnStrategyCacheService; import com.muyu.enterprise.cache.WarnStrategyCacheService;
import com.muyu.enterprise.service.WarnStrategyService; import com.muyu.enterprise.service.WarnStrategyService;
import com.muyu.domain.req.WarnVehicleReq; import com.muyu.domain.req.WarnVehicleReq;
@ -15,6 +19,9 @@ import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
/**
*
*/
@RestController @RestController
@RequestMapping("/strategy") @RequestMapping("/strategy")
public class WarnStrategyController { public class WarnStrategyController {
@ -22,9 +29,11 @@ public class WarnStrategyController {
@Autowired @Autowired
private WarnStrategyService warnStrategyService; private WarnStrategyService warnStrategyService;
//缓存策略
//缓存策略和vin
@Autowired @Autowired
private WarnStrategyCacheService warnStrategyCacheService; private AllWarnStrategyAndVinCacheService allWarnStrategyAndVinCacheService;
/** /**
* *
@ -32,8 +41,9 @@ public class WarnStrategyController {
*/ */
@RequestMapping(path = "/strategyList",method = RequestMethod.POST) @RequestMapping(path = "/strategyList",method = RequestMethod.POST)
@Operation(summary = "策略列表", description = "获取所有策略列表") @Operation(summary = "策略列表", description = "获取所有策略列表")
public Result<List<WarnStrategy>> strategyList() { public Result<List<WarnVehicleResp>> strategyList(@RequestBody @Validated WarnVehicleReq req) {
return Result.success(warnStrategyService.list()); List<WarnVehicleResp> list = warnStrategyService.selectList(req);
return Result.success(list);
} }
/** /**
@ -47,17 +57,6 @@ public class WarnStrategyController {
return Result.success(warnStrategyService.getById(id)); return Result.success(warnStrategyService.getById(id));
} }
/**
*
* @param warnVehicleReq
* @return
*/
@RequestMapping(path = "ruleStrategyList",method = RequestMethod.POST)
@Operation(summary = "策略规则双表联查", description = "获取所有策略规则双表联查")
public Result<List<WarnVehicleResp>> ruleStrategyList(@RequestBody WarnVehicleReq warnVehicleReq){
return Result.success(warnStrategyService.ruleStrategyList(warnVehicleReq));
}
/** /**
* *
* @param warnStrategy * @param warnStrategy
@ -68,13 +67,7 @@ public class WarnStrategyController {
public Result strategyAdd(@Validated @RequestBody WarnStrategy warnStrategy){ public Result strategyAdd(@Validated @RequestBody WarnStrategy warnStrategy){
boolean save = warnStrategyService.save(warnStrategy); boolean save = warnStrategyService.save(warnStrategy);
//存进Redis return Result.success(save);
//获取用户信息
LoginUser loginUser = SecurityUtils.getLoginUser();
//获取租户唯一标识
String databaseName = loginUser.getSysUser().getDatabaseName();
warnStrategyCacheService.put(databaseName+warnStrategy.getWarnStrategyId(),warnStrategy);
return Result.success();
} }
/** /**
@ -99,4 +92,30 @@ public class WarnStrategyController {
public Result strategyDelete(@PathVariable("id") Long id){ public Result strategyDelete(@PathVariable("id") Long id){
return Result.success(warnStrategyService.removeById(id)); return Result.success(warnStrategyService.removeById(id));
} }
/**
* vin
*/
@RequestMapping(path = "/vinStrategyList/{warnStrategyId}",method = RequestMethod.POST)
@Operation(summary = "通过vin缓存策略信息", description = "通过vin缓存策略信息")
public Result<List<WarnStrategyAndVinResp>> vinStrategyList(@PathVariable("warnStrategyId") Long warnStrategyId) {
List<WarnStrategyAndVinResp> warnStrategyAndVinResp = warnStrategyService.findById(warnStrategyId);
for (WarnStrategyAndVinResp strategyAndVinResp : warnStrategyAndVinResp) {
allWarnStrategyAndVinCacheService.put(strategyAndVinResp.getVehicleVin(), (WarnStrategyAndVinResp) warnStrategyAndVinResp);
}
return Result.success(warnStrategyAndVinResp);
}
// findbyid resp warnrulelist.set
/**
* respList,ruleList
* @param warnStrategyId
*/
@RequestMapping(path = "/warnRuleRespList",method = RequestMethod.POST)
@Operation(summary = "根据resp查询List集合,将rule查询到的集合添加到List集合中", description = "根据resp查询List集合,将rule查询到的集合添加到List集合中")
public Result<WarnRuleResp> respStrategyList(@PathVariable("warnStrategyId") Long warnStrategyId) {
WarnRuleResp warnRuleRespList=warnStrategyService.findByWarnStrategyId(warnStrategyId);
return Result.success(warnRuleRespList);
}
} }

View File

@ -9,6 +9,9 @@ import org.apache.ibatis.annotations.Update;
import java.util.List; import java.util.List;
/**
* Mapper
*/
@Mapper @Mapper
public interface ElectMapper extends MPJBaseMapper<Fence> { public interface ElectMapper extends MPJBaseMapper<Fence> {
@ -30,11 +33,6 @@ public interface ElectMapper extends MPJBaseMapper<Fence> {
@Select("select * from fence where fence_id=#{fenceId}") @Select("select * from fence where fence_id=#{fenceId}")
List<Fence> mapShow(@Param("fenceId") Long fenceId); List<Fence> mapShow(@Param("fenceId") Long fenceId);
// /**
// * 根据id查询车辆
// */
// Fence boundFence(@Param("fenceId") Long fenceId);
/** /**
* () * ()
*/ */

View File

@ -0,0 +1,10 @@
package com.muyu.enterprise.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.muyu.domain.FaultRule;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface FaultRuleMapper extends MPJBaseMapper<FaultRule> {
}

View File

@ -28,7 +28,16 @@ public interface FencegroupMapper extends MPJBaseMapper<FenceGroup> {
@Select("SELECT g.fence_group_id,g.group_type,g.priority,g.`status`,f.fence_id, group_CONCAT( f.fence_name ) AS fence_name FROM fence_group g LEFT JOIN middle m ON m.fence_group_id = g.fence_group_id LEFT JOIN fence f ON m.fence_id = f.fence_id GROUP BY g.fence_group_id") @Select("SELECT g.fence_group_id,g.group_type,g.priority,g.`status`,f.fence_id, group_CONCAT( f.fence_name ) AS fence_name FROM fence_group g LEFT JOIN middle m ON m.fence_group_id = g.fence_group_id LEFT JOIN fence f ON m.fence_id = f.fence_id GROUP BY g.fence_group_id")
List<FenceGroup> showGroupList(FenceGroupReq req); List<FenceGroup> showGroupList(FenceGroupReq req);
@Insert("INSERT INTO `vehicle-basic`.`middle` (`fence_id`, `fence_group_id`) VALUES <foreach collection=\"fenceIds\" item=\"id\" separator=\",\"> (#{id},#{fenceGroupId}) </foreach>") // @Insert("INSERT INTO `vehicle-basic`.`middle` (`fence_id`, `fence_group_id`) VALUES <foreach collection='fenceIds' item='id' separator=','> (#{id},#{fenceGroupId}) </foreach>")
// @Insert({ "<script>", "INSERT INTO user_role (user_id, role_id) VALUES ", "<foreach collection='roleIds' item='roleId' separator=','>", "(#{userId}, #{roleId})", "</foreach>", "</script>" })
@Insert({
"<script>",
"INSERT INTO `vehicle-basic`.`middle` (fence_id, fence_group_id) VALUES ",
"<foreach collection='fenceIds' item='id' separator=','>",
"(#{id}, #{fenceGroupId})",
"</foreach>",
"</script>"
})
void addMiddle(@Param("fenceIds") Integer[] fenceIds,@Param("fenceGroupId") Long fenceGroupId); void addMiddle(@Param("fenceIds") Integer[] fenceIds,@Param("fenceGroupId") Long fenceGroupId);
} }

View File

@ -0,0 +1,16 @@
package com.muyu.enterprise.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.domain.FirmUser;
import org.apache.ibatis.annotations.Mapper;
/**
* @Author
* @Packagecom.muyu.enterprise.mapper
* @Projectcloud-vehicle
* @nameFirmUserMapper
* @Date2024/10/8 19:05
*/
@Mapper
public interface FirmUserMapper extends BaseMapper<FirmUser> {
}

View File

@ -1,9 +1,14 @@
package com.muyu.enterprise.mapper; package com.muyu.enterprise.mapper;
import com.github.yulichang.base.MPJBaseMapper; import com.github.yulichang.base.MPJBaseMapper;
import com.muyu.domain.BoundMiddle;
import com.muyu.domain.FenceGroup;
import com.muyu.domain.Vehicle; import com.muyu.domain.Vehicle;
import com.muyu.domain.req.BoundFenceGroupReq;
import com.muyu.domain.req.VehicleManageReq; import com.muyu.domain.req.VehicleManageReq;
import com.muyu.domain.resp.BoundFenceGroup;
import com.muyu.domain.resp.VehicleManageResp; import com.muyu.domain.resp.VehicleManageResp;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
@ -26,12 +31,7 @@ public interface VehicleMapper extends MPJBaseMapper<Vehicle> {
* @param vehicleManageReq * @param vehicleManageReq
* @return * @return
*/ */
List<VehicleManageResp> findAll(VehicleManageReq vehicleManageReq); // List<VehicleManageResp> findAll(VehicleManageReq vehicleManageReq);
/**
*
*/
void bindFenceGroup(@Param("fenceGroupIds") Integer[] fenceGroupIds, @Param("vehicleId") Long vehicleId);
/** /**
* vinid * vinid
@ -40,4 +40,21 @@ public interface VehicleMapper extends MPJBaseMapper<Vehicle> {
*/ */
@Select("SELECT t.message_template_id FROM vehicle v LEFT JOIN vehicle_type t ON v.vehicle_type_id = t.vehicle_type_id WHERE v.vehicle_vin = #{vehicleVin}") @Select("SELECT t.message_template_id FROM vehicle v LEFT JOIN vehicle_type t ON v.vehicle_type_id = t.vehicle_type_id WHERE v.vehicle_vin = #{vehicleVin}")
Long findByVehicleVin(String vehicleVin); Long findByVehicleVin(String vehicleVin);
/**
*
* @param boundFenceGroupReq
*/
// @Insert("INSERT INTO `vehicle-basic`.`bound_middle` (`fence_group_id`,`vehicle_id`) VALUES <foreach collection=\"fenceGroupIds\" item=\"id\" separator=\",\"> (#{id},#{vehicleId}) </foreach>")
@Insert({
"<script> INSERT INTO `vehicle-basic`.`bound_middle` (fence_group_id,vehicle_id) VALUES <foreach collection='fenceGroupIds' item='id' separator=','> (#{id}, #{vehicleId}) </foreach> </script>"
})
void boundFenceGroup(BoundFenceGroupReq boundFenceGroupReq);
@Select("SELECT * FROM bound_middle bm LEFT JOIN vehicle v ON bm.vehicle_id=v.vehicle_id WHERE bm.fence_group_id = #{fenceGroupId}")
List<FenceGroup> showBoundFenceGroup(@Param("fenceGroupId") Long fenceGroupId);
@Select("SELECT fence_group.group_type, fence_group.priority,fence_group.`status`,bound_middle.fence_group_id FROM fence_group LEFT JOIN bound_middle ON fence_group.fence_group_id = bound_middle.fence_group_id WHERE bound_middle.vehicle_id = #{vehicleId}")
List<BoundFenceGroup> findByFenceGroupId(Long vehicleId);
} }

View File

@ -3,7 +3,14 @@ package com.muyu.enterprise.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.domain.WarnRule; import com.muyu.domain.WarnRule;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper @Mapper
public interface WarnRuleMapper extends BaseMapper<WarnRule> { public interface WarnRuleMapper extends BaseMapper<WarnRule> {
@Select("SELECT * FROM warn_rule WHERE warn_strategy_id=#{warnStrategyId}")
List<WarnRule> findBywarnStrategyId(Long warnStrategyId);
} }

View File

@ -2,8 +2,28 @@ package com.muyu.enterprise.mapper;
import com.github.yulichang.base.MPJBaseMapper; import com.github.yulichang.base.MPJBaseMapper;
import com.muyu.domain.WarnStrategy; import com.muyu.domain.WarnStrategy;
import com.muyu.domain.resp.WarnRuleResp;
import com.muyu.domain.resp.WarnStrategyAndVinResp;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper @Mapper
public interface WarnStrategyMapper extends MPJBaseMapper<WarnStrategy> { public interface WarnStrategyMapper extends MPJBaseMapper<WarnStrategy> {
@Select("SELECT vehicle.vehicle_vin, warn_strategy.warn_strategy_id, warn_strategy.vehicle_type_id, warn_strategy.message_template_id FROM vehicle LEFT JOIN warn_strategy ON vehicle.warn_strategy_id = warn_strategy.warn_strategy_id WHERE vehicle.warn_strategy_id = #{warn_strategy_id}")
List<WarnStrategyAndVinResp> findById(Long vehicleId);
/**
* Redis
* @param warnStrategyId
* @return
*/
@Select("select * from warn_strategy where warn_strategy_id = #{warn_strategy_id}")
WarnRuleResp findByWarnStrategyId(Long warnStrategyId);
} }

View File

@ -30,11 +30,6 @@ public interface ElectService extends IService<Fence> {
*/ */
List<Fence> mapShow(@Param("fenceId") Long fenceId); List<Fence> mapShow(@Param("fenceId") Long fenceId);
// /**
// * 根据id查询车辆
// */
// Fence boundFence(@Param("fenceId") Long fenceId);
/** /**
* () * ()
*/ */

View File

@ -0,0 +1,16 @@
package com.muyu.enterprise.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.domain.FaultRule;
import com.muyu.domain.resp.FaultRuleResp;
import java.util.List;
public interface FaultRuleService extends IService<FaultRule> {
/**
*
* @return
*/
List<FaultRuleResp> selectList();
}

View File

@ -0,0 +1,14 @@
package com.muyu.enterprise.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.domain.FirmUser;
/**
* @Author
* @Packagecom.muyu.enterprise.service
* @Projectcloud-vehicle
* @nameFirmUserService
* @Date2024/10/8 19:04
*/
public interface FirmUserService extends IService<FirmUser> {
}

View File

@ -19,7 +19,5 @@ public interface IFencegroupService extends IService<FenceGroup> {
void addGroup(FenceGroupAddReq addReq); void addGroup(FenceGroupAddReq addReq);
// List<FenceGroup> haveFence(HaveFence haveFence);
//
} }

View File

@ -1,9 +1,14 @@
package com.muyu.enterprise.service; package com.muyu.enterprise.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.domain.BoundMiddle;
import com.muyu.domain.FenceGroup;
import com.muyu.domain.Vehicle; import com.muyu.domain.Vehicle;
import com.muyu.domain.req.BoundFenceGroupReq;
import com.muyu.domain.req.VehicleManageReq; import com.muyu.domain.req.VehicleManageReq;
import com.muyu.domain.resp.BoundFenceGroup;
import com.muyu.domain.resp.VehicleManageResp; import com.muyu.domain.resp.VehicleManageResp;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -31,4 +36,23 @@ public interface VehicleService extends IService<Vehicle> {
* @return * @return
*/ */
Long findByVehicleVin(String vehicleVin); Long findByVehicleVin(String vehicleVin);
/**
*
*/
void boundFenceGroup(BoundFenceGroupReq boundFenceGroupReq);
/**
*
* @param fenceGroupId
* @return
*/
List<FenceGroup> showBoundFenceGroup(@Param("fenceGroupId") Long fenceGroupId);
/**
* id
* @param vehicleId
*/
List<BoundFenceGroup> findByFenceGroupId(Long vehicleId);
} }

View File

@ -3,5 +3,15 @@ package com.muyu.enterprise.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.domain.WarnRule; import com.muyu.domain.WarnRule;
import java.util.List;
public interface WarnRuleService extends IService<WarnRule> { public interface WarnRuleService extends IService<WarnRule> {
/**
* ID
* @param warnStrategyId
* @return
*/
List<WarnRule> findBywarnStrategyId(Long warnStrategyId);
} }

View File

@ -3,11 +3,28 @@ package com.muyu.enterprise.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.domain.WarnStrategy; import com.muyu.domain.WarnStrategy;
import com.muyu.domain.req.WarnVehicleReq; import com.muyu.domain.req.WarnVehicleReq;
import com.muyu.domain.resp.WarnRuleResp;
import com.muyu.domain.resp.WarnStrategyAndVinResp;
import com.muyu.domain.resp.WarnVehicleResp; import com.muyu.domain.resp.WarnVehicleResp;
import java.util.List; import java.util.List;
public interface WarnStrategyService extends IService<WarnStrategy> { public interface WarnStrategyService extends IService<WarnStrategy> {
List<WarnVehicleResp>ruleStrategyList(WarnVehicleReq warnVehicleReq); // List<WarnVehicleResp>ruleStrategyList(WarnVehicleReq warnVehicleReq);
/**
*
*/
List<WarnVehicleResp> selectList(WarnVehicleReq req);
List<WarnStrategyAndVinResp> findById(Long warnStrategyId);
/**
* Redis
* @param warnStrategyId
* @return
*/
WarnRuleResp findByWarnStrategyId(Long warnStrategyId);
} }

View File

@ -2,6 +2,7 @@ package com.muyu.enterprise.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.muyu.enterprise.cache.FenceCahceService;
import com.muyu.enterprise.mapper.ElectMapper; import com.muyu.enterprise.mapper.ElectMapper;
import com.muyu.enterprise.mapper.WarnLogsMapper; import com.muyu.enterprise.mapper.WarnLogsMapper;
import com.muyu.enterprise.service.ElectService; import com.muyu.enterprise.service.ElectService;
@ -10,6 +11,7 @@ import com.muyu.domain.Fence;
import com.muyu.domain.LanType; import com.muyu.domain.LanType;
import com.muyu.domain.req.FenceReq; import com.muyu.domain.req.FenceReq;
import com.muyu.domain.resp.FenceResp; import com.muyu.domain.resp.FenceResp;
import com.muyu.enterprise.service.VehicleService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -23,7 +25,12 @@ public class ElectServiceImpl
@Autowired @Autowired
private ElectMapper electMapper; private ElectMapper electMapper;
@Autowired @Autowired
private WarnLogsMapper warnLogsMapper; private VehicleService service;
@Autowired
private FenceCahceService fenceCahceService;
@Override @Override
public List<FenceResp> selectFenceList(FenceReq req) { public List<FenceResp> selectFenceList(FenceReq req) {
@ -39,15 +46,13 @@ public class ElectServiceImpl
req.getFenceName() req.getFenceName()
); );
List<FenceResp> list = electMapper.selectJoinList(FenceResp.class, wrapper); List<FenceResp> list = electMapper.selectJoinList(FenceResp.class, wrapper);
String decode = fenceCahceService.decode(String.valueOf(list));
//将获取到的数据存到Redis
// fenceCahceService.put(String.valueOf(decode),d);
return list; return list;
} }
//
// @Override
// public int addFence(Fence fence) {
// int i = electMapper.addFence(fence);
// return i;
// }
@Override @Override
public void updateFenceOn(Long fenceId) { public void updateFenceOn(Long fenceId) {
@ -65,11 +70,6 @@ public class ElectServiceImpl
return fences; return fences;
} }
// @Override
// public Fence boundFence(Long fenceId) {
// Fence fence = electMapper.boundFence(fenceId);
// return fence;
// }
@Override @Override
public List<Fence> showFenceBound(Long fenceGroupId) { public List<Fence> showFenceBound(Long fenceGroupId) {

View File

@ -0,0 +1,39 @@
package com.muyu.enterprise.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.muyu.domain.FaultRule;
import com.muyu.domain.MessageValue;
import com.muyu.domain.VehicleType;
import com.muyu.domain.resp.FaultRuleResp;
import com.muyu.enterprise.mapper.FaultRuleMapper;
import com.muyu.enterprise.service.FaultRuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class FaultRuleServiceImpl extends ServiceImpl<FaultRuleMapper, FaultRule> implements FaultRuleService {
@Autowired
private FaultRuleMapper faultRuleMapper;
/**
*
* @return
*/
@Override
public List<FaultRuleResp> selectList() {
MPJLambdaWrapper<FaultRule> wrapper = new MPJLambdaWrapper<>();
wrapper.selectAs(FaultRule::getFaultRuleId, "faultRuleId")
.selectAs(FaultRule::getFaultCondition, "faultCondition")
.selectAs(FaultRule::getTriggerValue, "triggerValue")
.selectAs(VehicleType::getVehicleTypeName, "vehicleTypeName")
.selectAs(MessageValue::getMessageLabel, "messageValueName")
.leftJoin(VehicleType.class, VehicleType::getVehicleTypeId, FaultRule::getVehicleTypeId)
.leftJoin(MessageValue.class, MessageValue::getMessageId, FaultRule::getMessageValueId);
List<FaultRuleResp> list = faultRuleMapper.selectJoinList(FaultRuleResp.class, wrapper);
return list;
}
}

View File

@ -1,6 +1,7 @@
package com.muyu.enterprise.service.impl; package com.muyu.enterprise.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.enterprise.cache.FenceGroupCahceService;
import com.muyu.enterprise.mapper.FencegroupMapper; import com.muyu.enterprise.mapper.FencegroupMapper;
import com.muyu.enterprise.service.IFencegroupService; import com.muyu.enterprise.service.IFencegroupService;
import com.muyu.domain.FenceGroup; import com.muyu.domain.FenceGroup;
@ -25,6 +26,11 @@ public class FencegroupServiceImpl
@Autowired @Autowired
private FencegroupMapper fencegroupMapper; private FencegroupMapper fencegroupMapper;
//围栏组缓存
@Autowired
private FenceGroupCahceService fenceGroupCahceService;
@Override @Override
public List<FenceGroup> showGroupList(FenceGroupReq req) { public List<FenceGroup> showGroupList(FenceGroupReq req) {
List<FenceGroup> fenceGroups = fencegroupMapper.showGroupList(req); List<FenceGroup> fenceGroups = fencegroupMapper.showGroupList(req);
@ -37,14 +43,15 @@ public class FencegroupServiceImpl
this.save(build); this.save(build);
//添加中间表 //添加中间表
Long fenceGroupId = build.getFenceGroupId(); Long fenceGroupId = build.getFenceGroupId();
// //添加缓存
// if(fenceGroupId != null){
// //获取车辆vin
//
// fenceGroupCahceService.put();
// }
fencegroupMapper.addMiddle(addReq.getFenceIds(),fenceGroupId); fencegroupMapper.addMiddle(addReq.getFenceIds(),fenceGroupId);
} }
// @Override
// public List<FenceGroup> haveFence(HaveFence haveFence) {
// return null;
// }
} }

View File

@ -0,0 +1,20 @@
package com.muyu.enterprise.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.domain.FirmUser;
import com.muyu.enterprise.mapper.FirmUserMapper;
import com.muyu.enterprise.service.FirmUserService;
import org.springframework.stereotype.Service;
/**
* @Author
* @Packagecom.muyu.enterprise.service.impl
* @Projectcloud-vehicle
* @nameFirmUserServiceImpl
* @Date2024/10/8 19:05
*/
@Service
public class FirmUserServiceImpl
extends ServiceImpl<FirmUserMapper, FirmUser>
implements FirmUserService {
}

View File

@ -2,11 +2,12 @@ package com.muyu.enterprise.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.enterprise.mapper.MessageValueMapper;
import com.muyu.enterprise.service.MessageValueService;
import com.muyu.domain.MessageValue; import com.muyu.domain.MessageValue;
import com.muyu.domain.req.MessageValueReq; import com.muyu.domain.req.MessageValueReq;
import com.muyu.domain.resp.MessageValueListResp; import com.muyu.domain.resp.MessageValueListResp;
import com.muyu.enterprise.cache.AllMessageValueCacheService;
import com.muyu.enterprise.mapper.MessageValueMapper;
import com.muyu.enterprise.service.MessageValueService;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -31,6 +32,9 @@ public class MessageValueServiceImpl
@Autowired @Autowired
private MessageValueMapper messageValueMapper; private MessageValueMapper messageValueMapper;
@Autowired
private AllMessageValueCacheService allMessageValueCacheService;
public MessageValueServiceImpl(MessageValueMapper messageValueMapper) { public MessageValueServiceImpl(MessageValueMapper messageValueMapper) {
this.messageValueMapper = messageValueMapper; this.messageValueMapper = messageValueMapper;
} }
@ -63,51 +67,12 @@ public class MessageValueServiceImpl
LambdaQueryWrapper<MessageValue> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<MessageValue> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(MessageValue::getTemplateId, templateId); queryWrapper.eq(MessageValue::getTemplateId, templateId);
List<MessageValue> list = this.list(queryWrapper); List<MessageValue> list = this.list(queryWrapper);
return list.stream() List<MessageValueListResp> collect = list.stream()
.map(messageValue -> MessageValueListResp.valueBuild( .map(messageValue -> MessageValueListResp.valueBuild(
messageValue messageValue
) )
).collect(Collectors.toList()); ).collect(Collectors.toList());
// allMessageValueCacheService.put(String.valueOf(templateId), collect);
return collect;
} }
// @Override
// public JSONObject analysis(String testStr) {
//
// if (testStr.length() < 18){
// throw new RuntimeException("报文格式不正确");
// }
// //根据空格切割数据
// String[] hexArray = testStr.split(" ");
// StringBuilder result = new StringBuilder();
// for (String hex : hexArray) {
// int decimal = Integer.parseInt(hex, 16);
// result.append((char) decimal);
// }
// log.info(result);
// //取出车辆VIN码
// String vehicleVin = result.substring(1, 18);
// log.info("车辆VIN:" + vehicleVin);
// //根据车辆VIN码, 查找到报文模版id
// Long templateId = messageValueMapper.getTemplateId(vehicleVin);
// log.info("模版id:" + templateId);
// //获取到报文模版的列表
// List<MessageValueListResp> templateList = messageValueMapper.getTemplateList(templateId);
// //存储报文模板解析后数据
// JSONObject jsonObject = new JSONObject();
// for (MessageValueListResp messageValue : templateList) {
// //起始位下标
// Integer startIndex = messageValue.getMessageStartIndex() - 1;
// //截止位下标
// Integer endIndex = messageValue.getMessageEndIndex();
// //根据报文模版截取数据
// String value = result.substring(startIndex, endIndex);
// //存入数据
// jsonObject.put(messageValue.getMessageLabel(), value);
// }
// for (Map.Entry<String, Object> stringObjectEntry : jsonObject) {
// log.info(stringObjectEntry.getKey() + ":" + stringObjectEntry.getValue());
// }
// return jsonObject;
// }
} }

View File

@ -3,9 +3,12 @@ package com.muyu.enterprise.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.StringUtils;
import com.muyu.domain.FenceGroup;
import com.muyu.domain.Vehicle; import com.muyu.domain.Vehicle;
import com.muyu.domain.VehicleType; import com.muyu.domain.VehicleType;
import com.muyu.domain.req.BoundFenceGroupReq;
import com.muyu.domain.req.VehicleManageReq; import com.muyu.domain.req.VehicleManageReq;
import com.muyu.domain.resp.BoundFenceGroup;
import com.muyu.domain.resp.VehicleManageResp; import com.muyu.domain.resp.VehicleManageResp;
import com.muyu.enterprise.mapper.VehicleMapper; import com.muyu.enterprise.mapper.VehicleMapper;
import com.muyu.enterprise.service.VehicleService; import com.muyu.enterprise.service.VehicleService;
@ -69,4 +72,22 @@ public class VehicleServiceImpl
return templateId; return templateId;
} }
@Override
public void boundFenceGroup(BoundFenceGroupReq boundFenceGroupReq) {
vehicleMapper.boundFenceGroup(boundFenceGroupReq);
}
@Override
public List<FenceGroup> showBoundFenceGroup(Long fenceGroupId) {
List<FenceGroup> fenceGroups = vehicleMapper.showBoundFenceGroup(fenceGroupId);
return fenceGroups;
}
@Override
public List<BoundFenceGroup> findByFenceGroupId(Long vehicleId) {
List<BoundFenceGroup> list = vehicleMapper.findByFenceGroupId(vehicleId);
return list;
}
} }

View File

@ -1,11 +1,25 @@
package com.muyu.enterprise.service.impl; package com.muyu.enterprise.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.domain.WarnRule; import com.muyu.domain.WarnRule;
import com.muyu.enterprise.mapper.WarnRuleMapper; import com.muyu.enterprise.mapper.WarnRuleMapper;
import com.muyu.enterprise.service.WarnRuleService; import com.muyu.enterprise.service.WarnRuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
@Service @Service
public class WarnRuleServiceImpl extends ServiceImpl<WarnRuleMapper, WarnRule> implements WarnRuleService { public class WarnRuleServiceImpl extends ServiceImpl<WarnRuleMapper, WarnRule> implements WarnRuleService {
@Autowired
private WarnRuleMapper warnRuleMapper;
@Override
public List<WarnRule> findBywarnStrategyId(Long warnStrategyId) {
List<WarnRule> warnRules = warnRuleMapper.findBywarnStrategyId(warnStrategyId);
return warnRules;
}
} }

View File

@ -1,8 +1,15 @@
package com.muyu.enterprise.service.impl; package com.muyu.enterprise.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.muyu.domain.MessageTemplate;
import com.muyu.domain.WarnRule;
import com.muyu.domain.resp.WarnRuleResp;
import com.muyu.domain.resp.WarnStrategyAndVinResp;
import com.muyu.enterprise.controller.WarnRuleController;
import com.muyu.enterprise.mapper.WarnStrategyMapper; import com.muyu.enterprise.mapper.WarnStrategyMapper;
import com.muyu.enterprise.service.WarnRuleService;
import com.muyu.enterprise.service.WarnStrategyService; import com.muyu.enterprise.service.WarnStrategyService;
import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.StringUtils;
import com.muyu.domain.VehicleType; import com.muyu.domain.VehicleType;
@ -12,7 +19,10 @@ import com.muyu.domain.resp.WarnVehicleResp;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
@Service @Service
public class WarnStrategyServiceImpl extends ServiceImpl<WarnStrategyMapper, WarnStrategy> public class WarnStrategyServiceImpl extends ServiceImpl<WarnStrategyMapper, WarnStrategy>
@ -21,17 +31,40 @@ public class WarnStrategyServiceImpl extends ServiceImpl<WarnStrategyMapper, War
@Autowired @Autowired
private WarnStrategyMapper warnStrategyMapper; private WarnStrategyMapper warnStrategyMapper;
@Autowired
private WarnRuleService warnRuleService;
@Override @Override
public List<WarnVehicleResp> ruleStrategyList(WarnVehicleReq warnVehicleReq) { public List<WarnVehicleResp> selectList(WarnVehicleReq req) {
MPJLambdaWrapper<WarnStrategy> wrapper = new MPJLambdaWrapper<>(); MPJLambdaWrapper<WarnStrategy> wrapper = new MPJLambdaWrapper<>();
wrapper.selectAll(WarnStrategy.class) wrapper.selectAll(WarnStrategy.class)
.selectAs(VehicleType::getVehicleTypeName,WarnVehicleResp::getVehicleTypeName) .selectAs(VehicleType::getVehicleTypeName,WarnVehicleResp::getVehicleTypeName)
.selectAs(MessageTemplate::getMessageTemplateName,WarnVehicleResp::getMessageTemplateName)
.leftJoin(VehicleType.class, VehicleType::getVehicleTypeId,WarnStrategy::getVehicleTypeId) .leftJoin(VehicleType.class, VehicleType::getVehicleTypeId,WarnStrategy::getVehicleTypeId)
.leftJoin(MessageTemplate.class, MessageTemplate::getMessageTemplateId,WarnStrategy::getMessageTemplateId)
.like( .like(
StringUtils.isNotEmpty(warnVehicleReq.getStrategyName()), StringUtils.isNotEmpty(req.getStrategyName()),
WarnStrategy::getStrategyName,warnVehicleReq.getStrategyName() WarnStrategy::getStrategyName,req.getStrategyName()
); );
List<WarnVehicleResp> list = warnStrategyMapper.selectJoinList(WarnVehicleResp.class, wrapper); List<WarnVehicleResp> list = warnStrategyMapper.selectJoinList(WarnVehicleResp.class, wrapper);
return list; return list;
} }
@Override
public List<WarnStrategyAndVinResp> findById(Long warnStrategyId) {
List<WarnStrategyAndVinResp> byId = warnStrategyMapper.findById(warnStrategyId);
return byId;
}
@Override
public WarnRuleResp findByWarnStrategyId(Long warnStrategyId) {
WarnRuleResp warnRuleResp = warnStrategyMapper.findByWarnStrategyId(warnStrategyId);
List<WarnRule> bywarnStrategyId = warnRuleService.findBywarnStrategyId(warnStrategyId);
warnRuleResp.setWarnRuleList(bywarnStrategyId);
return warnRuleResp;
}
} }

View File

@ -24,6 +24,7 @@
<module>cloud-modules-enterprise-common</module> <module>cloud-modules-enterprise-common</module>
<module>cloud-modules-enterprise-server</module> <module>cloud-modules-enterprise-server</module>
<module>cloud-modules-enterprise-cache</module> <module>cloud-modules-enterprise-cache</module>
<module>cloud-modules-enterprise-remote</module>
</modules> </modules>
<packaging>pom</packaging> <packaging>pom</packaging>

Some files were not shown because too many files have changed in this diff Show More