From ec676ca227d20161ab9b8f17d84b57ae07576d88 Mon Sep 17 00:00:00 2001 From: xinzirun Date: Fri, 27 Sep 2024 21:25:40 +0800 Subject: [PATCH 01/30] =?UTF-8?q?feat():=20=E4=BC=81=E4=B8=9A=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../muyu/auth/controller/TokenController.java | 6 +-- .../java/com/muyu/auth/form/RegisterBody.java | 10 ----- .../muyu/auth/service/SysLoginService.java | 20 +++++++++- .../common/core/web/domain/BaseEntity.java | 4 +- .../muyu/common/system/domain/SysDept.java | 5 +++ .../com/muyu/common/system/domain/SysEnt.java | 6 +-- .../common/system/domain}/form/LoginBody.java | 2 +- .../system/domain/form/RegisterBody.java | 36 +++++++++++++++++ .../system/remote/RemoteUserService.java | 3 +- .../factory/RemoteUserFallbackFactory.java | 3 +- .../system/controller/SysUserController.java | 40 +++++++++++++++---- .../com/muyu/system/domain/req/EntAddReq.java | 10 ++--- .../muyu/system/domain/req/EntListReq.java | 6 +-- .../muyu/system/domain/req/EntUpdateReq.java | 8 ++-- .../com/muyu/system/domain/resp/EntResp.java | 2 +- .../service/impl/SysEntServiceImpl.java | 4 +- .../resources/mapper/system/SysDeptMapper.xml | 5 ++- 17 files changed, 123 insertions(+), 47 deletions(-) delete mode 100644 cloud-auth/src/main/java/com/muyu/auth/form/RegisterBody.java rename {cloud-auth/src/main/java/com/muyu/auth => cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain}/form/LoginBody.java (92%) create mode 100644 cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/form/RegisterBody.java diff --git a/cloud-auth/src/main/java/com/muyu/auth/controller/TokenController.java b/cloud-auth/src/main/java/com/muyu/auth/controller/TokenController.java index d870762..27e5584 100644 --- a/cloud-auth/src/main/java/com/muyu/auth/controller/TokenController.java +++ b/cloud-auth/src/main/java/com/muyu/auth/controller/TokenController.java @@ -1,7 +1,7 @@ package com.muyu.auth.controller; -import com.muyu.auth.form.LoginBody; -import com.muyu.auth.form.RegisterBody; +import com.muyu.common.system.domain.form.LoginBody; +import com.muyu.common.system.domain.form.RegisterBody; import com.muyu.auth.service.SysLoginService; import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.JwtUtils; @@ -66,7 +66,7 @@ public class TokenController { @PostMapping("register") public Result register (@RequestBody RegisterBody registerBody) { // 用户注册 - sysLoginService.register(registerBody.getUsername(), registerBody.getPassword()); + sysLoginService.register(registerBody); return Result.success(); } } diff --git a/cloud-auth/src/main/java/com/muyu/auth/form/RegisterBody.java b/cloud-auth/src/main/java/com/muyu/auth/form/RegisterBody.java deleted file mode 100644 index c2a4d5a..0000000 --- a/cloud-auth/src/main/java/com/muyu/auth/form/RegisterBody.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.muyu.auth.form; - -/** - * 用户注册对象 - * - * @author muyu - */ -public class RegisterBody extends LoginBody { - -} diff --git a/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java b/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java index ff0af1a..4e3d228 100644 --- a/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java +++ b/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java @@ -1,5 +1,6 @@ package com.muyu.auth.service; +import com.muyu.common.system.domain.form.RegisterBody; import com.muyu.common.core.constant.CacheConstants; import com.muyu.common.core.constant.Constants; import com.muyu.common.core.constant.SecurityConstants; @@ -98,7 +99,22 @@ public class SysLoginService { /** * 注册 */ - public void register (String username, String password) { + public void register (RegisterBody registerBody) { + //获取用户名密码 + String username = registerBody.getUsername(); + String password = registerBody.getPassword(); + if(StringUtils.isEmpty(registerBody.getEntName())) { + throw new ServiceException("企业名称不能为空"); + } + if(StringUtils.isEmpty(registerBody.getLeader())) { + throw new ServiceException("负责人不能为空"); + } + if(StringUtils.isBlank(registerBody.getPhone())) { + throw new ServiceException("手机号不能为空"); + } + if(StringUtils.isBlank(registerBody.getEmail())) { + throw new ServiceException("邮箱不能为空"); + } // 用户名或密码为空 错误 if (StringUtils.isAnyBlank(username, password)) { throw new ServiceException("用户/密码必须填写"); @@ -117,7 +133,7 @@ public class SysLoginService { sysUser.setUserName(username); sysUser.setNickName(username); sysUser.setPassword(SecurityUtils.encryptPassword(password)); - Result registerResult = remoteUserService.registerUserInfo(sysUser, SecurityConstants.INNER); + Result registerResult = remoteUserService.registerUserInfo(registerBody, SecurityConstants.INNER); if (Result.FAIL == registerResult.getCode()) { throw new ServiceException(registerResult.getMsg()); diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/domain/BaseEntity.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/domain/BaseEntity.java index a045f1e..28c4927 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/domain/BaseEntity.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/domain/BaseEntity.java @@ -45,7 +45,7 @@ public class BaseEntity implements Serializable { */ @TableField(fill = FieldFill.INSERT) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private String createTime; + private Date createTime; /** * 更新者 @@ -58,7 +58,7 @@ public class BaseEntity implements Serializable { */ @TableField(fill = FieldFill.UPDATE) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private String updateTime; + private Date updateTime; /** * 备注 diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysDept.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysDept.java index 65ada9e..12db28e 100644 --- a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysDept.java +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysDept.java @@ -64,6 +64,11 @@ public class SysDept extends BaseEntity { */ private String email; + /** + * 企业ID + */ + private Long entId; + /** * 部门状态:0正常,1停用 */ diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysEnt.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysEnt.java index aeb233d..8a6808f 100644 --- a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysEnt.java +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysEnt.java @@ -19,7 +19,7 @@ import lombok.experimental.SuperBuilder; @SuperBuilder @NoArgsConstructor @AllArgsConstructor -@TableName(value = "sys_ent") +@TableName(value = "sys_ent", autoResultMap = true) @EqualsAndHashCode(callSuper = true) public class SysEnt extends BaseEntity { @@ -40,9 +40,9 @@ public class SysEnt extends BaseEntity { private String leader; /** - * 手机号码 + * 联系电话 */ - private String phoneNumber; + private String phone; /** * 邮箱 diff --git a/cloud-auth/src/main/java/com/muyu/auth/form/LoginBody.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/form/LoginBody.java similarity index 92% rename from cloud-auth/src/main/java/com/muyu/auth/form/LoginBody.java rename to cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/form/LoginBody.java index 999ad44..97cf2f1 100644 --- a/cloud-auth/src/main/java/com/muyu/auth/form/LoginBody.java +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/form/LoginBody.java @@ -1,4 +1,4 @@ -package com.muyu.auth.form; +package com.muyu.common.system.domain.form; /** * 用户登录对象 diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/form/RegisterBody.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/form/RegisterBody.java new file mode 100644 index 0000000..1764084 --- /dev/null +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/form/RegisterBody.java @@ -0,0 +1,36 @@ +package com.muyu.common.system.domain.form; + +import lombok.*; + +/** + * 用户注册对象 + * + * @author muyu + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class RegisterBody extends LoginBody { + + /** + * 企业名称 + */ + private String entName; + + /** + * 负责人 + */ + private String leader; + + /** + * 联系电话 + */ + private String phone; + + /** + * 邮箱 + */ + private String email; +} diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteUserService.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteUserService.java index c528ad5..eb2e928 100644 --- a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteUserService.java +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteUserService.java @@ -4,6 +4,7 @@ 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.common.system.domain.form.RegisterBody; import com.muyu.common.system.remote.factory.RemoteUserFallbackFactory; import com.muyu.common.system.domain.LoginUser; import org.springframework.cloud.openfeign.FeignClient; @@ -38,7 +39,7 @@ public interface RemoteUserService { * @return 结果 */ @PostMapping("/user/register") - public Result registerUserInfo (@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + public Result registerUserInfo (@RequestBody RegisterBody registerBody, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 获取企业信息 diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteUserFallbackFactory.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteUserFallbackFactory.java index 56e10c3..d0297af 100644 --- a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteUserFallbackFactory.java +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteUserFallbackFactory.java @@ -1,6 +1,7 @@ package com.muyu.common.system.remote.factory; import com.muyu.common.core.domain.Result; +import com.muyu.common.system.domain.form.RegisterBody; import com.muyu.common.system.remote.RemoteUserService; import com.muyu.common.system.domain.SysUser; import com.muyu.common.system.domain.LoginUser; @@ -30,7 +31,7 @@ public class RemoteUserFallbackFactory implements FallbackFactory registerUserInfo (SysUser sysUser, String source) { + public Result registerUserInfo (RegisterBody registerBody, String source) { return Result.error("注册用户失败:" + throwable.getMessage()); } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserController.java index 0cc8c9b..2a8c084 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserController.java @@ -1,6 +1,5 @@ package com.muyu.system.controller; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.poi.ExcelUtil; @@ -11,10 +10,8 @@ import com.muyu.common.log.enums.BusinessType; import com.muyu.common.security.annotation.InnerAuth; import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.common.security.utils.SecurityUtils; -import com.muyu.common.system.domain.SysDept; -import com.muyu.common.system.domain.SysRole; -import com.muyu.common.system.domain.SysUser; -import com.muyu.common.system.domain.LoginUser; +import com.muyu.common.system.domain.*; +import com.muyu.common.system.domain.form.RegisterBody; import com.muyu.system.domain.resp.AuthRoleResp; import com.muyu.system.domain.resp.UserDetailInfoResp; import com.muyu.system.domain.resp.UserInfoResp; @@ -24,7 +21,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; - import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; @@ -57,6 +53,8 @@ public class SysUserController extends BaseController { @Autowired private SysConfigService configService; + @Autowired + private SysEntService entService; /** * 获取用户列表 */ @@ -120,14 +118,40 @@ public class SysUserController extends BaseController { */ @InnerAuth @PostMapping("/register") - public Result register (@RequestBody SysUser sysUser) { - String username = sysUser.getUserName(); + public Result register (@RequestBody RegisterBody registerBody) { + String username = registerBody.getUsername(); if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { return Result.error("当前系统没有开启注册功能!"); } + SysUser sysUser = SysUser.builder().userName(username).build(); if (!userService.checkUserNameUnique(sysUser)) { return Result.error("保存用户'" + username + "'失败,注册账号已存在"); } + + //添加企业 + SysEnt sysEnt = SysEnt.builder() + .name(registerBody.getEntName()) + .leader(registerBody.getLeader()) + .phone(registerBody.getPhone()) + .email(registerBody.getEmail()) + .build(); + entService.save(sysEnt); + + //添加部门 + SysDept sysDept = SysDept.builder() + .deptName(registerBody.getEntName()) + .leader(registerBody.getLeader()) + .phone(registerBody.getPhone()) + .email(registerBody.getEmail()) + .entId(sysEnt.getId()) + .parentId(100L) + .build(); + deptService.insertDept(sysDept); + + sysUser.setDeptId(sysDept.getDeptId()); + sysUser.setNickName(registerBody.getUsername()); + sysUser.setPassword(SecurityUtils.encryptPassword(registerBody.getPassword())); + return Result.success(userService.registerUser(sysUser)); } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntAddReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntAddReq.java index f60cbb0..213721d 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntAddReq.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntAddReq.java @@ -37,11 +37,11 @@ public class EntAddReq { private String leader; /** - * 手机号码 + * 联系电话 */ - @NotBlank(message = "手机号码不能为空") - @Schema(title = "手机号码", type = "String", defaultValue = "18321974313", description = "手机号码") - private String phoneNumber; + @NotBlank(message = "联系电话不能为空") + @Schema(title = "联系电话", type = "String", defaultValue = "18321974313", description = "联系电话") + private String phone; /** * 邮箱 @@ -66,7 +66,7 @@ public class EntAddReq { return SysEnt.builder() .name(req.getEntName()) .leader(req.getLeader()) - .phoneNumber(req.getPhoneNumber()) + .phone(req.getPhone()) .email(req.getEmail()) .entCode(req.getEntCode()) .build(); diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntListReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntListReq.java index f281352..2c05f4b 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntListReq.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntListReq.java @@ -32,10 +32,10 @@ public class EntListReq { private String leader; /** - * 手机号码 + * 联系电话 */ - @Schema(title = "手机号码", type = "String", defaultValue = "18321974313", description = "手机号码") - private String phoneNumber; + @Schema(title = "联系电话", type = "String", defaultValue = "18321974313", description = "联系电话") + private String phone; /** * 邮箱 diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntUpdateReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntUpdateReq.java index 52590b5..5efa4b6 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntUpdateReq.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntUpdateReq.java @@ -34,10 +34,10 @@ public class EntUpdateReq { private String leader; /** - * 手机号码 + * 联系电话 */ - @Schema(title = "手机号码", type = "String", defaultValue = "18321974313", description = "手机号码") - private String phoneNumber; + @Schema(title = "联系电话", type = "String", defaultValue = "18321974313", description = "联系电话") + private String phone; /** * 邮箱 @@ -62,7 +62,7 @@ public class EntUpdateReq { .id(entId.get()) .name(req.getEntName()) .leader(req.getLeader()) - .phoneNumber(req.getPhoneNumber()) + .phone(req.getPhone()) .email(req.getEmail()) .entCode(req.getEntCode()) .build(); diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/EntResp.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/EntResp.java index b787779..64f36cd 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/EntResp.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/EntResp.java @@ -64,7 +64,7 @@ public class EntResp { .entId(sysEnt.getId()) .entName(sysEnt.getName()) .leader(sysEnt.getLeader()) - .phoneNumber(sysEnt.getPhoneNumber()) + .phoneNumber(sysEnt.getPhone()) .email(sysEnt.getEmail()) .entCode(sysEnt.getEntCode()) .build(); diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysEntServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysEntServiceImpl.java index a44821a..10ff4b8 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysEntServiceImpl.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysEntServiceImpl.java @@ -44,8 +44,8 @@ public class SysEntServiceImpl extends ServiceImpl impleme SysEnt::getLeader, entListReq.getLeader() ); queryWrapper.like( - StringUtils.isNotEmpty(entListReq.getPhoneNumber()), - SysEnt::getPhoneNumber, entListReq.getPhoneNumber() + StringUtils.isNotEmpty(entListReq.getPhone()), + SysEnt::getPhone, entListReq.getPhone() ); queryWrapper.like( StringUtils.isNotEmpty(entListReq.getEmail()), diff --git a/cloud-modules/cloud-modules-system/src/main/resources/mapper/system/SysDeptMapper.xml b/cloud-modules/cloud-modules-system/src/main/resources/mapper/system/SysDeptMapper.xml index a571d8b..8b9c4e0 100644 --- a/cloud-modules/cloud-modules-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/cloud-modules/cloud-modules-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -13,6 +13,7 @@ + @@ -109,7 +110,7 @@ where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0' limit 1 - + insert into sys_dept( dept_id, parent_id, @@ -119,6 +120,7 @@ leader, phone, email, + ent_id, status, create_by, create_time @@ -131,6 +133,7 @@ #{leader}, #{phone}, #{email}, + #{entId}, #{status}, #{createBy}, sysdate() From 49d6651df22f624803b3524388efefdacc7cbaaf Mon Sep 17 00:00:00 2001 From: xinzirun Date: Fri, 27 Sep 2024 22:02:44 +0800 Subject: [PATCH 02/30] =?UTF-8?q?fix():=20=E4=BF=AE=E6=94=B9nacos=E5=91=BD?= =?UTF-8?q?=E5=90=8D=E7=A9=BA=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cloud-auth/src/main/resources/bootstrap.yml | 1 - cloud-gateway/src/main/resources/bootstrap.yml | 1 - .../src/main/resources/bootstrap.yml | 1 - .../cloud-modules-file/src/main/resources/bootstrap.yml | 1 - cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml | 1 - .../cloud-modules-system/src/main/resources/bootstrap.yml | 1 - .../cloud-visual-monitor/src/main/resources/bootstrap.yml | 1 - 7 files changed, 7 deletions(-) diff --git a/cloud-auth/src/main/resources/bootstrap.yml b/cloud-auth/src/main/resources/bootstrap.yml index eeaceee..2bdda14 100644 --- a/cloud-auth/src/main/resources/bootstrap.yml +++ b/cloud-auth/src/main/resources/bootstrap.yml @@ -2,7 +2,6 @@ server: port: 9500 -# nacos线上地址 nacos: addr: 106.15.136.7:8848 user-name: nacos diff --git a/cloud-gateway/src/main/resources/bootstrap.yml b/cloud-gateway/src/main/resources/bootstrap.yml index 7723b63..4132cf0 100644 --- a/cloud-gateway/src/main/resources/bootstrap.yml +++ b/cloud-gateway/src/main/resources/bootstrap.yml @@ -2,7 +2,6 @@ server: port: 8080 -# nacos线上地址 nacos: addr: 106.15.136.7:8848 user-name: nacos diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/bootstrap.yml index b2e0126..aed0523 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/bootstrap.yml @@ -2,7 +2,6 @@ server: port: 10066 -# nacos线上地址 nacos: addr: 106.15.136.7:8848 user-name: nacos diff --git a/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml index b471a18..eea6728 100644 --- a/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml @@ -2,7 +2,6 @@ server: port: 9300 -# nacos线上地址 nacos: addr: 106.15.136.7:8848 user-name: nacos diff --git a/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml index 7e3624f..178e17b 100644 --- a/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml @@ -2,7 +2,6 @@ server: port: 9202 -# nacos线上地址 nacos: addr: 106.15.136.7:8848 user-name: nacos diff --git a/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml index eacfcd2..9390135 100644 --- a/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml @@ -2,7 +2,6 @@ server: port: 9701 -# nacos线上地址 nacos: addr: 106.15.136.7:8848 user-name: nacos diff --git a/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml b/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml index da1f316..ddca326 100644 --- a/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml +++ b/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml @@ -2,7 +2,6 @@ server: port: 9100 -# nacos线上地址 nacos: addr: 106.15.136.7:8848 user-name: nacos From 06815c8552831051bc345a02676bdee38e229192 Mon Sep 17 00:00:00 2001 From: 15285 <1518542096@qq.com> Date: Fri, 27 Sep 2024 22:39:14 +0800 Subject: [PATCH 03/30] =?UTF-8?q?feax:()=E8=A7=A3=E5=86=B3=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E6=9E=B6=E6=9E=84=E4=BF=AE=E6=94=B9=E5=90=8E=E7=9A=84?= =?UTF-8?q?=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/muyu/common/system/domain/SysEnt.java | 4 + .../controller/FaultTypeController.java | 13 ++ .../enterprise/service/FaultTypeService.java | 2 + .../service/impl/FaultTypeServiceImpl.java | 7 + cloud-modules/cloud-modules-fault/pom.xml | 106 +++++++++++++++ .../java/com/muyu/CloudFaultApplication.java | 16 +++ .../java/com/muyu/fault/common/FaultLog.java | 51 ++++++++ .../com/muyu/fault/common/FaultMessage.java | 54 ++++++++ .../com/muyu/fault/common/FaultNotify.java | 34 +++++ .../com/muyu/fault/common/FaultSeverity.java | 43 ++++++ .../java/com/muyu/fault/common/FaultType.java | 35 +++++ .../com/muyu/fault/common/FaultrRule.java | 39 ++++++ .../com/muyu/fault/common/SysCarFault.java | 74 +++++++++++ .../fault/controller/FaultLogController.java | 74 +++++++++++ .../controller/FaultMessageController.java | 87 +++++++++++++ .../fault/controller/FaultTypeController.java | 63 +++++++++ .../controller/FaultrRuleController.java | 74 +++++++++++ .../controller/SysCarFaultController.java | 122 ++++++++++++++++++ .../com/muyu/fault/mapper/FaultLogMapper.java | 10 ++ .../muyu/fault/mapper/FaultMessageMapper.java | 7 + .../muyu/fault/mapper/FaultTypeMapper.java | 9 ++ .../muyu/fault/mapper/FaultrRuleMapper.java | 10 ++ .../muyu/fault/mapper/SysCarFaultMapper.java | 8 ++ .../muyu/fault/service/FaultLogService.java | 14 ++ .../fault/service/FaultMessageService.java | 15 +++ .../muyu/fault/service/FaultTypeService.java | 10 ++ .../muyu/fault/service/FaultrRuleService.java | 12 ++ .../fault/service/SysCarFaultService.java | 31 +++++ .../service/impl/FaultLogServiceImpl.java | 33 +++++ .../service/impl/FaultMessageServiceImpl.java | 48 +++++++ .../service/impl/FaultTypeServiceImpl.java | 26 ++++ .../service/impl/FaultrRuleServiceImpl.java | 36 ++++++ .../service/impl/SysCarFaultServiceImpl.java | 68 ++++++++++ .../src/main/resources/banner.txt | 2 + .../src/main/resources/logback/dev.xml | 74 +++++++++++ .../src/main/resources/logback/prod.xml | 81 ++++++++++++ .../src/main/resources/logback/test.xml | 81 ++++++++++++ .../src/test/java/Text01.java | 29 +++++ .../system/controller/SysEntController.java | 43 +++--- .../com/muyu/system/domain/resp/EntResp.java | 7 + .../muyu/system/service/SysEntService.java | 2 + .../service/impl/SysEntServiceImpl.java | 29 +++-- 42 files changed, 1558 insertions(+), 25 deletions(-) create mode 100644 cloud-modules/cloud-modules-fault/pom.xml create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/CloudFaultApplication.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultLog.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultMessage.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultNotify.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultSeverity.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultType.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultrRule.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/SysCarFault.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultLogController.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultMessageController.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultTypeController.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultrRuleController.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/SysCarFaultController.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultLogMapper.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultMessageMapper.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultTypeMapper.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultrRuleMapper.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/SysCarFaultMapper.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultLogService.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultMessageService.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultTypeService.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultrRuleService.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/SysCarFaultService.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultLogServiceImpl.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultMessageServiceImpl.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultTypeServiceImpl.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultrRuleServiceImpl.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/SysCarFaultServiceImpl.java create mode 100644 cloud-modules/cloud-modules-fault/src/main/resources/banner.txt create mode 100644 cloud-modules/cloud-modules-fault/src/main/resources/logback/dev.xml create mode 100644 cloud-modules/cloud-modules-fault/src/main/resources/logback/prod.xml create mode 100644 cloud-modules/cloud-modules-fault/src/main/resources/logback/test.xml create mode 100644 cloud-modules/cloud-modules-fault/src/test/java/Text01.java diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysEnt.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysEnt.java index aeb233d..cdead09 100644 --- a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysEnt.java +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysEnt.java @@ -53,4 +53,8 @@ public class SysEnt extends BaseEntity { * 企业编码 */ private String entCode; + /** + * 企业状态 + */ + private Integer entStatus; } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultTypeController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultTypeController.java index 4eb6db0..05d0f0f 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultTypeController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultTypeController.java @@ -1,6 +1,8 @@ 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.utils.StringUtils; import com.muyu.enterprise.domain.FaultType; import com.muyu.enterprise.service.FaultTypeService; import io.swagger.v3.oas.annotations.tags.Tag; @@ -58,4 +60,15 @@ public class FaultTypeController { return Result.success(faultTypeService.removeById(faultTypeId)); } + + /** + * 查询类型详细信息 + * @param faultTypeId + * @return + */ + @RequestMapping(value = "/typeDetailOne/{faultTypeId}",method = RequestMethod.POST) + public Result> typeDetailOne(@PathVariable Long faultTypeId){ + return Result.success(faultTypeService.typeDatailOne(faultTypeId)); + } + } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultTypeService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultTypeService.java index 2a1c04b..1d4939c 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultTypeService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultTypeService.java @@ -7,4 +7,6 @@ import java.util.List; public interface FaultTypeService extends IService { List faultTypeList(FaultType faultType); + + List typeDatailOne(Long faultTypeId); } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultTypeServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultTypeServiceImpl.java index ae2f31e..af5abbd 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultTypeServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultTypeServiceImpl.java @@ -23,4 +23,11 @@ public class FaultTypeServiceImpl extends ServiceImpl typeDatailOne(Long faultTypeId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(FaultType::getFaultTypeId,faultTypeId); + return this.list(queryWrapper); + } } diff --git a/cloud-modules/cloud-modules-fault/pom.xml b/cloud-modules/cloud-modules-fault/pom.xml new file mode 100644 index 0000000..ee6f8a2 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/pom.xml @@ -0,0 +1,106 @@ + + + 4.0.0 + + com.muyu + cloud-modules + 3.6.3 + + + cloud-modules-fault + + + 17 + 17 + UTF-8 + + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + cloud-common-datasource + + + + + com.muyu + cloud-common-datascope + + + + + com.muyu + cloud-common-log + + + + + com.muyu + cloud-common-api-doc + + + com.carrotsearch.thirdparty + simple-xml-safe + 2.7.1 + test + + + org.attoparser + attoparser + 2.0.7.RELEASE + test + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + + diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/CloudFaultApplication.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/CloudFaultApplication.java new file mode 100644 index 0000000..1017e81 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/CloudFaultApplication.java @@ -0,0 +1,16 @@ +package com.muyu; + + +import com.muyu.common.security.annotation.EnableCustomConfig; +import com.muyu.common.security.annotation.EnableMyFeignClients; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@EnableCustomConfig +@EnableMyFeignClients +@SpringBootApplication +public class CloudFaultApplication { + public static void main(String[] args) { + SpringApplication.run(CloudFaultApplication.class,args); + } +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultLog.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultLog.java new file mode 100644 index 0000000..9953029 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultLog.java @@ -0,0 +1,51 @@ +package com.muyu.fault.common; + +import cn.hutool.core.date.DateTime; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.common.core.web.domain.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import lombok.experimental.SuperBuilder; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "fault_log",autoResultMap = true) +@EqualsAndHashCode(callSuper = true) +public class FaultLog extends BaseEntity { + /** + * 日志ID + */ + @TableId(value = "fault_log_id", type= IdType.AUTO) + @Schema(defaultValue = "日志ID",type = "Long",description = "日志ID") + private Long faultLogId; + /** + * 故障码 + */ + @Schema(defaultValue = "故障码",type = "String",description = "故障码") + private String faultLogCodes; + /** + * 车辆VIN + */ + @Schema(defaultValue = "车辆VIN",type = "String",description = "车辆VIN") + private String faultLogVin; + /** + * 开始报警时间 + */ + @Schema(defaultValue = "开始报警时间",type = "Date",description = "开始报警时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date faultLogStartTime; + /** + * 结束报警时间 + */ + @Schema(defaultValue = "结束报警时间",type = "Date",description = "结束报警时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date faultLogEndTime; +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultMessage.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultMessage.java new file mode 100644 index 0000000..b264b28 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultMessage.java @@ -0,0 +1,54 @@ +package com.muyu.fault.common; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "fault_message",autoResultMap = true) +public class FaultMessage { + /** + * 站内信ID + */ + @TableId(value = "fault_message_id", type= IdType.AUTO) + @Schema(defaultValue = "站内信ID",type = "Long",description = "站内信ID") + private Long faultMessageId; + /** + * 消息发送人 + */ + @Schema(defaultValue = "消息发送人",type = "String",description = "消息发送人") + private String faultMessageSendName; + /** + * 消息接收人 + */ + @Schema(defaultValue = "消息接收人",type = "String",description = "消息发送人") + private String faultMessageRemoveName; + /** + * 消息内容 + */ + @Schema(defaultValue = "消息内容",type = "String",description = "消息内容") + private String faultMessageContent; + /** + * 发送时间 + */ + @Schema(defaultValue = "发送时间",type = "Date",description = "发送时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date faultMessageSendTime; + /** + * 消息状态(1:未读,2:已读) + */ + @Schema(defaultValue = "消息状态",type = "Integer",description = "消息状态(1:未读,2:已读)") + private Integer faultMessageState; +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultNotify.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultNotify.java new file mode 100644 index 0000000..5ccb6bb --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultNotify.java @@ -0,0 +1,34 @@ +package com.muyu.fault.common; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "fault_notify",autoResultMap = true) +public class FaultNotify { + /** + * ID + */ + @TableId(value = "fault_notify_id", type= IdType.AUTO) + @Schema(defaultValue = "ID",type = "Long",description = "ID") + private Long faultNotifyId; + /** + * 通知方 + */ + @Schema(defaultValue = "通知方",type = "String",description = "通知方") + private String faultNotifyParty; + /** + * 联系方式 + */ + @Schema(defaultValue = "联系方式",type = "String",description = "联系方式") + private String faultNotifyManner; +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultSeverity.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultSeverity.java new file mode 100644 index 0000000..63fa98b --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultSeverity.java @@ -0,0 +1,43 @@ +package com.muyu.fault.common; + +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 io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "fault_severity",autoResultMap = true) +public class FaultSeverity extends BaseEntity { + /** + * 等级ID + */ + @TableId(value = "fault_severity_id", type= IdType.AUTO) + @Schema(defaultValue = "等级ID",type = "Long",description = "等级ID") + private Long faultSeverityId; + /** + * 等级名称 + */ + @Schema(defaultValue = "等级名称",type = "String",description = "等级名称") + private String faultSeverityName; + /** + * 优先级 + */ + @Schema(defaultValue = "优先级",type = "Integer",description = "优先级: 1_(立即) 2_(1小时内) 3_(24小时内)") + private Integer faultSeverityPriority; + /** + * 通知策略 + */ + @Schema(defaultValue = "通知策略",type = "String",description = "通知策略: 提示:邮件通知团队\n" + + "警告:邮件通知负责人\n" + + "严重:立即通知技术人员") + private String faultSeverityNotificationPolicy; +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultType.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultType.java new file mode 100644 index 0000000..7bae718 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultType.java @@ -0,0 +1,35 @@ +package com.muyu.fault.common; + +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 io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "fault_type",autoResultMap = true) +public class FaultType{ + /** + * 故障类型ID + */ + @TableId(value = "fault_type_id", type= IdType.AUTO) + @Schema(defaultValue = "故障类型ID",type = "Long",description = "故障类型ID") + private Long faultTypeId; + /** + * 故障类型名称 + */ + @Schema(defaultValue = "故障类型名称",type = "String",description = "故障类型名称") + private String faultTypeName; + /** + * 故障类型描述 + */ + @Schema(defaultValue = "故障类型描述",type = "String",description = "故障类型描述") + private String faultTypeDescription; +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultrRule.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultrRule.java new file mode 100644 index 0000000..6e649d5 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultrRule.java @@ -0,0 +1,39 @@ +package com.muyu.fault.common; + +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 io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import lombok.experimental.SuperBuilder; + +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "fault_rule",autoResultMap = true) +@EqualsAndHashCode(callSuper = true) +public class FaultrRule extends BaseEntity { + /** + * 故障规则ID + */ + @TableId(value = "fault_rule_id", type= IdType.AUTO) + @Schema(defaultValue = "故障规则ID",type = "Long",description = "故障规则ID") + private Long faultRuleId; + /** + * 故障规则名称 + */ + @Schema(defaultValue = "故障规则名称",type = "String",description = "故障规则名称") + private String faultRuleName; + /** + * 故障规则参数 + */ + @Schema(defaultValue = "故障规则参数",type = "String",description = "故障规则参数") + private String faultRuleParameter; + /** + * 故障规则描述 + */ + @Schema(defaultValue = "故障规则描述",type = "String",description = "故障规则描述") + private String faultRuleDescription; +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/SysCarFault.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/SysCarFault.java new file mode 100644 index 0000000..690c07e --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/SysCarFault.java @@ -0,0 +1,74 @@ +package com.muyu.fault.common; + +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 io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.*; +import lombok.experimental.SuperBuilder; +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName(value = "sys_car_fault", autoResultMap = true) +@EqualsAndHashCode(callSuper = true) +public class SysCarFault extends BaseEntity { + /** + * 自增主键 + */ + @TableId(value = "id", type= IdType.AUTO) + @Schema(defaultValue = "自增主键",type = "Long",description = "自增主键") + private Long id; + /** + * 车辆故障编码 + */ + @Schema(defaultValue = "车辆故障编码",type = "String",description = "车辆故障编码") + private String faultCode; + /** + * 车辆故障类型ID + */ + @Schema(defaultValue = "车辆故障类型ID",type = "Integer",description = "车辆故障类型ID") + private Integer faultTypeId; + /** + * 故障VIN编码 + */ + @Schema(defaultValue = "故障VIN编码",type = "String",description = "故障VIN编码") + private String carVin; + /** + * 车辆故障标签 + */ + @Schema(defaultValue = "车辆故障标签",type = "String",description = "车辆故障标签") + private String faultLabel; + /** + * 车辆故障位 + */ + @Schema(defaultValue = "车辆故障位",type = "String",description = "车辆故障位") + private String faultBit; + /** + * 车辆故障值 + */ + @Schema(defaultValue = "车辆故障值",type = "String",description = "车辆故障值") + private String faultValue; + /** + * 故障级别 + */ + @Schema(defaultValue = "故障级别",type = "String",description = "故障级别") + private String faultWarn; + /** + * 报警状态(Y.是,N.否) + */ + @Schema(defaultValue = "报警状态",type = "String",description = "报警状态") + private String warnStatus; + /** + * 故障描述信息 + */ + @Schema(defaultValue = "故障描述信息",type = "String",description = "故障描述信息") + private String faultDesc; + /** + * 启用状态(1.待处理 2.处理中 3.已处理 4.忽略) + */ + @Schema(defaultValue = "启用状态",type = "String",description = "启用状态(1.待处理 2.处理中 3.已处理 4.忽略)") + private String state; +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultLogController.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultLogController.java new file mode 100644 index 0000000..79e79a4 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultLogController.java @@ -0,0 +1,74 @@ +package com.muyu.fault.controller; + + +import com.muyu.common.core.domain.Result; +import com.muyu.fault.common.FaultLog; +import com.muyu.fault.service.FaultLogService; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Arrays; +import java.util.List; + +@RestController +@RequestMapping("/log") +@Tag(name = "故障日志",description = "对故障记录日志") +public class FaultLogController{ + @Autowired + private FaultLogService faultLogService; + + /** + * 查询车辆故障日志列表 + */ + @RequestMapping(value = "/faultLogList", method = RequestMethod.GET) + public Result> faultLogList(FaultLog faultLog){ + List list = faultLogService.faultLogList(faultLog); + return Result.success(list); + } + + /** + * 添加车辆故障日志 + * @param faultLog + * @return + */ + @RequestMapping(value = "/insertLog",method = RequestMethod.POST) + public Result insertLog(@RequestBody FaultLog faultLog){ + return Result.success(faultLogService.save(faultLog)); + } + + /** + * 修改车辆故障日志 + * @param faultLog + * @return + */ + @RequestMapping(value = "/updateLog",method = RequestMethod.PUT) + public Result updateLog(@RequestBody FaultLog faultLog){ + return Result.success(faultLogService.updateById(faultLog)); + } + + /** + * + * 批量删除车辆故障日志 + * @param ids + * @return + */ + @RequestMapping(value = "/remove/{ids}",method = RequestMethod.DELETE) + public Result remove(@PathVariable("ids") Long[] ids) + { + return Result.success(faultLogService.removeBatchByIds(Arrays.asList(ids))); + } + + /** + * 获取单条日志详细信息 + * @param faultLogId + * @return + */ + @RequestMapping(value = "/byidId/{faultLogId}",method = RequestMethod.GET) + public Result byidId(@PathVariable Long faultLogId){ + FaultLog byid = faultLogService.byidId(faultLogId); + return Result.success(byid); + } + + +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultMessageController.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultMessageController.java new file mode 100644 index 0000000..35bb9fa --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultMessageController.java @@ -0,0 +1,87 @@ +package com.muyu.fault.controller; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.muyu.common.core.domain.Result; +import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.fault.common.FaultMessage; +import com.muyu.fault.service.FaultMessageService; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/message") +@Tag(name = "站内信的管理",description = "对站内信息的处理与查看") +public class FaultMessageController { + @Autowired + private FaultMessageService faultMessageService; + + /** + * 站内信列表 + * @return + */ + @RequestMapping(value = "/faultMessageList",method = RequestMethod.GET) + public Result> faultMessageList( FaultMessage faultMessage){ + return Result.success(faultMessageService.faultMessageList(faultMessage)); + } + + /** + * 添加消息 + * @param faultMessage + * @return + */ + @RequestMapping(value = "/insertMessage",method = RequestMethod.POST) + public Result insertMessage(@RequestBody FaultMessage faultMessage){ + String username = SecurityUtils.getUsername(); + //消息发送人 + faultMessage.setFaultMessageSendName(username); + return Result.success(faultMessageService.save(faultMessage)); + } + + /** + * 查询未读状态(faultMessageState==1)信息 + * @return + */ + @RequestMapping(value = "/selectOne",method = RequestMethod.POST) + public Result> selectOne(){ + List one = faultMessageService.selectOne(); + return Result.success(one); + } + + /** + * 查询已读状态(faultMessageState==2)信息 + * @return + */ + @RequestMapping(value = "/selectTwo",method = RequestMethod.POST) + public Result> selectTwo(){ + List one = faultMessageService.selectTwo(); + return Result.success(one); + } + + /** + * 更改已读状态 + * @param faultMessageId + * @return + */ + @RequestMapping(value = "/updateTwo/{faultMessageId}",method = RequestMethod.POST) + public Result updateTwo(@PathVariable(name = "faultMessageId") Long faultMessageId){ + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.set(FaultMessage::getFaultMessageState,2); + updateWrapper.eq(FaultMessage::getFaultMessageId,faultMessageId); + faultMessageService.update(updateWrapper); + return Result.success(faultMessageId,"消息已读"); + } + + /** + * 删除消息 + * @param faultMessageId + * @return + */ + @RequestMapping(value = "/deleteMessageId/{faultMessageId}",method = RequestMethod.POST) + public Result deleteMessageId(@PathVariable(name = "faultMessageId") Long faultMessageId){ + return Result.success(faultMessageService.removeById(faultMessageId),"删除成功"); + } + +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultTypeController.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultTypeController.java new file mode 100644 index 0000000..342e984 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultTypeController.java @@ -0,0 +1,63 @@ +package com.muyu.fault.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.muyu.common.core.domain.Result; +import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.fault.common.FaultType; +import com.muyu.fault.service.FaultTypeService; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/type") +@Tag(name = "故障类型",description = "对故障类型的定义") +public class FaultTypeController { + @Autowired + private FaultTypeService faultTypeService; + + /** + * 故障类型表 + * @return + */ + @RequestMapping(value = "faultTypeList",method = RequestMethod.GET) + public Result> faultTypeList(FaultType faultType){ + return Result.success(faultTypeService.faultTypeList(faultType)); + } + + + /** + * 添加故障类型 + * @param faultType + * @return + */ + @RequestMapping(value = "insertType",method = RequestMethod.POST) + public Result insertType(@RequestBody FaultType faultType){ + return Result.success(faultTypeService.save(faultType)); + } + + + /** + * 修改故障类型 + * @param faultType + * @return + */ + @RequestMapping(value = "updateType",method = RequestMethod.POST) + public Result updateype(@RequestBody FaultType faultType){ + return Result.success(faultTypeService.updateById(faultType)); + } + + + /** + * 删除故障类型 + * @param faultTypeId + * @return + */ + @RequestMapping(value = "deleteType/{faultTypeId}",method = RequestMethod.DELETE) + public Result deleteType(@PathVariable(name = "faultTypeId") Long faultTypeId){ + return Result.success(faultTypeService.removeById(faultTypeId)); + } + +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultrRuleController.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultrRuleController.java new file mode 100644 index 0000000..176d8c1 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultrRuleController.java @@ -0,0 +1,74 @@ +package com.muyu.fault.controller; + + +import com.muyu.common.core.domain.Result; +import com.muyu.fault.common.FaultrRule; +import com.muyu.fault.service.FaultrRuleService; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Arrays; +import java.util.List; + +@RestController +@RequestMapping("/rule") +@Tag(name = "故障的规则",description = "对故障数据规则的判断") +public class FaultrRuleController { + @Autowired + private FaultrRuleService faultrRuleService; + /** + * 查询车辆故障列表 + */ + @RequestMapping(value = "/faultRuleList", method = RequestMethod.GET) + public Result> faultRuleList(FaultrRule faultrRule) + { + List list = faultrRuleService.faultRuleList(faultrRule); + return Result.success(list); + } + + /** + * 添加车辆规则 + * @param faultrRule + * @return + */ + @RequestMapping(value = "/insertRule",method = RequestMethod.POST) + public Result insertRule(@RequestBody FaultrRule faultrRule){ + return Result.success(faultrRuleService.save(faultrRule)); + } + + /** + * 修改车辆规则 + * @param faultrRule + * @return + */ + @RequestMapping(value = "/updateRule",method = RequestMethod.POST) + public Result updateRule(@RequestBody FaultrRule faultrRule){ + return Result.success(faultrRuleService.updateById(faultrRule)); + } + + /** + * 获取单条故障规则详细信息 + * @param faultRuleId + * @return + */ + @RequestMapping(value = "/byidRuleId/{faultRuleId}",method = RequestMethod.GET) + public Result byidRuleId(@PathVariable Long faultRuleId){ + FaultrRule byid = faultrRuleService.byidRuleId(faultRuleId); + return Result.success(byid); + } + + /** + * 删除车辆故障 + */ + @RequestMapping(value = "/remove/{ids}",method = RequestMethod.DELETE) + public Result remove(@PathVariable("ids") Long[] ids) + { + faultrRuleService.removeBatchByIds(Arrays.asList(ids)); + return Result.success(); + } + + + + +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/SysCarFaultController.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/SysCarFaultController.java new file mode 100644 index 0000000..a7ee151 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/SysCarFaultController.java @@ -0,0 +1,122 @@ +package com.muyu.fault.controller; + +import cn.hutool.core.date.DateTime; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.fault.common.FaultLog; +import com.muyu.fault.common.SysCarFault; +import com.muyu.fault.service.FaultLogService; +import com.muyu.fault.service.SysCarFaultService; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; +import java.util.Random; + +@RestController +@RequestMapping("/faultInfo") +@Tag(name = "故障管理",description = "故障的管理与查看") +public class SysCarFaultController extends BaseController +{ + @Resource + private SysCarFaultService sysCarFaultService; + @Autowired + private FaultLogService faultLogService; + + /** + * 查询车辆故障列表 + */ + @RequestMapping(value = "/list", method = RequestMethod.GET) + public Result> list(SysCarFault sysCarFault) + { + List list = sysCarFaultService.selectSysCarFaultList(sysCarFault); + return success(list); + } + + /** + * 导出车辆故障列表 + */ + @RequestMapping(value = "export",method = RequestMethod.POST) + public void export(HttpServletResponse response, SysCarFault sysCarFault) + { + List list = sysCarFaultService.selectSysCarFaultList(sysCarFault); + ExcelUtil util = new ExcelUtil(SysCarFault.class); + util.exportExcel(response, list, "车辆故障数据"); + } + + /** + * 获取车辆故障详细信息 + */ + @RequestMapping(value = "/getInfo/{id}",method = RequestMethod.GET) + public Result> getInfo(@PathVariable("id") Long id) + { + return success(sysCarFaultService.selectSysCarFaultById(id)); + } + + /** + * 新增车辆故障 + */ + @RequestMapping(value = "add",method = RequestMethod.POST) + public Result add( + @Validated @RequestBody SysCarFault sysCarFault) + { + String prefix = "GT"; // 随机码的前缀 + int minNumber = 1; // 随机数字的最小值 + int maxNumber = 999; // 随机数字的最大值 + Random random = new Random(); // 创建一个随机对象 + // 生成一个随机数字 + int number = random.nextInt(maxNumber - minNumber + 1) + minNumber; + // 将数字格式化为三位字符串,不足三位前面补0 + String formattedNumber = String.format("%03d", number); + // 生成一个随机字母 + String alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + String randomLetter = alphabets.charAt(random.nextInt(alphabets.length())) + ""; + // 拼接前缀、随机字母和随机数字 + String randomCode = prefix + randomLetter + formattedNumber; + System.out.println(randomCode); // 输出随机码 + //赋值 + sysCarFault.setFaultCode(randomCode); + sysCarFault.setCreateBy(SecurityUtils.getUsername()); + FaultLog faultLog = new FaultLog(); + faultLog.setFaultLogCodes(sysCarFault.getFaultCode()); + faultLog.setFaultLogVin(sysCarFault.getCarVin()); + DateTime startTime = DateTime.now(); // 获取当前时间作为开始时间 + faultLog.setFaultLogStartTime(startTime); + faultLogService.save(faultLog); + if (sysCarFaultService.checkIdUnique(sysCarFault)) { + return error("新增 车辆故障 '" + sysCarFault + "'失败,车辆故障已存在"); + } + return toAjax(sysCarFaultService.save(sysCarFault)); + } + + /** + * 修改车辆故障 + */ + @RequestMapping(value = "edit",method = RequestMethod.PUT) + public Result edit( + @Validated @RequestBody SysCarFault sysCarFault) + { + if (!sysCarFaultService.checkIdUnique(sysCarFault)) { + return error("修改 车辆故障 '" + sysCarFault + "'失败,车辆故障不存在"); + } + sysCarFault.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(sysCarFaultService.updateById(sysCarFault)); + } + + /** + * 删除车辆故障 + */ + @RequestMapping(value = "/remove/{ids}",method = RequestMethod.DELETE) + public Result remove(@PathVariable("ids") Long[] ids) + { + sysCarFaultService.removeBatchByIds(Arrays.asList(ids)); + return success(); + } +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultLogMapper.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultLogMapper.java new file mode 100644 index 0000000..5e9fc19 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultLogMapper.java @@ -0,0 +1,10 @@ +package com.muyu.fault.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.fault.common.FaultLog; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface FaultLogMapper extends BaseMapper { +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultMessageMapper.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultMessageMapper.java new file mode 100644 index 0000000..73a3930 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultMessageMapper.java @@ -0,0 +1,7 @@ +package com.muyu.fault.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.fault.common.FaultMessage; + +public interface FaultMessageMapper extends BaseMapper { +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultTypeMapper.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultTypeMapper.java new file mode 100644 index 0000000..5265201 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultTypeMapper.java @@ -0,0 +1,9 @@ +package com.muyu.fault.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.fault.common.FaultType; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface FaultTypeMapper extends BaseMapper { +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultrRuleMapper.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultrRuleMapper.java new file mode 100644 index 0000000..3fd2169 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultrRuleMapper.java @@ -0,0 +1,10 @@ +package com.muyu.fault.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.fault.common.FaultrRule; +import org.apache.ibatis.annotations.Mapper; + + +@Mapper +public interface FaultrRuleMapper extends BaseMapper { +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/SysCarFaultMapper.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/SysCarFaultMapper.java new file mode 100644 index 0000000..92ece6a --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/SysCarFaultMapper.java @@ -0,0 +1,8 @@ +package com.muyu.fault.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.fault.common.SysCarFault; +import org.apache.ibatis.annotations.Mapper; +@Mapper +public interface SysCarFaultMapper extends BaseMapper{ +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultLogService.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultLogService.java new file mode 100644 index 0000000..2af9a14 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultLogService.java @@ -0,0 +1,14 @@ +package com.muyu.fault.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.fault.common.FaultLog; + +import java.util.List; + +public interface FaultLogService extends IService { + List faultLogList(FaultLog faultLog); + + + FaultLog byidId(Long faultLogId); + +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultMessageService.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultMessageService.java new file mode 100644 index 0000000..89f6b81 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultMessageService.java @@ -0,0 +1,15 @@ +package com.muyu.fault.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.fault.common.FaultMessage; + +import java.util.List; + +public interface FaultMessageService extends IService { + + List selectOne(); + + List selectTwo(); + + List faultMessageList(FaultMessage faultMessage); +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultTypeService.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultTypeService.java new file mode 100644 index 0000000..e4e6037 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultTypeService.java @@ -0,0 +1,10 @@ +package com.muyu.fault.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.fault.common.FaultType; + +import java.util.List; + +public interface FaultTypeService extends IService { + List faultTypeList(FaultType faultType); +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultrRuleService.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultrRuleService.java new file mode 100644 index 0000000..3899aa7 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultrRuleService.java @@ -0,0 +1,12 @@ +package com.muyu.fault.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.fault.common.FaultrRule; + +import java.util.List; + +public interface FaultrRuleService extends IService { + List faultRuleList(FaultrRule faultrRule); + + FaultrRule byidRuleId(Long faultRuleId); +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/SysCarFaultService.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/SysCarFaultService.java new file mode 100644 index 0000000..9afe833 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/SysCarFaultService.java @@ -0,0 +1,31 @@ +package com.muyu.fault.service; + +import java.util.List; +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.fault.common.SysCarFault; + +public interface SysCarFaultService extends IService { + /** + * 精确查询车辆故障 + * + * @param id 车辆故障主键 + * @return 车辆故障 + */ + public SysCarFault selectSysCarFaultById(Long id); + + /** + * 查询车辆故障列表 + * + * @param sysCarFault 车辆故障 + * @return 车辆故障集合 + */ + public List selectSysCarFaultList(SysCarFault sysCarFault); + + /** + * 判断 车辆故障 id是否唯一 + * @param sysCarFault 车辆故障 + * @return 结果 + */ + Boolean checkIdUnique(SysCarFault sysCarFault); + +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultLogServiceImpl.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultLogServiceImpl.java new file mode 100644 index 0000000..3387ba9 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultLogServiceImpl.java @@ -0,0 +1,33 @@ +package com.muyu.fault.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.utils.StringUtils; +import com.muyu.fault.common.FaultLog; +import com.muyu.fault.mapper.FaultLogMapper; +import com.muyu.fault.service.FaultLogService; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +import java.util.List; + +@Service +public class FaultLogServiceImpl extends ServiceImpl implements FaultLogService { + @Override + public List faultLogList(FaultLog faultLog) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.like(StringUtils.isNotEmpty(faultLog.getFaultLogVin()), + FaultLog::getFaultLogVin, faultLog.getFaultLogVin()); + queryWrapper.like(StringUtils.isNotEmpty(faultLog.getFaultLogCodes()), + FaultLog::getFaultLogCodes, faultLog.getFaultLogCodes()); + return this.list(queryWrapper); + } + + @Override + public FaultLog byidId(Long faultLogId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + Assert.notNull(faultLogId, "日志ID不可为空"); + queryWrapper.eq(FaultLog::getFaultLogId, faultLogId); + return this.getOne(queryWrapper); + } +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultMessageServiceImpl.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultMessageServiceImpl.java new file mode 100644 index 0000000..bf697a5 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultMessageServiceImpl.java @@ -0,0 +1,48 @@ +package com.muyu.fault.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.utils.StringUtils; +import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.fault.common.FaultMessage; +import com.muyu.fault.mapper.FaultMessageMapper; +import com.muyu.fault.service.FaultMessageService; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class FaultMessageServiceImpl extends ServiceImpl implements FaultMessageService { + + @Override + public List selectOne() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + //查询消息状态为1的未读数据 + queryWrapper.eq(FaultMessage::getFaultMessageState, 1); + return this.list(queryWrapper); + } + + @Override + public List selectTwo() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + //查询消息状态为2的已读数据 + queryWrapper.eq(FaultMessage::getFaultMessageState, 2); + return this.list(queryWrapper); + } + + @Override + public List faultMessageList(FaultMessage faultMessage) { + String username = SecurityUtils.getUsername(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (StringUtils.isNotEmpty(faultMessage.getFaultMessageRemoveName())) { + queryWrapper.eq(FaultMessage::getFaultMessageSendName,username); + } + if (StringUtils.isNotEmpty(String.valueOf(faultMessage.getFaultMessageState()))) { + queryWrapper.eq(FaultMessage::getFaultMessageState,faultMessage.getFaultMessageState()); + } + if (StringUtils.isNotEmpty(faultMessage.getFaultMessageSendName())) { + queryWrapper.like(FaultMessage::getFaultMessageSendName,faultMessage.getFaultMessageSendName()); + } + return this.list(queryWrapper); + } +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultTypeServiceImpl.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultTypeServiceImpl.java new file mode 100644 index 0000000..d316e3c --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultTypeServiceImpl.java @@ -0,0 +1,26 @@ +package com.muyu.fault.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.utils.StringUtils; +import com.muyu.fault.common.FaultType; +import com.muyu.fault.mapper.FaultTypeMapper; +import com.muyu.fault.service.FaultTypeService; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class FaultTypeServiceImpl extends ServiceImpl implements FaultTypeService { + @Override + public List faultTypeList(FaultType faultType) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (StringUtils.isNotEmpty(faultType.getFaultTypeName())) { + queryWrapper.like(FaultType::getFaultTypeName,faultType.getFaultTypeName()); + } + if (StringUtils.isNotEmpty(faultType.getFaultTypeDescription())) { + queryWrapper.like(FaultType::getFaultTypeDescription,faultType.getFaultTypeDescription()); + } + return this.list(queryWrapper); + } +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultrRuleServiceImpl.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultrRuleServiceImpl.java new file mode 100644 index 0000000..5f55d1a --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultrRuleServiceImpl.java @@ -0,0 +1,36 @@ +package com.muyu.fault.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.utils.StringUtils; +import com.muyu.fault.common.FaultrRule; +import com.muyu.fault.mapper.FaultrRuleMapper; +import com.muyu.fault.service.FaultrRuleService; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +import java.util.List; + +@Service +public class FaultrRuleServiceImpl extends ServiceImpl implements FaultrRuleService { + + @Override + public List faultRuleList(FaultrRule faultrRule) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (StringUtils.isNotEmpty(faultrRule.getFaultRuleName())) { + queryWrapper.eq(FaultrRule::getFaultRuleName,faultrRule.getFaultRuleName()); + } + if (StringUtils.isNotEmpty(faultrRule.getFaultRuleParameter())) { + queryWrapper.eq(FaultrRule::getFaultRuleParameter,faultrRule.getFaultRuleParameter()); + } + return this.list(queryWrapper); + } + + @Override + public FaultrRule byidRuleId(Long faultRuleId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + Assert.notNull(faultRuleId, "规则ID不可为空"); + queryWrapper.eq(FaultrRule::getFaultRuleId, faultRuleId); + return this.getOne(queryWrapper); + } +} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/SysCarFaultServiceImpl.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/SysCarFaultServiceImpl.java new file mode 100644 index 0000000..a3ba13f --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/SysCarFaultServiceImpl.java @@ -0,0 +1,68 @@ +package com.muyu.fault.service.impl; + +import java.util.List; + +import com.muyu.fault.common.SysCarFault; +import com.muyu.fault.service.SysCarFaultService; +import org.springframework.stereotype.Service; +import com.muyu.fault.mapper.SysCarFaultMapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.utils.StringUtils; +import org.springframework.util.Assert; + +@Service +public class SysCarFaultServiceImpl + extends ServiceImpl + implements SysCarFaultService { + + /** + * 精确查询车辆故障 + * + * @param id 车辆故障主键 + * @return 车辆故障 + */ + @Override + public SysCarFault selectSysCarFaultById(Long id) + { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + Assert.notNull(id, "id不可为空"); + queryWrapper.eq(SysCarFault::getId, id); + return this.getOne(queryWrapper); + } + + + /** + * 查询车辆故障列表 + * + * @param sysCarFault 车辆故障 + * @return 车辆故障 + */ + @Override + public List selectSysCarFaultList(SysCarFault sysCarFault) + { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(StringUtils.isNotEmpty(String.valueOf(sysCarFault.getFaultTypeId())), + SysCarFault::getFaultTypeId, sysCarFault.getFaultTypeId()); + queryWrapper.eq(StringUtils.isNotEmpty(sysCarFault.getState()), + SysCarFault::getState, sysCarFault.getState()); + queryWrapper.like(StringUtils.isNotEmpty(sysCarFault.getCarVin()), + SysCarFault::getCarVin, sysCarFault.getCarVin()); + queryWrapper.eq(StringUtils.isNotEmpty(sysCarFault.getFaultWarn()), + SysCarFault::getFaultWarn, sysCarFault.getFaultWarn()); + return this.list(queryWrapper); + } + + /** + * 唯一 判断 + * @param sysCarFault 车辆故障 + * @return 车辆故障 + */ + @Override + public Boolean checkIdUnique(SysCarFault sysCarFault) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysCarFault::getId, sysCarFault.getId()); + return this.count(queryWrapper) > 0; + } + +} diff --git a/cloud-modules/cloud-modules-fault/src/main/resources/banner.txt b/cloud-modules/cloud-modules-fault/src/main/resources/banner.txt new file mode 100644 index 0000000..0dd5eee --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/resources/banner.txt @@ -0,0 +1,2 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} diff --git a/cloud-modules/cloud-modules-fault/src/main/resources/logback/dev.xml b/cloud-modules/cloud-modules-fault/src/main/resources/logback/dev.xml new file mode 100644 index 0000000..d1b5629 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/resources/logback/dev.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-fault/src/main/resources/logback/prod.xml b/cloud-modules/cloud-modules-fault/src/main/resources/logback/prod.xml new file mode 100644 index 0000000..76a0d8f --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/resources/logback/prod.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + ${log.sky.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + + + ERROR + + ACCEPT + + DENY + + + + + + + + ${log.sky.pattern} + + + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-fault/src/main/resources/logback/test.xml b/cloud-modules/cloud-modules-fault/src/main/resources/logback/test.xml new file mode 100644 index 0000000..2cd69e4 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/main/resources/logback/test.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + ${log.sky.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + + + ERROR + + ACCEPT + + DENY + + + + + + + + ${log.sky.pattern} + + + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-fault/src/test/java/Text01.java b/cloud-modules/cloud-modules-fault/src/test/java/Text01.java new file mode 100644 index 0000000..921a9e8 --- /dev/null +++ b/cloud-modules/cloud-modules-fault/src/test/java/Text01.java @@ -0,0 +1,29 @@ +import org.simpleframework.xml.Text; + +import java.time.LocalDateTime; +import java.util.Random; + +@Text +public class Text01 { + public static void main(String[] args) { +// String prefix = "GT"; // 随机码的前缀 +// int minNumber = 1; // 随机数字的最小值 +// int maxNumber = 999; // 随机数字的最大值 +// Random random = new Random(); // 创建一个随机对象 +// // 生成一个随机数字 +// int number = random.nextInt(maxNumber - minNumber + 1) + minNumber; +// // 将数字格式化为三位字符串,不足三位前面补0 +// String formattedNumber = String.format("%03d", number); +// // 生成一个随机字母 +// String alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; +// String randomLetter = alphabets.charAt(random.nextInt(alphabets.length())) + ""; +// // 拼接前缀、随机字母和随机数字 +// String randomCode = prefix + randomLetter + formattedNumber; +// System.out.println(randomCode); // 输出随机码 +// LocalDateTime startTime = LocalDateTime.now(); // 开始时间 +// LocalDateTime endTime = startTime.plusHours(2); // 结束时间设置为开始时间后2小时 +// +// System.out.println("Start Time: " + startTime); +// System.out.println("End Time: " + endTime); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysEntController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysEntController.java index c508058..f04083d 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysEntController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysEntController.java @@ -4,6 +4,7 @@ import com.muyu.common.core.constant.Constants; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.common.system.domain.SysEnt; import com.muyu.system.domain.req.EntAddReq; import com.muyu.system.domain.req.EntListReq; import com.muyu.system.domain.req.EntUpdateReq; @@ -26,7 +27,7 @@ import java.util.List; @RestController @RequiredArgsConstructor @RequestMapping(value = "/ent") -@Tag(name = "SysEntController", description = "企业管理") +@Tag(name = "SysEntController",description = "企业管理") public class SysEntController extends BaseController { /** @@ -41,7 +42,9 @@ public class SysEntController extends BaseController { @GetMapping(value = "/getInfo") @Operation(summary = "获取企业信息", description = "现有的基础企业信息") public Result> getInfo() { - return Result.success(sysEntService.selectList(new EntListReq()), Constants.SUCCESS_MESSAGE); + return Result.success( + sysEntService.selectList(new EntListReq()), Constants.SUCCESS_MESSAGE + ); } /** @@ -89,25 +92,35 @@ public class SysEntController extends BaseController { * @return 响应结果 */ @PutMapping(value = "/{entId}") - @Operation(summary = "修改企业信息", description = "根据企业唯一标识修改企业信息") - public Result update( - @Schema(title = "企业ID", type = "Long", defaultValue = "1", description = "企业唯一标识") - @NotNull(message = "企业ID不能为空") @PathVariable(value = "entId") Long entId, - @RequestBody EntUpdateReq entUpdateReq) { - sysEntService.updateById(EntUpdateReq.updateBuild(entUpdateReq, () -> entId)); - return Result.success(null, Constants.SUCCESS_MESSAGE); + @Operation(summary = "修改企业信息",description = "根据企业唯一标识修改企业信息") + public Result update(@Schema(title = "企业ID",type = "Long",defaultValue = "1",description = "企业唯一标识") + @NotNull(message = "企业ID不能为空") @PathVariable(value = "entId") Long entId, + @RequestBody EntUpdateReq entUpdateReq){ + sysEntService.updateById(EntUpdateReq.updateBuild(entUpdateReq,()->entId)); + return Result.success(null,Constants.SUCCESS_MESSAGE); } /** * 删除企业信息 * @param entId 企业ID - * @return 响应结果 + * @return */ - @DeleteMapping(value = "/{entId}") - @Operation(summary = "删除企业信息", description = "根据企业唯一标识删除企业记录") - public Result remove(@Schema(title = "企业ID", type = "Long", defaultValue = "1", description = "企业唯一标识") - @NotNull(message = "企业ID不能为空") @PathVariable(value = "entId") Long entId) { + @RequestMapping(value = "/entId",method = RequestMethod.DELETE) + @Operation(summary = "删除企业信息",description = "根据企业唯一标识删除企业记录") + public Result remove(@Schema(title = "企业ID",type = "Long",defaultValue = "1",description = "企业唯一标识") + @NotNull(message = "企业ID不能为空") @PathVariable(value = "entId")Long entId){ sysEntService.removeById(entId); - return Result.success(null, Constants.SUCCESS_MESSAGE); + return Result.success(null,Constants.SUCCESS_MESSAGE); + } + + + /** + * 查询状态为待审核的企业 + * @return + */ + @RequestMapping(value = "/selectOne",method = RequestMethod.POST) + @Operation(summary = "查询状态为待审核的企业",description = "根据企业状态查询待审核的企业") + public Result> selectOne(){ + return Result.success(sysEntService.selectOne()); } } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/EntResp.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/EntResp.java index b787779..350a414 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/EntResp.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/EntResp.java @@ -54,6 +54,12 @@ public class EntResp { @Schema(title = "企业编码", type = "String", defaultValue = "db", description = "连接的数据源") private String entCode; + /** + * 企业状态 + */ + @Schema(title = "企业状态", type = "Integer", defaultValue = "0", description = "企业状态(待处理(0),通过(1),未通过(2))") + private Integer entStatus; + /** * 企业管理响应对象构建者模式 * @param sysEnt 企业管理 @@ -67,6 +73,7 @@ public class EntResp { .phoneNumber(sysEnt.getPhoneNumber()) .email(sysEnt.getEmail()) .entCode(sysEnt.getEntCode()) + .entStatus(sysEnt.getEntStatus()) .build(); } } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysEntService.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysEntService.java index 321b6b8..f305258 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysEntService.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysEntService.java @@ -20,4 +20,6 @@ public interface SysEntService extends IService { * @return 返回结果 */ public List selectList(EntListReq entListReq); + + List selectOne(); } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysEntServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysEntServiceImpl.java index a44821a..98c5a93 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysEntServiceImpl.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysEntServiceImpl.java @@ -1,6 +1,7 @@ package com.muyu.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.utils.StringUtils; import com.muyu.common.system.domain.SysEnt; @@ -22,9 +23,7 @@ import java.util.List; @RequiredArgsConstructor public class SysEntServiceImpl extends ServiceImpl implements SysEntService { - /** - * 企业管理持久层 - */ + //企业管理持久层 private final SysEntMapper sysEntMapper; /** @@ -35,31 +34,41 @@ public class SysEntServiceImpl extends ServiceImpl impleme @Override public List selectList(EntListReq entListReq) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + //查询企业名称 queryWrapper.like( StringUtils.isNotEmpty(entListReq.getEntName()), - SysEnt::getName, entListReq.getEntName() + SysEnt::getName,entListReq.getEntName() ); + //查询负责人 queryWrapper.like( StringUtils.isNotEmpty(entListReq.getLeader()), - SysEnt::getLeader, entListReq.getLeader() + SysEnt::getLeader,entListReq.getLeader() ); + //查询联系电话 queryWrapper.like( StringUtils.isNotEmpty(entListReq.getPhoneNumber()), - SysEnt::getPhoneNumber, entListReq.getPhoneNumber() + SysEnt::getPhoneNumber,entListReq.getPhoneNumber() ); + //查询邮箱 queryWrapper.like( StringUtils.isNotEmpty(entListReq.getEmail()), - SysEnt::getEmail, entListReq.getEmail() + SysEnt::getEmail,entListReq.getEmail() ); + //精确查询企业编码 queryWrapper.eq( StringUtils.isNotEmpty(entListReq.getEntCode()), - SysEnt::getEntCode, entListReq.getEntCode() - + SysEnt::getEntCode,entListReq.getEntCode() ); List sysEntList = this.list(queryWrapper); - return sysEntList.stream() .map(EntResp::entBuild) .toList(); } + + @Override + public List selectOne() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EntResp::getEntStatus,0); + return this.list((IPage) queryWrapper); + } } From 2c3197fac9a0e2603888fa0319191eaa89cb6832 Mon Sep 17 00:00:00 2001 From: 15285 <1518542096@qq.com> Date: Sat, 28 Sep 2024 12:30:55 +0800 Subject: [PATCH 04/30] =?UTF-8?q?feax:()=E4=BF=AE=E6=94=B9=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E8=A7=84=E8=8C=83(=E6=B3=A8=E9=87=8A,swagger=E6=96=87?= =?UTF-8?q?=E6=A1=A3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/muyu/enterprise/domain/FaultLog.java | 13 ++++--- .../muyu/enterprise/domain/FaultMessage.java | 6 +++- .../muyu/enterprise/domain/FaultNotify.java | 34 ------------------- .../muyu/enterprise/domain/FaultSeverity.java | 7 ++-- .../com/muyu/enterprise/domain/FaultType.java | 7 ++-- .../muyu/enterprise/domain/FaultrRule.java | 6 +++- .../muyu/enterprise/domain/SysCarFault.java | 12 +++++-- .../controller/FaultLogController.java | 5 +++ .../controller/FaultMessageController.java | 6 +++- .../controller/FaultTypeController.java | 7 ++-- .../controller/FaultrRuleController.java | 6 +++- .../controller/SysCarFaultController.java | 5 +++ .../enterprise/mapper/FaultLogMapper.java | 6 +++- .../enterprise/mapper/FaultMessageMapper.java | 7 ++++ .../enterprise/mapper/FaultTypeMapper.java | 6 +++- .../enterprise/mapper/FaultrRuleMapper.java | 6 +++- .../enterprise/mapper/SysCarFaultMapper.java | 7 ++++ .../enterprise/service/FaultLogService.java | 5 +++ .../service/FaultMessageService.java | 6 +++- .../enterprise/service/FaultTypeService.java | 6 +++- .../enterprise/service/FaultrRuleService.java | 6 +++- .../service/SysCarFaultService.java | 6 +++- .../service/impl/FaultLogServiceImpl.java | 6 +++- .../service/impl/FaultMessageServiceImpl.java | 6 +++- .../service/impl/FaultTypeServiceImpl.java | 6 +++- .../service/impl/FaultrRuleServiceImpl.java | 6 +++- .../service/impl/SysCarFaultServiceImpl.java | 6 ++++ 27 files changed, 144 insertions(+), 61 deletions(-) delete mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultNotify.java diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultLog.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultLog.java index c7840d1..71ffb89 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultLog.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultLog.java @@ -1,18 +1,23 @@ package com.muyu.enterprise.domain; -import cn.hutool.core.date.DateTime; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.fasterxml.jackson.annotation.JsonFormat; import com.muyu.common.core.web.domain.BaseEntity; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; - +/** + * @Author: chenruijia + * @Date 2024/9/28 12.23 + * @Description FaultLog:故障日志 + */ @Data @SuperBuilder @AllArgsConstructor diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultMessage.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultMessage.java index 704cf9f..825a5df 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultMessage.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultMessage.java @@ -3,7 +3,6 @@ package com.muyu.enterprise.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Data; @@ -13,6 +12,11 @@ import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; +/** + * @Author: chenruijia + * @Date 2024/9/28 12.23 + * @Description FaultMessage:站内信 + */ @Data @SuperBuilder @AllArgsConstructor diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultNotify.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultNotify.java deleted file mode 100644 index e8e1d3b..0000000 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultNotify.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.muyu.enterprise.domain; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@Builder -@AllArgsConstructor -@NoArgsConstructor -@TableName(value = "fault_notify",autoResultMap = true) -public class FaultNotify { - /** - * ID - */ - @TableId(value = "fault_notify_id", type= IdType.AUTO) - @Schema(defaultValue = "ID",type = "Long",description = "ID") - private Long faultNotifyId; - /** - * 通知方 - */ - @Schema(defaultValue = "通知方",type = "String",description = "通知方") - private String faultNotifyParty; - /** - * 联系方式 - */ - @Schema(defaultValue = "联系方式",type = "String",description = "联系方式") - private String faultNotifyManner; -} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultSeverity.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultSeverity.java index dc5701c..149f6d5 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultSeverity.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultSeverity.java @@ -6,11 +6,14 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.muyu.common.core.web.domain.BaseEntity; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; - +/** + * @Author: chenruijia + * @Date 2024/9/28 12.23 + * @Description FaultSeverity:故障等级 + */ @Data @SuperBuilder @AllArgsConstructor diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultType.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultType.java index ede5526..be8c5f0 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultType.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultType.java @@ -3,13 +3,16 @@ package com.muyu.enterprise.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 io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; - +/** + * @Author: chenruijia + * @Date 2024/9/28 12.23 + * @Description FaultType:故障类型 + */ @Data @SuperBuilder @AllArgsConstructor diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultrRule.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultrRule.java index ff73541..b49c706 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultrRule.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultrRule.java @@ -7,7 +7,11 @@ import com.muyu.common.core.web.domain.BaseEntity; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import lombok.experimental.SuperBuilder; - +/** + * @Author: chenruijia + * @Date 2024/9/28 12.23 + * @Description FaultrRule:故障规则 + */ @Data @SuperBuilder @AllArgsConstructor diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/SysCarFault.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/SysCarFault.java index 1c4c0ce..af17480 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/SysCarFault.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/SysCarFault.java @@ -5,9 +5,17 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.muyu.common.core.web.domain.BaseEntity; import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotNull; -import lombok.*; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; + +/** + * @Author: chenruijia + * @Date 2024/9/28 12.23 + * @Description SysCarFault:故障表 + */ @Data @SuperBuilder @NoArgsConstructor diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultLogController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultLogController.java index 2c9496d..ea58d5d 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultLogController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultLogController.java @@ -11,6 +11,11 @@ import org.springframework.web.bind.annotation.*; import java.util.Arrays; import java.util.List; +/** + * @Author: chenruijia + * @Date 2024/9/28 11:58 + * @Description FaultLogController:故障日志控制层 + */ @RestController @RequestMapping("/log") @Tag(name = "故障日志",description = "对故障记录日志") diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultMessageController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultMessageController.java index f6c1ef0..c22aed5 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultMessageController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultMessageController.java @@ -10,7 +10,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; - +/** + * @Author: chenruijia + * @Date 2024/9/28 11:58 + * @Description FaultMessageController:站内信控制层 + */ @RestController @RequestMapping("/fault-message") @Tag(name = "站内信的管理",description = "对站内信息的处理与查看") diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultTypeController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultTypeController.java index 05d0f0f..8878297 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultTypeController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultTypeController.java @@ -1,8 +1,6 @@ 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.utils.StringUtils; import com.muyu.enterprise.domain.FaultType; import com.muyu.enterprise.service.FaultTypeService; import io.swagger.v3.oas.annotations.tags.Tag; @@ -11,6 +9,11 @@ import org.springframework.web.bind.annotation.*; import java.util.List; +/** + * @Author: chenruijia + * @Date 2024/9/28 11:58 + * @Description FaultTypeController:故障类型控制层 + */ @RestController @RequestMapping("/type") @Tag(name = "故障类型",description = "对故障类型的定义") diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultrRuleController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultrRuleController.java index 99e7a8d..9a539c6 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultrRuleController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultrRuleController.java @@ -10,7 +10,11 @@ import org.springframework.web.bind.annotation.*; import java.util.Arrays; import java.util.List; - +/** + * @Author: chenruijia + * @Date 2024/9/28 11:58 + * @Description FaultrRuleController:故障的规则控制层 + */ @RestController @RequestMapping("/rule") @Tag(name = "故障的规则",description = "对故障数据规则的判断") diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarFaultController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarFaultController.java index 0aff974..4534256 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarFaultController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarFaultController.java @@ -20,6 +20,11 @@ import java.util.Arrays; import java.util.List; import java.util.Random; +/** + * @Author: chenruijia + * @Date 2024/9/28 11:58 + * @Description SysCarFaultController:故障管理控制层 + */ @RestController @RequestMapping("/faultInfo") @Tag(name = "故障管理",description = "故障的管理与查看") diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultLogMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultLogMapper.java index 5108162..e7970f5 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultLogMapper.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultLogMapper.java @@ -4,7 +4,11 @@ package com.muyu.enterprise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.enterprise.domain.FaultLog; import org.apache.ibatis.annotations.Mapper; - +/** + * @Author: chenruijia + * @Date 2024/9/28 12.17 + * @Description FaultLogMapper:故障日志持久层 + */ @Mapper public interface FaultLogMapper extends BaseMapper { } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultMessageMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultMessageMapper.java index f4bdec8..5e42fac 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultMessageMapper.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultMessageMapper.java @@ -2,6 +2,13 @@ package com.muyu.enterprise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.enterprise.domain.FaultMessage; +import org.apache.ibatis.annotations.Mapper; +/** + * @Author: chenruijia + * @Date 2024/9/28 12.17 + * @Description FaultMessageMapper:站内信持久层 + */ +@Mapper public interface FaultMessageMapper extends BaseMapper { } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultTypeMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultTypeMapper.java index 1c21de5..494e549 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultTypeMapper.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultTypeMapper.java @@ -3,7 +3,11 @@ package com.muyu.enterprise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.enterprise.domain.FaultType; import org.apache.ibatis.annotations.Mapper; - +/** + * @Author: chenruijia + * @Date 2024/9/28 12.17 + * @Description FaultTypeMapper:故障类型持久层 + */ @Mapper public interface FaultTypeMapper extends BaseMapper { } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultrRuleMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultrRuleMapper.java index 7630bca..72e8cec 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultrRuleMapper.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultrRuleMapper.java @@ -4,7 +4,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.enterprise.domain.FaultrRule; import org.apache.ibatis.annotations.Mapper; - +/** + * @Author: chenruijia + * @Date 2024/9/28 12.17 + * @Description FaultrRuleMapper:故障规则持久层 + */ @Mapper public interface FaultrRuleMapper extends BaseMapper { } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarFaultMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarFaultMapper.java index 357d382..ce8fbef 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarFaultMapper.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarFaultMapper.java @@ -3,6 +3,13 @@ package com.muyu.enterprise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.enterprise.domain.SysCarFault; import org.apache.ibatis.annotations.Mapper; + + +/** + * @Author: chenruijia + * @Date 2024/9/28 12.17 + * @Description SysCarFaultMapper:故障管理持久层 + */ @Mapper public interface SysCarFaultMapper extends BaseMapper{ } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultLogService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultLogService.java index cc24bf8..2656c13 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultLogService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultLogService.java @@ -5,6 +5,11 @@ import com.muyu.enterprise.domain.FaultLog; import java.util.List; +/** + * @Author: chenruijia + * @Date 2024/9/28 12.19 + * @Description FaultLogService:故障日志业务层 + */ public interface FaultLogService extends IService { List faultLogList(FaultLog faultLog); diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultMessageService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultMessageService.java index 491d102..8a4fe7c 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultMessageService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultMessageService.java @@ -4,7 +4,11 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.enterprise.domain.FaultMessage; import java.util.List; - +/** + * @Author: chenruijia + * @Date 2024/9/28 12.19 + * @Description FaultMessageService:站内信业务层 + */ public interface FaultMessageService extends IService { List selectOne(); diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultTypeService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultTypeService.java index 1d4939c..62874ec 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultTypeService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultTypeService.java @@ -4,7 +4,11 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.enterprise.domain.FaultType; import java.util.List; - +/** + * @Author: chenruijia + * @Date 2024/9/28 12.19 + * @Description FaultTypeService:故障类型业务层 + */ public interface FaultTypeService extends IService { List faultTypeList(FaultType faultType); diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultrRuleService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultrRuleService.java index b700cb4..1d4069c 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultrRuleService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultrRuleService.java @@ -4,7 +4,11 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.enterprise.domain.FaultrRule; import java.util.List; - +/** + * @Author: chenruijia + * @Date 2024/9/28 12.19 + * @Description FaultrRuleService:故障规则业务层 + */ public interface FaultrRuleService extends IService { List faultRuleList(FaultrRule faultrRule); diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarFaultService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarFaultService.java index 35833cf..0b24801 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarFaultService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarFaultService.java @@ -4,7 +4,11 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.enterprise.domain.SysCarFault; import java.util.List; - +/** + * @Author: chenruijia + * @Date 2024/9/28 12.19 + * @Description SysCarFaultService:故障管理业务层 + */ public interface SysCarFaultService extends IService { /** * 精确查询车辆故障 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultLogServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultLogServiceImpl.java index 6e32e58..69c068e 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultLogServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultLogServiceImpl.java @@ -10,7 +10,11 @@ import org.springframework.stereotype.Service; import org.springframework.util.Assert; import java.util.List; - +/** + * @Author: chenruijia + * @Date 2024/9/28 12.19 + * @Description FaultLogServiceImpl:故障日志业务实现层 + */ @Service public class FaultLogServiceImpl extends ServiceImpl implements FaultLogService { @Override diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultMessageServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultMessageServiceImpl.java index 0b3c476..4c82369 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultMessageServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultMessageServiceImpl.java @@ -10,7 +10,11 @@ import com.muyu.enterprise.service.FaultMessageService; import org.springframework.stereotype.Service; import java.util.List; - +/** + * @Author: chenruijia + * @Date 2024/9/28 12.19 + * @Description FaultMessageServiceImpl:站内信业务实现层 + */ @Service public class FaultMessageServiceImpl extends ServiceImpl implements FaultMessageService { diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultTypeServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultTypeServiceImpl.java index af5abbd..88b60d7 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultTypeServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultTypeServiceImpl.java @@ -9,7 +9,11 @@ import com.muyu.enterprise.service.FaultTypeService; import org.springframework.stereotype.Service; import java.util.List; - +/** + * @Author: chenruijia + * @Date 2024/9/28 12.19 + * @Description FaultTypeServiceImpl:故障类型业务实现层 + */ @Service public class FaultTypeServiceImpl extends ServiceImpl implements FaultTypeService { @Override diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultrRuleServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultrRuleServiceImpl.java index 8e9b1ef..942b19a 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultrRuleServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultrRuleServiceImpl.java @@ -10,7 +10,11 @@ import org.springframework.stereotype.Service; import org.springframework.util.Assert; import java.util.List; - +/** + * @Author: chenruijia + * @Date 2024/9/28 12.19 + * @Description FaultrRuleServiceImpl:故障规则业务实现层 + */ @Service public class FaultrRuleServiceImpl extends ServiceImpl implements FaultrRuleService { diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarFaultServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarFaultServiceImpl.java index a4caef1..9b0708f 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarFaultServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarFaultServiceImpl.java @@ -11,6 +11,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.utils.StringUtils; import org.springframework.util.Assert; + +/** + * @Author: chenruijia + * @Date 2024/9/28 12.19 + * @Description SysCarFaultServiceImpl:故障管理业务实现层 + */ @Service public class SysCarFaultServiceImpl extends ServiceImpl From 40d0dde1f9dbc21bfb7ad7ae7679e026fd4e9387 Mon Sep 17 00:00:00 2001 From: chenruijia <1518542096@qq.com> Date: Sat, 28 Sep 2024 14:58:20 +0800 Subject: [PATCH 05/30] =?UTF-8?q?feax:()=E4=BF=AE=E6=94=B9=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E8=A7=84=E8=8C=83(=E6=B3=A8=E9=87=8A,swagger=E6=96=87?= =?UTF-8?q?=E6=A1=A3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cloud-modules/cloud-modules-fault/pom.xml | 106 --------------- .../java/com/muyu/CloudFaultApplication.java | 16 --- .../java/com/muyu/fault/common/FaultLog.java | 51 -------- .../com/muyu/fault/common/FaultMessage.java | 54 -------- .../com/muyu/fault/common/FaultNotify.java | 34 ----- .../com/muyu/fault/common/FaultSeverity.java | 43 ------ .../java/com/muyu/fault/common/FaultType.java | 35 ----- .../com/muyu/fault/common/FaultrRule.java | 39 ------ .../com/muyu/fault/common/SysCarFault.java | 74 ----------- .../fault/controller/FaultLogController.java | 74 ----------- .../controller/FaultMessageController.java | 87 ------------- .../fault/controller/FaultTypeController.java | 63 --------- .../controller/FaultrRuleController.java | 74 ----------- .../controller/SysCarFaultController.java | 122 ------------------ .../com/muyu/fault/mapper/FaultLogMapper.java | 10 -- .../muyu/fault/mapper/FaultMessageMapper.java | 7 - .../muyu/fault/mapper/FaultTypeMapper.java | 9 -- .../muyu/fault/mapper/FaultrRuleMapper.java | 10 -- .../muyu/fault/mapper/SysCarFaultMapper.java | 8 -- .../muyu/fault/service/FaultLogService.java | 14 -- .../fault/service/FaultMessageService.java | 15 --- .../muyu/fault/service/FaultTypeService.java | 10 -- .../muyu/fault/service/FaultrRuleService.java | 12 -- .../fault/service/SysCarFaultService.java | 31 ----- .../service/impl/FaultLogServiceImpl.java | 33 ----- .../service/impl/FaultMessageServiceImpl.java | 48 ------- .../service/impl/FaultTypeServiceImpl.java | 26 ---- .../service/impl/FaultrRuleServiceImpl.java | 36 ------ .../service/impl/SysCarFaultServiceImpl.java | 68 ---------- .../src/main/resources/logback/dev.xml | 74 ----------- .../src/main/resources/logback/prod.xml | 81 ------------ .../src/main/resources/logback/test.xml | 81 ------------ .../src/test/java/Text01.java | 29 ----- .../system/controller/SysEntController.java | 11 -- .../muyu/system/service/SysEntService.java | 2 - .../service/impl/SysEntServiceImpl.java | 7 - 36 files changed, 1494 deletions(-) delete mode 100644 cloud-modules/cloud-modules-fault/pom.xml delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/CloudFaultApplication.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultLog.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultMessage.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultNotify.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultSeverity.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultType.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultrRule.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/SysCarFault.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultLogController.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultMessageController.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultTypeController.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultrRuleController.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/SysCarFaultController.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultLogMapper.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultMessageMapper.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultTypeMapper.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultrRuleMapper.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/SysCarFaultMapper.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultLogService.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultMessageService.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultTypeService.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultrRuleService.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/SysCarFaultService.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultLogServiceImpl.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultMessageServiceImpl.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultTypeServiceImpl.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultrRuleServiceImpl.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/SysCarFaultServiceImpl.java delete mode 100644 cloud-modules/cloud-modules-fault/src/main/resources/logback/dev.xml delete mode 100644 cloud-modules/cloud-modules-fault/src/main/resources/logback/prod.xml delete mode 100644 cloud-modules/cloud-modules-fault/src/main/resources/logback/test.xml delete mode 100644 cloud-modules/cloud-modules-fault/src/test/java/Text01.java diff --git a/cloud-modules/cloud-modules-fault/pom.xml b/cloud-modules/cloud-modules-fault/pom.xml deleted file mode 100644 index ee6f8a2..0000000 --- a/cloud-modules/cloud-modules-fault/pom.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - 4.0.0 - - com.muyu - cloud-modules - 3.6.3 - - - cloud-modules-fault - - - 17 - 17 - UTF-8 - - - - - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-discovery - - - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-config - - - - - com.alibaba.cloud - spring-cloud-starter-alibaba-sentinel - - - - - org.springframework.boot - spring-boot-starter-actuator - - - - - com.mysql - mysql-connector-j - - - - - com.muyu - cloud-common-datasource - - - - - com.muyu - cloud-common-datascope - - - - - com.muyu - cloud-common-log - - - - - com.muyu - cloud-common-api-doc - - - com.carrotsearch.thirdparty - simple-xml-safe - 2.7.1 - test - - - org.attoparser - attoparser - 2.0.7.RELEASE - test - - - - - ${project.artifactId} - - - org.springframework.boot - spring-boot-maven-plugin - - - - repackage - - - - - - - - diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/CloudFaultApplication.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/CloudFaultApplication.java deleted file mode 100644 index 1017e81..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/CloudFaultApplication.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.muyu; - - -import com.muyu.common.security.annotation.EnableCustomConfig; -import com.muyu.common.security.annotation.EnableMyFeignClients; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@EnableCustomConfig -@EnableMyFeignClients -@SpringBootApplication -public class CloudFaultApplication { - public static void main(String[] args) { - SpringApplication.run(CloudFaultApplication.class,args); - } -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultLog.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultLog.java deleted file mode 100644 index 9953029..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultLog.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.muyu.fault.common; - -import cn.hutool.core.date.DateTime; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.muyu.common.core.web.domain.BaseEntity; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import lombok.experimental.SuperBuilder; -import org.springframework.format.annotation.DateTimeFormat; - -import java.util.Date; - -@Data -@SuperBuilder -@AllArgsConstructor -@NoArgsConstructor -@TableName(value = "fault_log",autoResultMap = true) -@EqualsAndHashCode(callSuper = true) -public class FaultLog extends BaseEntity { - /** - * 日志ID - */ - @TableId(value = "fault_log_id", type= IdType.AUTO) - @Schema(defaultValue = "日志ID",type = "Long",description = "日志ID") - private Long faultLogId; - /** - * 故障码 - */ - @Schema(defaultValue = "故障码",type = "String",description = "故障码") - private String faultLogCodes; - /** - * 车辆VIN - */ - @Schema(defaultValue = "车辆VIN",type = "String",description = "车辆VIN") - private String faultLogVin; - /** - * 开始报警时间 - */ - @Schema(defaultValue = "开始报警时间",type = "Date",description = "开始报警时间") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date faultLogStartTime; - /** - * 结束报警时间 - */ - @Schema(defaultValue = "结束报警时间",type = "Date",description = "结束报警时间") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date faultLogEndTime; -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultMessage.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultMessage.java deleted file mode 100644 index b264b28..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultMessage.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.muyu.fault.common; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.fasterxml.jackson.annotation.JsonFormat; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; -import org.springframework.format.annotation.DateTimeFormat; - -import java.util.Date; - -@Data -@SuperBuilder -@AllArgsConstructor -@NoArgsConstructor -@TableName(value = "fault_message",autoResultMap = true) -public class FaultMessage { - /** - * 站内信ID - */ - @TableId(value = "fault_message_id", type= IdType.AUTO) - @Schema(defaultValue = "站内信ID",type = "Long",description = "站内信ID") - private Long faultMessageId; - /** - * 消息发送人 - */ - @Schema(defaultValue = "消息发送人",type = "String",description = "消息发送人") - private String faultMessageSendName; - /** - * 消息接收人 - */ - @Schema(defaultValue = "消息接收人",type = "String",description = "消息发送人") - private String faultMessageRemoveName; - /** - * 消息内容 - */ - @Schema(defaultValue = "消息内容",type = "String",description = "消息内容") - private String faultMessageContent; - /** - * 发送时间 - */ - @Schema(defaultValue = "发送时间",type = "Date",description = "发送时间") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date faultMessageSendTime; - /** - * 消息状态(1:未读,2:已读) - */ - @Schema(defaultValue = "消息状态",type = "Integer",description = "消息状态(1:未读,2:已读)") - private Integer faultMessageState; -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultNotify.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultNotify.java deleted file mode 100644 index 5ccb6bb..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultNotify.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.muyu.fault.common; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@Builder -@AllArgsConstructor -@NoArgsConstructor -@TableName(value = "fault_notify",autoResultMap = true) -public class FaultNotify { - /** - * ID - */ - @TableId(value = "fault_notify_id", type= IdType.AUTO) - @Schema(defaultValue = "ID",type = "Long",description = "ID") - private Long faultNotifyId; - /** - * 通知方 - */ - @Schema(defaultValue = "通知方",type = "String",description = "通知方") - private String faultNotifyParty; - /** - * 联系方式 - */ - @Schema(defaultValue = "联系方式",type = "String",description = "联系方式") - private String faultNotifyManner; -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultSeverity.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultSeverity.java deleted file mode 100644 index 63fa98b..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultSeverity.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.muyu.fault.common; - -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 io.swagger.v3.oas.annotations.media.Schema; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -@Data -@SuperBuilder -@AllArgsConstructor -@NoArgsConstructor -@TableName(value = "fault_severity",autoResultMap = true) -public class FaultSeverity extends BaseEntity { - /** - * 等级ID - */ - @TableId(value = "fault_severity_id", type= IdType.AUTO) - @Schema(defaultValue = "等级ID",type = "Long",description = "等级ID") - private Long faultSeverityId; - /** - * 等级名称 - */ - @Schema(defaultValue = "等级名称",type = "String",description = "等级名称") - private String faultSeverityName; - /** - * 优先级 - */ - @Schema(defaultValue = "优先级",type = "Integer",description = "优先级: 1_(立即) 2_(1小时内) 3_(24小时内)") - private Integer faultSeverityPriority; - /** - * 通知策略 - */ - @Schema(defaultValue = "通知策略",type = "String",description = "通知策略: 提示:邮件通知团队\n" + - "警告:邮件通知负责人\n" + - "严重:立即通知技术人员") - private String faultSeverityNotificationPolicy; -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultType.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultType.java deleted file mode 100644 index 7bae718..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultType.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.muyu.fault.common; - -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 io.swagger.v3.oas.annotations.media.Schema; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -@Data -@SuperBuilder -@AllArgsConstructor -@NoArgsConstructor -@TableName(value = "fault_type",autoResultMap = true) -public class FaultType{ - /** - * 故障类型ID - */ - @TableId(value = "fault_type_id", type= IdType.AUTO) - @Schema(defaultValue = "故障类型ID",type = "Long",description = "故障类型ID") - private Long faultTypeId; - /** - * 故障类型名称 - */ - @Schema(defaultValue = "故障类型名称",type = "String",description = "故障类型名称") - private String faultTypeName; - /** - * 故障类型描述 - */ - @Schema(defaultValue = "故障类型描述",type = "String",description = "故障类型描述") - private String faultTypeDescription; -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultrRule.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultrRule.java deleted file mode 100644 index 6e649d5..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/FaultrRule.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.muyu.fault.common; - -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 io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import lombok.experimental.SuperBuilder; - -@Data -@SuperBuilder -@AllArgsConstructor -@NoArgsConstructor -@TableName(value = "fault_rule",autoResultMap = true) -@EqualsAndHashCode(callSuper = true) -public class FaultrRule extends BaseEntity { - /** - * 故障规则ID - */ - @TableId(value = "fault_rule_id", type= IdType.AUTO) - @Schema(defaultValue = "故障规则ID",type = "Long",description = "故障规则ID") - private Long faultRuleId; - /** - * 故障规则名称 - */ - @Schema(defaultValue = "故障规则名称",type = "String",description = "故障规则名称") - private String faultRuleName; - /** - * 故障规则参数 - */ - @Schema(defaultValue = "故障规则参数",type = "String",description = "故障规则参数") - private String faultRuleParameter; - /** - * 故障规则描述 - */ - @Schema(defaultValue = "故障规则描述",type = "String",description = "故障规则描述") - private String faultRuleDescription; -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/SysCarFault.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/SysCarFault.java deleted file mode 100644 index 690c07e..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/common/SysCarFault.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.muyu.fault.common; - -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 io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotNull; -import lombok.*; -import lombok.experimental.SuperBuilder; -@Data -@SuperBuilder -@NoArgsConstructor -@AllArgsConstructor -@TableName(value = "sys_car_fault", autoResultMap = true) -@EqualsAndHashCode(callSuper = true) -public class SysCarFault extends BaseEntity { - /** - * 自增主键 - */ - @TableId(value = "id", type= IdType.AUTO) - @Schema(defaultValue = "自增主键",type = "Long",description = "自增主键") - private Long id; - /** - * 车辆故障编码 - */ - @Schema(defaultValue = "车辆故障编码",type = "String",description = "车辆故障编码") - private String faultCode; - /** - * 车辆故障类型ID - */ - @Schema(defaultValue = "车辆故障类型ID",type = "Integer",description = "车辆故障类型ID") - private Integer faultTypeId; - /** - * 故障VIN编码 - */ - @Schema(defaultValue = "故障VIN编码",type = "String",description = "故障VIN编码") - private String carVin; - /** - * 车辆故障标签 - */ - @Schema(defaultValue = "车辆故障标签",type = "String",description = "车辆故障标签") - private String faultLabel; - /** - * 车辆故障位 - */ - @Schema(defaultValue = "车辆故障位",type = "String",description = "车辆故障位") - private String faultBit; - /** - * 车辆故障值 - */ - @Schema(defaultValue = "车辆故障值",type = "String",description = "车辆故障值") - private String faultValue; - /** - * 故障级别 - */ - @Schema(defaultValue = "故障级别",type = "String",description = "故障级别") - private String faultWarn; - /** - * 报警状态(Y.是,N.否) - */ - @Schema(defaultValue = "报警状态",type = "String",description = "报警状态") - private String warnStatus; - /** - * 故障描述信息 - */ - @Schema(defaultValue = "故障描述信息",type = "String",description = "故障描述信息") - private String faultDesc; - /** - * 启用状态(1.待处理 2.处理中 3.已处理 4.忽略) - */ - @Schema(defaultValue = "启用状态",type = "String",description = "启用状态(1.待处理 2.处理中 3.已处理 4.忽略)") - private String state; -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultLogController.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultLogController.java deleted file mode 100644 index 79e79a4..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultLogController.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.muyu.fault.controller; - - -import com.muyu.common.core.domain.Result; -import com.muyu.fault.common.FaultLog; -import com.muyu.fault.service.FaultLogService; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.Arrays; -import java.util.List; - -@RestController -@RequestMapping("/log") -@Tag(name = "故障日志",description = "对故障记录日志") -public class FaultLogController{ - @Autowired - private FaultLogService faultLogService; - - /** - * 查询车辆故障日志列表 - */ - @RequestMapping(value = "/faultLogList", method = RequestMethod.GET) - public Result> faultLogList(FaultLog faultLog){ - List list = faultLogService.faultLogList(faultLog); - return Result.success(list); - } - - /** - * 添加车辆故障日志 - * @param faultLog - * @return - */ - @RequestMapping(value = "/insertLog",method = RequestMethod.POST) - public Result insertLog(@RequestBody FaultLog faultLog){ - return Result.success(faultLogService.save(faultLog)); - } - - /** - * 修改车辆故障日志 - * @param faultLog - * @return - */ - @RequestMapping(value = "/updateLog",method = RequestMethod.PUT) - public Result updateLog(@RequestBody FaultLog faultLog){ - return Result.success(faultLogService.updateById(faultLog)); - } - - /** - * - * 批量删除车辆故障日志 - * @param ids - * @return - */ - @RequestMapping(value = "/remove/{ids}",method = RequestMethod.DELETE) - public Result remove(@PathVariable("ids") Long[] ids) - { - return Result.success(faultLogService.removeBatchByIds(Arrays.asList(ids))); - } - - /** - * 获取单条日志详细信息 - * @param faultLogId - * @return - */ - @RequestMapping(value = "/byidId/{faultLogId}",method = RequestMethod.GET) - public Result byidId(@PathVariable Long faultLogId){ - FaultLog byid = faultLogService.byidId(faultLogId); - return Result.success(byid); - } - - -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultMessageController.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultMessageController.java deleted file mode 100644 index 35bb9fa..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultMessageController.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.muyu.fault.controller; - -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.muyu.common.core.domain.Result; -import com.muyu.common.security.utils.SecurityUtils; -import com.muyu.fault.common.FaultMessage; -import com.muyu.fault.service.FaultMessageService; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -@RestController -@RequestMapping("/message") -@Tag(name = "站内信的管理",description = "对站内信息的处理与查看") -public class FaultMessageController { - @Autowired - private FaultMessageService faultMessageService; - - /** - * 站内信列表 - * @return - */ - @RequestMapping(value = "/faultMessageList",method = RequestMethod.GET) - public Result> faultMessageList( FaultMessage faultMessage){ - return Result.success(faultMessageService.faultMessageList(faultMessage)); - } - - /** - * 添加消息 - * @param faultMessage - * @return - */ - @RequestMapping(value = "/insertMessage",method = RequestMethod.POST) - public Result insertMessage(@RequestBody FaultMessage faultMessage){ - String username = SecurityUtils.getUsername(); - //消息发送人 - faultMessage.setFaultMessageSendName(username); - return Result.success(faultMessageService.save(faultMessage)); - } - - /** - * 查询未读状态(faultMessageState==1)信息 - * @return - */ - @RequestMapping(value = "/selectOne",method = RequestMethod.POST) - public Result> selectOne(){ - List one = faultMessageService.selectOne(); - return Result.success(one); - } - - /** - * 查询已读状态(faultMessageState==2)信息 - * @return - */ - @RequestMapping(value = "/selectTwo",method = RequestMethod.POST) - public Result> selectTwo(){ - List one = faultMessageService.selectTwo(); - return Result.success(one); - } - - /** - * 更改已读状态 - * @param faultMessageId - * @return - */ - @RequestMapping(value = "/updateTwo/{faultMessageId}",method = RequestMethod.POST) - public Result updateTwo(@PathVariable(name = "faultMessageId") Long faultMessageId){ - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.set(FaultMessage::getFaultMessageState,2); - updateWrapper.eq(FaultMessage::getFaultMessageId,faultMessageId); - faultMessageService.update(updateWrapper); - return Result.success(faultMessageId,"消息已读"); - } - - /** - * 删除消息 - * @param faultMessageId - * @return - */ - @RequestMapping(value = "/deleteMessageId/{faultMessageId}",method = RequestMethod.POST) - public Result deleteMessageId(@PathVariable(name = "faultMessageId") Long faultMessageId){ - return Result.success(faultMessageService.removeById(faultMessageId),"删除成功"); - } - -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultTypeController.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultTypeController.java deleted file mode 100644 index 342e984..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultTypeController.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.muyu.fault.controller; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.muyu.common.core.domain.Result; -import com.muyu.common.security.utils.SecurityUtils; -import com.muyu.fault.common.FaultType; -import com.muyu.fault.service.FaultTypeService; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -@RestController -@RequestMapping("/type") -@Tag(name = "故障类型",description = "对故障类型的定义") -public class FaultTypeController { - @Autowired - private FaultTypeService faultTypeService; - - /** - * 故障类型表 - * @return - */ - @RequestMapping(value = "faultTypeList",method = RequestMethod.GET) - public Result> faultTypeList(FaultType faultType){ - return Result.success(faultTypeService.faultTypeList(faultType)); - } - - - /** - * 添加故障类型 - * @param faultType - * @return - */ - @RequestMapping(value = "insertType",method = RequestMethod.POST) - public Result insertType(@RequestBody FaultType faultType){ - return Result.success(faultTypeService.save(faultType)); - } - - - /** - * 修改故障类型 - * @param faultType - * @return - */ - @RequestMapping(value = "updateType",method = RequestMethod.POST) - public Result updateype(@RequestBody FaultType faultType){ - return Result.success(faultTypeService.updateById(faultType)); - } - - - /** - * 删除故障类型 - * @param faultTypeId - * @return - */ - @RequestMapping(value = "deleteType/{faultTypeId}",method = RequestMethod.DELETE) - public Result deleteType(@PathVariable(name = "faultTypeId") Long faultTypeId){ - return Result.success(faultTypeService.removeById(faultTypeId)); - } - -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultrRuleController.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultrRuleController.java deleted file mode 100644 index 176d8c1..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultrRuleController.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.muyu.fault.controller; - - -import com.muyu.common.core.domain.Result; -import com.muyu.fault.common.FaultrRule; -import com.muyu.fault.service.FaultrRuleService; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.Arrays; -import java.util.List; - -@RestController -@RequestMapping("/rule") -@Tag(name = "故障的规则",description = "对故障数据规则的判断") -public class FaultrRuleController { - @Autowired - private FaultrRuleService faultrRuleService; - /** - * 查询车辆故障列表 - */ - @RequestMapping(value = "/faultRuleList", method = RequestMethod.GET) - public Result> faultRuleList(FaultrRule faultrRule) - { - List list = faultrRuleService.faultRuleList(faultrRule); - return Result.success(list); - } - - /** - * 添加车辆规则 - * @param faultrRule - * @return - */ - @RequestMapping(value = "/insertRule",method = RequestMethod.POST) - public Result insertRule(@RequestBody FaultrRule faultrRule){ - return Result.success(faultrRuleService.save(faultrRule)); - } - - /** - * 修改车辆规则 - * @param faultrRule - * @return - */ - @RequestMapping(value = "/updateRule",method = RequestMethod.POST) - public Result updateRule(@RequestBody FaultrRule faultrRule){ - return Result.success(faultrRuleService.updateById(faultrRule)); - } - - /** - * 获取单条故障规则详细信息 - * @param faultRuleId - * @return - */ - @RequestMapping(value = "/byidRuleId/{faultRuleId}",method = RequestMethod.GET) - public Result byidRuleId(@PathVariable Long faultRuleId){ - FaultrRule byid = faultrRuleService.byidRuleId(faultRuleId); - return Result.success(byid); - } - - /** - * 删除车辆故障 - */ - @RequestMapping(value = "/remove/{ids}",method = RequestMethod.DELETE) - public Result remove(@PathVariable("ids") Long[] ids) - { - faultrRuleService.removeBatchByIds(Arrays.asList(ids)); - return Result.success(); - } - - - - -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/SysCarFaultController.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/SysCarFaultController.java deleted file mode 100644 index a7ee151..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/controller/SysCarFaultController.java +++ /dev/null @@ -1,122 +0,0 @@ -package com.muyu.fault.controller; - -import cn.hutool.core.date.DateTime; -import com.muyu.common.core.domain.Result; -import com.muyu.common.core.utils.poi.ExcelUtil; -import com.muyu.common.core.web.controller.BaseController; -import com.muyu.common.security.utils.SecurityUtils; -import com.muyu.fault.common.FaultLog; -import com.muyu.fault.common.SysCarFault; -import com.muyu.fault.service.FaultLogService; -import com.muyu.fault.service.SysCarFaultService; -import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.Arrays; -import java.util.List; -import java.util.Random; - -@RestController -@RequestMapping("/faultInfo") -@Tag(name = "故障管理",description = "故障的管理与查看") -public class SysCarFaultController extends BaseController -{ - @Resource - private SysCarFaultService sysCarFaultService; - @Autowired - private FaultLogService faultLogService; - - /** - * 查询车辆故障列表 - */ - @RequestMapping(value = "/list", method = RequestMethod.GET) - public Result> list(SysCarFault sysCarFault) - { - List list = sysCarFaultService.selectSysCarFaultList(sysCarFault); - return success(list); - } - - /** - * 导出车辆故障列表 - */ - @RequestMapping(value = "export",method = RequestMethod.POST) - public void export(HttpServletResponse response, SysCarFault sysCarFault) - { - List list = sysCarFaultService.selectSysCarFaultList(sysCarFault); - ExcelUtil util = new ExcelUtil(SysCarFault.class); - util.exportExcel(response, list, "车辆故障数据"); - } - - /** - * 获取车辆故障详细信息 - */ - @RequestMapping(value = "/getInfo/{id}",method = RequestMethod.GET) - public Result> getInfo(@PathVariable("id") Long id) - { - return success(sysCarFaultService.selectSysCarFaultById(id)); - } - - /** - * 新增车辆故障 - */ - @RequestMapping(value = "add",method = RequestMethod.POST) - public Result add( - @Validated @RequestBody SysCarFault sysCarFault) - { - String prefix = "GT"; // 随机码的前缀 - int minNumber = 1; // 随机数字的最小值 - int maxNumber = 999; // 随机数字的最大值 - Random random = new Random(); // 创建一个随机对象 - // 生成一个随机数字 - int number = random.nextInt(maxNumber - minNumber + 1) + minNumber; - // 将数字格式化为三位字符串,不足三位前面补0 - String formattedNumber = String.format("%03d", number); - // 生成一个随机字母 - String alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - String randomLetter = alphabets.charAt(random.nextInt(alphabets.length())) + ""; - // 拼接前缀、随机字母和随机数字 - String randomCode = prefix + randomLetter + formattedNumber; - System.out.println(randomCode); // 输出随机码 - //赋值 - sysCarFault.setFaultCode(randomCode); - sysCarFault.setCreateBy(SecurityUtils.getUsername()); - FaultLog faultLog = new FaultLog(); - faultLog.setFaultLogCodes(sysCarFault.getFaultCode()); - faultLog.setFaultLogVin(sysCarFault.getCarVin()); - DateTime startTime = DateTime.now(); // 获取当前时间作为开始时间 - faultLog.setFaultLogStartTime(startTime); - faultLogService.save(faultLog); - if (sysCarFaultService.checkIdUnique(sysCarFault)) { - return error("新增 车辆故障 '" + sysCarFault + "'失败,车辆故障已存在"); - } - return toAjax(sysCarFaultService.save(sysCarFault)); - } - - /** - * 修改车辆故障 - */ - @RequestMapping(value = "edit",method = RequestMethod.PUT) - public Result edit( - @Validated @RequestBody SysCarFault sysCarFault) - { - if (!sysCarFaultService.checkIdUnique(sysCarFault)) { - return error("修改 车辆故障 '" + sysCarFault + "'失败,车辆故障不存在"); - } - sysCarFault.setUpdateBy(SecurityUtils.getUsername()); - return toAjax(sysCarFaultService.updateById(sysCarFault)); - } - - /** - * 删除车辆故障 - */ - @RequestMapping(value = "/remove/{ids}",method = RequestMethod.DELETE) - public Result remove(@PathVariable("ids") Long[] ids) - { - sysCarFaultService.removeBatchByIds(Arrays.asList(ids)); - return success(); - } -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultLogMapper.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultLogMapper.java deleted file mode 100644 index 5e9fc19..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultLogMapper.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.muyu.fault.mapper; - - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.muyu.fault.common.FaultLog; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface FaultLogMapper extends BaseMapper { -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultMessageMapper.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultMessageMapper.java deleted file mode 100644 index 73a3930..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultMessageMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.muyu.fault.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.muyu.fault.common.FaultMessage; - -public interface FaultMessageMapper extends BaseMapper { -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultTypeMapper.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultTypeMapper.java deleted file mode 100644 index 5265201..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultTypeMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.muyu.fault.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.muyu.fault.common.FaultType; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface FaultTypeMapper extends BaseMapper { -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultrRuleMapper.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultrRuleMapper.java deleted file mode 100644 index 3fd2169..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultrRuleMapper.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.muyu.fault.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.muyu.fault.common.FaultrRule; -import org.apache.ibatis.annotations.Mapper; - - -@Mapper -public interface FaultrRuleMapper extends BaseMapper { -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/SysCarFaultMapper.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/SysCarFaultMapper.java deleted file mode 100644 index 92ece6a..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/SysCarFaultMapper.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.muyu.fault.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.muyu.fault.common.SysCarFault; -import org.apache.ibatis.annotations.Mapper; -@Mapper -public interface SysCarFaultMapper extends BaseMapper{ -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultLogService.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultLogService.java deleted file mode 100644 index 2af9a14..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultLogService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.muyu.fault.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.fault.common.FaultLog; - -import java.util.List; - -public interface FaultLogService extends IService { - List faultLogList(FaultLog faultLog); - - - FaultLog byidId(Long faultLogId); - -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultMessageService.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultMessageService.java deleted file mode 100644 index 89f6b81..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultMessageService.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.muyu.fault.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.fault.common.FaultMessage; - -import java.util.List; - -public interface FaultMessageService extends IService { - - List selectOne(); - - List selectTwo(); - - List faultMessageList(FaultMessage faultMessage); -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultTypeService.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultTypeService.java deleted file mode 100644 index e4e6037..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultTypeService.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.muyu.fault.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.fault.common.FaultType; - -import java.util.List; - -public interface FaultTypeService extends IService { - List faultTypeList(FaultType faultType); -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultrRuleService.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultrRuleService.java deleted file mode 100644 index 3899aa7..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultrRuleService.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.muyu.fault.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.fault.common.FaultrRule; - -import java.util.List; - -public interface FaultrRuleService extends IService { - List faultRuleList(FaultrRule faultrRule); - - FaultrRule byidRuleId(Long faultRuleId); -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/SysCarFaultService.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/SysCarFaultService.java deleted file mode 100644 index 9afe833..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/SysCarFaultService.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.muyu.fault.service; - -import java.util.List; -import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.fault.common.SysCarFault; - -public interface SysCarFaultService extends IService { - /** - * 精确查询车辆故障 - * - * @param id 车辆故障主键 - * @return 车辆故障 - */ - public SysCarFault selectSysCarFaultById(Long id); - - /** - * 查询车辆故障列表 - * - * @param sysCarFault 车辆故障 - * @return 车辆故障集合 - */ - public List selectSysCarFaultList(SysCarFault sysCarFault); - - /** - * 判断 车辆故障 id是否唯一 - * @param sysCarFault 车辆故障 - * @return 结果 - */ - Boolean checkIdUnique(SysCarFault sysCarFault); - -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultLogServiceImpl.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultLogServiceImpl.java deleted file mode 100644 index 3387ba9..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultLogServiceImpl.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.muyu.fault.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.muyu.common.core.utils.StringUtils; -import com.muyu.fault.common.FaultLog; -import com.muyu.fault.mapper.FaultLogMapper; -import com.muyu.fault.service.FaultLogService; -import org.springframework.stereotype.Service; -import org.springframework.util.Assert; - -import java.util.List; - -@Service -public class FaultLogServiceImpl extends ServiceImpl implements FaultLogService { - @Override - public List faultLogList(FaultLog faultLog) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.like(StringUtils.isNotEmpty(faultLog.getFaultLogVin()), - FaultLog::getFaultLogVin, faultLog.getFaultLogVin()); - queryWrapper.like(StringUtils.isNotEmpty(faultLog.getFaultLogCodes()), - FaultLog::getFaultLogCodes, faultLog.getFaultLogCodes()); - return this.list(queryWrapper); - } - - @Override - public FaultLog byidId(Long faultLogId) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - Assert.notNull(faultLogId, "日志ID不可为空"); - queryWrapper.eq(FaultLog::getFaultLogId, faultLogId); - return this.getOne(queryWrapper); - } -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultMessageServiceImpl.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultMessageServiceImpl.java deleted file mode 100644 index bf697a5..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultMessageServiceImpl.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.muyu.fault.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.muyu.common.core.utils.StringUtils; -import com.muyu.common.security.utils.SecurityUtils; -import com.muyu.fault.common.FaultMessage; -import com.muyu.fault.mapper.FaultMessageMapper; -import com.muyu.fault.service.FaultMessageService; -import org.springframework.stereotype.Service; - -import java.util.List; - -@Service -public class FaultMessageServiceImpl extends ServiceImpl implements FaultMessageService { - - @Override - public List selectOne() { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - //查询消息状态为1的未读数据 - queryWrapper.eq(FaultMessage::getFaultMessageState, 1); - return this.list(queryWrapper); - } - - @Override - public List selectTwo() { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - //查询消息状态为2的已读数据 - queryWrapper.eq(FaultMessage::getFaultMessageState, 2); - return this.list(queryWrapper); - } - - @Override - public List faultMessageList(FaultMessage faultMessage) { - String username = SecurityUtils.getUsername(); - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - if (StringUtils.isNotEmpty(faultMessage.getFaultMessageRemoveName())) { - queryWrapper.eq(FaultMessage::getFaultMessageSendName,username); - } - if (StringUtils.isNotEmpty(String.valueOf(faultMessage.getFaultMessageState()))) { - queryWrapper.eq(FaultMessage::getFaultMessageState,faultMessage.getFaultMessageState()); - } - if (StringUtils.isNotEmpty(faultMessage.getFaultMessageSendName())) { - queryWrapper.like(FaultMessage::getFaultMessageSendName,faultMessage.getFaultMessageSendName()); - } - return this.list(queryWrapper); - } -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultTypeServiceImpl.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultTypeServiceImpl.java deleted file mode 100644 index d316e3c..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultTypeServiceImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.muyu.fault.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.muyu.common.core.utils.StringUtils; -import com.muyu.fault.common.FaultType; -import com.muyu.fault.mapper.FaultTypeMapper; -import com.muyu.fault.service.FaultTypeService; -import org.springframework.stereotype.Service; - -import java.util.List; - -@Service -public class FaultTypeServiceImpl extends ServiceImpl implements FaultTypeService { - @Override - public List faultTypeList(FaultType faultType) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - if (StringUtils.isNotEmpty(faultType.getFaultTypeName())) { - queryWrapper.like(FaultType::getFaultTypeName,faultType.getFaultTypeName()); - } - if (StringUtils.isNotEmpty(faultType.getFaultTypeDescription())) { - queryWrapper.like(FaultType::getFaultTypeDescription,faultType.getFaultTypeDescription()); - } - return this.list(queryWrapper); - } -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultrRuleServiceImpl.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultrRuleServiceImpl.java deleted file mode 100644 index 5f55d1a..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultrRuleServiceImpl.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.muyu.fault.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.muyu.common.core.utils.StringUtils; -import com.muyu.fault.common.FaultrRule; -import com.muyu.fault.mapper.FaultrRuleMapper; -import com.muyu.fault.service.FaultrRuleService; -import org.springframework.stereotype.Service; -import org.springframework.util.Assert; - -import java.util.List; - -@Service -public class FaultrRuleServiceImpl extends ServiceImpl implements FaultrRuleService { - - @Override - public List faultRuleList(FaultrRule faultrRule) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - if (StringUtils.isNotEmpty(faultrRule.getFaultRuleName())) { - queryWrapper.eq(FaultrRule::getFaultRuleName,faultrRule.getFaultRuleName()); - } - if (StringUtils.isNotEmpty(faultrRule.getFaultRuleParameter())) { - queryWrapper.eq(FaultrRule::getFaultRuleParameter,faultrRule.getFaultRuleParameter()); - } - return this.list(queryWrapper); - } - - @Override - public FaultrRule byidRuleId(Long faultRuleId) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - Assert.notNull(faultRuleId, "规则ID不可为空"); - queryWrapper.eq(FaultrRule::getFaultRuleId, faultRuleId); - return this.getOne(queryWrapper); - } -} diff --git a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/SysCarFaultServiceImpl.java b/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/SysCarFaultServiceImpl.java deleted file mode 100644 index a3ba13f..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/SysCarFaultServiceImpl.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.muyu.fault.service.impl; - -import java.util.List; - -import com.muyu.fault.common.SysCarFault; -import com.muyu.fault.service.SysCarFaultService; -import org.springframework.stereotype.Service; -import com.muyu.fault.mapper.SysCarFaultMapper; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.muyu.common.core.utils.StringUtils; -import org.springframework.util.Assert; - -@Service -public class SysCarFaultServiceImpl - extends ServiceImpl - implements SysCarFaultService { - - /** - * 精确查询车辆故障 - * - * @param id 车辆故障主键 - * @return 车辆故障 - */ - @Override - public SysCarFault selectSysCarFaultById(Long id) - { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - Assert.notNull(id, "id不可为空"); - queryWrapper.eq(SysCarFault::getId, id); - return this.getOne(queryWrapper); - } - - - /** - * 查询车辆故障列表 - * - * @param sysCarFault 车辆故障 - * @return 车辆故障 - */ - @Override - public List selectSysCarFaultList(SysCarFault sysCarFault) - { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(StringUtils.isNotEmpty(String.valueOf(sysCarFault.getFaultTypeId())), - SysCarFault::getFaultTypeId, sysCarFault.getFaultTypeId()); - queryWrapper.eq(StringUtils.isNotEmpty(sysCarFault.getState()), - SysCarFault::getState, sysCarFault.getState()); - queryWrapper.like(StringUtils.isNotEmpty(sysCarFault.getCarVin()), - SysCarFault::getCarVin, sysCarFault.getCarVin()); - queryWrapper.eq(StringUtils.isNotEmpty(sysCarFault.getFaultWarn()), - SysCarFault::getFaultWarn, sysCarFault.getFaultWarn()); - return this.list(queryWrapper); - } - - /** - * 唯一 判断 - * @param sysCarFault 车辆故障 - * @return 车辆故障 - */ - @Override - public Boolean checkIdUnique(SysCarFault sysCarFault) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(SysCarFault::getId, sysCarFault.getId()); - return this.count(queryWrapper) > 0; - } - -} diff --git a/cloud-modules/cloud-modules-fault/src/main/resources/logback/dev.xml b/cloud-modules/cloud-modules-fault/src/main/resources/logback/dev.xml deleted file mode 100644 index d1b5629..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/resources/logback/dev.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - ${log.pattern} - - - - - - ${log.path}/info.log - - - - ${log.path}/info.%d{yyyy-MM-dd}.log - - 60 - - - ${log.pattern} - - - - INFO - - ACCEPT - - DENY - - - - - ${log.path}/error.log - - - - ${log.path}/error.%d{yyyy-MM-dd}.log - - 60 - - - ${log.pattern} - - - - ERROR - - ACCEPT - - DENY - - - - - - - - - - - - - - - - - - diff --git a/cloud-modules/cloud-modules-fault/src/main/resources/logback/prod.xml b/cloud-modules/cloud-modules-fault/src/main/resources/logback/prod.xml deleted file mode 100644 index 76a0d8f..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/resources/logback/prod.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - ${log.sky.pattern} - - - - - - ${log.path}/info.log - - - - ${log.path}/info.%d{yyyy-MM-dd}.log - - 60 - - - - - INFO - - ACCEPT - - DENY - - - - - ${log.path}/error.log - - - - ${log.path}/error.%d{yyyy-MM-dd}.log - - 60 - - - - - ERROR - - ACCEPT - - DENY - - - - - - - - ${log.sky.pattern} - - - - - - - - - - - - - - - - - - - - diff --git a/cloud-modules/cloud-modules-fault/src/main/resources/logback/test.xml b/cloud-modules/cloud-modules-fault/src/main/resources/logback/test.xml deleted file mode 100644 index 2cd69e4..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/resources/logback/test.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - ${log.sky.pattern} - - - - - - ${log.path}/info.log - - - - ${log.path}/info.%d{yyyy-MM-dd}.log - - 60 - - - - - INFO - - ACCEPT - - DENY - - - - - ${log.path}/error.log - - - - ${log.path}/error.%d{yyyy-MM-dd}.log - - 60 - - - - - ERROR - - ACCEPT - - DENY - - - - - - - - ${log.sky.pattern} - - - - - - - - - - - - - - - - - - - - diff --git a/cloud-modules/cloud-modules-fault/src/test/java/Text01.java b/cloud-modules/cloud-modules-fault/src/test/java/Text01.java deleted file mode 100644 index 921a9e8..0000000 --- a/cloud-modules/cloud-modules-fault/src/test/java/Text01.java +++ /dev/null @@ -1,29 +0,0 @@ -import org.simpleframework.xml.Text; - -import java.time.LocalDateTime; -import java.util.Random; - -@Text -public class Text01 { - public static void main(String[] args) { -// String prefix = "GT"; // 随机码的前缀 -// int minNumber = 1; // 随机数字的最小值 -// int maxNumber = 999; // 随机数字的最大值 -// Random random = new Random(); // 创建一个随机对象 -// // 生成一个随机数字 -// int number = random.nextInt(maxNumber - minNumber + 1) + minNumber; -// // 将数字格式化为三位字符串,不足三位前面补0 -// String formattedNumber = String.format("%03d", number); -// // 生成一个随机字母 -// String alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; -// String randomLetter = alphabets.charAt(random.nextInt(alphabets.length())) + ""; -// // 拼接前缀、随机字母和随机数字 -// String randomCode = prefix + randomLetter + formattedNumber; -// System.out.println(randomCode); // 输出随机码 -// LocalDateTime startTime = LocalDateTime.now(); // 开始时间 -// LocalDateTime endTime = startTime.plusHours(2); // 结束时间设置为开始时间后2小时 -// -// System.out.println("Start Time: " + startTime); -// System.out.println("End Time: " + endTime); - } -} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysEntController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysEntController.java index f04083d..5fc4492 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysEntController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysEntController.java @@ -112,15 +112,4 @@ public class SysEntController extends BaseController { sysEntService.removeById(entId); return Result.success(null,Constants.SUCCESS_MESSAGE); } - - - /** - * 查询状态为待审核的企业 - * @return - */ - @RequestMapping(value = "/selectOne",method = RequestMethod.POST) - @Operation(summary = "查询状态为待审核的企业",description = "根据企业状态查询待审核的企业") - public Result> selectOne(){ - return Result.success(sysEntService.selectOne()); - } } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysEntService.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysEntService.java index f305258..321b6b8 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysEntService.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysEntService.java @@ -20,6 +20,4 @@ public interface SysEntService extends IService { * @return 返回结果 */ public List selectList(EntListReq entListReq); - - List selectOne(); } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysEntServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysEntServiceImpl.java index 98c5a93..a014b52 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysEntServiceImpl.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysEntServiceImpl.java @@ -64,11 +64,4 @@ public class SysEntServiceImpl extends ServiceImpl impleme .map(EntResp::entBuild) .toList(); } - - @Override - public List selectOne() { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(EntResp::getEntStatus,0); - return this.list((IPage) queryWrapper); - } } From 97ab01bd2ac152432766568716b9bc1d108e1f2d Mon Sep 17 00:00:00 2001 From: crj <1518542096@qq.com> Date: Sat, 28 Sep 2024 15:28:08 +0800 Subject: [PATCH 06/30] =?UTF-8?q?feax:()=E4=BF=AE=E6=94=B9=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E8=A7=84=E8=8C=83(=E6=B3=A8=E9=87=8A)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/muyu/enterprise/domain/FaultLog.java | 1 + .../src/main/java/com/muyu/enterprise/domain/FaultMessage.java | 1 + .../src/main/java/com/muyu/enterprise/domain/FaultSeverity.java | 1 + .../src/main/java/com/muyu/enterprise/domain/FaultType.java | 1 + .../src/main/java/com/muyu/enterprise/domain/FaultrRule.java | 1 + .../src/main/java/com/muyu/enterprise/domain/SysCarFault.java | 1 + .../src/main/java/com/muyu/enterprise/domain/Template.java | 1 + .../src/main/java/com/muyu/enterprise/domain/TestUser.java | 1 + .../java/com/muyu/enterprise/controller/FaultLogController.java | 1 + .../com/muyu/enterprise/controller/FaultMessageController.java | 1 + .../java/com/muyu/enterprise/controller/FaultTypeController.java | 1 + .../com/muyu/enterprise/controller/FaultrRuleController.java | 1 + .../com/muyu/enterprise/controller/SysCarFaultController.java | 1 + .../src/main/java/com/muyu/enterprise/mapper/FaultLogMapper.java | 1 + .../main/java/com/muyu/enterprise/mapper/FaultMessageMapper.java | 1 + .../main/java/com/muyu/enterprise/mapper/FaultTypeMapper.java | 1 + .../main/java/com/muyu/enterprise/mapper/FaultrRuleMapper.java | 1 + .../java/com/muyu/enterprise/mapper/SysCarCompanyMapper.java | 1 + .../main/java/com/muyu/enterprise/mapper/SysCarFaultMapper.java | 1 + .../main/java/com/muyu/enterprise/service/FaultLogService.java | 1 + .../java/com/muyu/enterprise/service/FaultMessageService.java | 1 + .../main/java/com/muyu/enterprise/service/FaultTypeService.java | 1 + .../main/java/com/muyu/enterprise/service/FaultrRuleService.java | 1 + .../java/com/muyu/enterprise/service/SysCarCompanyService.java | 1 + .../java/com/muyu/enterprise/service/SysCarFaultService.java | 1 + .../src/main/java/com/muyu/enterprise/service/SysCarService.java | 1 + .../main/java/com/muyu/enterprise/service/TestUserService.java | 1 + .../com/muyu/enterprise/service/impl/FaultLogServiceImpl.java | 1 + .../muyu/enterprise/service/impl/FaultMessageServiceImpl.java | 1 + .../com/muyu/enterprise/service/impl/FaultTypeServiceImpl.java | 1 + .../com/muyu/enterprise/service/impl/FaultrRuleServiceImpl.java | 1 + .../muyu/enterprise/service/impl/SysCarCompanyServiceImpl.java | 1 + .../com/muyu/enterprise/service/impl/SysCarFaultServiceImpl.java | 1 + .../java/com/muyu/enterprise/service/impl/SysCarServiceImpl.java | 1 + .../com/muyu/enterprise/service/impl/TemplateServiceImpl.java | 1 + .../com/muyu/enterprise/service/impl/TestUserServiceImpl.java | 1 + .../src/main/java/com/muyu/system/domain/req/EntAddReq.java | 1 + .../src/main/java/com/muyu/system/domain/req/EntListReq.java | 1 + .../src/main/java/com/muyu/system/domain/req/EntUpdateReq.java | 1 + .../src/main/java/com/muyu/system/domain/resp/DeptTreeResp.java | 1 + .../src/main/java/com/muyu/system/domain/resp/EntResp.java | 1 + .../src/main/java/com/muyu/system/domain/resp/ProfileResp.java | 1 + .../main/java/com/muyu/system/domain/resp/RoleMenuTreeResp.java | 1 + .../java/com/muyu/system/domain/resp/UserDetailInfoResp.java | 1 + .../src/main/java/com/muyu/system/domain/resp/UserInfoResp.java | 1 + .../src/main/java/com/muyu/system/service/SysConfigService.java | 1 + .../src/main/java/com/muyu/system/service/SysEntService.java | 1 + .../java/com/muyu/system/service/impl/SysEntServiceImpl.java | 1 + 48 files changed, 48 insertions(+) diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultLog.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultLog.java index 71ffb89..756d1a6 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultLog.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultLog.java @@ -14,6 +14,7 @@ import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; /** + * 故障日志 * @Author: chenruijia * @Date 2024/9/28 12.23 * @Description FaultLog:故障日志 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultMessage.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultMessage.java index 825a5df..cee12ed 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultMessage.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultMessage.java @@ -13,6 +13,7 @@ import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; /** + * 站内信 * @Author: chenruijia * @Date 2024/9/28 12.23 * @Description FaultMessage:站内信 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultSeverity.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultSeverity.java index 149f6d5..cd43592 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultSeverity.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultSeverity.java @@ -10,6 +10,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; /** + * 故障等级 * @Author: chenruijia * @Date 2024/9/28 12.23 * @Description FaultSeverity:故障等级 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultType.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultType.java index be8c5f0..67fc8ad 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultType.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultType.java @@ -9,6 +9,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; /** + * 故障类型 * @Author: chenruijia * @Date 2024/9/28 12.23 * @Description FaultType:故障类型 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultrRule.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultrRule.java index b49c706..4a60df3 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultrRule.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultrRule.java @@ -8,6 +8,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import lombok.experimental.SuperBuilder; /** + * 故障规则 * @Author: chenruijia * @Date 2024/9/28 12.23 * @Description FaultrRule:故障规则 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/SysCarFault.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/SysCarFault.java index af17480..4d45a75 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/SysCarFault.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/SysCarFault.java @@ -12,6 +12,7 @@ import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; /** + * 故障表 * @Author: chenruijia * @Date 2024/9/28 12.23 * @Description SysCarFault:故障表 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/Template.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/Template.java index 0665578..0e5c9ea 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/Template.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/Template.java @@ -7,6 +7,7 @@ import lombok.Data; import lombok.NoArgsConstructor; /** + * 描述 * @ClassName Template * @Description 描述 * @Author YiBo.Liu diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/TestUser.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/TestUser.java index 9f420e0..138c6fa 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/TestUser.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/TestUser.java @@ -9,6 +9,7 @@ import lombok.Data; import lombok.NoArgsConstructor; /** + * 测试用户实体类 * @Author: zi run * @Date 2024/9/21 0:07 * @Description 测试用户实体类 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultLogController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultLogController.java index ea58d5d..48fea67 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultLogController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultLogController.java @@ -12,6 +12,7 @@ import java.util.Arrays; import java.util.List; /** + * 故障日志控制层 * @Author: chenruijia * @Date 2024/9/28 11:58 * @Description FaultLogController:故障日志控制层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultMessageController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultMessageController.java index c22aed5..c7539ab 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultMessageController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultMessageController.java @@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; /** + * 站内信控制层 * @Author: chenruijia * @Date 2024/9/28 11:58 * @Description FaultMessageController:站内信控制层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultTypeController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultTypeController.java index 8878297..f8c78e9 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultTypeController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultTypeController.java @@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; /** + * 故障类型控制层 * @Author: chenruijia * @Date 2024/9/28 11:58 * @Description FaultTypeController:故障类型控制层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultrRuleController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultrRuleController.java index 9a539c6..a3958f1 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultrRuleController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultrRuleController.java @@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.*; import java.util.Arrays; import java.util.List; /** + * 故障的规则控制层 * @Author: chenruijia * @Date 2024/9/28 11:58 * @Description FaultrRuleController:故障的规则控制层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarFaultController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarFaultController.java index 4534256..2506bd4 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarFaultController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarFaultController.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.Random; /** + * 故障管理控制层 * @Author: chenruijia * @Date 2024/9/28 11:58 * @Description SysCarFaultController:故障管理控制层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultLogMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultLogMapper.java index e7970f5..ad65839 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultLogMapper.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultLogMapper.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.enterprise.domain.FaultLog; import org.apache.ibatis.annotations.Mapper; /** + * 故障日志持久层 * @Author: chenruijia * @Date 2024/9/28 12.17 * @Description FaultLogMapper:故障日志持久层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultMessageMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultMessageMapper.java index 5e42fac..b570c5a 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultMessageMapper.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultMessageMapper.java @@ -5,6 +5,7 @@ import com.muyu.enterprise.domain.FaultMessage; import org.apache.ibatis.annotations.Mapper; /** + * 站内信持久层 * @Author: chenruijia * @Date 2024/9/28 12.17 * @Description FaultMessageMapper:站内信持久层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultTypeMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultTypeMapper.java index 494e549..d5e6366 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultTypeMapper.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultTypeMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.enterprise.domain.FaultType; import org.apache.ibatis.annotations.Mapper; /** + * 故障类型持久层 * @Author: chenruijia * @Date 2024/9/28 12.17 * @Description FaultTypeMapper:故障类型持久层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultrRuleMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultrRuleMapper.java index 72e8cec..ea21d00 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultrRuleMapper.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultrRuleMapper.java @@ -5,6 +5,7 @@ import com.muyu.enterprise.domain.FaultrRule; import org.apache.ibatis.annotations.Mapper; /** + * 故障规则持久层 * @Author: chenruijia * @Date 2024/9/28 12.17 * @Description FaultrRuleMapper:故障规则持久层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarCompanyMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarCompanyMapper.java index b2ec077..547f9a0 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarCompanyMapper.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarCompanyMapper.java @@ -5,6 +5,7 @@ import com.muyu.enterprise.domain.CarCompany; /** + * 配置mybatis配置 * @author zmw * @description: 配置mybatis配置 * @Date 2023-11-13 上午 10:05 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarFaultMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarFaultMapper.java index ce8fbef..c1cc3ea 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarFaultMapper.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarFaultMapper.java @@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Mapper; /** + * 故障管理持久层 * @Author: chenruijia * @Date 2024/9/28 12.17 * @Description SysCarFaultMapper:故障管理持久层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultLogService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultLogService.java index 2656c13..2ba7cf8 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultLogService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultLogService.java @@ -6,6 +6,7 @@ import com.muyu.enterprise.domain.FaultLog; import java.util.List; /** + * 故障日志业务层 * @Author: chenruijia * @Date 2024/9/28 12.19 * @Description FaultLogService:故障日志业务层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultMessageService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultMessageService.java index 8a4fe7c..f012de9 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultMessageService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultMessageService.java @@ -5,6 +5,7 @@ import com.muyu.enterprise.domain.FaultMessage; import java.util.List; /** + * 站内信业务层 * @Author: chenruijia * @Date 2024/9/28 12.19 * @Description FaultMessageService:站内信业务层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultTypeService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultTypeService.java index 62874ec..c5f88fd 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultTypeService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultTypeService.java @@ -5,6 +5,7 @@ import com.muyu.enterprise.domain.FaultType; import java.util.List; /** + * 故障类型业务层 * @Author: chenruijia * @Date 2024/9/28 12.19 * @Description FaultTypeService:故障类型业务层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultrRuleService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultrRuleService.java index 1d4069c..4851358 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultrRuleService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultrRuleService.java @@ -5,6 +5,7 @@ import com.muyu.enterprise.domain.FaultrRule; import java.util.List; /** + * 故障规则业务层 * @Author: chenruijia * @Date 2024/9/28 12.19 * @Description FaultrRuleService:故障规则业务层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarCompanyService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarCompanyService.java index bd2e3a5..486504d 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarCompanyService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarCompanyService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.enterprise.domain.CarCompany; /** + * 配置plus业务层 * @author zmw * @description: 配置plus业务层 * @Date 2023-11-13 上午 10:06 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarFaultService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarFaultService.java index 0b24801..295082f 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarFaultService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarFaultService.java @@ -5,6 +5,7 @@ import com.muyu.enterprise.domain.SysCarFault; import java.util.List; /** + * 故障管理业务层 * @Author: chenruijia * @Date 2024/9/28 12.19 * @Description SysCarFaultService:故障管理业务层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarService.java index 9b0bed9..7c0ffd0 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarService.java @@ -6,6 +6,7 @@ import com.muyu.enterprise.domain.vo.CarVO; import java.util.List; /** + * 配置plus业务层 * @author zmw * @description: 配置plus业务层 * @Date 2023-11-13 上午 10:06 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/TestUserService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/TestUserService.java index fb49bb7..ccb1189 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/TestUserService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/TestUserService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.enterprise.domain.TestUser; /** + * 测试用户也业务层 * @Author: zi run * @Date 2024/9/21 0:10 * @Description 测试用户也业务层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultLogServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultLogServiceImpl.java index 69c068e..100254a 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultLogServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultLogServiceImpl.java @@ -11,6 +11,7 @@ import org.springframework.util.Assert; import java.util.List; /** + * 故障日志业务实现层 * @Author: chenruijia * @Date 2024/9/28 12.19 * @Description FaultLogServiceImpl:故障日志业务实现层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultMessageServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultMessageServiceImpl.java index 4c82369..1031280 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultMessageServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultMessageServiceImpl.java @@ -11,6 +11,7 @@ import org.springframework.stereotype.Service; import java.util.List; /** + * 站内信业务实现层 * @Author: chenruijia * @Date 2024/9/28 12.19 * @Description FaultMessageServiceImpl:站内信业务实现层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultTypeServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultTypeServiceImpl.java index 88b60d7..b485eb0 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultTypeServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultTypeServiceImpl.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Service; import java.util.List; /** + * 故障类型业务实现层 * @Author: chenruijia * @Date 2024/9/28 12.19 * @Description FaultTypeServiceImpl:故障类型业务实现层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultrRuleServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultrRuleServiceImpl.java index 942b19a..25a56b8 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultrRuleServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultrRuleServiceImpl.java @@ -11,6 +11,7 @@ import org.springframework.util.Assert; import java.util.List; /** + * 故障规则业务实现层 * @Author: chenruijia * @Date 2024/9/28 12.19 * @Description FaultrRuleServiceImpl:故障规则业务实现层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarCompanyServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarCompanyServiceImpl.java index 8e04629..3f4b389 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarCompanyServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarCompanyServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** + * 配置plus业务实现层 * @author zmw * @description: 配置plus业务实现层 * @Date 2023-11-13 上午 10:06 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarFaultServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarFaultServiceImpl.java index 9b0708f..e752002 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarFaultServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarFaultServiceImpl.java @@ -13,6 +13,7 @@ import org.springframework.util.Assert; /** + * 故障管理业务实现层 * @Author: chenruijia * @Date 2024/9/28 12.19 * @Description SysCarFaultServiceImpl:故障管理业务实现层 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarServiceImpl.java index ce22c99..7ac9f4e 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarServiceImpl.java @@ -13,6 +13,7 @@ import org.springframework.stereotype.Service; import java.util.List; /** + * 配置plus业务实现层 * @author zmw * @description: 配置plus业务实现层 * @Date 2023-11-13 上午 10:06 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/TemplateServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/TemplateServiceImpl.java index a8f2857..0bede33 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/TemplateServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/TemplateServiceImpl.java @@ -8,6 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** + * 描述 * @ClassName TemplateServiceImpl * @Description 描述 * @Author YiBo.Liu diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/TestUserServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/TestUserServiceImpl.java index 52000ce..5ccb19b 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/TestUserServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/TestUserServiceImpl.java @@ -8,6 +8,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; /** + * 测试用户业务实现层 * @Author: zi run * @Date 2024/9/21 0:10 * @Description 测试用户业务实现层 diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntAddReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntAddReq.java index f60cbb0..952f8ca 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntAddReq.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntAddReq.java @@ -11,6 +11,7 @@ import lombok.Data; import lombok.NoArgsConstructor; /** + * 企业添加请求对象 * @Author: zi run * @Date 2024/9/26 11:51 * @Description 企业添加请求对象 diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntListReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntListReq.java index f281352..32e97e5 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntListReq.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntListReq.java @@ -8,6 +8,7 @@ import lombok.Data; import lombok.NoArgsConstructor; /** + * 企业信息列表请求对象 * @Author: zi run * @Date 2024/9/26 0:49 * @Description 企业信息列表请求对象 diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntUpdateReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntUpdateReq.java index 52590b5..0f0b198 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntUpdateReq.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/EntUpdateReq.java @@ -10,6 +10,7 @@ import lombok.NoArgsConstructor; import java.util.function.Supplier; /** + * 企业修改请求对象 * @Author: zi run * @Date 2024/9/26 14:34 * @Description 企业修改请求对象 diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/DeptTreeResp.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/DeptTreeResp.java index cfb79ea..48a3664 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/DeptTreeResp.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/DeptTreeResp.java @@ -10,6 +10,7 @@ import lombok.experimental.SuperBuilder; import java.util.List; /** + * 部门树返回结果集 * @author zmw * @description: 部门树返回结果集 * @Date 2023-6-19 下午 02:52 diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/EntResp.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/EntResp.java index 350a414..5597b4d 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/EntResp.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/EntResp.java @@ -8,6 +8,7 @@ import lombok.Data; import lombok.NoArgsConstructor; /** + * 企业管理响应对象 * @Author: zi run * @Date 2024/9/26 0:42 * @Description 企业管理响应对象 diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/ProfileResp.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/ProfileResp.java index ac4939b..6ad0372 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/ProfileResp.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/ProfileResp.java @@ -7,6 +7,7 @@ import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; /** + * 个人信息模型对象 * @author zmw * @description: 个人信息模型对象 * @Date 2023-6-19 下午 02:05 diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/RoleMenuTreeResp.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/RoleMenuTreeResp.java index a61b8b3..8c24b0b 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/RoleMenuTreeResp.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/RoleMenuTreeResp.java @@ -9,6 +9,7 @@ import lombok.experimental.SuperBuilder; import java.util.List; /** + * 角色返回菜单树 * @author zmw * @description: 角色返回菜单树 * @Date 2023-6-19 下午 02:40 diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/UserDetailInfoResp.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/UserDetailInfoResp.java index 0778a0d..b9e3c2d 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/UserDetailInfoResp.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/UserDetailInfoResp.java @@ -10,6 +10,7 @@ import lombok.experimental.SuperBuilder; import java.util.List; /** + * 用户详细信息 * @author zmw * @description: 用户详细信息 * @Date 2023-6-19 下午 02:45 diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/UserInfoResp.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/UserInfoResp.java index 1c7f99f..617a814 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/UserInfoResp.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/UserInfoResp.java @@ -9,6 +9,7 @@ import lombok.experimental.SuperBuilder; import java.util.Set; /** + * 用户信息结果集 * @author zmw * @description: 用户信息结果集 * @Date 2023-6-19 下午 02:42 diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysConfigService.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysConfigService.java index 8da2c4c..dde7c7d 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysConfigService.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysConfigService.java @@ -6,6 +6,7 @@ import com.muyu.system.domain.SysConfig; import java.util.List; /** + * 配置plus业务层 * @author zmw * @description: 配置plus业务层 * @Date 2023-11-13 上午 10:06 diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysEntService.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysEntService.java index 321b6b8..cee3c65 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysEntService.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysEntService.java @@ -8,6 +8,7 @@ import com.muyu.system.domain.resp.EntResp; import java.util.List; /** + * 企业管理业务层 * @Author: zi run * @Date 2024/9/26 0:14 * @Description 企业管理业务层 diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysEntServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysEntServiceImpl.java index a014b52..acc38f8 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysEntServiceImpl.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysEntServiceImpl.java @@ -15,6 +15,7 @@ import org.springframework.stereotype.Service; import java.util.List; /** + * 企业管理业务实现层 * @Author: zi run * @Date 2024/9/26 0:15 * @Description 企业管理业务实现层 From af712e39373bc974aec448235d1f01d5cd78cbe3 Mon Sep 17 00:00:00 2001 From: crj <1518542096@qq.com> Date: Sat, 28 Sep 2024 15:33:46 +0800 Subject: [PATCH 07/30] =?UTF-8?q?feax:()=E4=BF=AE=E6=94=B9=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E8=A7=84=E8=8C=83(=E6=B3=A8=E9=87=8A)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/muyu/common/system/domain/SysEnt.java | 1 + .../src/main/java/com/muyu/enterprise/domain/CarCompany.java | 1 + .../src/main/java/com/muyu/enterprise/domain/FaultLog.java | 2 ++ .../src/main/java/com/muyu/enterprise/domain/FaultMessage.java | 2 ++ .../src/main/java/com/muyu/enterprise/domain/FaultSeverity.java | 2 ++ .../src/main/java/com/muyu/enterprise/domain/FaultType.java | 2 ++ .../src/main/java/com/muyu/enterprise/domain/FaultrRule.java | 2 ++ .../src/main/java/com/muyu/enterprise/domain/SysCarFault.java | 2 ++ .../src/main/java/com/muyu/system/domain/resp/AuthRoleResp.java | 1 + 9 files changed, 15 insertions(+) diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysEnt.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysEnt.java index cdead09..38a359f 100644 --- a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysEnt.java +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysEnt.java @@ -11,6 +11,7 @@ import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; /** + * 企业表 * @Author: zi run * @Date 2024/9/25 22:38 * @Description 企业表 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarCompany.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarCompany.java index 0acce79..f02909d 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarCompany.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarCompany.java @@ -3,6 +3,7 @@ package com.muyu.enterprise.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultLog.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultLog.java index 756d1a6..f9ca93d 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultLog.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultLog.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; 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.EqualsAndHashCode; @@ -25,6 +26,7 @@ import java.util.Date; @NoArgsConstructor @TableName(value = "fault_log",autoResultMap = true) @EqualsAndHashCode(callSuper = true) +@Tag(name = "故障日志") public class FaultLog extends BaseEntity { /** * 日志ID diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultMessage.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultMessage.java index cee12ed..41ace35 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultMessage.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultMessage.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; 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; @@ -23,6 +24,7 @@ import java.util.Date; @AllArgsConstructor @NoArgsConstructor @TableName(value = "fault_message",autoResultMap = true) +@Tag(name = "站内信") public class FaultMessage { /** * 站内信ID diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultSeverity.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultSeverity.java index cd43592..31b67ab 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultSeverity.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultSeverity.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; 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; @@ -20,6 +21,7 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @NoArgsConstructor @TableName(value = "fault_severity",autoResultMap = true) +@Tag(name = "故障等级") public class FaultSeverity extends BaseEntity { /** * 等级ID diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultType.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultType.java index 67fc8ad..56f702f 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultType.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultType.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; 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; @@ -19,6 +20,7 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @NoArgsConstructor @TableName(value = "fault_type",autoResultMap = true) +@Tag(name = "故障类型") public class FaultType{ /** * 故障类型ID diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultrRule.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultrRule.java index 4a60df3..8d0cb89 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultrRule.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultrRule.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; 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.*; import lombok.experimental.SuperBuilder; /** @@ -19,6 +20,7 @@ import lombok.experimental.SuperBuilder; @NoArgsConstructor @TableName(value = "fault_rule",autoResultMap = true) @EqualsAndHashCode(callSuper = true) +@Tag(name = "故障规则") public class FaultrRule extends BaseEntity { /** * 故障规则ID diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/SysCarFault.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/SysCarFault.java index 4d45a75..25a3957 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/SysCarFault.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/SysCarFault.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; 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.EqualsAndHashCode; @@ -23,6 +24,7 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @TableName(value = "sys_car_fault", autoResultMap = true) @EqualsAndHashCode(callSuper = true) +@Tag(name = "故障表") public class SysCarFault extends BaseEntity { /** * 自增主键 diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/AuthRoleResp.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/AuthRoleResp.java index 9c47e87..0e7a04b 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/AuthRoleResp.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/AuthRoleResp.java @@ -11,6 +11,7 @@ import lombok.experimental.SuperBuilder; import java.util.List; /** + * 授权角色返回结果集 * @author zmw * @description: 授权角色返回结果集 * @Date 2023-6-19 下午 02:50 From d0541196928437dff337f8ab621639e084b8de40 Mon Sep 17 00:00:00 2001 From: LQS <2506203757@qq.com> Date: Sat, 28 Sep 2024 16:30:58 +0800 Subject: [PATCH 08/30] =?UTF-8?q?fate():=E4=BF=AE=E6=94=B9=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JavaSample-tcp1061513671883/.lck | 0 cloud-auth/src/main/resources/bootstrap.yml | 2 +- .../src/main/resources/bootstrap.yml | 4 +- .../domain/car/MessageTemplate.java | 59 ++++++ .../enterprise/domain/car/MessageValue.java | 83 ++++++++ .../muyu/enterprise/domain/car/Vehicle.java | 145 ++++++++++++++ .../enterprise/domain/car/VehicleType.java | 50 +++++ .../domain/dateBase/ElectronicFence.java | 127 ++++++++++++ .../domain/dateBase/ElectronicFenceGroup.java | 118 +++++++++++ .../domain/dateBase/FenceGroupMid.java | 36 ++++ .../domain/req/ElectroicFenceAddReq.java | 78 ++++++++ .../domain/req/ElectroicFenceListReq.java | 68 +++++++ .../domain/req/ElectroicFenceUpdReq.java | 73 +++++++ .../req/ElectronicFenceGroupAddReq.java | 64 ++++++ .../req/ElectronicFenceGroupListReq.java | 59 ++++++ .../req/ElectronicFenceGroupUpdReq.java | 69 +++++++ .../domain/req/FenceAndGroupBoundReq.java | 39 ++++ .../enterprise/domain/req/FenceWayReq.java | 24 +++ .../domain/req/car/MessageTemplateAddReq.java | 35 ++++ .../domain/req/car/MessageValueAddReq.java | 55 ++++++ .../domain/req/car/MessageValueReq.java | 37 ++++ .../domain/req/car/VehicleAddReq.java | 101 ++++++++++ .../domain/req/car/VehicleManageReq.java | 45 +++++ .../domain/req/car/VehicleUpdReq.java | 100 ++++++++++ .../domain/resp/ElectronicFenceGroupResp.java | 64 ++++++ .../domain/resp/ElectronicFenceResp.java | 71 +++++++ .../domain/resp/GroupFenceListresp.java | 57 ++++++ .../resp/car/MessageTemplateListResp.java | 56 ++++++ .../domain/resp/car/MessageValueListResp.java | 68 +++++++ .../domain/resp/car/VehicleManageResp.java | 75 +++++++ .../domain/utils/ElectricFenceModel.java | 75 +++++++ .../domain/utils/ElectricFenceResultTmp.java | 53 +++++ .../domain/utils/ElectronicFenceResult.java | 54 +++++ .../domain/utils/ElectronicFenceSetting.java | 63 ++++++ .../domain/utils/VehicleConstant.java | 28 +++ .../cloud-modules-enterprise-server/pom.xml | 13 +- .../CloudEnterpriseApplication.java | 3 + .../com/muyu/enterprise/MQTT/ClientMQTT.java | 74 +++++++ .../java/com/muyu/enterprise/MQTT/Demo.java | 58 ++++++ .../enterprise/MQTT/MQTTReceiveCallback.java | 69 +++++++ .../muyu/enterprise/MQTT/MyMqttClient.java | 187 ++++++++++++++++++ .../muyu/enterprise/MQTT/PushCallback.java | 52 +++++ .../com/muyu/enterprise/MQTT/ServerMQTT.java | 113 +++++++++++ .../controller/CarMessageController.java | 4 +- .../controller/ElectronicFenceController.java | 145 ++++++++++++++ .../ElectronicFenceGroupController.java | 132 +++++++++++++ .../car/MessageTemplateController.java | 85 ++++++++ .../car/MessageValueController.java | 109 ++++++++++ .../controller/car/VehicleController.java | 130 ++++++++++++ .../controller/car/VehicleTypeController.java | 48 +++++ .../mapper/ElectronicFenceGroupMapper.java | 20 ++ .../mapper/ElectronicFenceMapper.java | 22 +++ .../mapper/FenceGroupMidMapper.java | 20 ++ .../mapper/car/MessageTemplateMapper.java | 19 ++ .../mapper/car/MessageValueMapper.java | 37 ++++ .../enterprise/mapper/car/VehicleMapper.java | 31 +++ .../mapper/car/VehicleTypeMapper.java | 21 ++ .../service/ElectronicFenceGroupService.java | 28 +++ .../service/ElectronicFenceService.java | 81 ++++++++ .../service/FenceGroupMidService.java | 30 +++ .../service/car/MessageTemplateService.java | 20 ++ .../service/car/MessageValueService.java | 40 ++++ .../service/car/VehicleService.java | 30 +++ .../service/car/VehicleTypeService.java | 19 ++ .../impl/ElectronicFenceGroupServiceImpl.java | 93 +++++++++ .../impl/ElectronicFenceServiceImpl.java | 154 +++++++++++++++ .../impl/FenceGroupMidServiceImpl.java | 60 ++++++ .../carImpl/MessageTemplateServiceImpl.java | 27 +++ .../impl/carImpl/MessageValueServiceImpl.java | 141 +++++++++++++ .../impl/carImpl/VehicleServiceImpl.java | 44 +++++ .../impl/carImpl/VehicleTypeServiceImpl.java | 24 +++ .../src/main/resources/bootstrap.yml | 4 +- .../mapper/car/VehicleManageMapper.xml | 34 ++++ .../mapper/car/VehicleValueMapper.xml | 26 +++ .../src/main/resources/bootstrap.yml | 2 +- .../src/main/resources/bootstrap.yml | 2 +- .../src/main/resources/bootstrap.yml | 4 +- .../src/main/resources/bootstrap.yml | 2 +- 78 files changed, 4379 insertions(+), 13 deletions(-) create mode 100644 JavaSample-tcp1061513671883/.lck create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/car/MessageTemplate.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/car/MessageValue.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/car/Vehicle.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/car/VehicleType.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/dateBase/ElectronicFence.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/dateBase/ElectronicFenceGroup.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/dateBase/FenceGroupMid.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectroicFenceAddReq.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectroicFenceListReq.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectroicFenceUpdReq.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectronicFenceGroupAddReq.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectronicFenceGroupListReq.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectronicFenceGroupUpdReq.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/FenceAndGroupBoundReq.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/FenceWayReq.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/MessageTemplateAddReq.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/MessageValueAddReq.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/MessageValueReq.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/VehicleAddReq.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/VehicleManageReq.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/VehicleUpdReq.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/ElectronicFenceGroupResp.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/ElectronicFenceResp.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/GroupFenceListresp.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/car/MessageTemplateListResp.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/car/MessageValueListResp.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/car/VehicleManageResp.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/utils/ElectricFenceModel.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/utils/ElectricFenceResultTmp.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/utils/ElectronicFenceResult.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/utils/ElectronicFenceSetting.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/utils/VehicleConstant.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/ClientMQTT.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/Demo.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/MQTTReceiveCallback.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/MyMqttClient.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/PushCallback.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/ServerMQTT.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/ElectronicFenceController.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/ElectronicFenceGroupController.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/MessageTemplateController.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/MessageValueController.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/VehicleController.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/VehicleTypeController.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/ElectronicFenceGroupMapper.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/ElectronicFenceMapper.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FenceGroupMidMapper.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/MessageTemplateMapper.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/MessageValueMapper.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/VehicleMapper.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/VehicleTypeMapper.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/ElectronicFenceGroupService.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/ElectronicFenceService.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FenceGroupMidService.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/MessageTemplateService.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/MessageValueService.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/VehicleService.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/VehicleTypeService.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/ElectronicFenceGroupServiceImpl.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/ElectronicFenceServiceImpl.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FenceGroupMidServiceImpl.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/MessageTemplateServiceImpl.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/MessageValueServiceImpl.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleServiceImpl.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleTypeServiceImpl.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/car/VehicleManageMapper.xml create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/car/VehicleValueMapper.xml diff --git a/JavaSample-tcp1061513671883/.lck b/JavaSample-tcp1061513671883/.lck new file mode 100644 index 0000000..e69de29 diff --git a/cloud-auth/src/main/resources/bootstrap.yml b/cloud-auth/src/main/resources/bootstrap.yml index eeaceee..dfc8e68 100644 --- a/cloud-auth/src/main/resources/bootstrap.yml +++ b/cloud-auth/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: lqs # Spring spring: application: diff --git a/cloud-gateway/src/main/resources/bootstrap.yml b/cloud-gateway/src/main/resources/bootstrap.yml index 7723b63..64e306a 100644 --- a/cloud-gateway/src/main/resources/bootstrap.yml +++ b/cloud-gateway/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: lqs # Spring spring: @@ -60,4 +60,4 @@ spring: groupId: DEFAULT_GROUP namespace: ${nacos.namespace} data-type: json - rule-type: gw-flow \ No newline at end of file + rule-type: gw-flow diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/car/MessageTemplate.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/car/MessageTemplate.java new file mode 100644 index 0000000..70b6357 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/car/MessageTemplate.java @@ -0,0 +1,59 @@ +package com.muyu.enterprise.domain.car; + + +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.enterprise.domain.req.car.MessageTemplateAddReq; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 报文模版实体类 + * @Author:李庆帅 + * @Package:com.muyu.car.domain + * @Project:cloud-server + * @name:MessageTemplate + * @Date:2024/9/26 20:27 + * @Description: 报文模版 + */ + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName(value = "message_template", autoResultMap = true) +public class MessageTemplate extends BaseEntity +{ + /** + * 报文模版主键 + */ + @TableId(value = "message_template_id", type = IdType.AUTO) + private String messageTemplateId; + + /** + * 报文模版名称 + */ + private String messageTemplateName; + + /** + * 报文模版描述 + */ + private String messageTemplateDescribe; + + /** + * 报文模版添加数据转换 + * @param messageTemplateAddReq + * @return + */ + public static MessageTemplate addBuild(MessageTemplateAddReq messageTemplateAddReq){ + return MessageTemplate.builder() + .messageTemplateName(messageTemplateAddReq.getMessageTemplateName()) + .messageTemplateDescribe(messageTemplateAddReq.getMessageTemplateDescribe()) + .build(); + } + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/car/MessageValue.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/car/MessageValue.java new file mode 100644 index 0000000..c8e6745 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/car/MessageValue.java @@ -0,0 +1,83 @@ +package com.muyu.enterprise.domain.car; + + +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.enterprise.domain.req.car.MessageValueAddReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @Author:李庆帅 + * @Package:com.muyu.car.domain + * @Project:cloud-server + * @name:MessageValue + * @Date:2024/9/26 20:29 + * + * 报文类型对象 message_type + * + */ + +/** + * 报文类型实体类 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName(value = "message_value", autoResultMap = true) +public class MessageValue extends BaseEntity +{ + /** + * 报文数据主键 + */ + @TableId(value = "message_id", type = IdType.AUTO) + private Long messageId; + + /** + * 模版主键 + */ + private Long templateId; + + /** + * 报文类别 + */ + private String messageType; + + /** + * 报文编码 + */ + private String messageCode; + + /** + * 报文标签 + */ + private String messageLabel; + + /** + * 起始下标 + */ + private Integer messageStartIndex; + + /** + * 终止下标 + */ + private Integer messageEndIndex; + + public static MessageValue addBuild(MessageValueAddReq messageValueAddReq){ + return MessageValue.builder() + .templateId(messageValueAddReq.getTemplateId()) + .messageType(messageValueAddReq.getMessageType()) + .messageCode(messageValueAddReq.getMessageCode()) + .messageLabel(messageValueAddReq.getMessageLabel()) + .messageStartIndex(messageValueAddReq.getMessageStartIndex()) + .messageEndIndex(messageValueAddReq.getMessageEndIndex()) + .build(); + } + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/car/Vehicle.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/car/Vehicle.java new file mode 100644 index 0000000..aebaff2 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/car/Vehicle.java @@ -0,0 +1,145 @@ +package com.muyu.enterprise.domain.car; + + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +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.enterprise.domain.req.car.VehicleAddReq; +import com.muyu.enterprise.domain.req.car.VehicleUpdReq; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.Date; +import java.util.function.Supplier; + + +/** + * 车辆信息实体类 + * @Author:李庆帅 + * @Package:com.muyu.car.domain + * @Project:cloud-server + * @name:Vehicle + * @Date:2024/9/26 20:30 + * @Description: 车辆信息实体类 + */ + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@TableName(value = "vehicle", autoResultMap = true) +public class Vehicle extends BaseEntity +{ + /** + * 车辆主键 + */ + @Excel(name = "车辆主键", cellType = ColumnType.NUMERIC) + @TableId(value = "vehicle_id", type = IdType.AUTO) + private Long vehicleId; + + /** + * 车牌号 + */ + @Excel(name = "车牌号") + private String licenceNumber; + + /** + * 车辆颜色 + */ + @Excel(name = "车辆颜色") + private String vehicleColor; + + /** + * 车辆VIN + */ + @Excel(name = "车辆VIN") + private String vehicleVin; + + /** + * 车辆类型外键 + */ + @Excel(name = "车辆类型外键") + private Long vehicleTypeId; + + /** + * 车辆品牌 + */ + @Excel(name = "车辆品牌") + private String vehicleBrand; + + /** + * 车辆型号 + */ + @Excel(name = "车辆型号") + private String vehicleModel; + + /** + * 车辆行驶证 + */ + @Excel(name = "车辆行驶证") + private String vehicleLicense; + + /** + * 行驶证到期日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date vehicleLicenseDueDate; + + /** + * 车辆状态 + */ + @Excel(name = "车辆状态") + private String vehicleStatus; + + /** + * 车辆所属企业外键 + */ + private Long companyId; + + /** + * 电子围栏外键 + */ + private Integer fenceGroupId; + + public static Vehicle addBuild(VehicleAddReq vehicleAddReq){ + return Vehicle.builder() + .licenceNumber(vehicleAddReq.getLicenceNumber()) + .vehicleColor(vehicleAddReq.getVehicleColor()) + .vehicleVin(vehicleAddReq.getVehicleVin()) + .vehicleTypeId(vehicleAddReq.getVehicleTypeId()) + .vehicleBrand(vehicleAddReq.getVehicleBrand()) + .vehicleModel(vehicleAddReq.getVehicleModel()) + .vehicleLicense(vehicleAddReq.getVehicleLicense()) + .vehicleLicenseDueDate(vehicleAddReq.getVehicleLicenseDueDate()) + .vehicleStatus(vehicleAddReq.getVehicleStatus()) + .companyId(vehicleAddReq.getCompanyId()) + .fenceGroupId(vehicleAddReq.getFenceGroupId()) + .build(); + } + + public static Vehicle updBuild(VehicleUpdReq vehicleUpdReq, Supplier idSupplier){ + return Vehicle.builder() + .vehicleId(idSupplier.get()) + .licenceNumber(vehicleUpdReq.getLicenceNumber()) + .vehicleColor(vehicleUpdReq.getVehicleColor()) + .vehicleVin(vehicleUpdReq.getVehicleVin()) + .vehicleTypeId(vehicleUpdReq.getVehicleTypeId()) + .vehicleBrand(vehicleUpdReq.getVehicleBrand()) + .vehicleModel(vehicleUpdReq.getVehicleModel()) + .vehicleLicense(vehicleUpdReq.getVehicleLicense()) + .vehicleLicenseDueDate(vehicleUpdReq.getVehicleLicenseDueDate()) + .vehicleStatus(vehicleUpdReq.getVehicleStatus()) + .companyId(vehicleUpdReq.getCompanyId()) + .fenceGroupId(vehicleUpdReq.getFenceGroupId()) + .build(); + } + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/car/VehicleType.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/car/VehicleType.java new file mode 100644 index 0000000..2b7c9c4 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/car/VehicleType.java @@ -0,0 +1,50 @@ +package com.muyu.enterprise.domain.car; + + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +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 lombok.*; +import lombok.experimental.SuperBuilder; + +import java.util.Date; + + +/** + * 车辆类型实体类 + * @Author:李庆帅 + * @Package:com.muyu.car.domain + * @Project:cloud-server + * @name:VehicleType + * @Date:2024/9/26 20:31 + * @Description: 车辆类型实体类 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@TableName(value = "vehicle_type", autoResultMap = true) +public class VehicleType +{ + /** + * 车辆类型主键 + */ + + @TableId(value = "vehicle_type_id", type = IdType.AUTO) + private Long vehicleTypeId; + + /** + * 车辆类型名称 + */ + private String vehicleTypeName; + + /** + * 报文模版外键 + */ + private Long messageTemplateId; + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/dateBase/ElectronicFence.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/dateBase/ElectronicFence.java new file mode 100644 index 0000000..21890c5 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/dateBase/ElectronicFence.java @@ -0,0 +1,127 @@ +package com.muyu.enterprise.domain.dateBase; + +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.enterprise.domain.req.ElectroicFenceAddReq; +import com.muyu.enterprise.domain.req.ElectroicFenceUpdReq; +import com.muyu.enterprise.domain.resp.ElectronicFenceResp; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.function.Supplier; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.domain + * @Project:cloud-server + * @name:ElectronicFence + * @Date:2024/9/17 16:34 + */ + +/** + * 电子围栏实体类 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@SuperBuilder +@TableName(value = "electronic_fence",autoResultMap = true) +public class ElectronicFence extends BaseEntity { + + /** + * 主键id + */ + @TableId(value = "id",type = IdType.AUTO) + private Long id; + + /** + * 围栏名称 + */ + + private String name; + + /** + * 围栏类型 + */ + + private String fenceType; + + /** + *经纬度信息 + */ + + private String longitudeLatitude; + + /** + * 电子围栏状态(正常,停用) + */ + + private String status; + +// /** +// * 电子围栏的开始时间 +// */ +// +// private Date startTime; +// /** +// * 电子围栏的结束时间 +// */ +// private Date endTime; + + /** + * 描述信息 + */ + + private String fenceDesc; + + public static ElectronicFenceResp bullerResp(ElectronicFence electronicFence){ + + return ElectronicFenceResp.builder() + .id(electronicFence.getId()) + .name(electronicFence.getName()) + .status(electronicFence.getStatus()) + .fenceType(electronicFence.getFenceType()) + .longitudeLatitude(electronicFence.getLongitudeLatitude()) + .desc(electronicFence.getFenceDesc()) + .build(); + } + + + public static ElectronicFence buildElectroicAdd(ElectroicFenceAddReq electroicFenceAddReq){ + + return ElectronicFence.builder() + .name(electroicFenceAddReq.getName()) + .fenceDesc(electroicFenceAddReq.getFenceDesc()) + .status(electroicFenceAddReq.getStatus()) + .longitudeLatitude(electroicFenceAddReq.getLongitudeLatitude()) + .fenceType(electroicFenceAddReq.getFenceType()) + .build(); + + + } + + public static ElectronicFence buildByElectronicUpd(ElectroicFenceUpdReq electroicFenceUpdReq, Supplier longSupplier){ + + return ElectronicFence.builder() + .id(longSupplier.get()) + .name(electroicFenceUpdReq.getName()) + .status(electroicFenceUpdReq.getStatus()) + .fenceDesc(electroicFenceUpdReq.getFenceDesc()) + .longitudeLatitude(electroicFenceUpdReq.getLongitudeLatitude()) + .build(); + + } + + + + + + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/dateBase/ElectronicFenceGroup.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/dateBase/ElectronicFenceGroup.java new file mode 100644 index 0000000..4919a43 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/dateBase/ElectronicFenceGroup.java @@ -0,0 +1,118 @@ +package com.muyu.enterprise.domain.dateBase; + +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.enterprise.domain.req.ElectronicFenceGroupAddReq; +import com.muyu.enterprise.domain.req.ElectronicFenceGroupUpdReq; +import com.muyu.enterprise.domain.resp.ElectronicFenceGroupResp; +import com.muyu.enterprise.domain.resp.GroupFenceListresp; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.function.Supplier; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.domain + * @Project:cloud-server + * @name:ElectronicFenceGroup + * @Date:2024/9/18 11:14 + */ + +/** + * 围栏组实体类 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +@TableName(value = "electronic_fence_group",autoResultMap = true) +public class ElectronicFenceGroup extends BaseEntity { + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.AUTO) + private Long id; + /** + * 围栏组优先级 + */ + private Integer priority; + /** + * 围栏组名称 + */ + private String groupName; + /** + * 围栏组类型 + */ + private String groupType; + + /** + * 启用状态 + */ + private String status; + + + public static GroupFenceListresp buildGroupFence(ElectronicFenceGroup electronicFenceGroup){ + + return GroupFenceListresp.builder() + .id(electronicFenceGroup.getId()) + .groupName(electronicFenceGroup.groupName) + .priority(electronicFenceGroup.getPriority()) + .status(electronicFenceGroup.getStatus()) + .groupType(electronicFenceGroup.groupType) + .build(); + + } + + + + + public static ElectronicFenceGroupResp buildElectronicFenceGroupResp (ElectronicFenceGroup electronicFenceGroup){ + + return ElectronicFenceGroupResp.builder() + .id(electronicFenceGroup.getId()) + .groupName(electronicFenceGroup.groupName) + .priority(electronicFenceGroup.getPriority()) + .status(electronicFenceGroup.getStatus()) + .groupType(electronicFenceGroup.groupType) + .build(); + + } + + public static ElectronicFenceGroup buildByAdd(ElectronicFenceGroupAddReq addReq){ + + + return ElectronicFenceGroup.builder() + .groupName(addReq.getGroupName()) + .groupType(addReq.getGroupType()) + .status(addReq.getStatus()) + .priority(addReq.getPriority()) + .build(); + + } + + public static ElectronicFenceGroup buildByUpd(ElectronicFenceGroupUpdReq updReq, Supplier ids){ + + + return ElectronicFenceGroup.builder() + .id(ids.get()) + .groupName(updReq.getGroupName()) + .groupType(updReq.getGroupType()) + .status(updReq.getStatus()) + .priority(updReq.getPriority()) + .build(); + + } + + + + + + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/dateBase/FenceGroupMid.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/dateBase/FenceGroupMid.java new file mode 100644 index 0000000..e054c44 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/dateBase/FenceGroupMid.java @@ -0,0 +1,36 @@ +package com.muyu.enterprise.domain.dateBase; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.domain + * @Project:cloud-server + * @name:FenceGroupMid + * @Date:2024/9/19 21:01 + */ + +/** + * 链表实体类 + */ +@Tag(name = "围栏组连接表") +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "fence_group_mid",autoResultMap = true) +public class FenceGroupMid { + + /** + * 中间表的自增 + */ + @TableId(value = "id",type = IdType.AUTO) + private Long id; + private Long groupId; + private Long fenceId; +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectroicFenceAddReq.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectroicFenceAddReq.java new file mode 100644 index 0000000..f86b6e0 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectroicFenceAddReq.java @@ -0,0 +1,78 @@ +package com.muyu.enterprise.domain.req; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.domain.req + * @Project:cloud-server + * @name:ElectroicAdd + * @Date:2024/9/17 20:53 + */ + +/** + * 电子围栏添加请求对象 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ElectroicFenceAddReq { + + /** + * 主键id + */ + @TableId(value = "id",type = IdType.AUTO) + private Long id; + + /** + * 围栏名称 + */ + + private String name; + + /** + * 围栏类型(驶入,驶出) + */ + + private String fenceType; + + /** + *经纬度信息 + */ + + private String longitudeLatitude; + + /** + * 电子围栏状态(正常,停用) + */ + + private String status; + + /** + * 描述信息 + */ + + private String fenceDesc; + + /** + * 电子围栏的开始时间 + */ + + private Date startTime; + /** + * 电子围栏的结束时间 + */ + private Date endTime; + + + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectroicFenceListReq.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectroicFenceListReq.java new file mode 100644 index 0000000..1fc4b92 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectroicFenceListReq.java @@ -0,0 +1,68 @@ +package com.muyu.enterprise.domain.req; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.domain.req + * @Project:cloud-server + * @name:ElectroicFenceReq + * @Date:2024/9/17 20:04 + */ +/** + * 电子围栏列表请求对象 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ElectroicFenceListReq { + + /** + * 围栏名称 + */ + + private String name; + + /** + * 围栏类型(驶入,驶出) + */ + + private String fenceType; + + /** + *经纬度信息 + */ + + private String longitudeLatitude; + + /** + * 电子围栏状态(正常,停用) + */ + + private String status; + + + + /** + * 电子围栏的开始时间 + */ + + private Date startTime; + /** + * 电子围栏的结束时间 + */ + private Date endTime; + + + + + + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectroicFenceUpdReq.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectroicFenceUpdReq.java new file mode 100644 index 0000000..9ce184a --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectroicFenceUpdReq.java @@ -0,0 +1,73 @@ +package com.muyu.enterprise.domain.req; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.domain.req + * @Project:cloud-server + * @name:ElectroicFenceUpdReq + * @Date:2024/9/17 21:03 + */ +/** + * 电子围栏修改请求对象 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ElectroicFenceUpdReq { + + + /** + * 主键id + */ + + private Long id; + + /** + * 围栏名称 + */ + + private String name; + + /** + * 围栏类型(驶入,驶出) + */ + + private String fenceType; + + /** + *经纬度信息 + */ + + private String longitudeLatitude; + + /** + * 电子围栏状态(正常,停用) + */ + + private String status; + + /** + * 描述信息 + */ + + private String fenceDesc; + + + + + + + + + + + + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectronicFenceGroupAddReq.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectronicFenceGroupAddReq.java new file mode 100644 index 0000000..c151d8b --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectronicFenceGroupAddReq.java @@ -0,0 +1,64 @@ +package com.muyu.enterprise.domain.req; + +import com.muyu.enterprise.domain.resp.ElectronicFenceResp; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.domain.req + * @Project:cloud-server + * @name:ElectronicFenceGroupAddReq + * @Date:2024/9/20 19:14 + */ + +/** + * 围栏组添加请求对象 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ElectronicFenceGroupAddReq { + + + + /** + * 围栏组优先级 + */ + private Integer priority; + /** + * 围栏组名称 + */ + private String groupName; + /** + * 围栏组类型 + */ + private String groupType; + + /** + * 启用状态 + */ + private String status; + + /** + * 选中围栏 + */ + + List electronicFenceRespList; + + + + + + + + + + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectronicFenceGroupListReq.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectronicFenceGroupListReq.java new file mode 100644 index 0000000..9374302 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectronicFenceGroupListReq.java @@ -0,0 +1,59 @@ +package com.muyu.enterprise.domain.req; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.domain.req + * @Project:cloud-server + * @name:ElectronicFenceGroupListReq + * @Date:2024/9/20 16:06 + */ +/** + * 围栏组列表请求对象 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ElectronicFenceGroupListReq { + + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.AUTO) + private Long id; + /** + * 围栏组优先级 + */ + private Integer priority; + /** + * 围栏组名称 + */ + private String groupName; + /** + * 围栏组类型 + */ + private String groupType; + + /** + * 启用状态 + */ + private String status; + + + + + + + + + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectronicFenceGroupUpdReq.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectronicFenceGroupUpdReq.java new file mode 100644 index 0000000..a80872c --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/ElectronicFenceGroupUpdReq.java @@ -0,0 +1,69 @@ +package com.muyu.enterprise.domain.req; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.muyu.enterprise.domain.resp.ElectronicFenceResp; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.domain.req + * @Project:cloud-server + * @name:ElectronicFenceGroupAddReq + * @Date:2024/9/20 19:14 + */ +/** + * 围栏组修改请求对象 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ElectronicFenceGroupUpdReq { + + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.AUTO) + private Long id; + /** + * 围栏组优先级 + */ + private Integer priority; + /** + * 围栏组名称 + */ + private String groupName; + /** + * 围栏组类型 + */ + private String groupType; + + /** + * 启用状态 + */ + private String status; + + + /** + * 选中围栏 + */ + List electronicFenceRespList; + + + + + + + + + + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/FenceAndGroupBoundReq.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/FenceAndGroupBoundReq.java new file mode 100644 index 0000000..a11b175 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/FenceAndGroupBoundReq.java @@ -0,0 +1,39 @@ +package com.muyu.enterprise.domain.req; + +import com.muyu.enterprise.domain.resp.ElectronicFenceResp; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.domain.req + * @Project:cloud-server + * @name:FenceAndGroupBoundReq + * @Date:2024/9/21 9:05 + */ + +/** + * 链表请求对象 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Tag(name = "用于绑定围栏和围栏组的请求") +public class FenceAndGroupBoundReq { + /** + * 围栏组的主键 + */ + private Long id; + + /** + * 选中的围栏 + */ + + private List electronicFenceRespList; + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/FenceWayReq.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/FenceWayReq.java new file mode 100644 index 0000000..fd95a8b --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/FenceWayReq.java @@ -0,0 +1,24 @@ +package com.muyu.enterprise.domain.req; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.domain + * @Project:cloud-server + * @name:FenceWay + * @Date:2024/9/20 9:27 + */ + +/** + * 电子围栏位置请求对象 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class FenceWayReq { + private Long id; + private String longitudeLatitude; +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/MessageTemplateAddReq.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/MessageTemplateAddReq.java new file mode 100644 index 0000000..96013ab --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/MessageTemplateAddReq.java @@ -0,0 +1,35 @@ +package com.muyu.enterprise.domain.req.car; + +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 报文模版添加参数请求对象 + * @Author:李庆帅 + * @Package:com.muyu.car.domain.req + * @Project:cloud-server + * @name:MessageTemplateAddReq + * @Date:2024/9/26 20:34 + * @Description: 报文模版添加参数 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Tag(name = "新增报文模版请求参数", description = "根据入参进行报文模版的添加") +public class MessageTemplateAddReq +{ + /** + * 报文模版名称 + */ + private String messageTemplateName; + + /** + * 报文模版描述 + */ + private String messageTemplateDescribe; + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/MessageValueAddReq.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/MessageValueAddReq.java new file mode 100644 index 0000000..5504c42 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/MessageValueAddReq.java @@ -0,0 +1,55 @@ +package com.muyu.enterprise.domain.req.car; + +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 报文类型参数添加请求对象 + * @Author:李庆帅 + * @Package:com.muyu.car.domain.req + * @Project:cloud-server + * @name:MessageValueAddReq + * @Date:2024/9/26 20:35 + * @Description: 报文类型参数 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Tag(name = "新增报文数据请求参数", description = "根据入参进行报文数据的添加") +public class MessageValueAddReq +{ + /** + * 模版主键 + */ + private Long templateId; + + /** + * 报文类别 + */ + private String messageType; + + /** + * 报文编码 + */ + private String messageCode; + + /** + * 报文标签 + */ + private String messageLabel; + + /** + * 起始下标 + */ + private Integer messageStartIndex; + + /** + * 终止下标 + */ + private Integer messageEndIndex; + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/MessageValueReq.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/MessageValueReq.java new file mode 100644 index 0000000..48583a2 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/MessageValueReq.java @@ -0,0 +1,37 @@ +package com.muyu.enterprise.domain.req.car; + + +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; + + +/** + * 报文类型列表参数请求对象 + * @Author:李庆帅 + * @Package:com.muyu.car.domain.req + * @Project:cloud-server + * @name:MessageValueReq + * @Date:2024/9/26 20:39 + * @Description: 报文类型列表参数 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Tag(name = "报文数据请求参数", description = "根据入参进行报文数据的查询") +public class MessageValueReq +{ + /** 报文模版主键 */ + @Schema(title = "报文模版主键", type = "Long", defaultValue = "1", description = "报文模版主键") + private Long messageTemplateId; + + /** 报文分类 */ + @Schema(title = "报文分类", type = "String", defaultValue = "basics", description = "报文分类") + private String messageType; + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/VehicleAddReq.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/VehicleAddReq.java new file mode 100644 index 0000000..331b12b --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/VehicleAddReq.java @@ -0,0 +1,101 @@ +package com.muyu.enterprise.domain.req.car; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.common.core.annotation.Excel; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.constraints.NotEmpty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 新增车辆参数请求对象 + * @Author:李庆帅 + * @Package:com.muyu.car.domain.req + * @Project:cloud-server + * @name:VehicleAddReq + * @Date:2024/9/26 20:39 + * @Description: 新增车辆参数 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Tag(name = "录入车辆请求参数", description = "根据入参进行车辆管理的添加") +public class VehicleAddReq +{ + /** + * 车牌号 + */ + @NotEmpty(message = "车牌号不可为空") + @Schema(title = "车牌号", type = "String", defaultValue = "冀A93827", description = "车牌号") + private String licenceNumber; + + /** + * 车辆颜色 + */ + @Schema(title = "车辆颜色", type = "String", defaultValue = "RED", description = "车牌颜色") + private String vehicleColor; + + /** + * 车辆VIN + */ + @Schema(title = "车辆VIN", type = "String", defaultValue = "LDC913L2240606423", description = "车辆VIN") + private String vehicleVin; + + /** + * 车辆类型外键 + */ + @Schema(title = "车辆类型", type = "BigInt", defaultValue = "1", description = "车辆类型") + private Long vehicleTypeId; + + /** + * 车辆品牌 + */ + @Schema(title = "车辆品牌", type = "String", defaultValue = "1", description = "车辆品牌") + private String vehicleBrand; + + /** + * 车辆型号 + */ + @Schema(title = "车辆型号", type = "String", defaultValue = "1", description = "车辆型号") + private String vehicleModel; + + /** + * 车辆行驶证 + */ + @Schema(title = "车辆行驶证", type = "String", defaultValue = "111111", description = "车辆行驶证") + private String vehicleLicense; + + /** + * 行驶证到期日期 + */ + @Schema(title = "行驶证到期日期", type = "Date", defaultValue = "2024-01-01 00:00:00", description = "行驶证到期日期") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date vehicleLicenseDueDate; + + /** + * 车辆状态 + */ + @Schema(title = "车辆状态", type = "String", defaultValue = "OFFLINE", description = "车辆状态") + private String vehicleStatus; + + /** + * 车辆所属企业外键 + */ + @Schema(title = "车辆所属企业外键", type = "BigInt", defaultValue = "1", description = "车辆所属企业外键") + private Long companyId; + + /** + * 电子围栏外键 + */ + @Schema(title = "电子围栏外键", type = "Integer", defaultValue = "1", description = "电子围栏外键") + private Integer fenceGroupId; + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/VehicleManageReq.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/VehicleManageReq.java new file mode 100644 index 0000000..c93d147 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/VehicleManageReq.java @@ -0,0 +1,45 @@ +package com.muyu.enterprise.domain.req.car; + +//import com.muyu.common.core.domain.req.PageReq; +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; + +/** + * 车辆管理查询条件请求对象 + * @Author:李庆帅 + * @Package:com.muyu.car.domain.req + * @Project:cloud-server + * @name:VehicleManageReq + * @Date:2024/9/26 20:41 + * @Description: 车辆管理查询条件实体类 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Tag(name = "车辆管理查询条件", description = "负责车辆查询条件的实体类") +public class VehicleManageReq +{ + /** + * 车牌号 + */ + @Schema(type = "String", defaultValue = "冀A93827", description = "车牌号") + private String licenceNumber; + + /** + * 车辆VIN + */ + @Schema(type = "String", defaultValue = "LDC913L2240606423", description = "车辆VIN") + private String vehicleVin; + + /** + * 车辆状态 + */ + @Schema(type = "String", defaultValue = "", description = "车辆状态") + private String vehicleStatus; + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/VehicleUpdReq.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/VehicleUpdReq.java new file mode 100644 index 0000000..99bb107 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/req/car/VehicleUpdReq.java @@ -0,0 +1,100 @@ +package com.muyu.enterprise.domain.req.car; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.common.core.annotation.Excel; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.constraints.NotEmpty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 修改车辆信息参数请求对象 + * @Author:李庆帅 + * @Package:com.muyu.car.domain.req + * @Project:cloud-server + * @name:VehicleUpdReq + * @Date:2024/9/26 20:57 + * @Description: 修改车辆信息参数 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Tag(name = "修改车辆信息参数", description = "根据入参信息修改车辆信息") +public class VehicleUpdReq +{ + /** + * 车牌号 + */ + @NotEmpty(message = "车牌号不可为空") + @Schema(title = "车牌号", type = "String", defaultValue = "冀A93827", description = "车牌号") + private String licenceNumber; + + /** + * 车辆颜色 + */ + @Schema(title = "车牌颜色", type = "String", defaultValue = "RED", description = "车牌颜色") + private String vehicleColor; + + /** + * 车辆VIN + */ + @Schema(title = "车辆VIN", type = "String", defaultValue = "LDC913L2240606423", description = "车辆VIN") + private String vehicleVin; + + /** + * 车辆类型外键 + */ + @Schema(title = "车辆类型", type = "BigInt", defaultValue = "1", description = "车辆类型") + private Long vehicleTypeId; + + /** + * 车辆品牌 + */ + @Schema(title = "车辆品牌", type = "String", defaultValue = "1", description = "车辆品牌") + private String vehicleBrand; + + /** + * 车辆型号 + */ + @Schema(title = "车辆型号", type = "String", defaultValue = "1", description = "车辆型号") + private String vehicleModel; + + /** + * 车辆行驶证 + */ + @Schema(title = "车辆行驶证", type = "String", defaultValue = "111111", description = "车辆行驶证") + private String vehicleLicense; + + /** + * 行驶证到期日期 + */ + @Schema(title = "行驶证到期日期", type = "Date", defaultValue = "2024-01-01 00:00:00", description = "行驶证到期日期") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date vehicleLicenseDueDate; + + /** + * 车辆状态 + */ + @Schema(title = "车辆状态", type = "String", defaultValue = "OFFLINE", description = "车辆状态") + private String vehicleStatus; + + /** + * 车辆所属企业外键 + */ + @Schema(title = "车辆所属企业外键", type = "BigInt", defaultValue = "1", description = "车辆所属企业外键") + private Long companyId; + + /** + * 电子围栏外键 + */ + @Schema(title = "电子围栏外键", type = "Integer", defaultValue = "1", description = "电子围栏外键") + private Integer fenceGroupId; + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/ElectronicFenceGroupResp.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/ElectronicFenceGroupResp.java new file mode 100644 index 0000000..a4f42a9 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/ElectronicFenceGroupResp.java @@ -0,0 +1,64 @@ +package com.muyu.enterprise.domain.resp; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.domain.resp + * @Project:cloud-server + * @name:ElectronicFenceGroupResp + * @Date:2024/9/22 10:22 + */ + +/** + * 回显围栏组及绑定的电子围栏响应对象 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Tag(name = "回显围栏组及绑定的电子围栏") +public class ElectronicFenceGroupResp { + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.AUTO) + private Long id; + /** + * 围栏组优先级 + */ + private Integer priority; + /** + * 围栏组名称 + */ + private String groupName; + /** + * 围栏组类型 + */ + private String groupType; + + /** + * 启用状态 + */ + private String status; + + + /** + * 绑定的电子围栏 + */ + List electronicFenceRespList; + + + + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/ElectronicFenceResp.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/ElectronicFenceResp.java new file mode 100644 index 0000000..5849381 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/ElectronicFenceResp.java @@ -0,0 +1,71 @@ +package com.muyu.enterprise.domain.resp; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.domain + * @Project:cloud-server + * @name:ElectronicFence + * @Date:2024/9/17 16:34 + */ + +/** + * 电子围栏列表响应对象 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ElectronicFenceResp { + + /** + * 主键id + */ + private Long id; + + /** + * 围栏名称 + */ + + private String name; + + /** + * 围栏类型(驶入,驶出) + */ + + private String fenceType; + + /** + *经纬度信息 + */ + + private String longitudeLatitude; + + /** + * 电子围栏状态(正常,停用) + */ + + private String status; + + /** + * 描述信息 + */ + + private String desc; + +//private String groupType; +// +//private int priority; + + + + + + + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/GroupFenceListresp.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/GroupFenceListresp.java new file mode 100644 index 0000000..000ea50 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/GroupFenceListresp.java @@ -0,0 +1,57 @@ +package com.muyu.enterprise.domain.resp; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.domain.req + * @Project:cloud-server + * @name:GroupFenceListresp + * @Date:2024/9/20 9:04 + * 围栏组列表 + */ + +/** + * 围栏组列表响应对象 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Tag(name = "围栏组列表") +public class GroupFenceListresp { + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.AUTO) + private Long id; + /** + * 围栏组优先级 + */ + private Integer priority; + /** + * 围栏组名称 + */ + private String groupName; + /** + * 围栏组类型 + */ + private String groupType; + + /** + * 启用状态 + */ + private String status; + + + + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/car/MessageTemplateListResp.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/car/MessageTemplateListResp.java new file mode 100644 index 0000000..635f821 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/car/MessageTemplateListResp.java @@ -0,0 +1,56 @@ +package com.muyu.enterprise.domain.resp.car; + + +import com.muyu.enterprise.domain.car.MessageTemplate; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 报文模版响应数据响应对象 + * @Author:李庆帅 + * @Package:com.muyu.car.domain.resp + * @Project:cloud-server + * @name:MessageTemplateListResp + * @Date:2024/9/26 20:32 + * @Description: 报文模版响应数据 + */ + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Tag(name = "报文模版列表", description = "负责报文模版管理列表的相应数据") +public class MessageTemplateListResp +{ + /** + * 报文模版主键 + */ + private String messageTemplateId; + + /** + * 报文模版名称 + */ + private String messageTemplateName; + + /** + * 报文模版描述 + */ + private String messageTemplateDescribe; + + /** + * 数据库对象构建为返回结果对象 + * @param messageTemplate + * @return + */ + public static MessageTemplateListResp messageTemplateBuild(MessageTemplate messageTemplate) { + return MessageTemplateListResp.builder() + .messageTemplateId(messageTemplate.getMessageTemplateId()) + .messageTemplateName(messageTemplate.getMessageTemplateName()) + .messageTemplateDescribe(messageTemplate.getMessageTemplateDescribe()) + .build(); + } + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/car/MessageValueListResp.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/car/MessageValueListResp.java new file mode 100644 index 0000000..5a87f58 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/car/MessageValueListResp.java @@ -0,0 +1,68 @@ +package com.muyu.enterprise.domain.resp.car; + + +import com.muyu.enterprise.domain.car.MessageValue; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 报文数据响应数据响应对象 + * @Author:李庆帅 + * @Package:com.muyu.car.domain.resp + * @Project:cloud-server + * @name:MessageValueListResp + * @Date:2024/9/26 20:33 + * @Description: 报文数据响应数据 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Tag(name = "报文数据列表", description = "负责报文数据管理列表的相应数据") +public class MessageValueListResp +{ + /** + * 报文数据主键 + */ + private Long messageId; + + /** + * 报文类别 + */ + private String messageType; + + /** + * 报文编码 + */ + private String messageCode; + + /** + * 报文标签 + */ + private String messageLabel; + + /** + * 起始下标 + */ + private Integer messageStartIndex; + + /** + * 终止下标 + */ + private Integer messageEndIndex; + + public static MessageValueListResp valueBuild(MessageValue messageValue){ + return MessageValueListResp.builder() + .messageId(messageValue.getMessageId()) + .messageType(messageValue.getMessageType()) + .messageCode(messageValue.getMessageCode()) + .messageLabel(messageValue.getMessageLabel()) + .messageStartIndex(messageValue.getMessageStartIndex()) + .messageEndIndex(messageValue.getMessageEndIndex()) + .build(); + } + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/car/VehicleManageResp.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/car/VehicleManageResp.java new file mode 100644 index 0000000..5f419e7 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/resp/car/VehicleManageResp.java @@ -0,0 +1,75 @@ +package com.muyu.enterprise.domain.resp.car; + +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; + + +/** + * 车辆管理列表响应对象 + * @Author:李庆帅 + * @Package:com.muyu.car.domain.resp + * @Project:cloud-server + * @name:VehicleManageResp + * @Date:2024/9/26 20:33 + * 车辆管理列表 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Tag(name = "车辆管理列表",description = "负责车辆管理列表的相应数据") +public class VehicleManageResp +{ + /** + * 车辆主键 + */ + @Schema(type = "Long",defaultValue = "1",description = "车辆主键") + private Long vehicleId; + + /** + * 车牌号 + */ + @Schema(type = "String", defaultValue = "冀A93827", description = "车牌号") + private String licenceNumber; + + /** + * 车辆颜色 + */ + @Schema(type = "String", defaultValue = "", description = "车辆颜色") + private String vehicleColor; + + /** + * 车辆VIN + */ + @Schema(type = "String", defaultValue = "LDC913L2240606423", description = "车辆VIN") + private String vehicleVin; + + /** + * 车辆类型 + */ + @Schema(type = "Long", defaultValue = "新能源", description = "车辆类型") + private String vehicleTypeName; + + /** + * 车辆品牌 + */ + @Schema(title = "车辆品牌", type = "String", defaultValue = "1", description = "车辆品牌") + private String vehicleBrand; + + /** + * 车辆型号 + */ + @Schema(title = "车辆型号", type = "String", defaultValue = "1", description = "车辆型号") + private String vehicleModel; + + /** + * 车辆状态 + */ + @Schema(type = "String", defaultValue = "", description = "车辆状态") + private String vehicleStatus; + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/utils/ElectricFenceModel.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/utils/ElectricFenceModel.java new file mode 100644 index 0000000..39201dd --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/utils/ElectricFenceModel.java @@ -0,0 +1,75 @@ +package com.muyu.enterprise.domain.utils; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.domain + * @Project:cloud-server + * @name:ElectricFenceModel + * @Date:2024/9/17 17:27 + */ + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 电子围栏规则计算模型 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ElectricFenceModel implements Comparable { + //车架号 + private String vin = ""; + //电子围栏结果表UUID + private Long uuid = -999999L; + //上次状态 0 里面 1 外面 + private int lastStatus = -999999; + //当前状态 0 里面 1 外面 + private int nowStatus = -999999; + //位置时间 yyyy-MM-dd HH:mm:ss + private String gpsTime = ""; + //位置纬度-- + private Double lat = -999999D; + //位置经度-- + private Double lng = -999999D; + //电子围栏ID + private int eleId = -999999; + //电子围栏名称 + private String eleName = ""; + //中心点地址 + private String address = ""; + //中心点纬度 + private Double latitude; + //中心点经度 + private Double longitude = -999999D; + //电子围栏半径 + private Float radius = -999999F; + //出围栏时间 + private String outEleTime = null; + //进围栏时间 + private String inEleTime = null; + //是否在mysql结果表中 + private Boolean inMysql = false; + //状态报警 0:出围栏 1:进围栏 + private int statusAlarm = -999999; + //报警信息 + private String statusAlarmMsg = ""; + //终端时间 + private String terminalTime = ""; + // 扩展字段 终端时间 + private Long terminalTimestamp = -999999L; + + @Override + public int compareTo(ElectricFenceModel o) { + if(this.getTerminalTimestamp() > o.getTerminalTimestamp()){ + return 1; + } + else if(this.getTerminalTimestamp() < o.getTerminalTimestamp()){ + return -1; + }else{ + return 0; + } + } +} + diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/utils/ElectricFenceResultTmp.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/utils/ElectricFenceResultTmp.java new file mode 100644 index 0000000..af69ec1 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/utils/ElectricFenceResultTmp.java @@ -0,0 +1,53 @@ +package com.muyu.enterprise.domain.utils; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.domain + * @Project:cloud-server + * @name:ElectricFenceResultTmp + * @Date:2024/9/17 17:57 + */ +/** + * 电子围栏转换临时对象 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ElectricFenceResultTmp { + //电子围栏id + private int id; + //电子围栏名称 + private String name; + //电子围栏中心地址 + private String address; + //电子围栏半径 + private float radius; + //电子围栏中心点的经度 + private double longitude; + //电子围栏中心点的维度 + private double latitude; + //电子围栏的开始时间 + private Date startTime; + //电子围栏的结束时间 + private Date endTime; + + @Override + public String toString() { + return "ElectricFenceResultTmp{" + + "id=" + id + + ", name='" + name + '\'' + + ", address='" + address + '\'' + + ", radius=" + radius + + ", longitude=" + longitude + + ", latitude=" + latitude + + ", startTime=" + startTime + + ", endTime=" + endTime + + '}'; + } +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/utils/ElectronicFenceResult.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/utils/ElectronicFenceResult.java new file mode 100644 index 0000000..372510e --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/utils/ElectronicFenceResult.java @@ -0,0 +1,54 @@ +package com.muyu.enterprise.domain.utils; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.domain + * @Project:cloud-server + * @name:ElectronicFenceResult + * @Date:2024/9/17 17:43 + */ + +/** + * 电子围栏分析结果数据结构 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ElectronicFenceResult { + /** + * 主键 + */ + private Long id; + /** + * 车辆唯一标识 + */ + private String vin; + /** + * + */ + private String inTime; + private String outTime; + /** + * gps定位时间 + */ + private Date gpsTime; + + private Double lat; + private Double lng; + private Integer eleId; + private String eleName; + private String address; + private Double latitude; + private Double longitude; + private Double radius; + private String terminalTime; + private Date processTime; +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/utils/ElectronicFenceSetting.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/utils/ElectronicFenceSetting.java new file mode 100644 index 0000000..ea8b5a3 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/utils/ElectronicFenceSetting.java @@ -0,0 +1,63 @@ +package com.muyu.enterprise.domain.utils; + +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:李庆帅 + * @Package:com.muyu.fence.domain + * @Project:cloud-server + * @name:ElectronicFenceSetting + * @Date:2024/9/17 16:47 + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "electronic_fence_setting",autoResultMap = true) +public class ElectronicFenceSetting { + /** + * 主键id + */ + @TableId(value = "id",type = IdType.AUTO) + private String id; + /** + * 电子围栏名称 + */ + private String name; + /** + * 电子围栏中心地址 + */ + private String address; + /** + * 电子围栏半径 + */ + private String radius; + /** + * 电子围栏中心点经度 + */ + private String longitude; + /** + * 电子围栏围栏中心点维度 + */ + private String latitude; + /** + * 电子围栏的开始时间 + */ + private String startTime; + /** + * 电子围栏的结束时间 + */ + private String endTime; + /** + * 电子围栏的状态(开启,关闭) + */ + private String status; + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/utils/VehicleConstant.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/utils/VehicleConstant.java new file mode 100644 index 0000000..b8cb3c1 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/utils/VehicleConstant.java @@ -0,0 +1,28 @@ +package com.muyu.enterprise.domain.utils; + +/** + * 报文分割工具类 + * @Author:李庆帅 + * @Package:com.muyu.car.utils + * @Project:cloud-server + * @name:VehicleConstant + * @Date:2024/9/26 20:26 + */ +public class VehicleConstant +{ + /** + * 分包符 + */ + public static final String DATA_PACK_SEPARATOR = "#$&"; + + /** + * 报文起始位 + */ + public static final String MSG_START = "7E"; + + /** + * 报文结束位 + */ + public static final String MSG_END = "7E"; + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml index 911a9a6..82c7085 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml @@ -22,6 +22,17 @@ + + org.eclipse.paho + org.eclipse.paho.client.mqttv3 + 1.2.2 + + + + org.springframework.integration + spring-integration-mqtt + 6.2.5 + @@ -101,4 +112,4 @@ - \ No newline at end of file + diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/CloudEnterpriseApplication.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/CloudEnterpriseApplication.java index ddd295f..cd401fd 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/CloudEnterpriseApplication.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/CloudEnterpriseApplication.java @@ -16,5 +16,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; public class CloudEnterpriseApplication { public static void main (String[] args) { SpringApplication.run(CloudEnterpriseApplication.class, args); + while (true){ + System.out.println("马叉,马叉"); + } } } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/ClientMQTT.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/ClientMQTT.java new file mode 100644 index 0000000..169edaf --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/ClientMQTT.java @@ -0,0 +1,74 @@ +package com.muyu.enterprise.MQTT; + +import com.alibaba.nacos.api.remote.PushCallBack; +import org.eclipse.paho.client.mqttv3.MqttClient; +import org.eclipse.paho.client.mqttv3.MqttConnectOptions; +import org.eclipse.paho.client.mqttv3.MqttTopic; +import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; + +/** + * 模拟一个客户端接收消息 + * @Author:李庆帅 + * @Package:com.muyu.enterprise.MQTT + * @Project:cloud-server + * @name:ClientMQTT + * @Date:2024/9/28 12:11 + */ +public class ClientMQTT { + //String topic = "vehicle"; + // String content = "Message from MqttPublishSample"; + // int qos = 2; + // String broker = "tcp://106.15.136.7:1883"; + // String clientId = "JavaSample"; + //MQTT代理服务器地址 + public static final String HOST="tcp://106.15.136.7:1883"; + public static final String TOPIC1="pos_message_all"; + private static final String clientId="12345678"; + private MqttClient client; + private MqttConnectOptions options; + private String userName="mqtt"; //非必须 + private String passWord="mqtt"; //非必须 + + private void start(){ + try{ + // host为主机名,clientid即连接MQTT的客户端ID,一般以唯一标识符表示,MemoryPersistence设置clientid的保存形式,默认为以内存保存 + client= new MqttClient(HOST,clientId,new MemoryPersistence()); + // MQTT的连接设置 + options=new MqttConnectOptions(); + // 设置是否清空session,这里如果设置为false表示服务器会保留客户端的连接记录,设置为true表示每次连接到服务器都以新的身份连接 + options.setCleanSession(false); + // 设置连接的用户名 + options.setUserName(userName); + // 设置连接的密码 + options.setPassword(passWord.toCharArray()); + // 设置超时时间 单位为秒 + options.setConnectionTimeout(10); + // 设置会话心跳时间 单位为秒 服务器会每隔1.5*20秒的时间向客户端发送个消息判断客户端是否在线,但这个方法并没有重连的机制 + options.setKeepAliveInterval(20); + //设置断开后重新连接 + options.setAutomaticReconnect(true); + // 设置回调 + client.setCallback(new PushCallback()); + MqttTopic topic = client.getTopic(TOPIC1); + //setWill方法,如果项目中需要知道客户端是否掉线可以调用该方法。设置最终端口的通知消息 + //遗嘱 + options.setWill(topic,"close".getBytes(),1,true); + client.connect(options); + //订阅消息 + int[] Qos = {1} ; //0:最多一次 、1:最少一次 、2:只有一次 + String[] topics1 = {TOPIC1}; + client.subscribe(topics1,Qos); + + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + public static void main(String[] args){ + ClientMQTT clientMQTT = new ClientMQTT(); + clientMQTT.start(); + } + + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/Demo.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/Demo.java new file mode 100644 index 0000000..62730fe --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/Demo.java @@ -0,0 +1,58 @@ +package com.muyu.enterprise.MQTT; + +import org.eclipse.paho.client.mqttv3.*; +import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; + +/** + * 测试MQTT + * @ClassName demo + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/27 22:27 + */ +public class Demo { + + public static void main(String[] args) { + + String topic = "vehicle"; + String content = "Message from MqttPublishSample"; + int qos = 2; + String broker = "tcp://106.15.136.7:1883"; + String clientId = "JavaSample"; + + try { + // 第三个参数为空,默认持久化策略 + MqttClient sampleClient = new MqttClient(broker, clientId); + MqttConnectOptions connOpts = new MqttConnectOptions(); + connOpts.setCleanSession(true); + System.out.println("Connecting to broker: "+broker); + sampleClient.connect(connOpts); + sampleClient.subscribe(topic,0); + sampleClient.setCallback(new MqttCallback() { + // 连接丢失 + @Override + public void connectionLost(Throwable throwable) { + + } + // 连接成功 + @Override + public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { + System.out.println(new String(mqttMessage.getPayload())); + } + // 接收信息 + @Override + public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { + + } + }); + } catch(MqttException me) { + System.out.println("reason "+me.getReasonCode()); + System.out.println("msg "+me.getMessage()); + System.out.println("loc "+me.getLocalizedMessage()); + System.out.println("cause "+me.getCause()); + System.out.println("excep "+me); + me.printStackTrace(); + } + } + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/MQTTReceiveCallback.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/MQTTReceiveCallback.java new file mode 100644 index 0000000..5f18256 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/MQTTReceiveCallback.java @@ -0,0 +1,69 @@ +package com.muyu.enterprise.MQTT; + +/** + * @Author:李庆帅 + * @Package:com.muyu.enterprise.MQTT + * @Project:cloud-server + * @name:MQTTReceiveCallback + * @Date:2024/9/27 22:21 + */ + +import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken; +import org.eclipse.paho.client.mqttv3.MqttCallback; +import org.eclipse.paho.client.mqttv3.MqttMessage; + +/** + * 发布消息的回调类 + * + * 必须实现MqttCallback的接口并实现对应的相关接口方法CallBack 类将实现 MqttCallBack。 + * 每个客户机标识都需要一个回调实例。在此示例中,构造函数传递客户机标识以另存为实例数据。 + * 在回调中,将它用来标识已经启动了该回调的哪个实例。 + * 必须在回调类中实现三个方法: + * + * (1):public void messageArrived(MqttTopic topic, MqttMessage message)接收已经预订的发布。 + * + * (2):public void connectionLost(Throwable cause)在断开连接时调用。 + * + * (3):public void deliveryComplete(MqttDeliveryToken token)) + * 接收到已经发布的 QoS 1 或 QoS 2 消息的传递令牌时调用。 + * 由 MqttClient.connect 激活此回调。 + * + */ +public class MQTTReceiveCallback implements MqttCallback { +// @Override +// public void connectionLost(Throwable throwable) { +// //连接丢失后,一般在这里面进行重连 +// System.out.println("连接断开,可以做重连"); +// } +// +// @Override +// public void messageArrived(String topic, MqttMessage message) throws Exception { +// //subscribe后得到的消息会执行到这里面 +// System.out.println("接收消息主题:"+topic); +// System.out.println("接收消息Qos:"+message.getQos()); +// System.out.println("接收消息内容:"+new String(message.getPayload())); +// } +// +// @Override +// public void deliveryComplete(IMqttDeliveryToken token) { +// System.out.println("deliveryComplete----------"+token.isComplete()); +// } + @Override + public void connectionLost(Throwable throwable){ + //连接丢失后,一般在这里面进行重连 + System.out.println("连接断开,可以做重连"); + } + @Override + public void messageArrived(String topic, MqttMessage mqttMessage) throws Exception { + //subscribe后得到的消息会执行到这面 + System.out.println("接收消息主题:"+topic); + System.out.println("接收消息Qos:"+mqttMessage.getQos()); + System.out.println("接收消息内容:"+new String(mqttMessage.getPayload())); + } + + @Override + public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { + System.out.println("deliveryComplete---------"+iMqttDeliveryToken.isComplete()); + } + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/MyMqttClient.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/MyMqttClient.java new file mode 100644 index 0000000..fb9a4bc --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/MyMqttClient.java @@ -0,0 +1,187 @@ +package com.muyu.enterprise.MQTT; + + +import org.eclipse.paho.client.mqttv3.*; +import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; + +/** + * 客户端类 + * @Author:李庆帅 + * @Package:com.muyu.enterprise.mqtt + * @Project:cloud-server + * @name:MyMqttClient + * @Date:2024/9/27 22:20 + */ +public class MyMqttClient { + + public static MqttClient mqttClient =null; + private static MemoryPersistence memoryPersistence=null; + private static MqttConnectOptions mqttConectOptions=null; + private static String ClinentName=""; //待填 将在服务端出现的名字 + private static String IP=""; //待填 服务器IP + + + public static void main(String[] args) { + start(ClinentName); + } + + + + public static void start(String clientId){ + //初始化连接设置对象 + mqttConectOptions=new MqttConnectOptions(); + //设置是否清空session,这里如果设置为false表示服务器会保留客户端的连接记录, + //这里设置为true表示每次连接到服务器都以新的身份连接 + mqttConectOptions.setCleanSession(true); + //设置连接超时时间,单位是秒 + mqttConectOptions.setConnectionTimeout(10); + //设置持久化方式 + memoryPersistence=new MemoryPersistence(); + if(null!=clientId){ + try{ + mqttClient =new MqttClient("tcp://"+IP+":1883", clientId,memoryPersistence); + } catch (Exception e) { + // TODO 自动生成的捕获块 + throw new RuntimeException(e); + } + } + System.out.println("连接状态:"+mqttClient.isConnected()); + //设置连接和回调 + if(null!=mqttClient){ + if(!mqttClient.isConnected()){ + //创建回调函数对象 + MQTTReceiveCallback MQTTReceiveCallback = new MQTTReceiveCallback(); + //客户端添加回调函数 + mqttClient.setCallback(MQTTReceiveCallback); + //创建连接 + try{ + System.out.println("创建连接"); + mqttClient.connect(mqttConectOptions); + } catch (Exception e) { + // TODO 自动生成的捕获块 + throw new RuntimeException(e); + } + } + }else { + System.out.println("mqttClient为空"); + } + System.out.println("连接状态"+mqttClient.isConnected()); + } + // 关闭连接 + public void closeConnect(){ + //关闭储存方式 + if(null!=memoryPersistence){ + try{ + memoryPersistence.close(); + } catch (Exception e) { + // TODO 自动生成的捕获块 + throw new RuntimeException(e); + } + }else { + System.out.println("memoryPersistence为空"); + } + + if(null!=mqttClient){ + if(mqttClient.isConnected()){ + try{ + mqttClient.disconnect(); + mqttClient.close(); + } catch (Exception e) { + // TODO 自动生成的捕获块 + throw new RuntimeException(e); + } + }else { + System.out.println("mqttClient未连接"); + } + }else { + System.out.println("mqttClient为空"); + } + } + + + //发布消息 + public static void publishMessage(String pubTopic,String message,int qos){ + if(null!=mqttClient && mqttClient.isConnected()){ + System.out.println("发布消息"+mqttClient.isConnected()); + System.out.println("id"+mqttClient.isConnected()); + MqttMessage mqttMessage = new MqttMessage(); + mqttMessage.setQos(qos); + + MqttTopic topic = mqttClient.getTopic(pubTopic); + + if(null!=topic){ + try{ + MqttDeliveryToken publish = topic.publish(mqttMessage); + if(!publish.isComplete()){ + System.out.println("消息发布成功"); + } + } catch (Exception e) { + // TODO 自动生成的捕获块 + throw new RuntimeException(e); + } + } + + } + } + + + //重新连接 + public static void reConnect(){ + if(null!=mqttClient&&mqttClient.isConnected()){ + if(!mqttClient.isConnected()){ + if(null!=mqttConectOptions){ + try{ + mqttClient.connect(mqttConectOptions); + } catch (Exception e) { + // TODO 自动生成的捕获块 + throw new RuntimeException(e); + } + }else { + System.out.println("mqttConnectOptions为空"); + } + }else { + System.out.println("mqttClient为空或已连接"); + } + }else { + start(ClinentName); + } + } + + + //订阅主题 + public static void suvTopic(String topic){ + if(null!=mqttClient && mqttClient.isConnected()){ + try{ + mqttClient.subscribe(topic,1); + } catch (MqttException e) { + // TODO 自动生成的捕获块 + throw new RuntimeException(e); + } + }else { + System.out.println("mqttClient出错"); + } + } + + + //清空主题 + public void cleanTopic(String topic){ + if(null!=mqttClient && mqttClient.isConnected()){ + try{ + mqttClient.subscribe(topic); + } catch (Exception e) { + // TODO 自动生成的捕获块 + throw new RuntimeException(e); + } + }else { + System.out.println("mqttClient出错"); + } + } + + + + + + + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/PushCallback.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/PushCallback.java new file mode 100644 index 0000000..769a3bc --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/PushCallback.java @@ -0,0 +1,52 @@ +package com.muyu.enterprise.MQTT; + +/** + * 发布消息的回调类 + * @Author:李庆帅 + * @Package:com.muyu.enterprise.MQTT + * @Project:cloud-server + * @name:PushCallback + * @Date:2024/9/28 14:35 + */ + +import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken; +import org.eclipse.paho.client.mqttv3.MqttCallback; +import org.eclipse.paho.client.mqttv3.MqttMessage; + +/** + * 发布消息的回调类 + * + * 必须实现MqttCallback的接口并实现对应的相关接口方法CallBack 类将实现 MqttCallBack。 + * 每个客户机标识都需要一个回调实例。在此示例中,构造函数传递客户机标识以另存为实例数据。 + * 在回调中,将它用来标识已经启动了该回调的哪个实例。 + * 必须在回调类中实现三个方法: + * + * public void messageArrived(MqttTopic topic, MqttMessage message)接收已经预订的发布。 + * + * public void connectionLost(Throwable cause)在断开连接时调用。 + * + * public void deliveryComplete(MqttDeliveryToken token)) + * 接收到已经发布的 QoS 1 或 QoS 2 消息的传递令牌时调用。 + * 由 MqttClient.connect 激活此回调。 + * + */ +public class PushCallback implements MqttCallback { + @Override + public void connectionLost(Throwable throwable) { + // 连接丢失后,一般在这里面进行重连 + System.out.println("连接断开,可以做重连"); + } + + @Override + public void messageArrived(String topic, MqttMessage mqttMessage) throws Exception { +// subscribe后得到的消息会执行到这里面 + System.out.println("接收消息主题 : " + topic); + System.out.println("接收消息Qos : " + mqttMessage.getQos()); + System.out.println("接收消息内容 : " + new String(mqttMessage.getPayload())); + } + + @Override + public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { + System.out.println("deliveryComplete---------" + iMqttDeliveryToken.isComplete()); + } +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/ServerMQTT.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/ServerMQTT.java new file mode 100644 index 0000000..f026d7e --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/ServerMQTT.java @@ -0,0 +1,113 @@ +package com.muyu.enterprise.MQTT; + +import lombok.extern.log4j.Log4j2; +import org.eclipse.paho.client.mqttv3.*; +import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; + +/** + * 这是发送消息的服务端 + * 服务器向多个客户端推送主题,即不同客户端可向服务器订阅相同主题 + * @Author:李庆帅 + * @Package:com.muyu.enterprise.MQTT + * @Project:cloud-server + * @name:ServerMQTT + * @Date:2024/9/28 14:32 + */ +@Log4j2 +public class ServerMQTT { + + //tcp://MQTT安装的服务器地址:MQTT定义的端口号 + public static final String HOST = "tcp://127.0.0.1:1883"; + //定义一个主题 + public static final String TOPIC = "pos_message_all"; + //定义MQTT的ID,可以在MQTT服务配置中指定 + private static final String clientId = "server11"; + + private MqttClient client; + private static MqttTopic topic11; + + // private String userName = "mqtt"; //非必须 + // private String passWord = "mqtt"; //非必须 + + private static MqttMessage message; + + /** + * 构造方法 + * @throws MqttException + */ + public ServerMQTT() throws MqttException { + // MemoryPersistence设置clientid的保存形式,默认为以内存保存 + client=new MqttClient(HOST, clientId,new MemoryPersistence()); + connect(); + } + + /** + * 用来连接服务器 + */ + private void connect() + { + MqttConnectOptions options = new MqttConnectOptions(); + options.setCleanSession(false); + // options.setUserName(userName); + // options.setPassword(passWord.toCharArray()); + // 设置超时时间 + options.setConnectionTimeout(10); + // 设置会话心跳时间 + options.setKeepAliveInterval(20); + try{ + client.setCallback(new PushCallback()); + client.connect(options); + topic11 = client.getTopic(TOPIC); + + } catch (Exception e) { + e.printStackTrace(); + } + + } + + /** + * + * @param topic + * @param message + * @throws MqttException + */ + public static void publish(MqttTopic topic , MqttMessage message) throws MqttPersistenceException,MqttException{ + MqttDeliveryToken token= topic.publish(message); + + token.waitForCompletion(); + System.out.println("消息已完全发布!"+token.isComplete()); + log.info("消息已完全发布!"+token.isComplete()); + + } + + /** + * + * @param clieId + * @param msg + * @throws Exception + */ + public static void sendMessage(String clieId,String msg)throws Exception{ + ServerMQTT server = new ServerMQTT(); + server.message = new MqttMessage(); + server.message.setQos(1); //保证消息能到达一次 + server.message.setRetained(true); + String str="{\"clienId\":\""+clieId+"\",\"msg\":\""+msg+"\"}"; + try{ + publish(server.topic11 , server.message); + //断开连接 +// server.client.disconnect(); + }catch (Exception e){ + e.printStackTrace(); + } + } + + + public static void main(String[] args) throws Exception { + sendMessage("123444","哈哈哈"); + } + + + + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarMessageController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarMessageController.java index d5bfaff..f0e81cd 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarMessageController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarMessageController.java @@ -13,9 +13,9 @@ import org.springframework.web.bind.annotation.RestController; import java.util.List; /** - * 描述 + * * @ClassName CarMessageController - * @Description 描述 + * @Description * @Author YiBo.Liu * @Date 2024/9/22 22:28 */ diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/ElectronicFenceController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/ElectronicFenceController.java new file mode 100644 index 0000000..7d09df2 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/ElectronicFenceController.java @@ -0,0 +1,145 @@ +package com.muyu.enterprise.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.enterprise.domain.dateBase.ElectronicFence; +import com.muyu.enterprise.domain.req.ElectroicFenceAddReq; +import com.muyu.enterprise.domain.req.ElectroicFenceListReq; +import com.muyu.enterprise.domain.req.ElectroicFenceUpdReq; +import com.muyu.enterprise.domain.req.FenceWayReq; +import com.muyu.enterprise.domain.resp.ElectronicFenceResp; +import com.muyu.enterprise.service.ElectronicFenceService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.controller + * @Project:cloud-server + * @name:FenceEtlController + * @Date:2024/9/17 16:28 + */ + +/** + * 电子围栏控制层 + */ +@Log4j2 +@Tag(name = "电子围栏控制层") +@RestController +@RequestMapping("/fence") +@RequiredArgsConstructor +public class ElectronicFenceController { + + /** + * + */ + @Resource + private ElectronicFenceService electronicFenceService; + + + @PostMapping("/fenceArray") + @Operation(description = "查询所有可用的围栏") + public Result> fenceArray() { + System.out.println("=====>" + "hgfvhgjy"); + return Result.success(electronicFenceService.fenceArray()); + } + + @PostMapping("/fenceselectList") + @Operation(description = "列表") + public Result> fenceselectList(@RequestBody ElectroicFenceListReq electroicFenceListReq) { + System.out.println("=====>" + "hgfvhgjy"); + return Result.success(electronicFenceService.fenceselectList(electroicFenceListReq)); + } + + @PostMapping("/add") + @Operation(description = "添加") + public Result AddFence(@RequestBody ElectroicFenceAddReq electroicFenceAddReq) { + + electronicFenceService.unquireFence(electroicFenceAddReq.getName()); + electronicFenceService.AddFence(electroicFenceAddReq); + + return Result.success(); + } + + @PostMapping("/upd/{id}") + @Operation(description = "修改") + public Result UpdFence(@PathVariable("id") Long id, @RequestBody ElectroicFenceUpdReq electroicFenceUpdReq) { + + electronicFenceService.updateById(ElectronicFence.buildByElectronicUpd(electroicFenceUpdReq, () -> id)); + + return Result.success(); + } + + @PostMapping("/findElectronicByid/{id}") + @Operation(description = "通过id回显围栏信息") + public Result findElectronicByid(@PathVariable("id") Long id) { + + ElectronicFence electronicFence= electronicFenceService.findElectronicByid(id); + return Result.success(electronicFence); + + } + +// @PostMapping("/delElectronById/{id}") +// @Operation(description = "通过id删除围栏") +// public Result delElectronById(@PathVariable("id") Long id) { +// +// electronicFenceService.delElectronById(id); +// +// return Result.success(); +// } + /** + * 电子围栏表信息表删除 + * @param electronicFenceId 请求对象 + * @return 返回结果 + */ + @DeleteMapping("/{electronicFenceId}") + @Operation(summary = "电子围栏表信息表删除", + description = "通过ID删除电子围栏表信息") + public Result remove(@PathVariable("electronicFenceId") Long electronicFenceId) + { + boolean b = electronicFenceService.removeById(electronicFenceId); + return Result.success(null, "操作成功"); + } + + @PostMapping("/open/{id}") + @Operation(description = "开启围栏") + public Result openFence(@PathVariable("id") Long id) { + + electronicFenceService.openFence(id); + + return Result.success(); + } + + @PostMapping("/close/{id}") + @Operation(description = "关闭围栏") + public Result closeFence(@PathVariable("id") Long id) { + + electronicFenceService.closeFence(id); + + return Result.success(); + } + + @PostMapping("/setFenceWay") + @Operation(description = "设置电子围栏的位置") + public Result setFenceWay(@RequestBody FenceWayReq fenceWayReq) { + + Long id = fenceWayReq.getId(); + + String longitudeLatitude = fenceWayReq.getLongitudeLatitude(); + + log.info("接收到的数据,:{}" + id + "====" + longitudeLatitude); + + electronicFenceService.setFenceWay(id, longitudeLatitude); + + return Result.success(); + + } + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/ElectronicFenceGroupController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/ElectronicFenceGroupController.java new file mode 100644 index 0000000..fb736fb --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/ElectronicFenceGroupController.java @@ -0,0 +1,132 @@ +package com.muyu.enterprise.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.enterprise.domain.dateBase.ElectronicFenceGroup; +import com.muyu.enterprise.domain.req.ElectronicFenceGroupAddReq; +import com.muyu.enterprise.domain.req.ElectronicFenceGroupListReq; +import com.muyu.enterprise.domain.req.ElectronicFenceGroupUpdReq; +import com.muyu.enterprise.domain.resp.ElectronicFenceGroupResp; +import com.muyu.enterprise.domain.resp.GroupFenceListresp; +import com.muyu.enterprise.service.ElectronicFenceGroupService; +import com.muyu.enterprise.service.FenceGroupMidService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.controller + * @Project:cloud-server + * @name:FenceGroupController + * @Date:2024/9/18 15:15 + */ + +/** + * 围栏组控制层 + */ +@Log4j2 +@RestController +@RequestMapping("/group") +@Tag(name = "围栏组控制层") +public class ElectronicFenceGroupController { + + /** + * 业务 + */ + @Autowired + private ElectronicFenceGroupService electronicFenceGroupService; + + @Autowired + private FenceGroupMidService fenceGroupMidService; + + + @PostMapping("/selectGroupList") + public Result> selectGroupList(@RequestBody ElectronicFenceGroupListReq req) { + //查询所有的围栏组 + List fenceListList = electronicFenceGroupService.selectGroupList(req); + + List list = fenceListList.stream().map(ElectronicFenceGroup::buildGroupFence).toList(); + + return Result.success(list); + } + + @Transactional + @PostMapping("/addGroup") + public Result addGroup(@RequestBody ElectronicFenceGroupAddReq addReq) { + + ElectronicFenceGroup electronicFenceGroup = ElectronicFenceGroup.buildByAdd(addReq); + //添加围栏组返回添加后的主键自增id + electronicFenceGroupService.save(electronicFenceGroup); + Long id = electronicFenceGroup.getId(); + //添加中间表 + fenceGroupMidService.addGroupAndFenceMid(id, addReq.getElectronicFenceRespList()); + + + return Result.success(); + } + + @PostMapping("/findGroupByid/{id}") + @Operation(description = "通过id回显围栏组信息") + public Result findGroupByid(@PathVariable("id") Long id) { + + ElectronicFenceGroupResp fenceGroupResp = electronicFenceGroupService.findGroupByid(id); + return Result.success(fenceGroupResp); + + } + + + @Transactional + @PostMapping("/updGroup/{id}") + @Operation(description = "修改") + public Result UpdFence(@PathVariable("id") Long id, @RequestBody ElectronicFenceGroupUpdReq req) { + + electronicFenceGroupService.updateById(ElectronicFenceGroup.buildByUpd(req, () -> id)); + + if (!CollectionUtils.isEmpty(req.getElectronicFenceRespList())) { + //删除中间表 + fenceGroupMidService.deliteMid(id); + //增加中间表 + fenceGroupMidService.addGroupAndFenceMid(id, req.getElectronicFenceRespList()); + } + return Result.success(); + } + + /** + * 围栏组表信息表删除 + * @param findGroupId 请求对象 + * @return 返回结果 + */ + @DeleteMapping("/{findGroupId}") + @Operation(summary = "围栏组表信息表删除", + description = "通过ID删除围栏组表信息") + public Result remove(@PathVariable("findGroupId") Long findGroupId) + { + boolean b = electronicFenceGroupService.removeById(findGroupId); + + + return Result.success(null, "操作成功"); + } + /** + * 围栏链信息表删除 + * @param findId 请求对象 + * @return 返回结果 + */ + @DeleteMapping("/findId/{findId}") + @Operation(summary = "围栏链信息表删除", + description = "通过ID删除围栏链表信息") + public Result findId(@PathVariable("findId") Long findId) + { + boolean b = fenceGroupMidService.removeById(findId); + + + return Result.success(null, "操作成功"); + } + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/MessageTemplateController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/MessageTemplateController.java new file mode 100644 index 0000000..048e50a --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/MessageTemplateController.java @@ -0,0 +1,85 @@ +package com.muyu.enterprise.controller.car; + + + +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.enterprise.domain.car.MessageTemplate; +import com.muyu.enterprise.domain.req.car.MessageTemplateAddReq; +import com.muyu.enterprise.domain.resp.car.MessageTemplateListResp; +import com.muyu.enterprise.service.car.MessageTemplateService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + + +/** + * 报文模版控制层 + * @Author:李庆帅 + * @Package:com.muyu.car.controller + * @Project:cloud-server + * @name:MessageTemplateController + * @Date:2024/9/26 22:08 + * @Description: 报文模版控制层 + */ +@Log4j2 +@RestController +@RequestMapping("messageTemplate") +@Tag(name = "报文模版控制层", description = "进行报文模版操作") +public class MessageTemplateController extends BaseController +{ + @Autowired + private MessageTemplateService messageTemplateService; + + + /** + * 报文模版列表查询 + * @return 返回结果 + */ + @RequestMapping(value = "/list", method = RequestMethod.POST) + @Operation(summary = "报文模版列表查询", description = "报文模版列表查询") + public Result> findAll() { + List list = messageTemplateService.list(); + List messageTemplateListRespList = list.stream() + .map(template -> MessageTemplateListResp.messageTemplateBuild( + template + ) + ) + .toList(); + return Result.success(messageTemplateListRespList); + } + + /** + * 新增添加报文模版 + * @param messageTemplateAddReq 请求对象 + * @return 返回结果 + */ + @Transactional + @PostMapping("/") + @Operation(summary = "新增添加报文模版", description = "新增添加报文模版") + public Result save(@RequestBody MessageTemplateAddReq messageTemplateAddReq) { + messageTemplateService.save(MessageTemplate.addBuild(messageTemplateAddReq)); + return Result.success("添加成功"); + } + + /** + * 删除报文模版 + * @param messageTemplateId 请求对象 + * @return 返回结果 + */ + @Transactional + @DeleteMapping("/{messageTemplateId}") + @Operation(summary = "删除报文模版", description = "删除报文模版") + public Result delete(@PathVariable("messageTemplateId") Long messageTemplateId) { + messageTemplateService.removeById(messageTemplateId); + return Result.success("删除成功"); + } + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/MessageValueController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/MessageValueController.java new file mode 100644 index 0000000..84e649d --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/MessageValueController.java @@ -0,0 +1,109 @@ +package com.muyu.enterprise.controller.car; + + +import cn.hutool.json.JSONObject; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.enterprise.domain.car.MessageValue; +import com.muyu.enterprise.domain.req.car.MessageValueAddReq; +import com.muyu.enterprise.domain.req.car.MessageValueReq; +import com.muyu.enterprise.domain.resp.car.MessageValueListResp; +import com.muyu.enterprise.service.car.MessageValueService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; + +import java.nio.charset.StandardCharsets; +import java.util.List; + +/** + * 报文数据控制层 + * @Author:李庆帅 + * @Package:com.muyu.car.controller + * @Project:cloud-server + * @name:MessageValueController + * @Date:2024/9/26 22:11 + * @Description: 报文数据控制层 + */ +@Log4j2 +@RestController +@RequestMapping("/messageValue") +@Tag(name = "报文数据控制层", description = "进行报文数据操作") +public class MessageValueController extends BaseController +{ + @Autowired + private MessageValueService messageValueService; + + /** + * 报文数据列表查询 + * @param messageValueReq 请求对象 + * @return 返回结果 + */ + @RequestMapping(value = "/list", method = RequestMethod.POST) + @Operation(summary = "报文数据列表", description = "根据报文类别, 报文模版筛选报文数据") + public Result> findAll(@RequestBody MessageValueReq messageValueReq) { + List list = messageValueService.findAll(messageValueReq); + return Result.success(list); + } + + /** + * 提供预警和故障使用 + * @return 返回结果 + */ + @GetMapping("/allList") + @Operation(summary = "报文数据下拉框", description = "全部报文数据下拉框") + public Result> findAllList() { + List list = messageValueService.list().stream().map( + value -> MessageValueListResp.valueBuild( + value + ) + ).toList(); + return Result.success(list); + } + + /** + * 新增添加报文数据 + * @param messageValueAddReq 请求对象 + * @return 返回结果 + */ + @Transactional + @PostMapping("/add") + @Operation(summary = "添加报文数据", description = "新增报文数据") + public Result save(@RequestBody MessageValueAddReq messageValueAddReq) { + messageValueService.save(MessageValue.addBuild(messageValueAddReq)); + return Result.success("添加成功"); + } + + /** + * 通过报文id删除数据 + * @param messageId 请求对象 + * @return 返回结果 + */ + @DeleteMapping("/{messageId}") + @Operation(summary = "删除报文数据", description = "删除报文数据") + public Result delete(@PathVariable Long messageId) { + messageValueService.removeById(messageId); + return Result.success("删除成功"); + } + +//7E 56 49 4e 31 32 33 34 35 36 37 38 39 31 32 33 34 35 32 33 35 36 37 38 39 31 32 33 34 35 31 31 36 2e 36 36 34 30 35 33 30 33 39 2e 35 33 31 37 39 31 30 32 30 30 2e 30 30 35 38 36 37 38 33 37 2e 33 32 34 36 33 35 2e 31 32 33 39 2e 34 39 31 36 38 37 39 38 2e 35 36 50 30 39 30 38 31 39 2e 39 39 39 39 2e 38 36 30 39 39 39 39 39 31 30 30 30 31 33 39 2e 34 36 31 34 2e 36 38 31 31 33 36 39 2e 38 39 31 30 30 2e 30 30 31 30 30 2e 30 30 31 30 30 2e 30 30 31 33 31 34 2e 36 35 33 36 30 2e 35 38 34 2e 35 36 33 2e 32 35 31 30 30 2e 30 30 39 38 2e 32 33 30 33 36 2e 32 36 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 76 7E + /** + * 报文转换测试 + * @param testStr 请求参数 + * @return 返回结果 + */ + @PostMapping("/analysis/{testStr}") + @Operation(summary = "测试解析报文", description = "解析报文测试") + public Result analysis(@PathVariable("testStr") String testStr){ + JSONObject messageValue = messageValueService.analysis(testStr); + return Result.success(messageValue); + } + + + + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/VehicleController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/VehicleController.java new file mode 100644 index 0000000..9e28514 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/VehicleController.java @@ -0,0 +1,130 @@ +package com.muyu.enterprise.controller.car; + + + +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.common.log.annotation.Log; +import com.muyu.enterprise.domain.car.Vehicle; +import com.muyu.enterprise.domain.req.car.VehicleAddReq; +import com.muyu.enterprise.domain.req.car.VehicleManageReq; +import com.muyu.enterprise.domain.req.car.VehicleUpdReq; +import com.muyu.enterprise.domain.resp.car.VehicleManageResp; +import com.muyu.enterprise.service.car.VehicleService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 车辆管理控制层 + * @Author:李庆帅 + * @Package:com.muyu.car.controller + * @Project:cloud-server + * @name:VehicleController + * @Date:2024/9/26 22:17 + * @Description: 车辆管理控制层 + */ +@Log4j2 +@RestController +@RequestMapping("/vehicleManage") +@Tag(name = "车辆管理控制层", description = "进行车辆管理操作") +public class VehicleController extends BaseController +{ + @Autowired + private VehicleService vehicleService; + + /** + * 查询车辆管理列表 + * @param vehicleManageReq 请求对象 + * @return 返回结果 + */ + @RequestMapping(path = "/list", method = RequestMethod.POST) + @Operation(summary = "车辆管理列表", description = "根据车牌号、VIN码、车辆状态筛选车辆") + public Result> getVehicleList(@RequestBody VehicleManageReq vehicleManageReq) { + startPage(); + List list = vehicleService.getVehicleList(vehicleManageReq); + return getDataTable(list); + } + + /** + * 车辆录入(添加车辆) + * @param vehicleAddReq 请求对象 + * @return 返回结果 + */ + @PostMapping("/") + @Operation(summary = "新增车辆", description = "录入车辆信息") + public Result save(@RequestBody VehicleAddReq vehicleAddReq) { + vehicleService.save(Vehicle.addBuild(vehicleAddReq)); + return Result.success("录入成功"); + } + + /** + * 通过车辆id获取车辆信息 + * @param vehicleId 请求对象 + * @return 返回结果 + */ + @GetMapping("/{vehicleId}") + @Operation(summary = "通过id查询车辆信息", description = "通过id查询车辆信息") + public Result findById(@PathVariable("vehicleId") Long vehicleId) { + return Result.success(vehicleService.getById(vehicleId)); + } + + /** + * 修改车辆信息 + * @param vehicleId 请求对象 + * @param vehicleUpdReq 请求对象 + * @return 返回结果 + */ + @PutMapping("/{vehicleId}") + @Operation(summary = "修改车辆信息", description = "修改车辆信息") + public Result update( + @PathVariable("vehicleId") Long vehicleId, + @RequestBody @Validated VehicleUpdReq vehicleUpdReq) { + vehicleService.updateById(Vehicle.updBuild(vehicleUpdReq, () -> vehicleId)); + return Result.success("修改成功"); + } + + /** + * 通过车辆id删除车辆信息 + * @param vehicleId 请求对象 + * @return 返回结果 + */ + @DeleteMapping("/{vehicleId}") + @Operation(summary = "通过车辆id删除车辆信息", description = "通过车辆id删除车辆信息") + public Result delete(@PathVariable("vehicleId") Long vehicleId) { + vehicleService.removeById(vehicleId); + return Result.success("删除成功"); + } + + /** + * 批量删除车辆 + * @param vehicleIds 请求对象 + * @return 返回结果 + */ + @DeleteMapping("/batchDelete") + @Operation(summary = "批量删除车辆") + public Result batchDelete(@RequestBody List vehicleIds) { + vehicleService.removeBatchByIds(vehicleIds); + return Result.success("批量删除成功"); + } + + /** + * 导出所有车辆数据 + * @param response 请求对象 + */ + @PostMapping("/export") + public void export(HttpServletResponse response) { + List list = vehicleService.list(); + ExcelUtil util = new ExcelUtil<>(Vehicle.class); + util.exportExcel(response, list, "车辆数据"); + } + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/VehicleTypeController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/VehicleTypeController.java new file mode 100644 index 0000000..54cc6eb --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/VehicleTypeController.java @@ -0,0 +1,48 @@ +package com.muyu.enterprise.controller.car; + + +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.enterprise.domain.car.VehicleType; +import com.muyu.enterprise.service.car.VehicleTypeService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 车辆类型控制层 + * @Author:李庆帅 + * @Package:com.muyu.car.controller + * @Project:cloud-server + * @name:VehicleTypeController + * @Date:2024/9/26 22:23 + * @Description: 车辆类型实体类 + */ +@Log4j2 +@RestController +@RequestMapping("/vehicleType") +@Tag(name = "车辆类型控制层", description = "车辆类型控制层") +public class VehicleTypeController extends BaseController +{ + @Autowired + private VehicleTypeService vehicleTypeService; + + /** + * 车辆类型查询 + * @return 返回结果 + */ + @RequestMapping(path = "/", method = RequestMethod.POST) + @Operation(summary = "车辆类型列表",description = "车辆类型列表") + public Result> findAll(){ + return Result.success(vehicleTypeService.list()); + } + + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/ElectronicFenceGroupMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/ElectronicFenceGroupMapper.java new file mode 100644 index 0000000..3724a8b --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/ElectronicFenceGroupMapper.java @@ -0,0 +1,20 @@ +package com.muyu.enterprise.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.enterprise.domain.dateBase.ElectronicFenceGroup; +import org.apache.ibatis.annotations.Mapper; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.mapper + * @Project:cloud-server + * @name:FenceGroupMapper + * @Date:2024/9/18 15:19 + */ + +/** + * 围栏组持久层 + */ +@Mapper +public interface ElectronicFenceGroupMapper extends BaseMapper { +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/ElectronicFenceMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/ElectronicFenceMapper.java new file mode 100644 index 0000000..0f9adf6 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/ElectronicFenceMapper.java @@ -0,0 +1,22 @@ +package com.muyu.enterprise.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.enterprise.domain.dateBase.ElectronicFence; +import org.apache.ibatis.annotations.Mapper; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.mapper + * @Project:cloud-server + * @name:ElectronicFenceMapper + * @Date:2024/9/17 19:29 + */ + +/** + * 电子围栏持久层 + */ +@Mapper +public interface ElectronicFenceMapper + extends BaseMapper +{ +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FenceGroupMidMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FenceGroupMidMapper.java new file mode 100644 index 0000000..47077fe --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FenceGroupMidMapper.java @@ -0,0 +1,20 @@ +package com.muyu.enterprise.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.enterprise.domain.dateBase.FenceGroupMid; +import org.apache.ibatis.annotations.Mapper; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.mapper + * @Project:cloud-server + * @name:FenceGroupMidMapper + * @Date:2024/9/20 11:35 + */ + +/** + * 围栏中间链表持久层 + */ +@Mapper +public interface FenceGroupMidMapper extends BaseMapper { +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/MessageTemplateMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/MessageTemplateMapper.java new file mode 100644 index 0000000..49352c1 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/MessageTemplateMapper.java @@ -0,0 +1,19 @@ +package com.muyu.enterprise.mapper.car; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.enterprise.domain.car.MessageTemplate; +import org.apache.ibatis.annotations.Mapper; + +/** + * 报文类型持久层 + * @Author:李庆帅 + * @Package:com.muyu.car.mapper + * @Project:cloud-server + * @name:MessageTemplateMapper + * @Date:2024/9/26 22:25 + * @Description: 报文类型持久层 + */ +@Mapper +public interface MessageTemplateMapper extends BaseMapper +{ +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/MessageValueMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/MessageValueMapper.java new file mode 100644 index 0000000..b975409 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/MessageValueMapper.java @@ -0,0 +1,37 @@ +package com.muyu.enterprise.mapper.car; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.enterprise.domain.car.MessageValue; +import com.muyu.enterprise.domain.resp.car.MessageValueListResp; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 报文类型持久层 + * @Author:李庆帅 + * @Package:com.muyu.car.mapper + * @Project:cloud-server + * @name:MessageValueMapper + * @Date:2024/9/26 22:26 + * @Description: 报文类型持久层 + */ +@Mapper +public interface MessageValueMapper extends BaseMapper +{ + /** + * 根据车辆VIN获取车辆报文模版id + * @param vehicleVin + * @return + */ + Long getTemplateId(@Param("vehicleVin") String vehicleVin); + + /** + * 获取报文模版列表 + * @param templateId + * @return + */ + List getTemplateList(@Param("templateId") Long templateId); + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/VehicleMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/VehicleMapper.java new file mode 100644 index 0000000..314b93d --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/VehicleMapper.java @@ -0,0 +1,31 @@ +package com.muyu.enterprise.mapper.car; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.enterprise.domain.car.Vehicle; +import com.muyu.enterprise.domain.req.car.VehicleManageReq; +import com.muyu.enterprise.domain.resp.car.VehicleManageResp; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 车辆管理持久层 + * @Author:李庆帅 + * @Package:com.muyu.car.mapper + * @Project:cloud-server + * @name:VehicleMapper + * @Date:2024/9/26 22:26 + * @Description: 车辆管理持久层 + */ +@Mapper +public interface VehicleMapper extends BaseMapper +{ + /** + * 查询车辆管理列表 + * @param vehicleManageReq 请求对象 + * @return 返回结果 + */ + List findAll(VehicleManageReq vehicleManageReq); + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/VehicleTypeMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/VehicleTypeMapper.java new file mode 100644 index 0000000..69bac79 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/VehicleTypeMapper.java @@ -0,0 +1,21 @@ +package com.muyu.enterprise.mapper.car; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import com.muyu.enterprise.domain.car.VehicleType; +import org.apache.ibatis.annotations.Mapper; + + +/** + * 车辆类型持久层 + * @Author:李庆帅 + * @Package:com.muyu.car.mapper + * @Project:cloud-server + * @name:VehicleTypeMapper + * @Date:2024/9/26 22:27 + * @Description: 车辆类型持久层 + */ +@Mapper +public interface VehicleTypeMapper extends BaseMapper +{ +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/ElectronicFenceGroupService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/ElectronicFenceGroupService.java new file mode 100644 index 0000000..62fda50 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/ElectronicFenceGroupService.java @@ -0,0 +1,28 @@ +package com.muyu.enterprise.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.enterprise.domain.dateBase.ElectronicFenceGroup; +import com.muyu.enterprise.domain.req.ElectronicFenceGroupListReq; +import com.muyu.enterprise.domain.resp.ElectronicFenceGroupResp; + +import java.util.List; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.service + * @Project:cloud-server + * @name:FenceGroupController + * @Date:2024/9/18 15:16 + */ + +/** + * 围栏组业务层 + */ +public interface ElectronicFenceGroupService extends IService { + + + List selectGroupList(ElectronicFenceGroupListReq req); + + + ElectronicFenceGroupResp findGroupByid(Long id); +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/ElectronicFenceService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/ElectronicFenceService.java new file mode 100644 index 0000000..0368436 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/ElectronicFenceService.java @@ -0,0 +1,81 @@ +package com.muyu.enterprise.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.enterprise.domain.dateBase.ElectronicFence; +import com.muyu.enterprise.domain.req.ElectroicFenceAddReq; +import com.muyu.enterprise.domain.req.ElectroicFenceListReq; +import com.muyu.enterprise.domain.resp.ElectronicFenceResp; + + +import java.util.List; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.service + * @Project:cloud-server + * @name:ElectronicFenceService + * @Date:2024/9/17 19:29 + */ + +/** + * 围栏组业务层 + */ +public interface ElectronicFenceService extends IService { + /** + * 围栏列表 + * @param electroicFenceListReq + * @return + */ + List fenceselectList(ElectroicFenceListReq electroicFenceListReq); + + /** + * 添加围栏 + * @param electroicFenceAddReq + */ + void AddFence(ElectroicFenceAddReq electroicFenceAddReq); + + /** + * 根据id回显围栏 + * + * @param id + * @return + */ + ElectronicFence findElectronicByid(Long id); + + /** + * 根据id删除围栏围栏 + * @param id + */ + void delElectronById(Long id); + + /** + * 开启围栏 + * @param id + */ + void openFence(Long id); + + /** + * 关闭围栏 + * @param id + */ + void closeFence(Long id); + + /** + * 根据id设置围栏的经纬度 + * @param id + * @param longitudeLatitude + */ + void setFenceWay(Long id, String longitudeLatitude); + + /** + * 获取所有可用围栏 + * @return + */ + + + List fenceArray(); + + void unquireFence(String name); + + List selectListByIds(List ids); +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FenceGroupMidService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FenceGroupMidService.java new file mode 100644 index 0000000..7aee7b8 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FenceGroupMidService.java @@ -0,0 +1,30 @@ +package com.muyu.enterprise.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.enterprise.domain.dateBase.FenceGroupMid; +import com.muyu.enterprise.domain.resp.ElectronicFenceResp; + + +import java.util.List; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.service + * @Project:cloud-server + * @name:FenceGroupMidService + * @Date:2024/9/20 11:33 + */ + +/** + * 围栏链表业务层 + */ +public interface FenceGroupMidService extends IService { + + + void addGroupAndFenceMid(Long id, List electronicFenceRespList); + + List selectFenceGroupMidListById(Long id); + + + void deliteMid(Long id); +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/MessageTemplateService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/MessageTemplateService.java new file mode 100644 index 0000000..d216bf0 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/MessageTemplateService.java @@ -0,0 +1,20 @@ +package com.muyu.enterprise.service.car; + +import com.baomidou.mybatisplus.extension.service.IService; + +import com.muyu.enterprise.domain.car.MessageTemplate; +import org.springframework.stereotype.Service; + +/** + * 报文模版接口业务层 + * @Author:李庆帅 + * @Package:com.muyu.car.service + * @Project:cloud-server + * @name:MessageTemplateService + * @Date:2024/9/26 22:28 + * @Description: 报文模版接口 + */ +public interface MessageTemplateService +extends IService +{ +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/MessageValueService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/MessageValueService.java new file mode 100644 index 0000000..86c8f37 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/MessageValueService.java @@ -0,0 +1,40 @@ +package com.muyu.enterprise.service.car; + + +import cn.hutool.json.JSONObject; +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.enterprise.domain.req.car.MessageValueReq; +import com.muyu.enterprise.domain.resp.car.MessageValueListResp; +import com.muyu.enterprise.domain.car.MessageValue; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 报文数据接口业务层 + * @Author:李庆帅 + * @Package:com.muyu.car.service + * @Project:cloud-server + * @name:MessageValueService + * @Date:2024/9/26 22:29 + * @Description: 报文数据接口 + */ + +public interface MessageValueService +extends IService +{ + /** + * 报文模版数据列表 + * @param messageValueReq 请求对象 + * @return 返回结果 + */ + List findAll(MessageValueReq messageValueReq); + + /** + * 报文解析 + * + * @param testStr 请求对象 + * @return 返回结果 + */ + JSONObject analysis(String testStr); +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/VehicleService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/VehicleService.java new file mode 100644 index 0000000..e4de83d --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/VehicleService.java @@ -0,0 +1,30 @@ +package com.muyu.enterprise.service.car; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.enterprise.domain.car.Vehicle; +import com.muyu.enterprise.domain.req.car.VehicleManageReq; +import com.muyu.enterprise.domain.resp.car.VehicleManageResp; + + +import java.util.List; + +/** + * 车辆管理接口业务层 + * @Author:李庆帅 + * @Package:com.muyu.car.service + * @Project:cloud-server + * @name:VehicleService + * @Date:2024/9/26 22:30 + * @Description: 车辆管理接口 + */ +public interface VehicleService +extends IService +{ + /** + * 查询车辆管理列表 + * @param vehicleManageReq 请求对象 + * @return 返回结果 + */ + List getVehicleList(VehicleManageReq vehicleManageReq); + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/VehicleTypeService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/VehicleTypeService.java new file mode 100644 index 0000000..b845630 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/VehicleTypeService.java @@ -0,0 +1,19 @@ +package com.muyu.enterprise.service.car; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.enterprise.domain.car.VehicleType; + + +/** + * 车辆类型接口业务层 + * @Author:李庆帅 + * @Package:com.muyu.car.service + * @Project:cloud-server + * @name:VehicleTypeService + * @Date:2024/9/26 22:31 + * @Description: 车辆类型接口 + */ +public interface VehicleTypeService +extends IService +{ +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/ElectronicFenceGroupServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/ElectronicFenceGroupServiceImpl.java new file mode 100644 index 0000000..89496b6 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/ElectronicFenceGroupServiceImpl.java @@ -0,0 +1,93 @@ +package com.muyu.enterprise.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.utils.StringUtils; +import com.muyu.enterprise.domain.dateBase.ElectronicFenceGroup; +import com.muyu.enterprise.domain.dateBase.FenceGroupMid; +import com.muyu.enterprise.domain.req.ElectronicFenceGroupListReq; +import com.muyu.enterprise.domain.resp.ElectronicFenceGroupResp; +import com.muyu.enterprise.domain.resp.ElectronicFenceResp; +import com.muyu.enterprise.mapper.ElectronicFenceGroupMapper; +import com.muyu.enterprise.service.ElectronicFenceGroupService; +import com.muyu.enterprise.service.ElectronicFenceService; +import com.muyu.enterprise.service.FenceGroupMidService; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.service.impl + * @Project:cloud-server + * @name:FenceGroupServiceImpl + * @Date:2024/9/18 15:17 + */ + +/** + * 围栏组业务实现层 + */ +@Log4j2 +@Service +public class ElectronicFenceGroupServiceImpl + extends ServiceImpl + implements ElectronicFenceGroupService { + + @Autowired + private ElectronicFenceGroupMapper electronicFenceGroupMapper; + + @Autowired + private ElectronicFenceService electronicFenceService; + + @Autowired + private FenceGroupMidService fenceGroupMidService; + + @Override + public List selectGroupList(ElectronicFenceGroupListReq req) { + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + + queryWrapper.like( + StringUtils.isNotNull(req.getGroupName()),ElectronicFenceGroup::getGroupName,req.getGroupName() + ); + queryWrapper.eq( + StringUtils.isNotNull(req.getPriority()),ElectronicFenceGroup::getPriority,req.getPriority() + ); + queryWrapper.eq( + StringUtils.isNotEmpty(req.getGroupType()),ElectronicFenceGroup::getGroupType,req.getGroupType() + ); + queryWrapper.eq( + StringUtils.isNotEmpty(req.getStatus()),ElectronicFenceGroup::getStatus, req.getStatus() + ); + List list = this.list(queryWrapper); + + return list; + + } + + @Override + public ElectronicFenceGroupResp findGroupByid(Long id) { + + ElectronicFenceGroup electronicFenceGroup = this.getById(id); + + ElectronicFenceGroupResp electronicFenceGroupResp = ElectronicFenceGroup.buildElectronicFenceGroupResp(electronicFenceGroup); + + + List fenceGroupMidList = fenceGroupMidService.selectFenceGroupMidListById(id); + + if (0 ids = fenceGroupMidList.stream().map(FenceGroupMid::getFenceId).toList(); + + List electronicFenceRespList= electronicFenceService.selectListByIds(ids); + + electronicFenceGroupResp.setElectronicFenceRespList(electronicFenceRespList); + } + + + return electronicFenceGroupResp; + } + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/ElectronicFenceServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/ElectronicFenceServiceImpl.java new file mode 100644 index 0000000..58244cf --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/ElectronicFenceServiceImpl.java @@ -0,0 +1,154 @@ +package com.muyu.enterprise.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.utils.StringUtils; +import com.muyu.enterprise.domain.dateBase.ElectronicFence; +import com.muyu.enterprise.domain.req.ElectroicFenceAddReq; +import com.muyu.enterprise.domain.req.ElectroicFenceListReq; +import com.muyu.enterprise.domain.resp.ElectronicFenceResp; +import com.muyu.enterprise.mapper.ElectronicFenceMapper; +import com.muyu.enterprise.service.ElectronicFenceService; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.service.impl + * @Project:cloud-server + * @name:ElectronicFenceServiceImpl + * @Date:2024/9/17 19:31 + */ + +/** + * 电子围栏业务实现层 + */ +@Log4j2 +@Service +public class ElectronicFenceServiceImpl + extends ServiceImpl + implements ElectronicFenceService { + + @Autowired + private ElectronicFenceMapper electronicFenceMapper; + + + @Override + public List fenceselectList(ElectroicFenceListReq electroicFenceListReq) { + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + + queryWrapper.like( + StringUtils.isNotNull(electroicFenceListReq.getName()),ElectronicFence::getName, electroicFenceListReq.getName() + ); + queryWrapper.eq( + StringUtils.isNotEmpty(electroicFenceListReq.getFenceType()),ElectronicFence::getFenceType, electroicFenceListReq.getFenceType() + ); + queryWrapper.eq( + StringUtils.isNotEmpty(electroicFenceListReq.getStatus()),ElectronicFence::getStatus, electroicFenceListReq.getStatus() + ); + List list = this.list(queryWrapper); + + return list.stream().map(ElectronicFence::bullerResp).toList(); + } + + @Override + public void AddFence(ElectroicFenceAddReq electroicFenceAddReq) { + + + + electronicFenceMapper.insert(ElectronicFence.buildElectroicAdd(electroicFenceAddReq)); + + + + + } + + @Override + public ElectronicFence findElectronicByid(Long id) { + + ElectronicFence electronicFence = electronicFenceMapper.selectById(id); + return electronicFence; + } + + @Override + public void delElectronById(Long id) { + electronicFenceMapper.deleteById(id); + } + + + @Override + public void openFence(Long id) { + + updateStatus(id,0); + + } + + @Override + public void closeFence(Long id) { + updateStatus(id,1); + } + + public void updateStatus (Long id,int status){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + + updateWrapper.eq("id",id).set("status",status); + + this.update(updateWrapper); + + + } + + + @Override + public void setFenceWay(Long id, String longitudeLatitude) { + + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + + updateWrapper.eq("id",id).set("longitude_latitude",longitudeLatitude); + + this.update(updateWrapper); + } + + @Override + public List fenceArray() { + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + + LambdaQueryWrapper wrapper = queryWrapper.eq(ElectronicFence::getStatus, 0); + + List list = this.list(wrapper); + + return list.stream().map(ElectronicFence::bullerResp).toList(); + } + + @Override + public void unquireFence(String name) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + + queryWrapper.eq(ElectronicFence::getName,name); + + List fenceList = this.list(queryWrapper); + + if (fenceList.size()>0){ + throw new RuntimeException("电子围栏名不能重复"); + } + + + } + + @Override + public List selectListByIds(List ids) { + + List electronicFenceList = this.list(Wrappers.lambdaQuery().in(ElectronicFence::getId, ids)); + + + return electronicFenceList.stream().map(ElectronicFence::bullerResp).toList(); + } +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FenceGroupMidServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FenceGroupMidServiceImpl.java new file mode 100644 index 0000000..7a7f704 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FenceGroupMidServiceImpl.java @@ -0,0 +1,60 @@ +package com.muyu.enterprise.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.enterprise.domain.dateBase.FenceGroupMid; +import com.muyu.enterprise.domain.resp.ElectronicFenceResp; +import com.muyu.enterprise.mapper.FenceGroupMidMapper; +import com.muyu.enterprise.service.FenceGroupMidService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Author:李庆帅 + * @Package:com.muyu.fence.service.impl + * @Project:cloud-server + * @name:FenceGroupMidServiceImpl + * @Date:2024/9/20 11:34 + */ + +/** + * 围栏链表业务实现层 + */ +@Service +public class FenceGroupMidServiceImpl extends ServiceImpl implements FenceGroupMidService { + + @Autowired + private FenceGroupMidMapper fenceGroupMidMapper; + + @Override + public void addGroupAndFenceMid(Long id, List electronicFenceRespList) { + for (ElectronicFenceResp electronicFenceResp : electronicFenceRespList) { + fenceGroupMidMapper.insert(new FenceGroupMid(null, id, electronicFenceResp.getId())); + } + } + + @Override + public List selectFenceGroupMidListById(Long groupId) { + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + + queryWrapper.eq(FenceGroupMid::getGroupId, groupId); + + this.list(queryWrapper); + + + return this.list(queryWrapper); + } + + @Override + public void deliteMid(Long id) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + + wrapper.eq(FenceGroupMid::getGroupId, id); + + this.remove(wrapper); + } + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/MessageTemplateServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/MessageTemplateServiceImpl.java new file mode 100644 index 0000000..76e4c0d --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/MessageTemplateServiceImpl.java @@ -0,0 +1,27 @@ +package com.muyu.enterprise.service.impl.carImpl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.enterprise.domain.car.MessageTemplate; +import com.muyu.enterprise.mapper.car.MessageTemplateMapper; +import com.muyu.enterprise.service.car.MessageTemplateService; +import lombok.extern.log4j.Log4j2; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * @Author:李庆帅 + * @Package:com.muyu.car.service.impl + * @Project:cloud-server + * @name:MessageTemplateServiceImpl + * @Date:2024/9/26 22:31 + * @Description: 报文类型业务层 + */ +@Log4j2 +@Service +//@Transactional +public class MessageTemplateServiceImpl +extends ServiceImpl implements MessageTemplateService +{ + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/MessageValueServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/MessageValueServiceImpl.java new file mode 100644 index 0000000..223efc9 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/MessageValueServiceImpl.java @@ -0,0 +1,141 @@ +package com.muyu.enterprise.service.impl.carImpl; + + +import cn.hutool.json.JSONObject; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.enterprise.domain.car.MessageValue; +import com.muyu.enterprise.domain.req.car.MessageValueReq; +import com.muyu.enterprise.domain.resp.car.MessageValueListResp; +import com.muyu.enterprise.mapper.car.MessageValueMapper; +import com.muyu.enterprise.service.car.MessageValueService; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * @Author:李庆帅 + * @Package:com.muyu.car.service.impl + * @Project:cloud-server + * @name:MessageValueServiceImpl + * @Date:2024/9/26 22:32 + * @Description: 报文数据业务层 + */ +@Log4j2 +@Service +public class MessageValueServiceImpl +extends ServiceImpl implements MessageValueService +{ + /** + * 报文类型持久层 + */ + @Resource + private MessageValueMapper messageValueMapper; + /** + * Redis缓存 + */ + @Resource + private RedisTemplate redisTemplate; + + + public MessageValueServiceImpl(MessageValueMapper messageValueMapper) { + this.messageValueMapper = messageValueMapper; + } + /** + * 报文数据列表查询 + * @param messageValueReq 请求对象 + * @return 返回结果 + */ + @Override + public List findAll(MessageValueReq messageValueReq) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq( + MessageValue::getTemplateId, messageValueReq.getMessageTemplateId() + ); + queryWrapper.eq( + MessageValue::getMessageType, messageValueReq.getMessageType() + ); + List list = this.list(queryWrapper); + return list.stream() + .map(messageValue -> MessageValueListResp.valueBuild( + messageValue + ) + ) + .toList(); + } + /** + * 报文转换测试 + * @param testStr 请求参数 + * @return 返回结果 + */ + @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 templateList = null; + if (redisTemplate.hasKey("messageTemplate" + templateId)) { + List list = redisTemplate.opsForList().range("messageTemplate" + templateId, 0, -1); + ArrayList arrayList = new ArrayList<>(); + for (Object o : list) { + String obj = (String) o; + MessageValueListResp messageValue = JSON.parseObject(obj, MessageValueListResp.class); + arrayList.add(messageValue); + } + log.info("Redis查询成功"); + templateList = arrayList; + } else { + List list = messageValueMapper.getTemplateList(templateId); + redisTemplate.opsForList().rightPushAll("messageTemplate" + templateId, list); + log.info("数据库查询成功"); + templateList = list; + } + //判断报文模版列表不为空 + if (templateList == null){ + throw new RuntimeException("报文模板为空"); + } + //存储报文模板解析后数据 + 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 stringObjectEntry : jsonObject) { + log.info(stringObjectEntry.getKey() + ":" + stringObjectEntry.getValue()); + } + return jsonObject; + } + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleServiceImpl.java new file mode 100644 index 0000000..6aa1bd8 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleServiceImpl.java @@ -0,0 +1,44 @@ +package com.muyu.enterprise.service.impl.carImpl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.enterprise.domain.car.Vehicle; +import com.muyu.enterprise.domain.req.car.VehicleManageReq; +import com.muyu.enterprise.domain.resp.car.VehicleManageResp; +import com.muyu.enterprise.mapper.car.VehicleMapper; +import com.muyu.enterprise.service.car.VehicleService; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Author:李庆帅 + * @Package:com.muyu.car.service.impl + * @Project:cloud-server + * @name:VehicleServiceImpl + * @Date:2024/9/26 22:35 + * @Description: 车辆管理业务层 + */ +@Log4j2 +@Service +public class VehicleServiceImpl +extends ServiceImpl implements VehicleService +{ + @Autowired + private VehicleMapper vehicleMapper; + + /** + * 查询车辆管理列表 + * @param vehicleManageReq 请求对象 + * @return 返回结果 + */ + @Override + public List getVehicleList(VehicleManageReq vehicleManageReq) { + List vehicleList = vehicleMapper.findAll(vehicleManageReq); + return vehicleList; + } + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleTypeServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleTypeServiceImpl.java new file mode 100644 index 0000000..6d024cf --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleTypeServiceImpl.java @@ -0,0 +1,24 @@ +package com.muyu.enterprise.service.impl.carImpl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.enterprise.domain.car.VehicleType; +import com.muyu.enterprise.mapper.car.VehicleTypeMapper; +import com.muyu.enterprise.service.car.VehicleTypeService; +import lombok.extern.log4j.Log4j2; +import org.springframework.stereotype.Service; + +/** + * @Author:李庆帅 + * @Package:com.muyu.car.service.impl + * @Project:cloud-server + * @name:VehicleTypeServiceImpl + * @Date:2024/9/26 22:36 + * @Description: 车辆类型实现层 + */ +@Log4j2 +@Service +public class VehicleTypeServiceImpl + extends ServiceImpl + implements VehicleTypeService +{ +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/bootstrap.yml index b2e0126..bf51620 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: lqs spring: application: @@ -43,4 +43,4 @@ spring: # 系统共享配置 - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} # 系统环境Config共享配置 - - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} \ No newline at end of file + - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/car/VehicleManageMapper.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/car/VehicleManageMapper.xml new file mode 100644 index 0000000..7f3f444 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/car/VehicleManageMapper.xml @@ -0,0 +1,34 @@ + + + + + + + diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/car/VehicleValueMapper.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/car/VehicleValueMapper.xml new file mode 100644 index 0000000..8efe1ab --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/car/VehicleValueMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + diff --git a/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml index b471a18..f4690da 100644 --- a/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: lqs # Spring spring: diff --git a/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml index 7e3624f..7600be4 100644 --- a/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: lqs # Spring spring: diff --git a/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml index eacfcd2..8c1b73c 100644 --- a/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: lqs spring: application: @@ -43,4 +43,4 @@ spring: # 系统共享配置 - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} # 系统环境Config共享配置 - - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} \ No newline at end of file + - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} diff --git a/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml b/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml index da1f316..7f6c1b2 100644 --- a/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml +++ b/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: lqs # Spring spring: From 2d25fd9a04a4cebeeb9f89ed00c8e42cece42297 Mon Sep 17 00:00:00 2001 From: crj <1518542096@qq.com> Date: Sat, 28 Sep 2024 16:36:58 +0800 Subject: [PATCH 09/30] =?UTF-8?q?feax:()=E4=BF=AE=E6=94=B9=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E8=A7=84=E8=8C=83(=E6=B3=A8=E9=87=8A)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/muyu/enterprise/domain/CarCompany.java | 8 +++++++- .../main/java/com/muyu/enterprise/domain/CarMessage.java | 8 ++++---- .../java/com/muyu/enterprise/domain/CarMessageType.java | 7 ++++++- .../main/java/com/muyu/enterprise/domain/CarTemplate.java | 6 ++++++ .../src/main/java/com/muyu/enterprise/domain/CarType.java | 1 + .../com/muyu/enterprise/controller/CarTypeController.java | 1 + .../muyu/enterprise/controller/FaultLogController.java | 2 +- .../enterprise/controller/FaultMessageController.java | 2 +- .../java/com/muyu/system/controller/SysEntController.java | 3 ++- 9 files changed, 29 insertions(+), 9 deletions(-) diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarCompany.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarCompany.java index f02909d..91a0bdc 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarCompany.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarCompany.java @@ -8,12 +8,18 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; - +/** + * 企业表 + * @Author: chenruijia + * @Date 2024/9/28 16.06 + * @Description CarCompany:企业表 + */ @Data @NoArgsConstructor @AllArgsConstructor @Builder @TableName(value = "t_company") +@Tag(name = "") public class CarCompany { /** * 企业表 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarMessage.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarMessage.java index aa1737e..82af336 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarMessage.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarMessage.java @@ -8,10 +8,10 @@ import lombok.Data; import lombok.NoArgsConstructor; /** - * @ClassName CarMessage - * @Description 描述 - * @Author YiBo.Liu - * @Date 2024/9/22 22:24 + * 报文表 + * @Author: chenruijia + * @Date 2024/9/28 16.06 + * @Description CarMessage:报文表 */ @Data @AllArgsConstructor diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarMessageType.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarMessageType.java index 5674719..8a32b5c 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarMessageType.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarMessageType.java @@ -7,7 +7,12 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; - +/** + * 报文类型表 + * @Author: chenruijia + * @Date 2024/9/28 12.23 + * @Description CarMessageType:报文类型表 + */ @Data @NoArgsConstructor @AllArgsConstructor diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarTemplate.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarTemplate.java index 8eeeb36..420a2bf 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarTemplate.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarTemplate.java @@ -8,6 +8,12 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +/** + * 故障规则 + * @Author: chenruijia + * @Date 2024/9/28 12.23 + * @Description FaultrRule:故障规则 + */ @Data @NoArgsConstructor @AllArgsConstructor diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarType.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarType.java index faf4a53..9e75010 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarType.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarType.java @@ -8,6 +8,7 @@ import lombok.Data; import lombok.NoArgsConstructor; /** + * 车辆类型表 * @ClassName CarType * @Description 描述 * @Author YiBo.Liu diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarTypeController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarTypeController.java index 51ab78d..afd1ec5 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarTypeController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarTypeController.java @@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; /** + * 车辆类型控制层 * @ClassName CarController * @Description 车辆类型Controller层 * @Author YiBo.Liu diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultLogController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultLogController.java index 48fea67..045e489 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultLogController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultLogController.java @@ -13,7 +13,7 @@ import java.util.List; /** * 故障日志控制层 - * @Author: chenruijia + * @author chenruijia * @Date 2024/9/28 11:58 * @Description FaultLogController:故障日志控制层 */ diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultMessageController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultMessageController.java index c7539ab..896bf73 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultMessageController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultMessageController.java @@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; /** * 站内信控制层 - * @Author: chenruijia + * @author chenruijia * @Date 2024/9/28 11:58 * @Description FaultMessageController:站内信控制层 */ diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysEntController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysEntController.java index 5fc4492..0b7ad98 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysEntController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysEntController.java @@ -20,7 +20,8 @@ import org.springframework.web.bind.annotation.*; import java.util.List; /** - * @Author: zi run + * 企业管理控制层 + * @Author: chenruijia * @Date 2024/9/26 0:21 * @Description 企业管理控制层 */ From 13bf016452c751af300a3632ce9b20319bfe63ee Mon Sep 17 00:00:00 2001 From: crj <1518542096@qq.com> Date: Sat, 28 Sep 2024 16:51:13 +0800 Subject: [PATCH 10/30] =?UTF-8?q?feax:()=E4=BF=AE=E6=94=B9=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E8=A7=84=E8=8C=83(=E6=B3=A8=E9=87=8A)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/muyu/enterprise/controller/FaultTypeController.java | 2 +- .../com/muyu/enterprise/controller/FaultrRuleController.java | 2 +- .../com/muyu/enterprise/controller/SysCarFaultController.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultTypeController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultTypeController.java index f8c78e9..63152de 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultTypeController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultTypeController.java @@ -11,7 +11,7 @@ import java.util.List; /** * 故障类型控制层 - * @Author: chenruijia + * @author chenruijia * @Date 2024/9/28 11:58 * @Description FaultTypeController:故障类型控制层 */ diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultrRuleController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultrRuleController.java index a3958f1..37df64c 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultrRuleController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultrRuleController.java @@ -12,7 +12,7 @@ import java.util.Arrays; import java.util.List; /** * 故障的规则控制层 - * @Author: chenruijia + * @author chenruijia * @Date 2024/9/28 11:58 * @Description FaultrRuleController:故障的规则控制层 */ diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarFaultController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarFaultController.java index 2506bd4..d2bf065 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarFaultController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarFaultController.java @@ -22,7 +22,7 @@ import java.util.Random; /** * 故障管理控制层 - * @Author: chenruijia + * @author chenruijia * @Date 2024/9/28 11:58 * @Description SysCarFaultController:故障管理控制层 */ From b70a552b6a6abe10a78b333f177a09d48c73bdf4 Mon Sep 17 00:00:00 2001 From: LQS <2506203757@qq.com> Date: Sat, 28 Sep 2024 17:04:31 +0800 Subject: [PATCH 11/30] =?UTF-8?q?fate():MQTT=E9=93=BE=E6=8E=A5=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/muyu/enterprise/MQTT/{Demo.java => DemoMQTT.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/{Demo.java => DemoMQTT.java} (98%) diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/Demo.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/DemoMQTT.java similarity index 98% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/Demo.java rename to cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/DemoMQTT.java index 62730fe..518139d 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/Demo.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/DemoMQTT.java @@ -10,7 +10,7 @@ import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; * @Author YiBo.Liu * @Date 2024/9/27 22:27 */ -public class Demo { +public class DemoMQTT { public static void main(String[] args) { From 26d3ffda93bc4769eab17e6d819125611399cde9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E9=86=BA?= <14463847+zmw770157181@user.noreply.gitee.com> Date: Sat, 28 Sep 2024 20:21:08 +0800 Subject: [PATCH 12/30] =?UTF-8?q?1.=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=202.swagger=E6=96=87=E6=A1=A3=20=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=97=B6=E9=97=B409282021?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../muyu/enterprise/domain/CarCompany.java | 12 +- .../com/muyu/enterprise/domain/CarConfig.java | 48 ++++++ .../com/muyu/enterprise/domain/CarManage.java | 114 +++++++++++++ .../muyu/enterprise/domain/CarMessage.java | 12 +- .../enterprise/domain/CarMessageType.java | 12 +- .../muyu/enterprise/domain/CarTemplate.java | 12 +- .../com/muyu/enterprise/domain/CarType.java | 12 +- .../cloud-modules-enterprise-server/pom.xml | 9 +- .../controller/CarCompanyController.java | 44 +++++ ...ntroller.java => CarManageController.java} | 64 ++++---- .../controller/CarMessageController.java | 73 +++++++-- .../controller/CarMessageTypeController.java | 91 +++++++++++ ...roller.java => CarTemplateController.java} | 16 +- .../controller/CarTypeController.java | 2 + .../controller/SysCarCompanyController.java | 31 ---- .../controller/SysCarMessageController.java | 66 -------- .../enterprise/mapper/CarCompanyMapper.java | 16 ++ ...SysCarMapper.java => CarManageMapper.java} | 13 +- .../enterprise/mapper/CarMessageMapper.java | 14 ++ .../mapper/CarMessageTypeMapper.java | 15 ++ ...lateMapper.java => CarTemplateMapper.java} | 10 +- .../muyu/enterprise/mapper/CarTypeMapper.java | 9 +- .../mapper/SysCarCompanyMapper.java | 14 -- .../mapper/SysCarMessageMapper.java | 17 -- ...anyService.java => CarCompanyService.java} | 10 +- .../enterprise/service/CarManageService.java | 50 ++++++ .../enterprise/service/CarMessageService.java | 21 +++ .../service/CarMessageTypeService.java | 16 ++ ...teService.java => CarTemplateService.java} | 10 +- .../enterprise/service/CarTypeService.java | 8 +- .../service/SysCarMessageService.java | 22 --- .../enterprise/service/SysCarService.java | 52 ------ .../service/impl/CarCompanyServiceImpl.java | 39 +++++ .../service/impl/CarManageServiceImpl.java | 151 ++++++++++++++++++ .../service/impl/CarMessageServiceImpl.java | 32 +++- .../impl/CarMessageTypeServiceImpl.java | 25 +++ ...eImpl.java => CarTemplateServiceImpl.java} | 16 +- .../service/impl/CarTypeTypeServiceImpl.java | 9 +- .../impl/SysCarCompanyServiceImpl.java | 30 ---- .../impl/SysCarMessageServiceImpl.java | 36 ----- .../service/impl/SysCarServiceImpl.java | 126 --------------- .../{SysCarMapper.xml => CarManageMapper.xml} | 22 +-- ...MessageMapper.xml => CarMessageMapper.xml} | 2 +- ...mplateMapper.xml => CarTemplateMapper.xml} | 2 +- 44 files changed, 904 insertions(+), 501 deletions(-) create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarConfig.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarManage.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarCompanyController.java rename cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/{SysCarController.java => CarManageController.java} (55%) create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarMessageTypeController.java rename cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/{SysCarTemplateController.java => CarTemplateController.java} (82%) delete mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarCompanyController.java delete mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarMessageController.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarCompanyMapper.java rename cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/{SysCarMapper.java => CarManageMapper.java} (74%) create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarMessageTypeMapper.java rename cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/{SysCarTemplateMapper.java => CarTemplateMapper.java} (59%) delete mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarCompanyMapper.java delete mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarMessageMapper.java rename cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/{SysCarCompanyService.java => CarCompanyService.java} (53%) create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarManageService.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarMessageTypeService.java rename cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/{SysCarTemplateService.java => CarTemplateService.java} (65%) delete mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarMessageService.java delete mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarService.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarCompanyServiceImpl.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarManageServiceImpl.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarMessageTypeServiceImpl.java rename cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/{SysCarTemplateServiceImpl.java => CarTemplateServiceImpl.java} (62%) delete mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarCompanyServiceImpl.java delete mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarMessageServiceImpl.java delete mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarServiceImpl.java rename cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/car/{SysCarMapper.xml => CarManageMapper.xml} (82%) rename cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/manage/{SysCarMessageMapper.xml => CarMessageMapper.xml} (88%) rename cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/message/{SysCarTemplateMapper.xml => CarTemplateMapper.xml} (83%) diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarCompany.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarCompany.java index 0acce79..8518d7b 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarCompany.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarCompany.java @@ -3,16 +3,24 @@ package com.muyu.enterprise.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; - +/** + * 企业表--实体类 + * @ClassName CarCompany + * @Description 企业表 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ @Data @NoArgsConstructor @AllArgsConstructor @Builder -@TableName(value = "t_company") +@TableName(value = "car_company") +@Tag(name = "企业表") public class CarCompany { /** * 企业表 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarConfig.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarConfig.java new file mode 100644 index 0000000..ecb8560 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarConfig.java @@ -0,0 +1,48 @@ +package com.muyu.enterprise.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 车辆配置表--实体类 + * @ClassName CarConfig + * @Description 车辆配置表 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Tag(name = "车辆配置表") +@TableName(value = "car_config") +public class CarConfig { + /** + * 车辆配置类 + */ + @TableId(value = "config_id",type = IdType.AUTO) + private Long configId; + /** + * 车辆配置 1.电动 2.纯油 3.混动 + */ + private String configName; + /** + * 能源类型 + */ + private String energyType; + /** + * 档的类型 1.手动 2.自动 + */ + private Integer gearType; + /** + * 报文id + */ + private Integer companyId; + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarManage.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarManage.java new file mode 100644 index 0000000..d77a132 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarManage.java @@ -0,0 +1,114 @@ +package com.muyu.enterprise.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.common.core.annotation.Excel; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +/** + * 车辆表--实体类 + * @ClassName CarManage + * @Description 车辆表 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Tag(name = "车辆表") +@Builder +@TableName(value = "car_manage",autoResultMap = true) +public class CarManage { + /** + * 车辆表 + */ + @TableId(value = "car_id",type = IdType.AUTO) + private Long carId; + /** + * 车架号 + */ + private String carFrame; + /** + * 车牌号 + */ + private String carCode; + /** + * 车牌颜色 1.白色 2.绿色 3.黑色 4.银色 5.红色 + */ + private Integer carColor; + /** + * VIN码 + */ + private String carVin; + /** + * 驾驶员 + */ + private long userId; + /** + * 车辆配置 + */ + private long configId; + /** + * 年审日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date audditTime; + /** + * 行驶证到期日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date licenseTime; + /** + * 保险到期日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date insuranceTime; + /** + * 在线状态 1.无信号 2.行驶中 3.已停止 + */ + private Integer carStayus; + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createdTime; + /** + * 当前档位 + */ + private Integer carGears; + /** + * 车辆品牌 + */ + private String carModel; + /** + * 车辆型号 + */ + private String cardDrand; + + /** 最后一次连线时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "最后一次连线时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date carLastJoinTime; + + /** 最后一次离线时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "最后一次离线时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date carLastOfflineTime; + + /** + * 汽车所属企业id + */ + private Long companyId; + /** + * 车辆类型 1.轿车 2.跑车 3.越野 4.客车 5.公交 6.其他 + */ + private Integer carType; + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarMessage.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarMessage.java index aa1737e..a81cd72 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarMessage.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarMessage.java @@ -1,5 +1,7 @@ package com.muyu.enterprise.domain; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; @@ -8,22 +10,24 @@ import lombok.Data; import lombok.NoArgsConstructor; /** + * 报文表--实体类 * @ClassName CarMessage - * @Description 描述 - * @Author YiBo.Liu - * @Date 2024/9/22 22:24 + * @Description 报文表 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 */ @Data @AllArgsConstructor @NoArgsConstructor @Builder @Tag(name = "报文表") -@TableName(value = "t_car_message") +@TableName(value = "car_message") public class CarMessage { /** * 报文表 */ + @TableId(value = "message_id" ,type = IdType.AUTO) private Long messageId; /** * 车辆报文类别 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarMessageType.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarMessageType.java index 5674719..038b0e7 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarMessageType.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarMessageType.java @@ -3,16 +3,24 @@ package com.muyu.enterprise.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; - +/** + * 报文类型表--实体类 + * @ClassName CarMessageType + * @Description 报文类型表 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ @Data @NoArgsConstructor @AllArgsConstructor @Builder -@TableName(value = "t_message_type") +@TableName(value = "car_message_type") +@Tag(name = "报文类型表") public class CarMessageType { /** * 报文 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarTemplate.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarTemplate.java index 8eeeb36..bb1d9f5 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarTemplate.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarTemplate.java @@ -3,16 +3,24 @@ package com.muyu.enterprise.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; - +/** + * 报文模版表--实体类 + * @ClassName CarTemplate + * @Description 报文模版表 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ @Data @NoArgsConstructor @AllArgsConstructor @Builder -@TableName(value = "t_template") +@TableName(value = "car_template") +@Tag(name = "报文模版表") public class CarTemplate { /** diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarType.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarType.java index faf4a53..45d4678 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarType.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarType.java @@ -1,5 +1,7 @@ package com.muyu.enterprise.domain; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; @@ -8,22 +10,24 @@ import lombok.Data; import lombok.NoArgsConstructor; /** + * 车辆类型表--实体类 * @ClassName CarType - * @Description 描述 - * @Author YiBo.Liu - * @Date 2024/9/22 16:53 + * @Description 车辆类型表 + * @author YiBo.Liu + * @Date 2024/9/28 16:52 */ @Data @AllArgsConstructor @NoArgsConstructor @Builder @Tag(name = "车辆类型表") -@TableName(value = "t_car_type") +@TableName(value = "car_type") public class CarType { /** * 车辆类型id */ + @TableId(value = "car_type_id",type = IdType.AUTO) private Integer carTypeId; /** diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml index 911a9a6..737986f 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml @@ -82,6 +82,13 @@ com.muyu cloud-modules-enterprise-common + + + + com.github.yulichang + mybatis-plus-join + 1.4.13 + @@ -101,4 +108,4 @@ - \ No newline at end of file + diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarCompanyController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarCompanyController.java new file mode 100644 index 0000000..9390ecd --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarCompanyController.java @@ -0,0 +1,44 @@ +package com.muyu.enterprise.controller; + +import com.muyu.enterprise.domain.CarCompany; +import com.muyu.enterprise.service.CarCompanyService; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.controller.BaseController; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 车辆企业--控制层 + * @ClassName CarCompanyController + * @Description 车辆企业 Controller 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ +@RestController +@RequestMapping("/company") +@Tag(name = "CarCompanyController", description = "企业表") +public class CarCompanyController extends BaseController { + + @Autowired + private CarCompanyService sysCarCompanyService; + + /** + * 查询企业表 + */ + @PostMapping("selectCompany") + public Result> selectCompany(){ + return Result.success(sysCarCompanyService.list()); + } + + /** + * 通过ID查询企业 + */ + @PostMapping("selectCompanyByCompanyId") + public Result selectCompanyByCompanyId(@RequestParam("companyId") Long companyId){ + return Result.success(sysCarCompanyService.getById(companyId)); + } + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarManageController.java similarity index 55% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarController.java rename to cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarManageController.java index 4813694..837e7fd 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarManageController.java @@ -1,10 +1,13 @@ package com.muyu.enterprise.controller; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.RandomUtil; +import com.muyu.common.core.utils.StringUtils; +import com.muyu.enterprise.domain.CarManage; import com.muyu.enterprise.domain.dto.CarDTO; import com.muyu.enterprise.domain.vo.CarVO; -import com.muyu.enterprise.service.SysCarCompanyService; -import com.muyu.enterprise.service.SysCarService; +import com.muyu.enterprise.service.CarCompanyService; +import com.muyu.enterprise.service.CarManageService; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.web.page.TableDataInfo; @@ -17,19 +20,22 @@ import org.springframework.web.bind.annotation.*; import java.util.List; /** - * 参数配置 信息操作处理 - * - * @author muyu + * 车辆管理--控制层 + * @ClassName CarManageController + * @Description 车辆管理 Controller 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 */ @RestController -@RequestMapping("/manage") -@Tag(name = "SysCarController", description = "系统参数配置") -public class SysCarController extends BaseController { +@RequestMapping("/carManage") +@Tag(name = "CarManageController", description = "车辆管理") +public class CarManageController extends BaseController { @Autowired - private SysCarCompanyService sysCarCompanyService; + private CarCompanyService sysCarCompanyService; @Autowired - private SysCarService sysCarService; + private CarManageService sysCarService; + /** * 车辆列表2 @@ -37,7 +43,7 @@ public class SysCarController extends BaseController { * @return */ @PostMapping("CarListShow") - public Result> CarListShow(@RequestBody CarDTO carDTO){ + public Result> CarListShow(@RequestBody CarDTO carDTO){ return Result.success(sysCarService.CarListShow(carDTO)); } @@ -46,22 +52,22 @@ public class SysCarController extends BaseController { * @param carId * @return */ - @PostMapping("CarListShowByCarId") - public Result> CarListShowByCarId(@RequestParam("carId") Long carId){ - return Result.success(sysCarService.CarListShowByCarId(carId)); + @PostMapping("CarManageShowByCarId") + public Result CarManageShowByCarId(@RequestParam("carId") Long carId){ + return Result.success(sysCarService.getById(carId)); } - /** - * 车辆列表1 - * @param carVO - * @return - */ - @PostMapping("CarList") - @Operation(summary = "查询列表",description = "车辆管理列表") - public Result> CarList(@RequestBody CarVO carVO){ - startPage(); - return getDataTable(sysCarService.carList(carVO)); - } +// /** +// * 车辆列表1 +// * @param carVO +// * @return +// */ +// @PostMapping("CarList") +// @Operation(summary = "查询列表",description = "车辆管理列表") +// public Result> CarList(@RequestBody CarVO carVO){ +// startPage(); +// return getDataTable(sysCarService.carList(carVO)); +// } /** @@ -70,14 +76,14 @@ public class SysCarController extends BaseController { * @return */ @PostMapping("insertCar") - public Result insertCar(@RequestBody CarVO carVO){ + public Result insertCar(@RequestBody CarManage carVO){ String key = RandomUtil.randomNumbers(9); // 随机生成车架号 carVO.setCarFrame(key); // 随机生成VIN码 String key2 = RandomUtil.randomNumbers(17); carVO.setCarVin(key2); - sysCarService.insertCar(carVO); + sysCarService.save(carVO); return Result.success("车辆添加成功"); } @@ -88,7 +94,7 @@ public class SysCarController extends BaseController { * @return */ @PostMapping("updataCar") - public Result updataCar(@RequestBody CarVO carVO){ + public Result updataCar(@RequestBody CarManage carVO){ // carVO.setUserId(SecurityUtils.getUserId()); sysCarService.updateById(carVO); @@ -102,7 +108,7 @@ public class SysCarController extends BaseController { */ @PostMapping("deleteCar") public Result deleteCar(@RequestParam("ids") List ids){ - sysCarService.deleteCar(ids); + sysCarService.removeBatchByIds(ids); return Result.success("车辆删除成功"); } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarMessageController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarMessageController.java index d5bfaff..88e7e3d 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarMessageController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarMessageController.java @@ -2,28 +2,37 @@ 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.enterprise.domain.CarMessage; import com.muyu.enterprise.service.CarMessageService; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; /** - * 描述 - * @ClassName CarMessageController - * @Description 描述 - * @Author YiBo.Liu - * @Date 2024/9/22 22:28 + * 车辆报文--控制层 + * @ClassName carMessageController + * @Description 车辆类型 Controller 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 */ @RestController @RequestMapping("/carMessage") -public class CarMessageController { +@Tag(name = "报文",description = "报文模块") +public class CarMessageController extends BaseController { @Autowired - private CarMessageService carMessageService; + private CarMessageService sysCarMessageService; + + /** + * 查询所有报文信息 + * @return + */ + @PostMapping("selectMessageShow") + public List selectMessageShow(@RequestParam("templateId") Long templateId){ + return sysCarMessageService.selectMessageShow(templateId); + } /** * 根据报文模板id查询报文 @@ -32,8 +41,46 @@ public class CarMessageController { */ @GetMapping("/selectByTemplateId") private Result> selectByTemplateId(@RequestParam("templateId") Integer templateId) { - return Result.success(carMessageService.list - (new LambdaQueryWrapper().eq(CarMessage::getTemplateId, templateId))); + return Result.success(sysCarMessageService.list + (new LambdaQueryWrapper().eq(CarMessage::getTemplateId, templateId))); } + /** + * 通过id查询报文信息 + * @return + */ + @PostMapping("selectMessageByMessageId") + public CarMessage selectMessageByMessageId(@RequestParam("messageId") Long messageId){ + return sysCarMessageService.selectMessageByMessageId(messageId); + } + + /** + * 添加报文信息 + * @return carMessage + */ + @PostMapping("insertMessage") + public Result insertMessage(@RequestBody CarMessage carMessage){ + sysCarMessageService.save(carMessage); + return Result.success("添加成功"); + } + /** + * 修改报文信息 + * @return carMessage + */ + @PostMapping("updataMessage") + public Result updataMessage(@RequestBody CarMessage carMessage){ + sysCarMessageService.updateById(carMessage); + return Result.success("修改成功"); + } + /** + * 删除报文信息 + * @return carMessage + */ + @PostMapping("deleteMessage") + public Result deleteMessage(@RequestParam("ids") List ids){ + sysCarMessageService.removeBatchByIds(ids); + return Result.success("删除成功"); + } + + } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarMessageTypeController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarMessageTypeController.java new file mode 100644 index 0000000..6e12c8c --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarMessageTypeController.java @@ -0,0 +1,91 @@ +package com.muyu.enterprise.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.StringUtils; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.enterprise.domain.CarMessageType; +import com.muyu.enterprise.service.CarMessageTypeService; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 报文类型--控制层 + * @ClassName CarMessageTypeController + * @Description 报文类型 Controller 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ +@RestController +@RequestMapping("carMessageType") +@Tag(name = "报文类型" ,description = "报文类型") +public class CarMessageTypeController extends BaseController { + @Autowired + private CarMessageTypeService sysCarMessageTypeService; + + /** + * 查询报文类型 + * @return + */ + @PostMapping("messageTypeList") + public Result messageTypeList(){ + sysCarMessageTypeService.messageTypeList(); + List list = sysCarMessageTypeService.list(); + return Result.success(list); + } + + @PostMapping("inserMessageType") + public Result inserMessageType(@RequestBody CarMessageType carMessageType){ + /** id 检验 */ + if(carMessageType.getMessageTypeId()>0){ + return Result.error("添加要什么id"); + } + /** token 检验 */ + if(SecurityUtils.getToken().isEmpty()){ + return Result.error("token不为空"); + } + /** 报文类型 */ + if(StringUtils.isEmpty(carMessageType.getMessageType())){ + return Result.error("报文类型不能为空"); + } + /** 报文 */ + if(StringUtils.isEmpty(carMessageType.getMessageName())){ + return Result.error("报文不能为空"); + } + /** 报文编码 */ + if(StringUtils.isEmpty(carMessageType.getMessageCode())){ + return Result.error("报文编码不能为空"); + } + /** 报文字段类型 */ + if(StringUtils.isEmpty(carMessageType.getMessageClass())){ + return Result.error("报文字段类型不能为空"); + } + sysCarMessageTypeService.save(carMessageType); + return Result.success("添加成功"); + } + + /** + * 修改报文类型 + * @param carMessageType + * @return + */ + @PostMapping("updateMessageType") + public Result updateMessageType(@RequestBody CarMessageType carMessageType){ + /** id */ + if(carMessageType.getMessageTypeId() < 0 ){ + return Result.error("修改需要id"); + } + /** 报文编号 */ + if(StringUtils.isEmpty(carMessageType.getMessageCode())){ + return Result.error(""); + } + sysCarMessageTypeService.updateById(carMessageType); + return Result.success("修改成功"); + } + + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarTemplateController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarTemplateController.java similarity index 82% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarTemplateController.java rename to cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarTemplateController.java index eb951e5..8388d7e 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarTemplateController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarTemplateController.java @@ -1,7 +1,7 @@ package com.muyu.enterprise.controller; import com.muyu.enterprise.domain.CarTemplate; -import com.muyu.enterprise.service.SysCarTemplateService; +import com.muyu.enterprise.service.CarTemplateService; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.controller.BaseController; import io.swagger.v3.oas.annotations.tags.Tag; @@ -9,13 +9,19 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; - +/** + * 报文模版--控制层 + * @ClassName CarTemplateController + * @Description 报文模版 Controller 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ @RestController -@RequestMapping("/template") // 报文 +@RequestMapping("/carTemplate") // 报文模版 @Tag(name = "模版模块",description = "报文模版模块") -public class SysCarTemplateController extends BaseController { +public class CarTemplateController extends BaseController { @Autowired - private SysCarTemplateService sysCarTemplateService; + private CarTemplateService sysCarTemplateService; /** * 查询所有模版信息 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarTypeController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarTypeController.java index 51ab78d..d7d1838 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarTypeController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarTypeController.java @@ -3,6 +3,7 @@ package com.muyu.enterprise.controller; import com.muyu.common.core.domain.Result; import com.muyu.enterprise.domain.CarType; import com.muyu.enterprise.service.CarTypeService; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -16,6 +17,7 @@ import java.util.List; */ @RestController @RequestMapping("/carType") +@Tag(name = "CarTypeController",description = "车辆类型") public class CarTypeController { @Autowired diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarCompanyController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarCompanyController.java deleted file mode 100644 index 0866ad2..0000000 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarCompanyController.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.muyu.enterprise.controller; - -import com.muyu.enterprise.service.SysCarCompanyService; -import com.muyu.common.core.domain.Result; -import com.muyu.common.core.web.controller.BaseController; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -/** - * 参数配置 信息操作处理 - * - * @author muyu - */ -@RestController -@RequestMapping("/company") -@Tag(name = "SysCarCompanyController", description = "系统参数配置") -public class SysCarCompanyController extends BaseController { - - @Autowired - private SysCarCompanyService sysCarCompanyService; - - /** - * 查询企业表 - */ - @PostMapping("selectCompany") - public Result selectCompany(){ - return Result.success(sysCarCompanyService.list()); - } - -} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarMessageController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarMessageController.java deleted file mode 100644 index 84c212e..0000000 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/SysCarMessageController.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.muyu.enterprise.controller; - -import com.muyu.common.core.domain.Result; -import com.muyu.common.core.web.controller.BaseController; -import com.muyu.enterprise.domain.CarMessage; -import com.muyu.enterprise.service.SysCarMessageService; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -@RestController -@RequestMapping("/car-message") -@Tag(name = "报文",description = "报文模块") -public class SysCarMessageController extends BaseController { - @Autowired - private SysCarMessageService sysCarMessageService; - - /** - * 查询所有报文信息 - * @return - */ - @PostMapping("selectMessageShow") - public List selectMessageShow(@RequestParam("templateId") Long templateId){ - return sysCarMessageService.selectMessageShow(templateId); - } - /** - * 通过id查询报文信息 - * @return - */ - @PostMapping("selectMessageByMessageId") - public CarMessage selectMessageByMessageId(@RequestParam("messageId") Long messageId){ - return sysCarMessageService.selectMessageByMessageId(messageId); - } - - /** - * 添加报文信息 - * @return carMessage - */ - @PostMapping("insertMessage") - public Result insertMessage(@RequestBody CarMessage carMessage){ - sysCarMessageService.save(carMessage); - return Result.success("添加成功"); - } - /** - * 修改报文信息 - * @return carMessage - */ - @PostMapping("updataMessage") - public Result updataMessage(@RequestBody CarMessage carMessage){ - sysCarMessageService.updateById(carMessage); - return Result.success("修改成功"); - } - /** - * 删除报文信息 - * @return carMessage - */ - @PostMapping("deleteMessage") - public Result deleteMessage(@RequestParam("ids") List ids){ - sysCarMessageService.removeBatchByIds(ids); - return Result.success("删除成功"); - } - - -} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarCompanyMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarCompanyMapper.java new file mode 100644 index 0000000..e070747 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarCompanyMapper.java @@ -0,0 +1,16 @@ +package com.muyu.enterprise.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.enterprise.domain.CarCompany; + + +/** + * 车辆企业--持久层 + * @ClassName CarCompanyMapper + * @Description 车辆企业 Mapper 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ +public interface CarCompanyMapper extends BaseMapper { + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarManageMapper.java similarity index 74% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarMapper.java rename to cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarManageMapper.java index 62690ab..0e4dc8a 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarMapper.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarManageMapper.java @@ -2,19 +2,22 @@ package com.muyu.enterprise.mapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.enterprise.domain.CarManage; import com.muyu.enterprise.domain.dto.CarDTO; import com.muyu.enterprise.domain.vo.CarVO; import org.apache.ibatis.annotations.Param; import java.util.List; - /** - * @author zmw - * @description: 配置mybatis配置 - * @Date 2023-11-13 上午 10:05 + * 车辆管理--持久层 + * @ClassName CarManageMapper + * @Description 车辆管理 Mapper 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 */ -public interface SysCarMapper extends BaseMapper { + +public interface CarManageMapper extends BaseMapper { /** * 车辆列表 * @param queryWrapper diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarMessageMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarMessageMapper.java index 999afec..e1faeaa 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarMessageMapper.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarMessageMapper.java @@ -4,6 +4,20 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.enterprise.domain.CarMessage; import org.apache.ibatis.annotations.Mapper; +import java.util.List; +/** + * 车辆报文--持久层 + * @ClassName CarMessageMapper + * @Description 车辆类型 Mapper 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ @Mapper public interface CarMessageMapper extends BaseMapper { + /** + * 查询所有报文信息 + * @param templateId + * @return + */ + List selectMessageShow(Long templateId); } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarMessageTypeMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarMessageTypeMapper.java new file mode 100644 index 0000000..4778080 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarMessageTypeMapper.java @@ -0,0 +1,15 @@ +package com.muyu.enterprise.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.enterprise.domain.CarMessageType; +import org.apache.ibatis.annotations.Mapper; +/** + * 报文类型--持久层 + * @ClassName CarMessageTypeMapper + * @Description 报文类型 Mapper 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ +@Mapper +public interface CarMessageTypeMapper extends BaseMapper { +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarTemplateMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarTemplateMapper.java similarity index 59% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarTemplateMapper.java rename to cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarTemplateMapper.java index 270e6ab..800d332 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarTemplateMapper.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarTemplateMapper.java @@ -5,9 +5,15 @@ import com.muyu.enterprise.domain.CarTemplate; import org.apache.ibatis.annotations.Mapper; import java.util.List; - +/** + * 报文模版--持久层 + * @ClassName CarTemplateMapper + * @Description 报文模版 Mapper 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ @Mapper -public interface SysCarTemplateMapper extends BaseMapper { +public interface CarTemplateMapper extends BaseMapper { /** * 查询所有报文信息 * @return diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarTypeMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarTypeMapper.java index 4642e2d..6d83be6 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarTypeMapper.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarTypeMapper.java @@ -4,10 +4,15 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.enterprise.domain.CarType; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; - +/** + * 车辆类型--持久层 + * @ClassName CarTypeMapper + * @Description 车辆类型 Mapper 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ @Mapper public interface CarTypeMapper extends BaseMapper { - CarType findById(@Param("catTypeId") Integer catTypeId); } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarCompanyMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarCompanyMapper.java deleted file mode 100644 index b2ec077..0000000 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarCompanyMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.muyu.enterprise.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.muyu.enterprise.domain.CarCompany; - - -/** - * @author zmw - * @description: 配置mybatis配置 - * @Date 2023-11-13 上午 10:05 - */ -public interface SysCarCompanyMapper extends BaseMapper { - -} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarMessageMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarMessageMapper.java deleted file mode 100644 index a45ef26..0000000 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/SysCarMessageMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.muyu.enterprise.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.muyu.enterprise.domain.CarMessage; -import org.apache.ibatis.annotations.Mapper; - -import java.util.List; - -@Mapper -public interface SysCarMessageMapper extends BaseMapper { - /** - * 查询所有报文信息 - * @param templateId - * @return - */ - List selectMessageShow(Long templateId); -} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarCompanyService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarCompanyService.java similarity index 53% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarCompanyService.java rename to cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarCompanyService.java index bd2e3a5..5077a6b 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarCompanyService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarCompanyService.java @@ -3,11 +3,13 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.enterprise.domain.CarCompany; /** - * @author zmw - * @description: 配置plus业务层 - * @Date 2023-11-13 上午 10:06 + * 车辆企业--业务层 + * @ClassName CarCompanyService + * @Description 车辆企业 Service 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 */ -public interface SysCarCompanyService extends IService { +public interface CarCompanyService extends IService { /** * 查询企业表 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarManageService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarManageService.java new file mode 100644 index 0000000..89e0ba8 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarManageService.java @@ -0,0 +1,50 @@ +package com.muyu.enterprise.service; +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.enterprise.domain.CarManage; +import com.muyu.enterprise.domain.dto.CarDTO; +import com.muyu.enterprise.domain.vo.CarVO; + +import java.util.List; + +/** + * 车辆管理--业务层 + * @ClassName CarManageService + * @Description 车辆管理 Service 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ +public interface CarManageService extends IService { +// /** +// * 车辆列表 +// * @param carVO +// * @return +// */ +// List carList(CarVO carVO); +// +// /** +// * 车辆添加 +// * @param carVO +// */ +// void insertCar(CarVO carVO); +// +// /** +// * 车辆删除 +// * @param ids +// */ +// void deleteCar(List ids); +// +// + /** + * 车辆列表2 + * @param carDTO + * @return + */ + List CarListShow(CarDTO carDTO); +// +// /** +// * 通过id查询 +// * @param carId +// * @return +// */ +// List CarListShowByCarId(Long carId); +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarMessageService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarMessageService.java index 8371eb5..590449f 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarMessageService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarMessageService.java @@ -3,5 +3,26 @@ package com.muyu.enterprise.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.enterprise.domain.CarMessage; +import java.util.List; +/** + * 车辆报文--业务层 + * @ClassName CarMessageService + * @Description 车辆类型 Service 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ public interface CarMessageService extends IService { + /** + * 查询所有报文信息 + * @param templateId + * @return + */ + List selectMessageShow(Long templateId); + + /** + * 通过id查询报文信息 + * @param messageId + * @return + */ + CarMessage selectMessageByMessageId(Long messageId); } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarMessageTypeService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarMessageTypeService.java new file mode 100644 index 0000000..3ece603 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarMessageTypeService.java @@ -0,0 +1,16 @@ +package com.muyu.enterprise.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.enterprise.domain.CarMessageType; + +import java.util.List; +/** + * 报文类型--业务层 + * @ClassName CarMessageTypeService + * @Description 报文类型 Service 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ +public interface CarMessageTypeService extends IService { + List messageTypeList(); +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarTemplateService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarTemplateService.java similarity index 65% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarTemplateService.java rename to cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarTemplateService.java index 361bf11..f013d87 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarTemplateService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarTemplateService.java @@ -4,8 +4,14 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.enterprise.domain.CarTemplate; import java.util.List; - -public interface SysCarTemplateService extends IService { +/** + * 报文模版--业务层 + * @ClassName CarTemplateService + * @Description 报文模版 Service 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ +public interface CarTemplateService extends IService { /** * 查询所有报文信息 * @return diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarTypeService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarTypeService.java index 5108262..ca0d59e 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarTypeService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarTypeService.java @@ -2,7 +2,13 @@ package com.muyu.enterprise.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.enterprise.domain.CarType; - +/** + * 车辆类型--业务层 + * @ClassName CarTypeService + * @Description 车辆类型 Service 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ public interface CarTypeService extends IService { CarType findById(Integer catTypeId); diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarMessageService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarMessageService.java deleted file mode 100644 index 434f04b..0000000 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarMessageService.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.muyu.enterprise.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.enterprise.domain.CarMessage; - -import java.util.List; - -public interface SysCarMessageService extends IService { - /** - * 查询所有报文信息 - * @param templateId - * @return - */ - List selectMessageShow(Long templateId); - - /** - * 通过id查询报文信息 - * @param messageId - * @return - */ - CarMessage selectMessageByMessageId(Long messageId); -} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarService.java deleted file mode 100644 index 9b0bed9..0000000 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/SysCarService.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.muyu.enterprise.service; -import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.enterprise.domain.dto.CarDTO; -import com.muyu.enterprise.domain.vo.CarVO; - -import java.util.List; - -/** - * @author zmw - * @description: 配置plus业务层 - * @Date 2023-11-13 上午 10:06 - */ -public interface SysCarService extends IService { - /** - * 车辆列表 - * @param carVO - * @return - */ - List carList(CarVO carVO); - - /** - * 车辆添加 - * @param carVO - */ - void insertCar(CarVO carVO); - - /** - * 车辆删除 - * @param ids - */ - void deleteCar(List ids); - -// /** -// * 车辆修改 -// * @param carVO -// */ -// void updataCar(CarVO carVO); - - /** - * 车辆列表2 - * @param carDTO - * @return - */ - List CarListShow(CarDTO carDTO); - - /** - * 通过id查询 - * @param carId - * @return - */ - List CarListShowByCarId(Long carId); -} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarCompanyServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarCompanyServiceImpl.java new file mode 100644 index 0000000..00c9610 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarCompanyServiceImpl.java @@ -0,0 +1,39 @@ +package com.muyu.enterprise.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.enterprise.domain.CarCompany; +import com.muyu.enterprise.mapper.CarCompanyMapper; +import com.muyu.enterprise.service.CarCompanyService; +import com.muyu.common.redis.service.RedisService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * 车辆企业--业务实现层 + * @ClassName CarCompanyServiceImpl + * @Description 车辆企业 ServiceImpl 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ +/** + * 车辆企业--业务层 + * @ClassName CarCompanyService + * @Description 车辆企业 Service 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ +@Service +public class CarCompanyServiceImpl extends ServiceImpl + implements CarCompanyService { + + @Autowired + private RedisService redisService; + @Autowired + private CarCompanyMapper sysCarCompanyMapper; + + +// @Override +// public List selectCompany() { +// return sysCarCompanyMapper.; +// } +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarManageServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarManageServiceImpl.java new file mode 100644 index 0000000..0796827 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarManageServiceImpl.java @@ -0,0 +1,151 @@ +package com.muyu.enterprise.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.StringUtils; +import com.muyu.enterprise.controller.CarCompanyController; +import com.muyu.enterprise.domain.CarCompany; +import com.muyu.enterprise.domain.CarManage; +import com.muyu.enterprise.domain.dto.CarDTO; +import com.muyu.enterprise.domain.vo.CarVO; +import com.muyu.enterprise.mapper.CarManageMapper; +import com.muyu.enterprise.service.CarCompanyService; +import com.muyu.enterprise.service.CarManageService; +import com.muyu.common.redis.service.RedisService; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 车辆管理--业务实现层 + * @ClassName CarManageServiceImpl + * @Description 车辆管理 ServiceImpl 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ +@Service +public class CarManageServiceImpl extends ServiceImpl + implements CarManageService { + +// @Autowired +// private RedisService redisService; +// @Autowired +// private CarManageMapper carMapper; +// // 企业 service +// @Autowired +// private CarCompanyService carCompanyService; +// /** +// * 车辆列表 +// * @param carVO +// * @return +// */ +// @Override +// public List carList(CarVO carVO) { +// +//// MPJLambdaWrapper queryWrapper = new MPJLambdaWrapper<>(); +//// carMapper.selectJoinList(CarVO.class, +//// queryWrapper.selectAll(CarVO.class)// 主表查询所有 +//// .select(Type::getTypeName)// 获取附表的字段 +//// .select(Type::getEnergyType) +//// .select(Type::getGearType) +//// .leftJoin(Type.class,Type::getTypeId,Car::getTypeId)// 左链接 +//// ); +//// // vin码--精确 +//// if(StringUtils.isNotEmpty(carVO.getCarVin())){ +//// queryWrapper.eq(CarVO::getCarVin,carVO.getCarVin()); +//// } +//// // 车辆型号 +//// if(StringUtils.isNotEmpty(carVO.getTypeName())){ +//// queryWrapper.like(CarVO::getTypeName,carVO.getTypeName()); +//// } +//// // 能源类型 1.电动 2.纯油 3.混动 +//// if(carVO.getEnergyType()>0){ +//// queryWrapper.eq(CarVO::getEnergyType,carVO.getEnergyType()); +//// } +//// // 档的类型 1.手动 2.自动 +//// if(carVO.getGearType()>0){ +//// queryWrapper.eq(CarVO::getGearType,carVO.getGearType()); +//// } +//// // 自定义列表查询 +////// @Select("") +////// this.list(queryWrapper); +//// // mybatis列表查询 +//// //return carMapper.carList(queryWrapper); +//// // 单表的列表查询 +//// this.list( +//// new LambdaQueryWrapper() +//// .eq(StringUtils.isNotEmpty(carVO.getCarVin()),CarVO::getCarVin,carVO.getCarVin()) +//// .eq(carVO.getEnergyType()>0,CarVO::getEnergyType,carVO.getEnergyType()) +//// .eq(carVO.getGearType()>0,CarVO::getGearType,carVO.getGearType()) +//// .like(StringUtils.isNotEmpty(carVO.getTypeName()),CarVO::getTypeName,carVO.getTypeName()) +//// ); +//// return this.list(queryWrapper); +// return null; +// } +// +// /** +// * 车辆添加 +// * @param carVO +// */ +// @Override +// public void insertCar(CarVO carVO) { +// carMapper.insert(carVO); +// } +// +//// /** +//// * 车辆修改 +//// * @param carVO +//// */ +//// @Override +//// public void updataCar(CarVO carVO) { +//// carMapper.updateById(carVO); +//// } +// + /** + * 车辆列表2 + * @param carDTO + * @return + */ + @Override + public List CarListShow(CarDTO carDTO) { + // 获取 企业 +// CarCompanyController carCompanyController = new CarCompanyController(); + CarManage carManage = BeanUtil.copyProperties(carDTO, CarManage.class); + return lambdaQuery() + .eq(StringUtils.isNotEmpty(carManage.getCarVin()), CarManage::getCarVin, carManage.getCarVin()) + .eq(carManage.getConfigId() > 0, CarManage::getCarVin, carManage.getConfigId()) + .list(); +// list.forEach(carManage1 -> { +// // 获取 企业 id +// carCompanyController.selectCompanyByCompanyId(carManage1.getCompanyId()); +// }); + // +// List data = carCompanyController.selectCompany().getData(); +// getById() + + } +// +// /** +// * 通过id查询 +// * @param carId +// * @return +// */ +// @Override +// public CarManage CarListShowByCarId(Long carId) { +// return carMapper.CarListShowByCarId(carId); +// } +// +// +// /** +// * 车辆删除 +// * @param ids +// */ +// @Override +// public void deleteCar(List ids) { +// carMapper.deleteBatchIds(ids); +// } + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarMessageServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarMessageServiceImpl.java index e42cd90..5c2b860 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarMessageServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarMessageServiceImpl.java @@ -7,18 +7,36 @@ import com.muyu.enterprise.service.CarMessageService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; /** + * 车辆报文--业务实现层 * @ClassName CarMessageServiceImpl - * @Description 描述 - * @Author YiBo.Liu - * @Date 2024/9/22 22:29 + * @Description 车辆类型 ServiceImpl 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 */ @Service -public class CarMessageServiceImpl - extends ServiceImpl - implements CarMessageService { +public class CarMessageServiceImpl extends ServiceImpl implements CarMessageService { @Autowired - private CarMessageMapper carMessageMapper; + private CarMessageMapper sysCarMessageMapper; + /** + * 查询所有报文信息 + * @param templateId + * @return + */ + @Override + public List selectMessageShow(Long templateId) { + return sysCarMessageMapper.selectMessageShow(templateId); + } + /** + * 通过id查询报文信息 + * @param messageId + * @return + */ + @Override + public CarMessage selectMessageByMessageId(Long messageId) { + return sysCarMessageMapper.selectById(messageId); + } } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarMessageTypeServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarMessageTypeServiceImpl.java new file mode 100644 index 0000000..372321b --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarMessageTypeServiceImpl.java @@ -0,0 +1,25 @@ +package com.muyu.enterprise.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.enterprise.domain.CarMessageType; +import com.muyu.enterprise.mapper.CarMessageTypeMapper; +import com.muyu.enterprise.service.CarMessageTypeService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 报文类型--业务实现层 + * @ClassName CarMessageTypeServiceImpl + * @Description 报文类型 ServiceImpl 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ +@Service +public class CarMessageTypeServiceImpl extends ServiceImpl implements CarMessageTypeService { + + @Override + public List messageTypeList() { + return null; + } +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarTemplateServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarTemplateServiceImpl.java similarity index 62% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarTemplateServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarTemplateServiceImpl.java index b85d22b..4aea975 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarTemplateServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarTemplateServiceImpl.java @@ -2,18 +2,24 @@ package com.muyu.enterprise.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.enterprise.domain.CarTemplate; -import com.muyu.enterprise.mapper.SysCarTemplateMapper; -import com.muyu.enterprise.service.SysCarTemplateService; +import com.muyu.enterprise.mapper.CarTemplateMapper; +import com.muyu.enterprise.service.CarTemplateService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; - +/** + * 报文模版--业务实现层 + * @ClassName CarTemplateServiceImpl + * @Description 报文模版 ServiceImpl 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 + */ @Service -public class SysCarTemplateServiceImpl extends ServiceImpl implements SysCarTemplateService { +public class CarTemplateServiceImpl extends ServiceImpl implements CarTemplateService { @Autowired - private SysCarTemplateMapper sysCarTemplateMapper; + private CarTemplateMapper sysCarTemplateMapper; /** * 查询所有报文信息 * @return diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarTypeTypeServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarTypeTypeServiceImpl.java index 72c1904..432638a 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarTypeTypeServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarTypeTypeServiceImpl.java @@ -8,10 +8,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** - * @ClassName CarServiceImpl - * @Description 描述 - * @Author YiBo.Liu - * @Date 2024/9/22 16:52 + * 车辆类型--业务实现层 + * @ClassName CarTypeTypeServiceImpl + * @Description 车辆类型 ServiceImpl 层 + * @author MingWei.Zong + * @Date 2024/9/28 16:52 */ @Service public class CarTypeTypeServiceImpl diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarCompanyServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarCompanyServiceImpl.java deleted file mode 100644 index 8e04629..0000000 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarCompanyServiceImpl.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.muyu.enterprise.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.muyu.enterprise.domain.CarCompany; -import com.muyu.enterprise.mapper.SysCarCompanyMapper; -import com.muyu.enterprise.service.SysCarCompanyService; -import com.muyu.common.redis.service.RedisService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -/** - * @author zmw - * @description: 配置plus业务实现层 - * @Date 2023-11-13 上午 10:06 - */ -@Service -public class SysCarCompanyServiceImpl extends ServiceImpl - implements SysCarCompanyService { - - @Autowired - private RedisService redisService; - @Autowired - private SysCarCompanyMapper sysCarCompanyMapper; - - -// @Override -// public List selectCompany() { -// return sysCarCompanyMapper.; -// } -} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarMessageServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarMessageServiceImpl.java deleted file mode 100644 index bc9be13..0000000 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarMessageServiceImpl.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.muyu.enterprise.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.muyu.enterprise.domain.CarMessage; -import com.muyu.enterprise.mapper.SysCarMessageMapper; -import com.muyu.enterprise.service.SysCarMessageService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -@Service -public class SysCarMessageServiceImpl extends ServiceImpl implements SysCarMessageService { - - @Autowired - private SysCarMessageMapper sysCarMessageMapper; - /** - * 查询所有报文信息 - * @param templateId - * @return - */ - @Override - public List selectMessageShow(Long templateId) { - return sysCarMessageMapper.selectMessageShow(templateId); - } - - /** - * 通过id查询报文信息 - * @param messageId - * @return - */ - @Override - public CarMessage selectMessageByMessageId(Long messageId) { - return sysCarMessageMapper.selectById(messageId); - } -} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarServiceImpl.java deleted file mode 100644 index ce22c99..0000000 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/SysCarServiceImpl.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.muyu.enterprise.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.muyu.enterprise.domain.dto.CarDTO; -import com.muyu.enterprise.domain.vo.CarVO; -import com.muyu.enterprise.mapper.SysCarMapper; -import com.muyu.enterprise.service.SysCarService; -import com.muyu.common.redis.service.RedisService; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * @author zmw - * @description: 配置plus业务实现层 - * @Date 2023-11-13 上午 10:06 - */ -@Service -public class SysCarServiceImpl extends ServiceImpl - implements SysCarService { - - @Autowired - private RedisService redisService; - @Autowired - private SysCarMapper carMapper; - - /** - * 车辆列表 - * @param carVO - * @return - */ - @Override - public List carList(CarVO carVO) { - -// MPJLambdaWrapper queryWrapper = new MPJLambdaWrapper<>(); -// carMapper.selectJoinList(CarVO.class, -// queryWrapper.selectAll(CarVO.class)// 主表查询所有 -// .select(Type::getTypeName)// 获取附表的字段 -// .select(Type::getEnergyType) -// .select(Type::getGearType) -// .leftJoin(Type.class,Type::getTypeId,Car::getTypeId)// 左链接 -// ); -// // vin码--精确 -// if(StringUtils.isNotEmpty(carVO.getCarVin())){ -// queryWrapper.eq(CarVO::getCarVin,carVO.getCarVin()); -// } -// // 车辆型号 -// if(StringUtils.isNotEmpty(carVO.getTypeName())){ -// queryWrapper.like(CarVO::getTypeName,carVO.getTypeName()); -// } -// // 能源类型 1.电动 2.纯油 3.混动 -// if(carVO.getEnergyType()>0){ -// queryWrapper.eq(CarVO::getEnergyType,carVO.getEnergyType()); -// } -// // 档的类型 1.手动 2.自动 -// if(carVO.getGearType()>0){ -// queryWrapper.eq(CarVO::getGearType,carVO.getGearType()); -// } -// // 自定义列表查询 -//// @Select("") -//// this.list(queryWrapper); -// // mybatis列表查询 -// //return carMapper.carList(queryWrapper); -// // 单表的列表查询 -// this.list( -// new LambdaQueryWrapper() -// .eq(StringUtils.isNotEmpty(carVO.getCarVin()),CarVO::getCarVin,carVO.getCarVin()) -// .eq(carVO.getEnergyType()>0,CarVO::getEnergyType,carVO.getEnergyType()) -// .eq(carVO.getGearType()>0,CarVO::getGearType,carVO.getGearType()) -// .like(StringUtils.isNotEmpty(carVO.getTypeName()),CarVO::getTypeName,carVO.getTypeName()) -// ); -// return this.list(queryWrapper); - return null; - } - - /** - * 车辆添加 - * @param carVO - */ - @Override - public void insertCar(CarVO carVO) { - carMapper.insert(carVO); - } - -// /** -// * 车辆修改 -// * @param carVO -// */ -// @Override -// public void updataCar(CarVO carVO) { -// carMapper.updateById(carVO); -// } - - /** - * 车辆列表2 - * @param carDTO - * @return - */ - @Override - public List CarListShow(CarDTO carDTO) { - return carMapper.CarListShow(carDTO); - } - - /** - * 通过id查询 - * @param carId - * @return - */ - @Override - public List CarListShowByCarId(Long carId) { - return carMapper.CarListShowByCarId(carId); - } - - - /** - * 车辆删除 - * @param ids - */ - @Override - public void deleteCar(List ids) { - carMapper.deleteBatchIds(ids); - } - -} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/car/SysCarMapper.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/car/CarManageMapper.xml similarity index 82% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/car/SysCarMapper.xml rename to cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/car/CarManageMapper.xml index 24e8481..ec87e58 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/car/SysCarMapper.xml +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/car/CarManageMapper.xml @@ -2,30 +2,30 @@ - + diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/manage/SysCarMessageMapper.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/manage/CarMessageMapper.xml similarity index 88% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/manage/SysCarMessageMapper.xml rename to cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/manage/CarMessageMapper.xml index 9d4fdb6..28a4a2c 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/manage/SysCarMessageMapper.xml +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/manage/CarMessageMapper.xml @@ -2,7 +2,7 @@ - + diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/message/SysCarTemplateMapper.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/message/CarTemplateMapper.xml similarity index 83% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/message/SysCarTemplateMapper.xml rename to cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/message/CarTemplateMapper.xml index 4ab5f8a..e4f5b4c 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/message/SysCarTemplateMapper.xml +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/message/CarTemplateMapper.xml @@ -2,7 +2,7 @@ - + From a51f80aa009cca8f7c19436a7016cc1aa581fc72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E9=86=BA?= <14463847+zmw770157181@user.noreply.gitee.com> Date: Sat, 28 Sep 2024 20:30:52 +0800 Subject: [PATCH 13/30] =?UTF-8?q?1.=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E7=9A=84=E8=A1=A8=20=E6=9B=B4=E6=96=B0=E6=97=B6=E9=97=B4092820?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/muyu/enterprise/domain/SysCar.java | 98 ------------------- 1 file changed, 98 deletions(-) delete mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/SysCar.java diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/SysCar.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/SysCar.java deleted file mode 100644 index 6a05a56..0000000 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/SysCar.java +++ /dev/null @@ -1,98 +0,0 @@ -package com.muyu.enterprise.domain; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.muyu.common.core.annotation.Excel; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.Date; - -@Data -@NoArgsConstructor -@AllArgsConstructor -@Builder -@TableName(value = "t_car") -public class SysCar { - /** - * 车辆表 - */ - @TableId(value = "car_id",type = IdType.AUTO) - private Long carId; - /** - * 车架号 - */ - private String carFrame; - /** - * 车牌号 - */ - private String carCoed; - /** - * 车牌颜色 1.白色 2.绿色 3.黑色 4.银色 5.红色 - */ - private Integer carColor; - /** - * VIN码 - */ - private String carVin; - /** - * 车主 - */ - private Long userId; - /** - * 车辆配置 - */ - private Long typeId; - - /** 车辆品牌 */ - @Excel(name = "车辆品牌") - private String carBrand; - - /** 车辆型号 */ - @Excel(name = "车辆型号") - private String carModel; - /** - * 年审日期 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date audditTime; - /** - * 行驶证到期日期 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date licenseTime; - /** - * 保险到期日期 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date insuranceTime; - /** - * 在线状态 1.无信号 2.行驶中 3.已停止 - */ - private Integer carStatus; - /** - * 创建时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date createdTime; - /** - * 当前档位 - */ - private Integer carGears; - - - /** 最后一次连线时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "最后一次连线时间", width = 30, dateFormat = "yyyy-MM-dd") - private Date carLastJoinTime; - - /** 最后一次离线时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "最后一次离线时间", width = 30, dateFormat = "yyyy-MM-dd") - private Date carLastOfflineTime; - -} From 38a096ea7254eb824e73118158267fde8bf4f3c7 Mon Sep 17 00:00:00 2001 From: xinzirun Date: Sat, 28 Sep 2024 21:23:24 +0800 Subject: [PATCH 14/30] =?UTF-8?q?feat():=20=E6=96=B0=E5=A2=9Ekafka?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cloud-common/cloud-common-kafka/pom.xml | 33 ++++++ .../kafka/config/KafkaConsumerConfig.java | 102 ++++++++++++++++++ .../kafka/config/KafkaProducerConfig.java | 74 +++++++++++++ .../kafka/constant/KafkaConfigConstants.java | 74 +++++++++++++ ...ot.autoconfigure.AutoConfiguration.imports | 2 + cloud-common/pom.xml | 1 + pom.xml | 18 +++- 7 files changed, 303 insertions(+), 1 deletion(-) create mode 100644 cloud-common/cloud-common-kafka/pom.xml create mode 100644 cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaConsumerConfig.java create mode 100644 cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaProducerConfig.java create mode 100644 cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/constant/KafkaConfigConstants.java create mode 100644 cloud-common/cloud-common-kafka/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports diff --git a/cloud-common/cloud-common-kafka/pom.xml b/cloud-common/cloud-common-kafka/pom.xml new file mode 100644 index 0000000..924820f --- /dev/null +++ b/cloud-common/cloud-common-kafka/pom.xml @@ -0,0 +1,33 @@ + + + 4.0.0 + + com.muyu + cloud-common + 3.6.3 + + + cloud-common-kafka + + + 17 + 17 + UTF-8 + + + + + + com.muyu + cloud-common-core + + + + + org.apache.kafka + kafka-clients + + + \ No newline at end of file diff --git a/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaConsumerConfig.java b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaConsumerConfig.java new file mode 100644 index 0000000..772ed68 --- /dev/null +++ b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaConsumerConfig.java @@ -0,0 +1,102 @@ +package com.muyu.common.kafka.config; + +import com.muyu.common.core.text.StrFormatter; +import com.muyu.common.kafka.constant.KafkaConfigConstants; +import org.apache.kafka.clients.consumer.KafkaConsumer; +import org.apache.kafka.common.serialization.Deserializer; +import org.apache.kafka.common.serialization.StringDeserializer; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import java.util.HashMap; + +/** + * @Author: zi run + * @Date 2024/9/28 20:32 + * @Description Kafka消费者配置 + */ +@Configuration +public class KafkaConsumerConfig { + + /** + * 服务端IP + */ + @Value("${kafka.consumer.bootstrap-servers-ip}") + private String bootstrapServersIP; + + /** + * 服务端口号 + */ + @Value("${kafka.consumer.bootstrap-servers-port}") + private String bootstrapServersPort; + + /** + * 开启消费者偏移量 + */ + @Value("${kafka.consumer.enable-auto-commit}") + private Boolean enableAutoCommit; + + /** + * 自动提交时间间隔 + */ + @Value("${kafka.consumer.auto-commit-interval}") + private Integer autoCommitInterval; + + /** + * 自动重置偏移量 + */ + @Value("${kafka.consumer.auto-offset-reset}") + private String autoOffsetReset; + + /** + * 请求阻塞的最大时间 + */ + @Value("${kafka.consumer.fetch-max-wait}") + private Integer fetchMaxWait; + + /** + * 请求应答的最小字节数 + */ + @Value("${kafka.consumer.fetch-min-size}") + private Integer fetchMinSize; + + /** + * 心跳间隔时间 + */ + @Value("${kafka.consumer.heartbeat-interval}") + private Integer heartbeatInterval; + + /** + * 一次调用poll返回的最大记录条数 + */ + @Value("${kafka.consumer.max-poll-records}") + private Integer maxPollRecords; + + /** + * 指定消费组 + */ + @Value("${kafka.consumer.group-id}") + private String groupId; + + /** + * Kafka消费者初始化配置 + * @return Kafka消费者实例 + */ + @Bean + public KafkaConsumer kafkaConsumer() { + HashMap configs = new HashMap<>(); + configs.put(KafkaConfigConstants.BOOTSTRAP_SERVERS, + StrFormatter.format("{}:{}", bootstrapServersIP, bootstrapServersPort)); + configs.put(KafkaConfigConstants.ENABLE_AUTO_COMMIT, enableAutoCommit); + configs.put(KafkaConfigConstants.AUTO_COMMIT_INTERVAL, autoCommitInterval); + configs.put(KafkaConfigConstants.AUTO_OFFSET_RESET, autoOffsetReset); + configs.put(KafkaConfigConstants.FETCH_MAX_WAIT, fetchMaxWait); + configs.put(KafkaConfigConstants.FETCH_MIN_SIZE, fetchMinSize); + configs.put(KafkaConfigConstants.HEARTBEAT_INTERVAL, heartbeatInterval); + configs.put(KafkaConfigConstants.MAX_POLL_RECORDS, maxPollRecords); + configs.put(KafkaConfigConstants.GROUP_ID, groupId); + Deserializer keyDeserializer = new StringDeserializer(); + Deserializer valueDeserializer = new StringDeserializer(); + return new KafkaConsumer<>(configs, keyDeserializer, valueDeserializer); + } +} diff --git a/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaProducerConfig.java b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaProducerConfig.java new file mode 100644 index 0000000..876b8b4 --- /dev/null +++ b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaProducerConfig.java @@ -0,0 +1,74 @@ +package com.muyu.common.kafka.config; + +import com.muyu.common.core.text.StrFormatter; +import com.muyu.common.kafka.constant.KafkaConfigConstants; +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.common.serialization.Serializer; +import org.apache.kafka.common.serialization.StringSerializer; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import java.util.HashMap; + +/** + * @Author: zi run + * @Date 2024/9/28 16:35 + * @Description Kafka生产者配置 + */ +@Configuration +public class KafkaProducerConfig { + + /** + * 服务端IP + */ + @Value("${kafka.producer.bootstrap-servers-ip}") + private String bootstrapServersIP; + + /** + * 服务端口号 + */ + @Value("${kafka.producer.bootstrap-servers-port}") + private String bootstrapServersPort; + + /** + * 重试次数 + */ + @Value("${kafka.producer.retries}") + private Integer retries; + + /** + * 默认批量大小 + */ + @Value("${kafka.producer.batch-size}") + private Integer batchSize; + + /** + * 总内存字节数 + */ + @Value("${kafka.producer.buffer-memory}") + private Integer bufferMemory; + + /** + * 偏移量 + */ + @Value("${kafka.producer.acks}") + private String acks; + + /** + * Kafka生产者初始化配置 + * @return kafka生产者实例 + */ + @Bean + public KafkaProducer kafkaProducer() { + HashMap configs = new HashMap<>(); + configs.put(KafkaConfigConstants.BOOTSTRAP_SERVERS, + StrFormatter.format("{}:{}", bootstrapServersIP, bootstrapServersPort)); + configs.put(KafkaConfigConstants.RETRIES, retries); + configs.put(KafkaConfigConstants.BATCH_SIZE, batchSize); + configs.put(KafkaConfigConstants.BUFFER_MEMORY, bufferMemory); + configs.put(KafkaConfigConstants.ACKS, acks); + Serializer keySerializer = new StringSerializer(); + Serializer valueSerializer = new StringSerializer(); + return new KafkaProducer<>(configs, keySerializer, valueSerializer); + } +} diff --git a/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/constant/KafkaConfigConstants.java b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/constant/KafkaConfigConstants.java new file mode 100644 index 0000000..b95eef4 --- /dev/null +++ b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/constant/KafkaConfigConstants.java @@ -0,0 +1,74 @@ +package com.muyu.common.kafka.constant; + +/** + * @Author: zi run + * @Date 2024/9/28 20:07 + * @Description Kafka配置通用常量 + */ +public class KafkaConfigConstants { + + /** + * 服务端ip+端口号 + */ + public static final String BOOTSTRAP_SERVERS = "bootstrap.servers"; + + /** + * 重试次数 + */ + public static final String RETRIES = "retries"; + + /** + * 默认批量大小 + */ + public static final String BATCH_SIZE = "batch.size"; + + /** + * 总内存字节数 + */ + public static final String BUFFER_MEMORY = "buffer-memory"; + + /** + * 偏移量 + */ + public static final String ACKS = "acks"; + + /** + * 开启消费者偏移量 + */ + public static final String ENABLE_AUTO_COMMIT = "enable.auto.commit"; + + /** + * 自动提交时间间隔 + */ + public static final String AUTO_COMMIT_INTERVAL = "auto.commit.interval"; + + /** + * 自动重置偏移量 + */ + public static final String AUTO_OFFSET_RESET = "auto.offset.reset"; + + /** + * 请求阻塞的最大时间 + */ + public static final String FETCH_MAX_WAIT = "fetch.max.wait"; + + /** + * 请求应答的最小字节数 + */ + public static final String FETCH_MIN_SIZE = "fetch.min.size"; + + /** + * 心跳间隔时间 + */ + public static final String HEARTBEAT_INTERVAL = "heartbeat-interval"; + + /** + * 一次调用poll返回的最大记录条数 + */ + public static final String MAX_POLL_RECORDS = "max.poll.records"; + + /** + * 指定消费组 + */ + public static final String GROUP_ID = "group.id"; +} diff --git a/cloud-common/cloud-common-kafka/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-common/cloud-common-kafka/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..7e2c989 --- /dev/null +++ b/cloud-common/cloud-common-kafka/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,2 @@ +com.muyu.common.kafka.config.KafkaProducerConfig +com.muyu.common.kafka.config.KafkaConsumerConfig \ No newline at end of file diff --git a/cloud-common/pom.xml b/cloud-common/pom.xml index d052b4d..157bcd1 100644 --- a/cloud-common/pom.xml +++ b/cloud-common/pom.xml @@ -21,6 +21,7 @@ cloud-common-system cloud-common-xxl cloud-common-rabbit + cloud-common-kafka cloud-common diff --git a/pom.xml b/pom.xml index d807259..a49e303 100644 --- a/pom.xml +++ b/pom.xml @@ -43,6 +43,7 @@ 4.1.0 2.4.1 2.2.8 + 3.0.0 @@ -184,12 +185,20 @@ ${transmittable-thread-local.version} + io.swagger.core.v3 swagger-annotations-jakarta ${swagger.an.jakarta.verison} + + + org.apache.kafka + kafka-clients + ${kafka.clients.verison} + + com.muyu @@ -281,7 +290,14 @@ ${muyu.version} - + + + com.muyu + cloud-common-kafka + ${muyu.version} + + + com.muyu cloud-modules-enterprise-common From 681c88db286ceacd3617f7fe8a609cb42a84c17f Mon Sep 17 00:00:00 2001 From: LQS <2506203757@qq.com> Date: Sat, 28 Sep 2024 23:11:55 +0800 Subject: [PATCH 15/30] =?UTF-8?q?fate():=E6=96=B0=E5=A2=9E=E5=8D=8F?= =?UTF-8?q?=E8=AE=AE=E8=A7=A3=E6=9E=90=E6=A8=A1=E5=9D=97=EF=BC=9AMQTT?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=EF=BC=8C=E6=95=B0=E6=8D=AE=E8=BD=AC=E6=8D=A2?= =?UTF-8?q?JSON=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JavaSample-tcp1061513671883/.lck | 0 .../cloud-modules-enterprise-common/pom.xml | 14 +- .../cloud-modules-enterprise-server/pom.xml | 12 +- .../CloudEnterpriseApplication.java | 24 ++- .../enterprise/mapper/car/VehicleMapper.java | 3 +- .../impl/carImpl/VehicleServiceImpl.java | 23 ++- .../cloud-modules-protocol-analysis/pom.xml | 117 ++++++++++++++ .../muyu/analysis/parsing}/MQTT/DemoMQTT.java | 13 +- .../parsing/ProtocolParsingApplication.java | 24 +++ .../parsing/controller/ParsingController.java | 87 ++++++++++ .../parsing/mapper/ParsingMapper.java | 17 ++ .../parsing/remote/RemoteClientService.java | 41 +++++ .../factory/RemoteClientServiceFactory.java | 40 +++++ .../parsing/service/ParsingService.java | 24 +++ .../service/impl/ParsingServiceImpl.java | 151 ++++++++++++++++++ ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../src/main/resources/banner.txt | 2 + .../src/main/resources/bootstrap.yml | 46 ++++++ .../src/main/resources/logback/dev.xml | 74 +++++++++ .../src/main/resources/logback/prod.xml | 81 ++++++++++ .../src/main/resources/logback/test.xml | 81 ++++++++++ .../cloud-modules-enterprise/pom.xml | 1 + 22 files changed, 855 insertions(+), 21 deletions(-) delete mode 100644 JavaSample-tcp1061513671883/.lck create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/pom.xml rename cloud-modules/cloud-modules-enterprise/{cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise => cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing}/MQTT/DemoMQTT.java (90%) create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/ProtocolParsingApplication.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/controller/ParsingController.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/mapper/ParsingMapper.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/RemoteClientService.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/factory/RemoteClientServiceFactory.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/ParsingService.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/impl/ParsingServiceImpl.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/banner.txt create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/bootstrap.yml create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/logback/dev.xml create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/logback/prod.xml create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/logback/test.xml diff --git a/JavaSample-tcp1061513671883/.lck b/JavaSample-tcp1061513671883/.lck deleted file mode 100644 index e69de29..0000000 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/pom.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/pom.xml index ee4cfa9..a51a034 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/pom.xml +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/pom.xml @@ -29,5 +29,17 @@ io.swagger.core.v3 swagger-annotations-jakarta + + + org.eclipse.paho + org.eclipse.paho.client.mqttv3 + 1.2.2 + + + + org.springframework.integration + spring-integration-mqtt + 6.2.5 + - \ No newline at end of file + diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml index 82c7085..d817bf8 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml @@ -23,15 +23,9 @@ - org.eclipse.paho - org.eclipse.paho.client.mqttv3 - 1.2.2 - - - - org.springframework.integration - spring-integration-mqtt - 6.2.5 + com.github.yulichang + mybatis-plus-join-boot-starter + 1.4.11 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/CloudEnterpriseApplication.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/CloudEnterpriseApplication.java index cd401fd..91d5fe9 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/CloudEnterpriseApplication.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/CloudEnterpriseApplication.java @@ -16,8 +16,26 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; public class CloudEnterpriseApplication { public static void main (String[] args) { SpringApplication.run(CloudEnterpriseApplication.class, args); - while (true){ - System.out.println("马叉,马叉"); + System.out.println(" _ooOoo_\n" + + " o8888888o\n" + + " 88\" . \"88\n" + + " (| -_- |)\n" + + " O\\ = /O\n" + + " ____/`---'\\____\n" + + " .' \\\\| |// `.\n" + + " / \\\\||| : |||// \\\n" + + " / _||||| -:- |||||- \\\n" + + " | | \\\\\\ - /// | |\n" + + " | \\_| ''\\---/'' | |\n" + + " \\ .-\\__ `-` ___/-. /\n" + + " ___`. .' /--.--\\ `. . __\n" + + " .\"\" '< `.___\\_<|>_/___.' >'\"\".\n" + + " | | : `- \\`.;`\\ _ /`;.`/ - ` : | |\n" + + " \\ \\ `-. \\_ __\\ /__ _/ .-` / /\n" + + " ======`-.____`-.___\\_____/___.-`____.-'======\n" + + " `=---='\n" + + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + + " // 佛祖保佑 永不宕机 永无BUG //"); } - } + } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/VehicleMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/VehicleMapper.java index 314b93d..d79f256 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/VehicleMapper.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/VehicleMapper.java @@ -2,6 +2,7 @@ package com.muyu.enterprise.mapper.car; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.yulichang.base.MPJBaseMapper; import com.muyu.enterprise.domain.car.Vehicle; import com.muyu.enterprise.domain.req.car.VehicleManageReq; import com.muyu.enterprise.domain.resp.car.VehicleManageResp; @@ -19,7 +20,7 @@ import java.util.List; * @Description: 车辆管理持久层 */ @Mapper -public interface VehicleMapper extends BaseMapper +public interface VehicleMapper extends MPJBaseMapper { /** * 查询车辆管理列表 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleServiceImpl.java index 6aa1bd8..1f9871d 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleServiceImpl.java @@ -1,7 +1,10 @@ package com.muyu.enterprise.service.impl.carImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.muyu.common.core.utils.StringUtils; import com.muyu.enterprise.domain.car.Vehicle; +import com.muyu.enterprise.domain.car.VehicleType; import com.muyu.enterprise.domain.req.car.VehicleManageReq; import com.muyu.enterprise.domain.resp.car.VehicleManageResp; import com.muyu.enterprise.mapper.car.VehicleMapper; @@ -36,8 +39,24 @@ extends ServiceImpl getVehicleList(VehicleManageReq vehicleManageReq) { - List vehicleList = vehicleMapper.findAll(vehicleManageReq); - return vehicleList; + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.selectAll(Vehicle.class) + .selectAs(VehicleType::getVehicleTypeName, VehicleManageResp::getVehicleTypeName) + .leftJoin(VehicleType.class, VehicleType::getVehicleTypeId, Vehicle::getVehicleTypeId) + .like( + StringUtils.isNotEmpty(vehicleManageReq.getLicenceNumber()), + Vehicle::getLicenceNumber, vehicleManageReq.getLicenceNumber() + ) + .like( + StringUtils.isNotEmpty(vehicleManageReq.getVehicleVin()), + Vehicle::getVehicleVin, vehicleManageReq.getVehicleVin() + ) + .eq( + StringUtils.isNotBlank(vehicleManageReq.getVehicleStatus()), + Vehicle::getVehicleStatus, vehicleManageReq.getVehicleStatus() + ); + List list = vehicleMapper.selectJoinList(VehicleManageResp.class, wrapper); + return list; } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/pom.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/pom.xml new file mode 100644 index 0000000..8b08818 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/pom.xml @@ -0,0 +1,117 @@ + + + 4.0.0 + + com.muyu + cloud-modules-enterprise + 3.6.3 + + + cloud-modules-protocol-analysis + + + 17 + 17 + UTF-8 + + + + cloud-modules-protocol-analysis协议解析模块 + + + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + cloud-common-datasource + + + + + com.muyu + cloud-common-datascope + + + + + com.muyu + cloud-common-log + + + + + com.muyu + cloud-common-api-doc + + + + + com.muyu + cloud-modules-enterprise-common + + + + com.muyu + cloud-modules-enterprise-server + 3.6.3 + + + + com.github.yulichang + mybatis-plus-join-boot-starter + 1.4.11 + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + + diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/DemoMQTT.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/DemoMQTT.java similarity index 90% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/DemoMQTT.java rename to cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/DemoMQTT.java index 518139d..2ba02a7 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/MQTT/DemoMQTT.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/DemoMQTT.java @@ -1,18 +1,18 @@ -package com.muyu.enterprise.MQTT; +package com.muyu.analysis.parsing.MQTT; +import com.muyu.analysis.parsing.controller.ParsingController; import org.eclipse.paho.client.mqttv3.*; -import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; /** * 测试MQTT * @ClassName demo * @Description 描述 - * @Author YiBo.Liu - * @Date 2024/9/27 22:27 + * @Author 李庆帅 + * @Date 2024/9/28 */ public class DemoMQTT { - public static void main(String[] args) { + public void main(String[] args) { String topic = "vehicle"; String content = "Message from MqttPublishSample"; @@ -20,6 +20,8 @@ public class DemoMQTT { String broker = "tcp://106.15.136.7:1883"; String clientId = "JavaSample"; + + try { // 第三个参数为空,默认持久化策略 MqttClient sampleClient = new MqttClient(broker, clientId); @@ -55,4 +57,5 @@ public class DemoMQTT { } } + } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/ProtocolParsingApplication.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/ProtocolParsingApplication.java new file mode 100644 index 0000000..25cc5d5 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/ProtocolParsingApplication.java @@ -0,0 +1,24 @@ +package com.muyu.analysis.parsing; + +import com.muyu.common.security.annotation.EnableCustomConfig; +import com.muyu.common.security.annotation.EnableMyFeignClients; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * 协议解析启动类 + * @Author: 李庆帅 + * @Package: com.muyu.cloud.protocol.parsing + * @Project: 2112-car-cloud-server + * @name: ProtocolParsingApplication + * @Date: 2024/9/28 11:54 + * @Description: 协议解析启动类 + */ +@EnableCustomConfig +@EnableMyFeignClients +@SpringBootApplication +public class ProtocolParsingApplication { + public static void main(String[] args) { + SpringApplication.run(ProtocolParsingApplication.class, args); + } +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/controller/ParsingController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/controller/ParsingController.java new file mode 100644 index 0000000..6d89015 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/controller/ParsingController.java @@ -0,0 +1,87 @@ +package com.muyu.analysis.parsing.controller; + +import cn.hutool.json.JSONObject; +import com.muyu.analysis.parsing.MQTT.DemoMQTT; +import com.muyu.analysis.parsing.service.ParsingService; +import org.eclipse.paho.client.mqttv3.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +/** + * 协议解析控制层 + * @Author:李庆帅 + * @Package:com.muyu.analysis.parsing.controller + * @Project:cloud-server + * @name:ParsingController + * @Date:2024/9/28 20:36 + */ +@RestController +@RequestMapping("/parsing") +public class ParsingController +{ + private static final String topic = "vehicle"; + private static final String content = "Message from MqttPublishSample"; + private static final int qos = 2; + private static final String broker = "tcp://106.15.136.7:1883"; + private static final String clientId = "JavaSample"; + + @Autowired + private ParsingService parsingService; + +// /** +// * 协议解析 +// * @param messageStr +// * @return +// */ +// @PostMapping("/protocolParsing") +// public JSONObject protocolParsing(@RequestParam("messageStr") String messageStr) { +// try { +// // 第三个参数为空,默认持久化策略 +// MqttClient sampleClient = new MqttClient(broker, clientId); +// MqttConnectOptions connOpts = new MqttConnectOptions(); +// connOpts.setCleanSession(true); +// System.out.println("Connecting to broker: "+broker); +// sampleClient.connect(connOpts); +// sampleClient.subscribe(topic,0); +// sampleClient.setCallback(new MqttCallback() { +// // 连接丢失 +// @Override +// public void connectionLost(Throwable throwable) { +// +// } +// // 连接成功 +// @Override +// public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { +// System.out.println(new String(mqttMessage.getPayload())); +// } +// // 接收信息 +// @Override +// public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { +// +// } +// }); +// } catch(MqttException me) { +// System.out.println("reason "+me.getReasonCode()); +// System.out.println("msg "+me.getMessage()); +// System.out.println("loc "+me.getLocalizedMessage()); +// System.out.println("cause "+me.getCause()); +// System.out.println("excep "+me); +// me.printStackTrace(); +// } +// JSONObject messageValue = parsingService.protocolParsing(messageStr); +// return messageValue; +// } + + /** + * 协议解析 + */ + @PostMapping("/mqttClient") + public void mqttClient() { + parsingService.mqtt(); + } + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/mapper/ParsingMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/mapper/ParsingMapper.java new file mode 100644 index 0000000..913cd90 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/mapper/ParsingMapper.java @@ -0,0 +1,17 @@ +package com.muyu.analysis.parsing.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.enterprise.domain.car.MessageValue; +import org.apache.ibatis.annotations.Mapper; + +/** + * 协议解析持久层 + * @Author:李庆帅 + * @Package:com.muyu.analysis.parsing.mapper + * @Project:cloud-server + * @name:ParsingMapper + * @Date:2024/9/28 20:54 + */ +@Mapper +public interface ParsingMapper extends BaseMapper { +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/RemoteClientService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/RemoteClientService.java new file mode 100644 index 0000000..d7a0f39 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/RemoteClientService.java @@ -0,0 +1,41 @@ +package com.muyu.analysis.parsing.remote; + +import com.muyu.analysis.parsing.remote.factory.RemoteClientServiceFactory; +import com.muyu.common.core.domain.Result; +import com.muyu.enterprise.domain.resp.car.MessageValueListResp; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; + +import java.util.List; + +/** + * 报文模版远程调用接口 + * @Author:李庆帅 + * @Package:com.muyu.analysis.parsing.feign + * @Project:cloud-server + * @name:RemoteServiceClient + * @Date:2024/9/28 20:38 + */ +@FeignClient(name = "remoteClientService" +,fallbackFactory= RemoteClientServiceFactory.class) +public interface RemoteClientService { + /** + * 根据报文模版id查询报文数据 + * @param vehicleVin 请求对象 + * @return 返回结果 + */ + @GetMapping("/vehicleManage/findByVehicleVin/{vehicleVin}") +// @Operation(description = "通过车辆vin码查询模板id") + public Result findByVehicleVin(@PathVariable("vehicleVin") String vehicleVin); + + /** + * 根据报文模版id查询报文数据 + * @param templateId 请求对象 + * @return 返回结果 + */ + @GetMapping("/messageValue/findByTemplateId/{templateId}") +// @Operation(summary = "根据报文模版id查询报文数据", description = "根据报文模版id查询报文数据") + public Result> findByTemplateId(@PathVariable("templateId") Long templateId); + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/factory/RemoteClientServiceFactory.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/factory/RemoteClientServiceFactory.java new file mode 100644 index 0000000..5851bbc --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/factory/RemoteClientServiceFactory.java @@ -0,0 +1,40 @@ +package com.muyu.analysis.parsing.remote.factory; + +import com.muyu.analysis.parsing.remote.RemoteClientService; +import com.muyu.common.core.domain.Result; +import com.muyu.enterprise.domain.resp.car.MessageValueListResp; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; + +import java.util.List; + +/** + * 报文模版对象服务降级处理 + * @Author:李庆帅 + * @Package:com.muyu.analysis.parsing.remote.factory + * @Project:cloud-server + * @name:RemoteServiceClientFactory + * @Date:2024/9/28 21:16 + */ +public class RemoteClientServiceFactory implements FallbackFactory +{ + private static final Logger log = LoggerFactory.getLogger(RemoteClientServiceFactory.class); + + @Override + public RemoteClientService create(Throwable throwable) { + log.error("报文模版传参调用失败:{}", throwable.getMessage()); + return new RemoteClientService(){ + + @Override + public Result findByVehicleVin(String vehicleVin) { + return Result.error("报文模版传参调用失败" + throwable.getMessage()); + } + + @Override + public Result> findByTemplateId(Long templateId) { + return Result.error("报文模版传参调用失败" + throwable.getMessage()); + } + }; + } +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/ParsingService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/ParsingService.java new file mode 100644 index 0000000..9885754 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/ParsingService.java @@ -0,0 +1,24 @@ +package com.muyu.analysis.parsing.service; + +import cn.hutool.json.JSONObject; +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.enterprise.domain.car.MessageValue; + +/** + * 协议解析业务层 + * @Author:李庆帅 + * @Package:com.muyu.analysis.parsing.service + * @Project:cloud-server + * @name:ParsingService + * @Date:2024/9/28 20:50 + */ +public interface ParsingService extends IService +{ + + + /** + * 协议解析 + * @return + */ + void mqtt(); +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/impl/ParsingServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/impl/ParsingServiceImpl.java new file mode 100644 index 0000000..909319a --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/impl/ParsingServiceImpl.java @@ -0,0 +1,151 @@ +package com.muyu.analysis.parsing.service.impl; + +import cn.hutool.json.JSONObject; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.analysis.parsing.controller.ParsingController; +import com.muyu.analysis.parsing.remote.RemoteClientService; +import com.muyu.analysis.parsing.mapper.ParsingMapper; +import com.muyu.analysis.parsing.service.ParsingService; +import com.muyu.common.core.domain.Result; +import com.muyu.enterprise.domain.car.MessageValue; +import com.muyu.enterprise.domain.resp.car.MessageValueListResp; +import lombok.extern.log4j.Log4j2; +import org.eclipse.paho.client.mqttv3.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 协议解析实现层 + * @Author:李庆帅 + * @Package:com.muyu.analysis.parsing.service.impl + * @Project:cloud-server + * @name:ParsingServiceImpl + * @Date:2024/9/28 20:53 + */ +@Log4j2 +@Service +public class ParsingServiceImpl extends ServiceImpl + implements ParsingService +{ + @Resource + private RedisTemplate redisTemplate; + + @Autowired + private RemoteClientService remoteServiceClientService; + + + + @Override + public void mqtt() { + String topic = "vehicle"; + String content = "Message from MqttPublishSample"; + int qos = 2; + String broker = "tcp://106.15.136.7:1883"; + String clientId = "JavaSample"; + + + + try { + // 第三个参数为空,默认持久化策略 + MqttClient sampleClient = new MqttClient(broker, clientId); + MqttConnectOptions connOpts = new MqttConnectOptions(); + connOpts.setCleanSession(true); + System.out.println("Connecting to broker: "+broker); + sampleClient.connect(connOpts); + sampleClient.subscribe(topic,0); + sampleClient.setCallback(new MqttCallback() { + // 连接丢失 + @Override + public void connectionLost(Throwable throwable) { + + } + // 连接成功 + @Override + public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { + System.out.println(new String(mqttMessage.getPayload())); + String mqtt= new String(mqttMessage.getPayload()); + JSONObject jsonObject = this.protocolParsing(mqtt); + System.out.println("转换后:"+jsonObject); + } + + public JSONObject protocolParsing(String messageStr) { + //根据空格切割数据 + String[] hexArray = messageStr.split(" "); + StringBuilder result = new StringBuilder(); + //遍历十六进制数据转换为字符 + for (String hex : hexArray) { + int decimal = Integer.parseInt(hex, 16); + result.append((char) decimal); + } + //取出车辆VIN码 + String vehicleVin = result.substring(1, 18); + log.info("车辆VIN码: " + vehicleVin); + //根据车辆VIN码查询报文模板ID + Result byVehicleVin = remoteServiceClientService.findByVehicleVin(vehicleVin); + Long templateId = byVehicleVin.getData(); + List templateList; + //从redis缓存中获取报文模板数据 + try { + String redisKey = "messageTemplate" + templateId; + if (redisTemplate.hasKey(redisKey)) { + List list = redisTemplate.opsForList().range(redisKey, 0, -1); + templateList = list.stream() + .map(obj -> JSON.parseObject(obj.toString(), MessageValueListResp.class)) + .toList(); + log.info("Redis缓存查询成功"); + } else { + Result> byTemplateId = remoteServiceClientService.findByTemplateId(templateId); + templateList = byTemplateId.getData(); + templateList.forEach( + listResp -> + redisTemplate.opsForList().rightPush( + redisKey, JSON.toJSONString(listResp) + ) + ); + log.info("数据库查询成功"); + } + } catch (Exception e) { + throw new RuntimeException("获取报文模板失败"); + } + //判断报文模板列表不为空 + if (templateList.isEmpty()) { + throw new RuntimeException("报文模版为空"); + } + //存储报文模版解析后的数据 + 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); + } + System.out.println("发发呆沙发斯蒂芬萨达:"+jsonObject.toString()); + return jsonObject; + } + // 接收信息 + @Override + public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { + + } + }); + } catch(MqttException me) { + System.out.println("reason "+me.getReasonCode()); + System.out.println("msg "+me.getMessage()); + System.out.println("loc "+me.getLocalizedMessage()); + System.out.println("cause "+me.getCause()); + System.out.println("excep "+me); + me.printStackTrace(); + } + } + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..bb37cb6 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.muyu.analysis.parsing.remote.factory.RemoteClientServiceFactory diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/banner.txt b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/banner.txt new file mode 100644 index 0000000..0dd5eee --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/banner.txt @@ -0,0 +1,2 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..fe6051b --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/bootstrap.yml @@ -0,0 +1,46 @@ +# Tomcat +server: + port: 10166 + +# nacos线上地址 +nacos: + addr: 106.15.136.7:8848 + user-name: nacos + password: nacos + namespace: lqs + +spring: + application: + # 应用名称 + name: cloud-enterprise + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: ${nacos.addr} + # nacos用户名 + username: ${nacos.user-name} + # nacos密码 + password: ${nacos.password} + # 命名空间 + namespace: ${nacos.namespace} + config: + # 服务注册地址 + server-addr: ${nacos.addr} + # nacos用户名 + username: ${nacos.user-name} + # nacos密码 + password: ${nacos.password} + # 命名空间 + namespace: ${nacos.namespace} + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + # 系统共享配置 + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + # 系统环境Config共享配置 + - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/logback/dev.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/logback/dev.xml new file mode 100644 index 0000000..99dd7b7 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/logback/dev.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/logback/prod.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/logback/prod.xml new file mode 100644 index 0000000..f9cfee4 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/logback/prod.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + ${log.sky.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + + + ERROR + + ACCEPT + + DENY + + + + + + + + ${log.sky.pattern} + + + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/logback/test.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/logback/test.xml new file mode 100644 index 0000000..f9cfee4 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/logback/test.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + ${log.sky.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + + + ERROR + + ACCEPT + + DENY + + + + + + + + ${log.sky.pattern} + + + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-enterprise/pom.xml b/cloud-modules/cloud-modules-enterprise/pom.xml index c0d0b63..be3910e 100644 --- a/cloud-modules/cloud-modules-enterprise/pom.xml +++ b/cloud-modules/cloud-modules-enterprise/pom.xml @@ -15,6 +15,7 @@ cloud-modules-enterprise-server cloud-modules-enterprise-common + cloud-modules-protocol-analysis From 1378aeeb0681966a7af3661a9db8a1aa163a3760 Mon Sep 17 00:00:00 2001 From: LQS <2506203757@qq.com> Date: Sat, 28 Sep 2024 23:23:20 +0800 Subject: [PATCH 16/30] =?UTF-8?q?fate():=EF=BC=81=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cloud-common/cloud-common-kafka/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloud-common/cloud-common-kafka/pom.xml b/cloud-common/cloud-common-kafka/pom.xml index 924820f..16ec61d 100644 --- a/cloud-common/cloud-common-kafka/pom.xml +++ b/cloud-common/cloud-common-kafka/pom.xml @@ -30,4 +30,4 @@ kafka-clients - \ No newline at end of file + From 47567ff0554c100ff0de0e77e768609fa39b909b Mon Sep 17 00:00:00 2001 From: xinzirun Date: Sun, 29 Sep 2024 00:55:53 +0800 Subject: [PATCH 17/30] =?UTF-8?q?feat():=20=E6=96=B0=E5=A2=9EIoTDB?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E7=B1=BB=E3=80=81=E5=9F=BA=E7=A1=80=E4=B8=9A?= =?UTF-8?q?=E5=8A=A1=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cloud-auth/src/main/resources/bootstrap.yml | 2 +- .../src/main/resources/bootstrap.yml | 2 +- .../cloud-modules-data-process/pom.xml | 91 +++ .../process/CloudDataProcessApplication.java | 20 + .../basic/config/IoTDBSessionConfig.java | 72 ++ .../process/basic/service/IoTDBService.java | 110 +++ .../basic/service/impl/IoTDBServiceImpl.java | 714 ++++++++++++++++++ .../muyu/data/process/domain/DataJSON.java | 33 + .../data/process/domain/InsertDataDTO.java | 67 ++ .../data/process/domain/ResultEntity.java | 36 + .../data/process/domain/TestDataType.java | 43 ++ .../process/domain/dto/IoTDbRecordAble.java | 12 + .../dto/MeasurementSchemaValuesDTO.java | 36 + .../src/main/resources/banner.txt | 2 + .../src/main/resources/bootstrap.yml | 45 ++ .../src/main/resources/logback/dev.xml | 74 ++ .../src/main/resources/logback/prod.xml | 81 ++ .../src/main/resources/logback/test.xml | 81 ++ .../cloud-modules-enterprise-server/pom.xml | 1 - .../CloudEnterpriseApplication.java | 2 +- .../src/main/resources/bootstrap.yml | 2 +- .../src/main/resources/bootstrap.yml | 2 +- .../src/main/resources/bootstrap.yml | 2 +- .../src/main/resources/bootstrap.yml | 2 +- cloud-modules/pom.xml | 1 + .../src/main/resources/bootstrap.yml | 2 +- pom.xml | 8 + 27 files changed, 1534 insertions(+), 9 deletions(-) create mode 100644 cloud-modules/cloud-modules-data-process/pom.xml create mode 100644 cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/CloudDataProcessApplication.java create mode 100644 cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/config/IoTDBSessionConfig.java create mode 100644 cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/IoTDBService.java create mode 100644 cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/impl/IoTDBServiceImpl.java create mode 100644 cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/DataJSON.java create mode 100644 cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/InsertDataDTO.java create mode 100644 cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/ResultEntity.java create mode 100644 cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/TestDataType.java create mode 100644 cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/dto/IoTDbRecordAble.java create mode 100644 cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/dto/MeasurementSchemaValuesDTO.java create mode 100644 cloud-modules/cloud-modules-data-process/src/main/resources/banner.txt create mode 100644 cloud-modules/cloud-modules-data-process/src/main/resources/bootstrap.yml create mode 100644 cloud-modules/cloud-modules-data-process/src/main/resources/logback/dev.xml create mode 100644 cloud-modules/cloud-modules-data-process/src/main/resources/logback/prod.xml create mode 100644 cloud-modules/cloud-modules-data-process/src/main/resources/logback/test.xml diff --git a/cloud-auth/src/main/resources/bootstrap.yml b/cloud-auth/src/main/resources/bootstrap.yml index 2bdda14..270c8d6 100644 --- a/cloud-auth/src/main/resources/bootstrap.yml +++ b/cloud-auth/src/main/resources/bootstrap.yml @@ -6,7 +6,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: xzr # Spring spring: application: diff --git a/cloud-gateway/src/main/resources/bootstrap.yml b/cloud-gateway/src/main/resources/bootstrap.yml index 4132cf0..5e54e71 100644 --- a/cloud-gateway/src/main/resources/bootstrap.yml +++ b/cloud-gateway/src/main/resources/bootstrap.yml @@ -6,7 +6,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: xzr # Spring spring: diff --git a/cloud-modules/cloud-modules-data-process/pom.xml b/cloud-modules/cloud-modules-data-process/pom.xml new file mode 100644 index 0000000..cb4a354 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/pom.xml @@ -0,0 +1,91 @@ + + + 4.0.0 + + com.muyu + cloud-modules + 3.6.3 + + + cloud-modules-data-process + + + 17 + 17 + UTF-8 + + + + cloud-modules-data-process 数据处理 + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + cloud-common-datasource + + + + + com.muyu + cloud-common-datascope + + + + + com.muyu + cloud-common-log + + + + + com.muyu + cloud-common-api-doc + + + + + com.muyu + cloud-common-core + + + + + org.apache.iotdb + iotdb-session + + + \ No newline at end of file diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/CloudDataProcessApplication.java b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/CloudDataProcessApplication.java new file mode 100644 index 0000000..b5ba238 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/CloudDataProcessApplication.java @@ -0,0 +1,20 @@ +package com.muyu.data.process; + +import com.muyu.common.security.annotation.EnableCustomConfig; +import com.muyu.common.security.annotation.EnableMyFeignClients; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * @Author: zi run + * @Date 2024/9/28 22:31 + * @Description 数据处理微服启动类 + */ +@EnableCustomConfig +@EnableMyFeignClients +@SpringBootApplication +public class CloudDataProcessApplication { + public static void main(String[] args) { + SpringApplication.run(CloudDataProcessApplication.class, args); + } +} diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/config/IoTDBSessionConfig.java b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/config/IoTDBSessionConfig.java new file mode 100644 index 0000000..3bf7de1 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/config/IoTDBSessionConfig.java @@ -0,0 +1,72 @@ +package com.muyu.data.process.basic.config; + +import lombok.extern.slf4j.Slf4j; +import org.apache.iotdb.session.pool.SessionPool; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; +import java.util.List; + +/** + * @Author: zi run + * @Date 2024/9/28 22:41 + * @Description IoTDB会话配置 + */ +@Slf4j +@Component +@Configuration +public class IoTDBSessionConfig { + + @Value("${spring.iotdb.username}") + private String username; + + @Value("${spring.iotdb.password}") + private String password; + + @Value("${spring.iotdb.ip}") + private String ip; + + @Value("${spring.iotdb.port}") + private int port; + + @Value("${spring.iotdb.maxSize}") + private int maxSize; + + /** + * IoTDB会话池 + */ + private static SessionPool sessionPool = null; + + /** + * 获取IoTDB会话对象 + * @return ioTDB会话对象 + */ + public SessionPool getSessionPool() { + if (sessionPool == null) { + sessionPool = new SessionPool(ip, port, username, password, maxSize); + } + return sessionPool; + } + + /** + * 向IoTDB中插入特定设备的记录 + * + * @param deviceId 设备的唯一标识符 + * @param time 记录的时间戳,以毫秒为单位 + * @param measurements 与记录关联的测量名称列表 + * @param values 每个测量对应的值列表。值的顺序必须与测量名称一一对应 + * + *

该方法从会话池中获取一个会话,并尝试将指定的记录插入到 IoTDB 中。 + * 如果插入失败,将记录错误信息,便于后续排查。

+ */ + public void insertRecord(String deviceId, long time, List measurements, List values) { + getSessionPool(); + try { + log.info("iotdb数据入库:device_id:[{}], measurements:[{}], values:[{}]", deviceId, measurements, values); + sessionPool.insertRecord(deviceId, time, measurements, values); + } catch (Exception e) { + log.error("IotDBSession insertRecord失败: deviceId={}, time={}, measurements={}, values={}, error={}", + deviceId, time, measurements, values, e.getMessage()); + } + } +} diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/IoTDBService.java b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/IoTDBService.java new file mode 100644 index 0000000..0a99fd6 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/IoTDBService.java @@ -0,0 +1,110 @@ +package com.muyu.data.process.basic.service; + +import com.muyu.data.process.domain.dto.IoTDbRecordAble; +import com.muyu.data.process.domain.dto.MeasurementSchemaValuesDTO; +import org.apache.iotdb.common.rpc.thrift.TAggregationType; +import org.apache.iotdb.isession.SessionDataSet; +import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; +import org.apache.iotdb.tsfile.write.record.Tablet; +import org.apache.iotdb.tsfile.write.schema.MeasurementSchema; + +import java.util.List; +import java.util.Map; + +/** + * @Author: zi run + * @Date 2024/9/28 23:37 + * @Description IoTDB业务层 + */ +public interface IoTDBService { + + /** + * 插入一个 Tablet 对象到 IoTDB 数据库 + * + * @param tablet 要插入的 Tablet 对象,包含待写入的数据 + */ + void insertTablet(Tablet tablet); + + void insertTablets(Map tablets); + + void insertStringRecord(String deviceId, long time, List measurements, List values); + + void insertRecord(String deviceId, long time, List measurements, List types, List values); + + void insertStringRecords(List deviceIds, List times, List> measurementsList, List> valuesList); + + void insertRecords(List deviceIds, List times, List> measurementsList, List> typesList, List> valuesList); + + void insertStringRecordsOfOneDevice(String deviceId, List times, List> measurementsList, List> valuesList); + + void insertRecordsOfOneDevice(String deviceId, List times, List> measurementsList, List> typesList, List> valuesList); + + void deleteData(String path, long endTime); + + void deleteData(List paths, long endTime); + + SessionDataSet executeRawDataQuery(List paths, long startTime, long endTime, long timeOut); + + List executeRawDataQuery(List paths, long startTime, long endTime, long timeOut, Class clazz); + + SessionDataSet executeLastDataQuery(List paths, long lastTime); + + List executeLastDataQuery(List paths, long lastTime, Class clazz); + + SessionDataSet executeLastDataQueryForOneDevice(String db, String device, List sensors, boolean isLegalPathNodes); + + List executeLastDataQueryForOneDevice(String db, String device, List sensors, boolean isLegalPathNodes, Class clazz); + + SessionDataSet executeAggregationQuery(List paths, List aggregations); + + SessionDataSet executeAggregationQuery(List paths, List aggregations, long startTime, long endTime); + + SessionDataSet executeAggregationQuery(List paths, List aggregations, long startTime, long endTime, long interval); + + SessionDataSet executeAggregationQuery(List paths, List aggregations, long startTime, long endTime, long interval, long slidingStep); + + SessionDataSet executeQueryStatement(String sql); + + + /** + * SQL非查询 + * + * @param sql + */ + void executeNonQueryStatement(String sql); + + /** + * 封装处理数据 + * + * @param sessionDataSet + * @param columnNames + */ + List> packagingMapData(SessionDataSet sessionDataSet, List columnNames); + + /** + * 封装处理数据(不支持聚合查询) + * + * @param sessionDataSet 查询返回的结果集 + * @param titleList 查询返回的结果集内的字段名 + * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) + * @param + * @return + */ + List packagingObjectData(SessionDataSet sessionDataSet, List titleList, Class clazz); + + /** + * 根据对象构建MeasurementSchemas + * + * @param object 对象 + * @return + */ + List buildMeasurementSchemas(Object object); + + /** + * 根据对象构建MeasurementSchemaValuesDTO + * + * @param object 对象 + * @return + */ + MeasurementSchemaValuesDTO buildMeasurementSchemasAndValues(Object object); +} diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/impl/IoTDBServiceImpl.java b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/impl/IoTDBServiceImpl.java new file mode 100644 index 0000000..d551a1a --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/impl/IoTDBServiceImpl.java @@ -0,0 +1,714 @@ +package com.muyu.data.process.basic.service.impl; + +import com.alibaba.fastjson.JSON; +import com.muyu.data.process.basic.config.IoTDBSessionConfig; +import com.muyu.data.process.basic.service.IoTDBService; +import com.muyu.data.process.domain.dto.IoTDbRecordAble; +import com.muyu.data.process.domain.dto.MeasurementSchemaValuesDTO; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.apache.iotdb.common.rpc.thrift.TAggregationType; +import org.apache.iotdb.isession.pool.SessionDataSetWrapper; +import org.apache.iotdb.session.pool.SessionPool; +import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; +import org.apache.iotdb.tsfile.read.common.Field; +import org.apache.iotdb.tsfile.read.common.RowRecord; +import org.apache.iotdb.tsfile.write.record.Tablet; +import org.apache.iotdb.isession.SessionDataSet; +import org.apache.iotdb.tsfile.write.schema.MeasurementSchema; +import org.springframework.stereotype.Service; + +import java.lang.reflect.Type; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Author: zi run + * @Date 2024/9/28 23:38 + * @Description IoTDB业务实现层 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class IoTDBServiceImpl implements IoTDBService { + + /** + * IoTDB会话配置 + */ + private final IoTDBSessionConfig ioTDBSessionConfig; + + /** + * 插入一个 Tablet 对象到 IoTDB 数据库 + * + * @param tablet 要插入的 Tablet 对象,包含待写入的数据 + */ + @Override + public void insertTablet(Tablet tablet) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:tablet:[{}]", tablet); + sessionPool.insertTablet(tablet); + } catch (Exception e) { + log.error("IotDBSession insertTablet失败: tablet={}, error={}", tablet, e.getMessage()); + } + } + + /** + * 将给定的 Tablets 插入到 IoTDB 数据库中。 + * + * @param tablets 一个 Map,包含要插入的 Tablets,键为 String 类型,值为 Tablet 对象。 + * Tablets 应该已经准备好并符合 IoTDB 的插入要求。 + */ + @Override + public void insertTablets(Map tablets) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:tablets:[{}]", tablets); + sessionPool.insertTablets(tablets); + } catch (Exception e) { + log.error("IotDBSession insertTablets失败: tablets={}, error={}", tablets, e.getMessage()); + } + } + + /** + * 单条数据插入(string类型数据项) + * + * @param deviceId 设备名(表名)root.ln.wf01.wt01 + * @param time 时间戳 + * @param measurements 数据项列表 + * @param values 数据项对应值列表 + */ + @Override + public void insertStringRecord(String deviceId, long time, List measurements, List values) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:device_id:[{}], measurements:[{}], values:[{}]", deviceId, measurements, values); + sessionPool.insertRecord(deviceId, time, measurements, values); + } catch (Exception e) { + log.error("IotDBSession insertRecord失败: deviceId={}, time={}, measurements={}, values={}, error={}", + deviceId, time, measurements, values, e.getMessage()); + } + } + + /** + * 单条数据插入(不同类型数据项) + * + * @param deviceId 设备名(表名)root.ln.wf01.wt01 + * @param time 时间戳 + * @param measurements 数据项列表 + * @param types 数据项对应类型列表 + * @param values 数据项对应值列表 + */ + @Override + public void insertRecord(String deviceId, long time, List measurements, List types, List values) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:device_id:[{}], measurements:[{}], types:[{}], values:[{}]", deviceId, measurements, types, values); + sessionPool.insertRecord(deviceId, time, measurements, types, values); + } catch (Exception e) { + log.error("IotDBSession insertRecordHasTypes失败: deviceId={}, time={}, measurements={},types={}, values={}, error={}", + deviceId, time, measurements, types, values, e.getMessage()); + } + } + + + /** + * 多个设备多条数据插入(string类型数据项) + * + * @param deviceIds 多个设备名(表名)root.ln.wf01.wt01 + * @param times 时间戳的列表 + * @param measurementsList 数据项列表的列表 + * @param valuesList 数据项对应值列表的列表 + */ + @Override + public void insertStringRecords(List deviceIds, List times, List> measurementsList, List> valuesList) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:deviceIds:[{}], measurementsList:[{}], valuesList:[{}]", deviceIds, measurementsList, valuesList); + sessionPool.insertRecords(deviceIds, times, measurementsList, valuesList); + } catch (Exception e) { + log.error("IotDBSession insertRecords失败: deviceIds={}, times={}, measurementsList={}, valuesList={}, error={}", + deviceIds, times, measurementsList, valuesList, e.getMessage()); + } + } + + /** + * 多个设备多条数据插入(不同类型数据项) + * + * @param deviceIds 多个设备名(表名))root.ln.wf01.wt01 + * @param times 时间戳的列表 + * @param measurementsList 数据项列表的列表 + * @param typesList 数据项对应类型列表的列表 + * @param valuesList 数据项对应值列表的列表 + */ + @Override + public void insertRecords(List deviceIds, List times, List> measurementsList, List> typesList, List> valuesList) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:deviceIds:[{}], measurementsList:[{}], typesList:[{}], valuesList:[{}]", deviceIds, measurementsList, typesList, valuesList); + sessionPool.insertRecords(deviceIds, times, measurementsList, typesList, valuesList); + } catch (Exception e) { + log.error("IotDBSession insertRecords失败: deviceIds={}, times={}, measurementsList={}, typesList=[],valuesList={}, error={}", + deviceIds, times, measurementsList, typesList, valuesList, e.getMessage()); + } + } + + /** + * 单个设备多条数据插入(string类型数据项) + * + * @param deviceId 单个设备名(表名))root.ln.wf01.wt01 + * @param times 时间戳的列表 + * @param measurementsList 数据项列表的列表 + * @param valuesList 数据项对应值列表的列表 + */ + @Override + public void insertStringRecordsOfOneDevice(String deviceId, List times, List> measurementsList, List> valuesList) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:deviceId:[{}], measurementsList:[{}], valuesList:[{}]", deviceId, measurementsList, valuesList); + sessionPool.insertStringRecordsOfOneDevice(deviceId, times, measurementsList, valuesList); + } catch (Exception e) { + log.error("IotDBSession insertStringRecordsOfOneDevice失败: deviceId={}, times={}, measurementsList={}, valuesList={}, error={}", + deviceId, times, measurementsList, valuesList, e.getMessage()); + } + } + + /** + * 单个设备多条数据插入(不同类型数据项) + * + * @param deviceId 单个设备名(表名))root.ln.wf01.wt01 + * @param times 时间戳的列表 + * @param measurementsList 数据项列表的列表 + * @param typesList 数据项对应类型列表的列表 + * @param valuesList 数据项对应值列表的列表 + */ + @Override + public void insertRecordsOfOneDevice(String deviceId, List times, List> measurementsList, List> typesList, List> valuesList) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:deviceId:[{}], measurementsList:[{}], typesList:[{}], valuesList:[{}]", deviceId, measurementsList, typesList, valuesList); + sessionPool.insertRecordsOfOneDevice(deviceId, times, measurementsList, typesList, valuesList); + } catch (Exception e) { + log.error("IotDBSession insertRecordsOfOneDevice失败: deviceId={}, times={}, measurementsList={}, typesList=[],valuesList={}, error={}", deviceId, times, measurementsList, typesList, valuesList, e.getMessage()); + } + } + + /** + * 删除数据(删除一个时间序列在某个时间点前或这个时间点的数据) + * + * @param path 单个字段 root.ln.wf01.wt01.temperature + * @param endTime 删除时间点 + */ + @Override + public void deleteData(String path, long endTime) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据删除:path:[{}], endTime:[{}]", path, endTime); + sessionPool.deleteData(path, endTime); + } catch (Exception e) { + log.error("IotDBSession deleteData失败: deviceId={}, times={},error={}", path, endTime, e.getMessage()); + } + } + + /** + * 删除数据(删除多个时间序列在某个时间点前或这个时间点的数据) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param endTime 删除时间点 + */ + @Override + public void deleteData(List paths, long endTime) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据删除:paths:[{}], endTime:[{}]", paths, endTime); + sessionPool.deleteData(paths, endTime); + } catch (Exception e) { + log.error("IotDBSession deleteData失败: paths={}, times={},error={}", paths, endTime, e.getMessage()); + } + } + + /** + * 数据查询(时间序列原始数据范围查询,时间范围为左闭右开区间,包含开始时间但不包含结束时间) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param outTime 超时时间 + * @return SessionDataSet (Time,paths) + */ + @Override + public SessionDataSet executeRawDataQuery(List paths, long startTime, long endTime, long outTime) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + try { + log.info("iotdb数据查询:paths:[{}], startTime:[{}], endTime:[{}],outTime:[{}]", paths, startTime, endTime, outTime); + sessionDataSetWrapper = sessionPool.executeRawDataQuery(paths, startTime, endTime, outTime); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeRawDataQuery失败: paths={}, startTime:[{}], endTime:[{}],outTime:[{}],error={}", paths, startTime, endTime, outTime, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * 数据查询(时间序列原始数据范围查询,时间范围为左闭右开区间,包含开始时间但不包含结束时间) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param outTime 超时时间 + * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) + * @param + * @return + */ + @Override + public List executeRawDataQuery(List paths, long startTime, long endTime, long outTime, Class clazz) { + SessionDataSet sessionDataSet = executeRawDataQuery(paths, startTime, endTime, outTime); + List columnNames = sessionDataSet.getColumnNames(); + List resultEntities = null; + try { + resultEntities = packagingObjectData(sessionDataSet, columnNames, clazz); + } catch (Exception e) { + log.error("IotDBSession executeRawDataQuery失败: paths={}, startTime:[{}], endTime:[{}],outTime:[{}],error={}", paths, startTime, endTime, outTime, e.getMessage()); + } + return resultEntities; + } + + /** + * 最新点查询(查询最后一条时间戳大于等于某个时间点的数据) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param lastTime 结束时间 + * @return SessionDataSet + */ + @Override + public SessionDataSet executeLastDataQuery(List paths, long lastTime) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + try { + log.info("iotdb数据查询:paths:[{}], lastTime:[{}]", paths, lastTime); + sessionDataSetWrapper = sessionPool.executeLastDataQuery(paths, lastTime); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeLastDataQuery失败: paths={}, lastTime:[{}], error={}", paths, lastTime, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * 最新点查询(查询最后一条时间戳大于等于某个时间点的数据) + * + * @param + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param lastTime 结束时间 + * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) + * @return + */ + @Override + public List executeLastDataQuery(List paths, long lastTime, Class clazz) { + SessionDataSet sessionDataSet = executeLastDataQuery(paths, lastTime); + List columnNames = sessionDataSet.getColumnNames(); + List resultEntities = null; + try { + resultEntities = packagingObjectData(sessionDataSet, columnNames, clazz); + } catch (Exception e) { + log.error("IotDBSession executeLastDataQuery失败: paths={}, lastTime:[{}], error={}", paths, lastTime, e.getMessage()); + } + return resultEntities; + } + + /** + * 最新点查询(快速查询单设备下指定序列最新点) + * + * @param db root.ln.wf01 + * @param device root.ln.wf01.wt01 + * @param sensors temperature,status(字段名) + * @param isLegalPathNodes true(避免路径校验) + * @return SessionDataSet + */ + @Override + public SessionDataSet executeLastDataQueryForOneDevice(String db, String device, List sensors, boolean isLegalPathNodes) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + try { + log.info("iotdb数据查询:db:[{}], device:[{}],sensors:[{}], isLegalPathNodes:[{}]", db, device, sensors, isLegalPathNodes); + sessionDataSetWrapper = sessionPool.executeLastDataQueryForOneDevice(db, device, sensors, isLegalPathNodes); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeLastDataQueryForOneDevice失败: db:[{}], device:[{}],sensors:[{}], isLegalPathNodes:[{}], error={}", db, device, sensors, isLegalPathNodes, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * @param db root.ln.wf01 + * @param device root.ln.wf01.wt01 + * @param sensors temperature,status(字段名) + * @param isLegalPathNodes true(避免路径校验) + * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) + * @param + * @return + */ + @Override + public List executeLastDataQueryForOneDevice(String db, String device, List sensors, boolean isLegalPathNodes, Class clazz) { + SessionDataSet sessionDataSet = executeLastDataQueryForOneDevice(db, device, sensors, isLegalPathNodes); + List columnNames = sessionDataSet.getColumnNames(); + List resultEntities = null; + try { + resultEntities = packagingObjectData(sessionDataSet, columnNames, clazz); + } catch (Exception e) { + log.error("IotDBSession executeLastDataQueryForOneDevice失败: db:[{}], device:[{}],sensors:[{}], isLegalPathNodes:[{}], error={}", db, device, sensors, isLegalPathNodes, e.getMessage()); + } + return resultEntities; + } + + /** + * 聚合查询 + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT + * @return SessionDataSet + */ + @Override + public SessionDataSet executeAggregationQuery(List paths, List aggregations) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + try { + log.info("iotdb聚合查询:paths:[{}], aggregations:[{}]", paths, aggregations); + sessionDataSetWrapper = sessionPool.executeAggregationQuery(paths, aggregations); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeAggregationQuery失败: paths:[{}], aggregations:[{}] ,error={}", paths, aggregations, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * 聚合查询(时间序列原始数据范围查询,时间范围为左闭右开区间,包含开始时间但不包含结束时间) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT + * @param startTime 开始时间(包含) + * @param endTime 结束时间 + * @return SessionDataSet + */ + @Override + public SessionDataSet executeAggregationQuery(List paths, List aggregations, long startTime, long endTime) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + try { + log.info("iotdb聚合查询:paths:[{}], aggregations:[{}],startTime:[{}], endTime:[{}]", paths, aggregations, startTime, endTime); + sessionDataSetWrapper = sessionPool.executeAggregationQuery(paths, aggregations, startTime, endTime); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeAggregationQuery失败: paths:[{}], aggregations:[{}] ,startTime:[{}], endTime:[{}],error={}", paths, aggregations, startTime, endTime, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * 聚合查询(支持按照时间区间分段查询) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT + * @param startTime 开始时间(包含) + * @param endTime 结束时间 + * @param interval + * @return SessionDataSet + */ + @Override + public SessionDataSet executeAggregationQuery(List paths, List aggregations, long startTime, long endTime, long interval) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + try { + log.info("iotdb聚合查询:paths:[{}], aggregations:[{}],startTime:[{}], endTime:[{}] ,interval:[{}]", paths, aggregations, startTime, endTime, interval); + sessionDataSetWrapper = sessionPool.executeAggregationQuery(paths, aggregations, startTime, endTime, interval); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeAggregationQuery失败: paths:[{}], aggregations:[{}] ,startTime:[{}], endTime:[{}], interval:[{}], error={}", paths, aggregations, startTime, endTime, interval, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * 聚合查询(支持按照时间区间分段查询) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT + * @param startTime 开始时间(包含) + * @param endTime 结束时间 + * @param interval + * @param slidingStep + * @return SessionDataSet + */ + @Override + public SessionDataSet executeAggregationQuery(List paths, List aggregations, long startTime, long endTime, long interval, long slidingStep) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + + try { + log.info("iotdb聚合查询:paths:[{}], aggregations:[{}],startTime:[{}], endTime:[{}] ,interval:[{}], slidingStep:[{}]", paths, aggregations, startTime, endTime, interval, slidingStep); + sessionDataSetWrapper = sessionPool.executeAggregationQuery(paths, aggregations, startTime, endTime, interval, slidingStep); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeAggregationQuery失败: paths:[{}], aggregations:[{}] ,startTime:[{}], endTime:[{}], interval:[{}], slidingStep:[{}] ,error={}", paths, aggregations, startTime, endTime, interval, slidingStep, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * SQL查询 + * + * @param sql + * @return + */ + @Override + public SessionDataSet executeQueryStatement(String sql) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + + try { + log.info("iotdb SQL查询:sql:[{}]", sql); + sessionDataSetWrapper = sessionPool.executeQueryStatement(sql); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeQueryStatement失败:sql:[{}],error={}", sql, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * SQL非查询 + * + * @param sql + */ + @Override + public void executeNonQueryStatement(String sql) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb SQL无查询:sql:[{}]", sql); + sessionPool.executeNonQueryStatement(sql); + } catch (Exception e) { + log.error("IotDBSession executeNonQueryStatement失败:sql:[{}],error={}", sql, e.getMessage()); + } + } + + /** + * 封装处理数据 + * + * @param sessionDataSet + * @param titleList + */ + @SneakyThrows + @Override + public List> packagingMapData(SessionDataSet sessionDataSet, List titleList) { + int fetchSize = sessionDataSet.getFetchSize(); + List> resultList = new ArrayList<>(); + titleList.remove("Time"); + if (fetchSize > 0) { + while (sessionDataSet.hasNext()) { + Map resultMap = new HashMap<>(); + RowRecord next = sessionDataSet.next(); + List fields = next.getFields(); + String timeString = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(next.getTimestamp()); + resultMap.put("time", timeString); + for (int i = 0; i < fields.size(); i++) { + Field field = fields.get(i); + if (field.getDataType() == null || field.getObjectValue(field.getDataType()) == null) { + resultMap.put(splitString(titleList.get(i)), null); + } else { + resultMap.put(splitString(titleList.get(i)), field.getObjectValue(field.getDataType()).toString()); + } + } + resultList.add(resultMap); + } + } + return resultList; + } + + /** + * 封装处理数据(不支持聚合查询) + * + * @param sessionDataSet 查询返回的结果集 + * @param titleList 查询返回的结果集内的字段名 + * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) + * @param + * @return + */ + @SneakyThrows + @Override + public List packagingObjectData(SessionDataSet sessionDataSet, List titleList, Class clazz) { + int fetchSize = sessionDataSet.getFetchSize(); + List resultList = new ArrayList<>(); + titleList.remove("Time"); + if (fetchSize > 0) { + while (sessionDataSet.hasNext()) { + Map resultMap = new HashMap<>(); + RowRecord next = sessionDataSet.next(); + List fields = next.getFields(); + String timeString = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(next.getTimestamp()); + resultMap.put("time", timeString); + if (titleList.stream().anyMatch(str -> str.contains("."))) { + for (int i = 0; i < fields.size(); i++) { + Field field = fields.get(i); + String title = titleList.get(i); + if (field.getDataType() == null || field.getObjectValue(field.getDataType()) == null) { + resultMap.put(splitString(title), null); + } else { + resultMap.put(splitString(title), field.getObjectValue(field.getDataType()).toString()); + } + } + } else { + Field fieldName = fields.get(0); + Field fieldValue = fields.get(1); + Field fieldDataType = fields.get(2); + if (fieldName.getDataType() != null && fieldName.getObjectValue(fieldName.getDataType()) != null) { + String mapKey = fieldName.getObjectValue(fieldName.getDataType()).toString(); + Object mapValue = convertStringToType(fieldValue.getObjectValue(fieldValue.getDataType()).toString(), fieldDataType.getObjectValue(fieldDataType.getDataType()).toString()); + resultMap.put(splitString(mapKey), mapValue); + } + } + + String jsonString = JSON.toJSONString(resultMap); + resultList.add(JSON.parseObject(jsonString, (Type) clazz)); + } + } + return resultList; + } + + /** + * 分割获取字段名 + * + * @param str + * @return 字段名 + */ + public static String splitString(String str) { + String[] parts = str.split("\\."); + if (parts.length <= 0) { + return str; + } else { + return parts[parts.length - 1]; + } + } + + /** + * 根据数据值和数据类型返回对应数据类型数据 + * + * @param value 数据值 + * @param typeName 数据类型 + * @return 转换后的数据值 + */ + public static Object convertStringToType(String value, String typeName) { + String type = typeName.toLowerCase(); + if (type.isEmpty()) { + return value; + } + if ("boolean".equals(type)) { + return Boolean.parseBoolean(value); + } else if ("double".equals(type)) { + return Double.parseDouble(value); + } else if ("int32".equals(type)) { + return Integer.parseInt(value); + } else if ("int64".equals(type)) { + return Long.parseLong(value); + } else if ("float".equals(type)) { + return Float.parseFloat(value); + } else if ("text".equals(type)) { + return value; + } else { + return value; + } + } + + /** + * 根据对象属性的数据类型返回对应的TSDataType + * + * @param type 属性的数据类型 + * @return TSDataType + */ + public static TSDataType getTsDataTypeByString(String type) { + String typeName = splitString(type).toLowerCase(); + if ("boolean".equals(typeName)) { + return TSDataType.BOOLEAN; + } else if ("double".equals(typeName)) { + return TSDataType.DOUBLE; + } else if ("int".equals(typeName) || "integer".equals(typeName)) { + return TSDataType.INT32; + } else if ("long".equals(typeName)) { + return TSDataType.INT64; + } else if ("float".equals(typeName)) { + return TSDataType.FLOAT; + } else if ("text".equals(typeName)) { + return TSDataType.TEXT; + } else if ("string".equals(typeName)) { + return TSDataType.TEXT; + } else { + return TSDataType.UNKNOWN; + } + } + + /** + * 根据对象构建MeasurementSchemas + * + * @param obj 对象 + * @return + */ + @Override + public List buildMeasurementSchemas(Object obj) { + java.lang.reflect.Field[] fields = obj.getClass().getDeclaredFields(); + List schemaList = Arrays.stream(fields).map(field -> + new MeasurementSchema(field.getName(), + getTsDataTypeByString( + field.getType().getName() + ))). + collect(Collectors.toList()); + return schemaList; + } + + /** + * 根据对象构建MeasurementSchemaValuesDTO + * + * @param obj 对象 + * @return + */ + @SneakyThrows + @Override + public MeasurementSchemaValuesDTO buildMeasurementSchemasAndValues(Object obj) { + MeasurementSchemaValuesDTO measurementSchemaValuesDTO = new MeasurementSchemaValuesDTO(); + java.lang.reflect.Field[] fields = obj.getClass().getDeclaredFields(); + List schemaList = new ArrayList<>(); + List values = new ArrayList<>(); + List valuesIsNullIndex = new ArrayList<>(); + int valueIndex = 0; + for (java.lang.reflect.Field field : fields) { + MeasurementSchema measurementSchema = new MeasurementSchema(field.getName(), getTsDataTypeByString(field.getType().getName())); + schemaList.add(measurementSchema); + Object value = field.get(obj); + if (value == null) { + valuesIsNullIndex.add(valueIndex); + } + values.add(value); + valueIndex++; + } + measurementSchemaValuesDTO.setSchemaList(schemaList); + measurementSchemaValuesDTO.setValues(values); + return measurementSchemaValuesDTO; + } +} diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/DataJSON.java b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/DataJSON.java new file mode 100644 index 0000000..86c075e --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/DataJSON.java @@ -0,0 +1,33 @@ +package com.muyu.data.process.domain; + +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; + +/** + * @Author: zi run + * @Date 2024/9/29 0:11 + * @Description JSON数据对象 + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +@Tag(name = "ionDB数据源对象") +public class DataJSON { + + /** + * 时间戳 + */ + @Schema(name = "时间戳") + private Long timestamp; + + /** + * 车辆JSON数据 + */ + @Schema(name = "车辆JSON数据") + private String datasource; +} diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/InsertDataDTO.java b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/InsertDataDTO.java new file mode 100644 index 0000000..91d5808 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/InsertDataDTO.java @@ -0,0 +1,67 @@ +package com.muyu.data.process.domain; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author: zi run + * @Date 2024/9/29 0:12 + * @Description 插入数据 数据转换对象 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class InsertDataDTO { + + /** + * 温度值 + */ + private Float temperature; + + /** + * 硬件标识 + */ + private String hardware; + + /** + * 状态标识 + */ + private Boolean status; + + /** + * 创建一个单一的InsertDataDTO实例,并设置默认值。 + * + * @return 一个配置好的InsertDataDTO对象 + */ + public InsertDataDTO buildOne() { + InsertDataDTO insertDataDTO = new InsertDataDTO(); + insertDataDTO.setHardware("ss"); + insertDataDTO.setStatus(true); + insertDataDTO.setTemperature(12.0F); + return insertDataDTO; + } + + /** + * 创建一个单一的InsertDataDTO实例,并设置默认值。 + * + * @return 一个配置好的InsertDataDTO对象 + */ + public List buildList() { + List insertDataDTOS = new ArrayList<>(); + int buildNum = 10; + for (int i = 0; i < buildNum; i++) { + InsertDataDTO insertDataDTO = new InsertDataDTO(); + insertDataDTO.setHardware(i % 2 == 0 ? "pp" + i : null); + insertDataDTO.setStatus(i % 2 == 0); + insertDataDTO.setTemperature(12.0F + i); + insertDataDTOS.add(insertDataDTO); + } + return insertDataDTOS; + } +} diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/ResultEntity.java b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/ResultEntity.java new file mode 100644 index 0000000..c8326d2 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/ResultEntity.java @@ -0,0 +1,36 @@ +package com.muyu.data.process.domain; + +import com.muyu.data.process.domain.dto.IoTDbRecordAble; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @Author: zi run + * @Date 2024/9/29 0:18 + * @Description 结果实体 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ResultEntity extends IoTDbRecordAble { + + /** + * 温度值 + */ + private Float temperature; + + /** + * 硬件标识 + */ + private String hardware; + + /** + * 状态标识 + */ + private Boolean status; + + /** + * 时间 + */ + private String time; + +} diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/TestDataType.java b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/TestDataType.java new file mode 100644 index 0000000..52d196c --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/TestDataType.java @@ -0,0 +1,43 @@ +package com.muyu.data.process.domain; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author: zi run + * @Date 2024/9/29 0:22 + * @Description 测试数据类型 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class TestDataType { + + /** + * 温度值 + */ + private Float temperature; + + /** + * 硬件标识 + */ + private String hardware; + + /** + * 状态标识 + */ + private Boolean status; + + /** + * 测试Double类型 + */ + private Double testDouble; + + /** + * 测试Long类型 + */ + private Long testLong; +} diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/dto/IoTDbRecordAble.java b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/dto/IoTDbRecordAble.java new file mode 100644 index 0000000..6525e38 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/dto/IoTDbRecordAble.java @@ -0,0 +1,12 @@ +package com.muyu.data.process.domain.dto; + +import lombok.Data; + +/** + * @Author: zi run + * @Date 2024/9/29 0:23 + * @Description IoTDB数据库记录对象 + */ +@Data +public class IoTDbRecordAble { +} diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/dto/MeasurementSchemaValuesDTO.java b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/dto/MeasurementSchemaValuesDTO.java new file mode 100644 index 0000000..3e025dc --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/dto/MeasurementSchemaValuesDTO.java @@ -0,0 +1,36 @@ +package com.muyu.data.process.domain.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import org.apache.iotdb.tsfile.write.schema.MeasurementSchema; + +import java.util.List; + +/** + * @Author: zi run + * @Date 2024/9/29 0:26 + * @Description 测量模式及其对应的值 数据传输对象 + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class MeasurementSchemaValuesDTO { + + /** + * 测量模式列表,每个元素表示一个测量的定义,包括名称、数据类型等信息。 + */ + private List schemaList; + + /** + * 对应于测量模式的实际值列表,存储与 schemaList 中每个测量相对应的值。 + */ + private List values; + + /** + * 存储值为空的索引列表 + */ + private List valueIsNullIndex; +} diff --git a/cloud-modules/cloud-modules-data-process/src/main/resources/banner.txt b/cloud-modules/cloud-modules-data-process/src/main/resources/banner.txt new file mode 100644 index 0000000..0dd5eee --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/src/main/resources/banner.txt @@ -0,0 +1,2 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} diff --git a/cloud-modules/cloud-modules-data-process/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-data-process/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..39a6819 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/src/main/resources/bootstrap.yml @@ -0,0 +1,45 @@ +# Tomcat +server: + port: 11000 + +nacos: + addr: 106.15.136.7:8848 + user-name: nacos + password: nacos + namespace: xzr + +spring: + application: + # 应用名称 + name: cloud-data-process + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: ${nacos.addr} + # nacos用户名 + username: ${nacos.user-name} + # nacos密码 + password: ${nacos.password} + # 命名空间 + namespace: ${nacos.namespace} + config: + # 服务注册地址 + server-addr: ${nacos.addr} + # nacos用户名 + username: ${nacos.user-name} + # nacos密码 + password: ${nacos.password} + # 命名空间 + namespace: ${nacos.namespace} + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + # 系统共享配置 + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + # 系统环境Config共享配置 + - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} \ No newline at end of file diff --git a/cloud-modules/cloud-modules-data-process/src/main/resources/logback/dev.xml b/cloud-modules/cloud-modules-data-process/src/main/resources/logback/dev.xml new file mode 100644 index 0000000..6a776b3 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/src/main/resources/logback/dev.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-data-process/src/main/resources/logback/prod.xml b/cloud-modules/cloud-modules-data-process/src/main/resources/logback/prod.xml new file mode 100644 index 0000000..839788c --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/src/main/resources/logback/prod.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + ${log.sky.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + + + ERROR + + ACCEPT + + DENY + + + + + + + + ${log.sky.pattern} + + + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-data-process/src/main/resources/logback/test.xml b/cloud-modules/cloud-modules-data-process/src/main/resources/logback/test.xml new file mode 100644 index 0000000..1ad1029 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/src/main/resources/logback/test.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + ${log.sky.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + + + ERROR + + ACCEPT + + DENY + + + + + + + + ${log.sky.pattern} + + + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml index 911a9a6..fed66b6 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml @@ -22,7 +22,6 @@ - com.alibaba.cloud diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/CloudEnterpriseApplication.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/CloudEnterpriseApplication.java index ddd295f..6429815 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/CloudEnterpriseApplication.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/CloudEnterpriseApplication.java @@ -6,7 +6,7 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** - * 系统模块 + * 企业平台微服务启动类 * * @author muyu */ diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/bootstrap.yml index aed0523..1f2e969 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/bootstrap.yml @@ -6,7 +6,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: xzr spring: application: diff --git a/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml index eea6728..dd31e1b 100644 --- a/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml @@ -6,7 +6,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: xzr # Spring spring: diff --git a/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml index 178e17b..7619514 100644 --- a/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml @@ -6,7 +6,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: xzr # Spring spring: diff --git a/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml index 9390135..296688a 100644 --- a/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml @@ -6,7 +6,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: xzr spring: application: diff --git a/cloud-modules/pom.xml b/cloud-modules/pom.xml index cd65b6b..c104eeb 100644 --- a/cloud-modules/pom.xml +++ b/cloud-modules/pom.xml @@ -14,6 +14,7 @@ cloud-modules-file cloud-modules-enterprise cloud-weixin-mp + cloud-modules-data-process cloud-modules diff --git a/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml b/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml index ddca326..f90fa0e 100644 --- a/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml +++ b/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml @@ -6,7 +6,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: dev + namespace: xzr # Spring spring: diff --git a/pom.xml b/pom.xml index a49e303..def2bf5 100644 --- a/pom.xml +++ b/pom.xml @@ -44,6 +44,7 @@ 2.4.1 2.2.8 3.0.0 + 1.3.1 @@ -199,6 +200,13 @@ ${kafka.clients.verison} + + + org.apache.iotdb + iotdb-session + ${iotdb-session.verison} + + com.muyu From 5979dbea8fbed8cf402e6c369b1922c2d2cc6c16 Mon Sep 17 00:00:00 2001 From: LQS <2506203757@qq.com> Date: Sun, 29 Sep 2024 11:10:37 +0800 Subject: [PATCH 18/30] =?UTF-8?q?fix():=E4=BF=AE=E5=A4=8D=E8=BF=9C?= =?UTF-8?q?=E8=B0=83=E9=99=8D=E7=BA=A7=E5=A4=84=E7=90=86=E5=BD=B1=E5=93=8D?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=E7=B1=BB=E6=97=A0=E6=B3=95=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/constant/ServiceNameConstants.java | 4 ++ .../car/MessageValueController.java | 12 ++++++ .../controller/car/VehicleController.java | 12 ++++++ .../enterprise/mapper/car/VehicleMapper.java | 9 ++++- .../service/car/MessageValueService.java | 8 ++++ .../service/car/VehicleService.java | 7 +++- .../impl/carImpl/MessageValueServiceImpl.java | 12 ++++++ .../impl/carImpl/VehicleServiceImpl.java | 11 +++++ .../parsing/ProtocolParsingApplication.java | 24 ----------- .../cloud-modules-enterprise/pom.xml | 1 - .../cloud-modules-protocol-analysis/pom.xml | 2 +- .../analysis/ProtocolAnalysisApplication.java | 40 +++++++++++++++++++ .../muyu/analysis/parsing/MQTT/DemoMQTT.java | 0 .../parsing/controller/ParsingController.java | 0 .../parsing/mapper/ParsingMapper.java | 0 .../parsing/remote/RemoteClientService.java | 8 +++- .../factory/RemoteClientServiceFactory.java | 5 ++- .../parsing/service/ParsingService.java | 0 .../service/impl/ParsingServiceImpl.java | 0 ...ot.autoconfigure.AutoConfiguration.imports | 0 .../src/main/resources/banner.txt | 0 .../src/main/resources/bootstrap.yml | 2 +- .../src/main/resources/logback/dev.xml | 0 .../src/main/resources/logback/prod.xml | 0 .../src/main/resources/logback/test.xml | 0 cloud-modules/pom.xml | 1 + 26 files changed, 126 insertions(+), 32 deletions(-) delete mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/ProtocolParsingApplication.java rename cloud-modules/{cloud-modules-enterprise => }/cloud-modules-protocol-analysis/pom.xml (98%) create mode 100644 cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/ProtocolAnalysisApplication.java rename cloud-modules/{cloud-modules-enterprise => }/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/DemoMQTT.java (100%) rename cloud-modules/{cloud-modules-enterprise => }/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/controller/ParsingController.java (100%) rename cloud-modules/{cloud-modules-enterprise => }/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/mapper/ParsingMapper.java (100%) rename cloud-modules/{cloud-modules-enterprise => }/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/RemoteClientService.java (81%) rename cloud-modules/{cloud-modules-enterprise => }/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/factory/RemoteClientServiceFactory.java (89%) rename cloud-modules/{cloud-modules-enterprise => }/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/ParsingService.java (100%) rename cloud-modules/{cloud-modules-enterprise => }/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/impl/ParsingServiceImpl.java (100%) rename cloud-modules/{cloud-modules-enterprise => }/cloud-modules-protocol-analysis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports (100%) rename cloud-modules/{cloud-modules-enterprise => }/cloud-modules-protocol-analysis/src/main/resources/banner.txt (100%) rename cloud-modules/{cloud-modules-enterprise => }/cloud-modules-protocol-analysis/src/main/resources/bootstrap.yml (97%) rename cloud-modules/{cloud-modules-enterprise => }/cloud-modules-protocol-analysis/src/main/resources/logback/dev.xml (100%) rename cloud-modules/{cloud-modules-enterprise => }/cloud-modules-protocol-analysis/src/main/resources/logback/prod.xml (100%) rename cloud-modules/{cloud-modules-enterprise => }/cloud-modules-protocol-analysis/src/main/resources/logback/test.xml (100%) diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java index bb59b70..2f5b0d4 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java @@ -20,4 +20,8 @@ public class ServiceNameConstants { * 文件服务的serviceid */ public static final String FILE_SERVICE = "cloud-file"; + /** + * 企业平台服务的serviceid + */ + public static final String ENTERPRISE_SERVICE = "cloud-enterprise"; } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/MessageValueController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/MessageValueController.java index 84e649d..9883e2e 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/MessageValueController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/MessageValueController.java @@ -102,6 +102,18 @@ public class MessageValueController extends BaseController return Result.success(messageValue); } + /** + * 根据报文模版id查询报文数据 + * @param templateId 请求对象 + * @return 返回结果 + */ + @GetMapping("/messageValue/findByTemplateId/{templateId}") + @Operation(summary = "根据报文模版id查询报文数据", description = "根据报文模版id查询报文数据") + public Result> findByTemplateId(@PathVariable("templateId") Long templateId){ + List list = messageValueService.findByTemplateId(templateId); + return Result.success(list); + } + diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/VehicleController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/VehicleController.java index 9e28514..cd14fc5 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/VehicleController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/VehicleController.java @@ -127,4 +127,16 @@ public class VehicleController extends BaseController util.exportExcel(response, list, "车辆数据"); } + /** + * 通过车辆vin码查询模板id + * @param vehicleVin 请求对象 + * @return 返回结果 + */ + @GetMapping("/findByVehicleVin/{vehicleVin}") + @Operation(description = "通过车辆vin码查询模板id") + public Result findByVehicleVin(@PathVariable("vehicleVin") String vehicleVin) { + Long byVehicleVin = vehicleService.findByVehicleVin(vehicleVin); + return Result.success(byVehicleVin); + } + } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/VehicleMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/VehicleMapper.java index d79f256..2ae7282 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/VehicleMapper.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/car/VehicleMapper.java @@ -7,6 +7,7 @@ import com.muyu.enterprise.domain.car.Vehicle; import com.muyu.enterprise.domain.req.car.VehicleManageReq; import com.muyu.enterprise.domain.resp.car.VehicleManageResp; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -28,5 +29,11 @@ public interface VehicleMapper extends MPJBaseMapper * @return 返回结果 */ List findAll(VehicleManageReq vehicleManageReq); - + /** + * 通过车辆vin码查询模板id + * @param vehicleVin 请求对象 + * @return 返回结果 + */ + @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); } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/MessageValueService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/MessageValueService.java index 86c8f37..9f8dc1c 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/MessageValueService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/MessageValueService.java @@ -37,4 +37,12 @@ extends IService * @return 返回结果 */ JSONObject analysis(String testStr); + /** + * 根据报文模版id查询报文数据 + * @param templateId 请求对象 + * @return 返回结果 + */ + List findByTemplateId(Long templateId); + + } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/VehicleService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/VehicleService.java index e4de83d..0fa95d1 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/VehicleService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/car/VehicleService.java @@ -26,5 +26,10 @@ extends IService * @return 返回结果 */ List getVehicleList(VehicleManageReq vehicleManageReq); - + /** + * 通过车辆vin码查询模板id + * @param vehicleVin 请求对象 + * @return 返回结果 + */ + Long findByVehicleVin(String vehicleVin); } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/MessageValueServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/MessageValueServiceImpl.java index 223efc9..4f638ad 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/MessageValueServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/MessageValueServiceImpl.java @@ -137,5 +137,17 @@ extends ServiceImpl findByTemplateId(Long templateId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MessageValue::getTemplateId,templateId); + List list = this.list(); + return list.stream() + .map(messageValue ->MessageValueListResp.valueBuild( + messageValue + ) + ).toList(); + } + } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleServiceImpl.java index 1f9871d..5ebd293 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleServiceImpl.java @@ -58,6 +58,17 @@ extends ServiceImpl list = vehicleMapper.selectJoinList(VehicleManageResp.class, wrapper); return list; } + /** + * 通过车辆vin码查询模板id + * @param vehicleVin 请求对象 + * @return 返回结果 + */ + @Override + public Long findByVehicleVin(String vehicleVin) { + Long templateId = vehicleMapper.findByVehicleVin(vehicleVin); + return templateId; + + } } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/ProtocolParsingApplication.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/ProtocolParsingApplication.java deleted file mode 100644 index 25cc5d5..0000000 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/ProtocolParsingApplication.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.muyu.analysis.parsing; - -import com.muyu.common.security.annotation.EnableCustomConfig; -import com.muyu.common.security.annotation.EnableMyFeignClients; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -/** - * 协议解析启动类 - * @Author: 李庆帅 - * @Package: com.muyu.cloud.protocol.parsing - * @Project: 2112-car-cloud-server - * @name: ProtocolParsingApplication - * @Date: 2024/9/28 11:54 - * @Description: 协议解析启动类 - */ -@EnableCustomConfig -@EnableMyFeignClients -@SpringBootApplication -public class ProtocolParsingApplication { - public static void main(String[] args) { - SpringApplication.run(ProtocolParsingApplication.class, args); - } -} diff --git a/cloud-modules/cloud-modules-enterprise/pom.xml b/cloud-modules/cloud-modules-enterprise/pom.xml index be3910e..c0d0b63 100644 --- a/cloud-modules/cloud-modules-enterprise/pom.xml +++ b/cloud-modules/cloud-modules-enterprise/pom.xml @@ -15,7 +15,6 @@ cloud-modules-enterprise-server cloud-modules-enterprise-common - cloud-modules-protocol-analysis diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/pom.xml b/cloud-modules/cloud-modules-protocol-analysis/pom.xml similarity index 98% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/pom.xml rename to cloud-modules/cloud-modules-protocol-analysis/pom.xml index 8b08818..b0ed731 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/pom.xml +++ b/cloud-modules/cloud-modules-protocol-analysis/pom.xml @@ -5,7 +5,7 @@ 4.0.0 com.muyu - cloud-modules-enterprise + cloud-modules 3.6.3 diff --git a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/ProtocolAnalysisApplication.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/ProtocolAnalysisApplication.java new file mode 100644 index 0000000..ec75253 --- /dev/null +++ b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/ProtocolAnalysisApplication.java @@ -0,0 +1,40 @@ +package com.muyu.analysis; + +import com.muyu.common.security.annotation.EnableCustomConfig; +import com.muyu.common.security.annotation.EnableMyFeignClients; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * 协议解析启动类 + * 李庆帅 + */ +@EnableCustomConfig +@EnableMyFeignClients +@SpringBootApplication +public class ProtocolAnalysisApplication { + public static void main(String[] args) { + SpringApplication.run(ProtocolAnalysisApplication.class, args); + System.out.println(" _ooOoo_\n" + + " o8888888o\n" + + " 88\" . \"88\n" + + " (| -_- |)\n" + + " O\\ = /O\n" + + " ____/`---'\\____\n" + + " .' \\\\| |// `.\n" + + " / \\\\||| : |||// \\\n" + + " / _||||| -:- |||||- \\\n" + + " | | \\\\\\ - /// | |\n" + + " | \\_| ''\\---/'' | |\n" + + " \\ .-\\__ `-` ___/-. /\n" + + " ___`. .' /--.--\\ `. . __\n" + + " .\"\" '< `.___\\_<|>_/___.' >'\"\".\n" + + " | | : `- \\`.;`\\ _ /`;.`/ - ` : | |\n" + + " \\ \\ `-. \\_ __\\ /__ _/ .-` / /\n" + + " ======`-.____`-.___\\_____/___.-`____.-'======\n" + + " `=---='\n" + + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + + " // 佛祖保佑 永不宕机 永无BUG //"); + + } +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/DemoMQTT.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/DemoMQTT.java similarity index 100% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/DemoMQTT.java rename to cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/DemoMQTT.java diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/controller/ParsingController.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/controller/ParsingController.java similarity index 100% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/controller/ParsingController.java rename to cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/controller/ParsingController.java diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/mapper/ParsingMapper.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/mapper/ParsingMapper.java similarity index 100% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/mapper/ParsingMapper.java rename to cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/mapper/ParsingMapper.java diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/RemoteClientService.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/RemoteClientService.java similarity index 81% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/RemoteClientService.java rename to cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/RemoteClientService.java index d7a0f39..43eae53 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/RemoteClientService.java +++ b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/RemoteClientService.java @@ -1,6 +1,7 @@ package com.muyu.analysis.parsing.remote; import com.muyu.analysis.parsing.remote.factory.RemoteClientServiceFactory; +import com.muyu.common.core.constant.ServiceNameConstants; import com.muyu.common.core.domain.Result; import com.muyu.enterprise.domain.resp.car.MessageValueListResp; import org.springframework.cloud.openfeign.FeignClient; @@ -16,9 +17,12 @@ import java.util.List; * @Project:cloud-server * @name:RemoteServiceClient * @Date:2024/9/28 20:38 + * ,,value = ServiceNameConstants.ENTERPRISE_SERVICE + * ,fallbackFactory= RemoteClientServiceFactory.class */ -@FeignClient(name = "remoteClientService" -,fallbackFactory= RemoteClientServiceFactory.class) +@FeignClient(name = "cloud-enterprise",value = ServiceNameConstants.ENTERPRISE_SERVICE + ,fallbackFactory= RemoteClientServiceFactory.class +) public interface RemoteClientService { /** * 根据报文模版id查询报文数据 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/factory/RemoteClientServiceFactory.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/factory/RemoteClientServiceFactory.java similarity index 89% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/factory/RemoteClientServiceFactory.java rename to cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/factory/RemoteClientServiceFactory.java index 5851bbc..e9d5106 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/factory/RemoteClientServiceFactory.java +++ b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/factory/RemoteClientServiceFactory.java @@ -6,6 +6,7 @@ import com.muyu.enterprise.domain.resp.car.MessageValueListResp; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; import java.util.List; @@ -17,7 +18,9 @@ import java.util.List; * @name:RemoteServiceClientFactory * @Date:2024/9/28 21:16 */ -public class RemoteClientServiceFactory implements FallbackFactory +@Component +public class RemoteClientServiceFactory + implements FallbackFactory { private static final Logger log = LoggerFactory.getLogger(RemoteClientServiceFactory.class); diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/ParsingService.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/ParsingService.java similarity index 100% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/ParsingService.java rename to cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/ParsingService.java diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/impl/ParsingServiceImpl.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/impl/ParsingServiceImpl.java similarity index 100% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/impl/ParsingServiceImpl.java rename to cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/impl/ParsingServiceImpl.java diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-modules/cloud-modules-protocol-analysis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports similarity index 100% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename to cloud-modules/cloud-modules-protocol-analysis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/banner.txt b/cloud-modules/cloud-modules-protocol-analysis/src/main/resources/banner.txt similarity index 100% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/banner.txt rename to cloud-modules/cloud-modules-protocol-analysis/src/main/resources/banner.txt diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-protocol-analysis/src/main/resources/bootstrap.yml similarity index 97% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/bootstrap.yml rename to cloud-modules/cloud-modules-protocol-analysis/src/main/resources/bootstrap.yml index fe6051b..02ebf66 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-protocol-analysis/src/main/resources/bootstrap.yml @@ -12,7 +12,7 @@ nacos: spring: application: # 应用名称 - name: cloud-enterprise + name: cloud-protocol-analysis profiles: # 环境配置 active: dev diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/logback/dev.xml b/cloud-modules/cloud-modules-protocol-analysis/src/main/resources/logback/dev.xml similarity index 100% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/logback/dev.xml rename to cloud-modules/cloud-modules-protocol-analysis/src/main/resources/logback/dev.xml diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/logback/prod.xml b/cloud-modules/cloud-modules-protocol-analysis/src/main/resources/logback/prod.xml similarity index 100% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/logback/prod.xml rename to cloud-modules/cloud-modules-protocol-analysis/src/main/resources/logback/prod.xml diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/logback/test.xml b/cloud-modules/cloud-modules-protocol-analysis/src/main/resources/logback/test.xml similarity index 100% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-protocol-analysis/src/main/resources/logback/test.xml rename to cloud-modules/cloud-modules-protocol-analysis/src/main/resources/logback/test.xml diff --git a/cloud-modules/pom.xml b/cloud-modules/pom.xml index cd65b6b..3daec94 100644 --- a/cloud-modules/pom.xml +++ b/cloud-modules/pom.xml @@ -14,6 +14,7 @@ cloud-modules-file cloud-modules-enterprise cloud-weixin-mp + cloud-modules-protocol-analysis cloud-modules From a18ba509d8d40d9079d44c48c67d89d8f3841d8f Mon Sep 17 00:00:00 2001 From: LQS <2506203757@qq.com> Date: Sun, 29 Sep 2024 11:18:39 +0800 Subject: [PATCH 19/30] =?UTF-8?q?fix():=E4=BF=AE=E5=A4=8D=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E6=B3=A8=E5=85=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cloud-modules/cloud-modules-protocol-analysis/pom.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cloud-modules/cloud-modules-protocol-analysis/pom.xml b/cloud-modules/cloud-modules-protocol-analysis/pom.xml index b0ed731..3666dd4 100644 --- a/cloud-modules/cloud-modules-protocol-analysis/pom.xml +++ b/cloud-modules/cloud-modules-protocol-analysis/pom.xml @@ -95,6 +95,10 @@ mybatis-plus-join-boot-starter 1.4.11 + + com.muyu + cloud-common-core + From 423836afb705e890b0d2c50f32816d9a31e3174d Mon Sep 17 00:00:00 2001 From: xinzirun Date: Sun, 29 Sep 2024 11:58:18 +0800 Subject: [PATCH 20/30] =?UTF-8?q?fix():=20=E4=BF=AE=E5=A4=8DIoTDB=E5=9F=BA?= =?UTF-8?q?=E7=A1=80=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../process/basic/service/IoTDBService.java | 230 ++++++++++++++++-- .../basic/service/impl/IoTDBServiceImpl.java | 199 +++++++++------ .../domain/{ => dto}/InsertDataDTO.java | 2 +- 3 files changed, 331 insertions(+), 100 deletions(-) rename cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/{ => dto}/InsertDataDTO.java (97%) diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/IoTDBService.java b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/IoTDBService.java index 0a99fd6..a869c69 100644 --- a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/IoTDBService.java +++ b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/IoTDBService.java @@ -25,61 +25,240 @@ public interface IoTDBService { */ void insertTablet(Tablet tablet); + /** + * 将给定的 Tablets 插入到 IoTDB 数据库中。 + * + * @param tablets 一个 Map,包含要插入的 Tablets + */ void insertTablets(Map tablets); + /** + * 单条数据插入(string类型数据项) + * + * @param deviceId 设备名(表名)root.ln.wf01.wt01 + * @param time 时间戳 + * @param measurements 数据项列表 + * @param values 数据项对应值列表 + */ void insertStringRecord(String deviceId, long time, List measurements, List values); - void insertRecord(String deviceId, long time, List measurements, List types, List values); + /** + * 单条数据插入(不同类型数据项) + * + * @param deviceId 设备名(表名)root.ln.wf01.wt01 + * @param time 时间戳 + * @param measurements 数据项列表 + * @param types 数据项对应类型列表 + * @param values 数据项对应值列表 + */ + void insertRecord(String deviceId, long time, List measurements, + List types, List values); - void insertStringRecords(List deviceIds, List times, List> measurementsList, List> valuesList); + /** + * 多个设备多条数据插入(string类型数据项) + * + * @param deviceIds 多个设备名(表名)root.ln.wf01.wt01 + * @param times 时间戳的列表 + * @param measurementsList 数据项列表的列表 + * @param valuesList 数据项对应值列表的列表 + */ + void insertStringRecords(List deviceIds, List times, + List> measurementsList, List> valuesList); - void insertRecords(List deviceIds, List times, List> measurementsList, List> typesList, List> valuesList); + /** + * 多个设备多条数据插入(不同类型数据项) + * + * @param deviceIds 多个设备名(表名))root.ln.wf01.wt01 + * @param times 时间戳的列表 + * @param measurementsList 数据项列表的列表 + * @param typesList 数据项对应类型列表的列表 + * @param valuesList 数据项对应值列表的列表 + */ + void insertRecords(List deviceIds, List times, List> measurementsList, + List> typesList, List> valuesList); - void insertStringRecordsOfOneDevice(String deviceId, List times, List> measurementsList, List> valuesList); + /** + * 单个设备多条数据插入(string类型数据项) + * + * @param deviceId 单个设备名(表名))root.ln.wf01.wt01 + * @param times 时间戳的列表 + * @param measurementsList 数据项列表的列表 + * @param valuesList 数据项对应值列表的列表 + */ + void insertStringRecordsOfOneDevice(String deviceId, List times, + List> measurementsList, List> valuesList); - void insertRecordsOfOneDevice(String deviceId, List times, List> measurementsList, List> typesList, List> valuesList); + /** + * 单个设备多条数据插入(不同类型数据项) + * + * @param deviceId 单个设备名(表名))root.ln.wf01.wt01 + * @param times 时间戳的列表 + * @param measurementsList 数据项列表的列表 + * @param typesList 数据项对应类型列表的列表 + * @param valuesList 数据项对应值列表的列表 + */ + void insertRecordsOfOneDevice(String deviceId, List times, List> measurementsList, + List> typesList, List> valuesList); + /** + * 删除数据(删除一个时间序列在某个时间点前或这个时间点的数据) + * + * @param path 单个字段 root.ln.wf01.wt01.temperature + * @param endTime 删除时间点 + */ void deleteData(String path, long endTime); + /** + * 删除数据(删除多个时间序列在某个时间点前或这个时间点的数据) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param endTime 删除时间点 + */ void deleteData(List paths, long endTime); - SessionDataSet executeRawDataQuery(List paths, long startTime, long endTime, long timeOut); + /** + * 数据查询(时间序列原始数据范围查询,时间范围为左闭右开区间,包含开始时间但不包含结束时间) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param outTime 超时时间 + * @return SessionDataSet (Time,paths) + */ + SessionDataSet executeRawDataQuery(List paths, long startTime, long endTime, long outTime); - List executeRawDataQuery(List paths, long startTime, long endTime, long timeOut, Class clazz); + /** + * 数据查询(时间序列原始数据范围查询,时间范围为左闭右开区间,包含开始时间但不包含结束时间) + * + * @param paths 多个字段(表名),例如:"root.ln.wf01.wt01.temperature" + * @param startTime 查询数据的起始时间(包含该时间点) + * @param endTime 查询数据的结束时间(不包含该时间点) + * @param outTime 超时时间,单位为毫秒,表示查询的最长等待时间 + * @param clazz 返回数据对应的对象类型,要求对象属性与数据库字段名一致 + * @param 返回数据的对象类型泛型 + * @return 查询结果的对象列表,如果查询失败则返回 null + */ + List executeRawDataQuery(List paths, long startTime, long endTime, long outTime, + Class clazz); + /** + * 最新点查询(查询最后一条时间戳大于等于某个时间点的数据) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param lastTime 结束时间 + * @return SessionDataSet + */ SessionDataSet executeLastDataQuery(List paths, long lastTime); + /** + * 最新点查询(查询最后一条时间戳大于等于某个时间点的数据) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param lastTime 结束时间 + * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) + * @return 查询结果的对象列表,如果查询失败则返回 null + * @param 返回数据的对象类型泛型 + */ List executeLastDataQuery(List paths, long lastTime, Class clazz); - SessionDataSet executeLastDataQueryForOneDevice(String db, String device, List sensors, boolean isLegalPathNodes); + /** + * 最新点查询(快速查询单设备下指定序列最新点) + * + * @param db root.ln.wf01 + * @param device root.ln.wf01.wt01 + * @param sensors temperature,status(字段名) + * @param isLegalPathNodes true(避免路径校验) + * @return SessionDataSet + */ + SessionDataSet executeLastDataQueryForOneDevice(String db, String device, + List sensors, boolean isLegalPathNodes); - List executeLastDataQueryForOneDevice(String db, String device, List sensors, boolean isLegalPathNodes, Class clazz); + /** + * 查询单个设备的最新数据(获取指定设备的最新传感器数据) + * + * @param db root.ln.wf01 + * @param device root.ln.wf01.wt01 + * @param sensors temperature,status(字段名) + * @param isLegalPathNodes true(避免路径校验) + * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) + * @return 查询结果的对象列表,如果查询失败则返回 null + * @param 返回数据的对象类型泛型 + */ + List executeLastDataQueryForOneDevice(String db, String device, List sensors, + boolean isLegalPathNodes, Class clazz); + /** + * 聚合查询 + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT + * @return SessionDataSet + */ SessionDataSet executeAggregationQuery(List paths, List aggregations); - SessionDataSet executeAggregationQuery(List paths, List aggregations, long startTime, long endTime); + /** + * 聚合查询(时间序列原始数据范围查询,时间范围为左闭右开区间,包含开始时间但不包含结束时间) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT + * @param startTime 开始时间(包含) + * @param endTime 结束时间 + * @return SessionDataSet + */ + SessionDataSet executeAggregationQuery(List paths, List aggregations, + long startTime, long endTime); - SessionDataSet executeAggregationQuery(List paths, List aggregations, long startTime, long endTime, long interval); + /** + * 聚合查询(支持按照时间区间分段查询) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT + * @param startTime 开始时间(包含) + * @param endTime 结束时间 + * @param interval 查询的时间间隔(单位为毫秒) + * @return SessionDataSet + */ + SessionDataSet executeAggregationQuery(List paths, List aggregations, + long startTime, long endTime, long interval); - SessionDataSet executeAggregationQuery(List paths, List aggregations, long startTime, long endTime, long interval, long slidingStep); + /** + * 聚合查询(支持按照时间区间分段查询) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT + * @param startTime 开始时间(包含) + * @param endTime 结束时间 + * @param interval 查询的时间间隔(单位为毫秒) + * @param slidingStep 滑动步长(单位为毫秒) + * @return SessionDataSet + */ + SessionDataSet executeAggregationQuery(List paths, List aggregations, + long startTime, long endTime, long interval, long slidingStep); + /** + * SQL查询 + * + * @param sql SQL查询语句,支持IotDB的查询语法 + * @return 返回查询结果的 SessionDataSet,如果执行失败则返回 null + */ SessionDataSet executeQueryStatement(String sql); /** * SQL非查询 * - * @param sql + * @param sql SQL查询语句,支持IotDB的查询语法 */ void executeNonQueryStatement(String sql); /** * 封装处理数据 * - * @param sessionDataSet - * @param columnNames + * @param sessionDataSet 包含查询结果的SessionDataSet对象 + * @param titleList 列标题列表,用于映射字段名称 + * @return 返回封装后的数据列表,每个 Map 代表一行数据,键为列名,值为对应的字段值 */ - List> packagingMapData(SessionDataSet sessionDataSet, List columnNames); + List> packagingMapData(SessionDataSet sessionDataSet, List titleList); /** * 封装处理数据(不支持聚合查询) @@ -87,24 +266,25 @@ public interface IoTDBService { * @param sessionDataSet 查询返回的结果集 * @param titleList 查询返回的结果集内的字段名 * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) - * @param - * @return + * @return 返回封装后的对象列表,每个对象对应一行结果集数据 + * @param 返回对象的类型 */ - List packagingObjectData(SessionDataSet sessionDataSet, List titleList, Class clazz); + List packagingObjectData(SessionDataSet sessionDataSet, List titleList, + Class clazz); /** * 根据对象构建MeasurementSchemas * - * @param object 对象 - * @return + * @param obj 要从中提取字段信息的对象 + * @return 返回一个包含 MeasurementSchema 的列表 */ - List buildMeasurementSchemas(Object object); + List buildMeasurementSchemas(Object obj); /** * 根据对象构建MeasurementSchemaValuesDTO * - * @param object 对象 - * @return + * @param obj 要从中提取字段信息和对应值的对象 + * @return MeasurementSchemaValuesDTO 对象 */ - MeasurementSchemaValuesDTO buildMeasurementSchemasAndValues(Object object); + MeasurementSchemaValuesDTO buildMeasurementSchemasAndValues(Object obj); } diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/impl/IoTDBServiceImpl.java b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/impl/IoTDBServiceImpl.java index d551a1a..fcbd374 100644 --- a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/impl/IoTDBServiceImpl.java +++ b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/impl/IoTDBServiceImpl.java @@ -57,8 +57,7 @@ public class IoTDBServiceImpl implements IoTDBService { /** * 将给定的 Tablets 插入到 IoTDB 数据库中。 * - * @param tablets 一个 Map,包含要插入的 Tablets,键为 String 类型,值为 Tablet 对象。 - * Tablets 应该已经准备好并符合 IoTDB 的插入要求。 + * @param tablets 一个 Map,包含要插入的 Tablets */ @Override public void insertTablets(Map tablets) { @@ -101,14 +100,16 @@ public class IoTDBServiceImpl implements IoTDBService { * @param values 数据项对应值列表 */ @Override - public void insertRecord(String deviceId, long time, List measurements, List types, List values) { + public void insertRecord(String deviceId, long time, List measurements, + List types, List values) { SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); try { - log.info("iotdb数据入库:device_id:[{}], measurements:[{}], types:[{}], values:[{}]", deviceId, measurements, types, values); + log.info("iotdb数据入库:device_id:[{}], measurements:[{}], types:[{}], values:[{}]", + deviceId, measurements, types, values); sessionPool.insertRecord(deviceId, time, measurements, types, values); } catch (Exception e) { - log.error("IotDBSession insertRecordHasTypes失败: deviceId={}, time={}, measurements={},types={}, values={}, error={}", - deviceId, time, measurements, types, values, e.getMessage()); + log.error("IotDBSession insertRecordHasTypes失败: deviceId={}, time={}, measurements={}, types={}, " + + "values={}, error={}", deviceId, time, measurements, types, values, e.getMessage()); } } @@ -122,14 +123,16 @@ public class IoTDBServiceImpl implements IoTDBService { * @param valuesList 数据项对应值列表的列表 */ @Override - public void insertStringRecords(List deviceIds, List times, List> measurementsList, List> valuesList) { + public void insertStringRecords(List deviceIds, List times, List> measurementsList, + List> valuesList) { SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); try { - log.info("iotdb数据入库:deviceIds:[{}], measurementsList:[{}], valuesList:[{}]", deviceIds, measurementsList, valuesList); + log.info("iotdb数据入库:deviceIds:[{}], measurementsList:[{}], valuesList:[{}]", + deviceIds, measurementsList, valuesList); sessionPool.insertRecords(deviceIds, times, measurementsList, valuesList); } catch (Exception e) { - log.error("IotDBSession insertRecords失败: deviceIds={}, times={}, measurementsList={}, valuesList={}, error={}", - deviceIds, times, measurementsList, valuesList, e.getMessage()); + log.error("IotDBSession insertRecords失败: deviceIds={}, times={}, measurementsList={}, " + + "valuesList={}, error={}", deviceIds, times, measurementsList, valuesList, e.getMessage()); } } @@ -143,13 +146,16 @@ public class IoTDBServiceImpl implements IoTDBService { * @param valuesList 数据项对应值列表的列表 */ @Override - public void insertRecords(List deviceIds, List times, List> measurementsList, List> typesList, List> valuesList) { + public void insertRecords(List deviceIds, List times, List> measurementsList, + List> typesList, List> valuesList) { SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); try { - log.info("iotdb数据入库:deviceIds:[{}], measurementsList:[{}], typesList:[{}], valuesList:[{}]", deviceIds, measurementsList, typesList, valuesList); + log.info("iotdb数据入库:deviceIds:[{}], measurementsList:[{}], typesList:[{}], valuesList:[{}]", + deviceIds, measurementsList, typesList, valuesList); sessionPool.insertRecords(deviceIds, times, measurementsList, typesList, valuesList); } catch (Exception e) { - log.error("IotDBSession insertRecords失败: deviceIds={}, times={}, measurementsList={}, typesList=[],valuesList={}, error={}", + log.error("IotDBSession insertRecords失败: deviceIds={}, times={}, measurementsList={}, typesList={}, " + + "valuesList={}, error={}", deviceIds, times, measurementsList, typesList, valuesList, e.getMessage()); } } @@ -163,13 +169,16 @@ public class IoTDBServiceImpl implements IoTDBService { * @param valuesList 数据项对应值列表的列表 */ @Override - public void insertStringRecordsOfOneDevice(String deviceId, List times, List> measurementsList, List> valuesList) { + public void insertStringRecordsOfOneDevice(String deviceId, List times, List> measurementsList, + List> valuesList) { SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); try { - log.info("iotdb数据入库:deviceId:[{}], measurementsList:[{}], valuesList:[{}]", deviceId, measurementsList, valuesList); + log.info("iotdb数据入库:deviceId:[{}], measurementsList:[{}], valuesList:[{}]", + deviceId, measurementsList, valuesList); sessionPool.insertStringRecordsOfOneDevice(deviceId, times, measurementsList, valuesList); } catch (Exception e) { - log.error("IotDBSession insertStringRecordsOfOneDevice失败: deviceId={}, times={}, measurementsList={}, valuesList={}, error={}", + log.error("IotDBSession insertStringRecordsOfOneDevice失败: deviceId={}, times={}, " + + "measurementsList={}, valuesList={}, error={}", deviceId, times, measurementsList, valuesList, e.getMessage()); } } @@ -184,13 +193,17 @@ public class IoTDBServiceImpl implements IoTDBService { * @param valuesList 数据项对应值列表的列表 */ @Override - public void insertRecordsOfOneDevice(String deviceId, List times, List> measurementsList, List> typesList, List> valuesList) { + public void insertRecordsOfOneDevice(String deviceId, List times, List> measurementsList, + List> typesList, List> valuesList) { SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); try { - log.info("iotdb数据入库:deviceId:[{}], measurementsList:[{}], typesList:[{}], valuesList:[{}]", deviceId, measurementsList, typesList, valuesList); + log.info("iotdb数据入库:deviceId:[{}], measurementsList:[{}], typesList:[{}], valuesList:[{}]", + deviceId, measurementsList, typesList, valuesList); sessionPool.insertRecordsOfOneDevice(deviceId, times, measurementsList, typesList, valuesList); } catch (Exception e) { - log.error("IotDBSession insertRecordsOfOneDevice失败: deviceId={}, times={}, measurementsList={}, typesList=[],valuesList={}, error={}", deviceId, times, measurementsList, typesList, valuesList, e.getMessage()); + log.error("IotDBSession insertRecordsOfOneDevice失败: deviceId={}, times={}, " + + "measurementsList={},typesList={},valuesList={}, error={}", + deviceId, times, measurementsList, typesList, valuesList, e.getMessage()); } } @@ -242,11 +255,13 @@ public class IoTDBServiceImpl implements IoTDBService { SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); SessionDataSetWrapper sessionDataSetWrapper = null; try { - log.info("iotdb数据查询:paths:[{}], startTime:[{}], endTime:[{}],outTime:[{}]", paths, startTime, endTime, outTime); + log.info("iotdb数据查询:paths:[{}], startTime:[{}], endTime:[{}],outTime:[{}]", + paths, startTime, endTime, outTime); sessionDataSetWrapper = sessionPool.executeRawDataQuery(paths, startTime, endTime, outTime); return sessionDataSetWrapper.getSessionDataSet(); } catch (Exception e) { - log.error("IotDBSession executeRawDataQuery失败: paths={}, startTime:[{}], endTime:[{}],outTime:[{}],error={}", paths, startTime, endTime, outTime, e.getMessage()); + log.error("IotDBSession executeRawDataQuery失败: paths={}, startTime:[{}], endTime:[{}], " + + "outTime:[{}], error={}", paths, startTime, endTime, outTime, e.getMessage()); } finally { sessionPool.closeResultSet(sessionDataSetWrapper); } @@ -256,23 +271,25 @@ public class IoTDBServiceImpl implements IoTDBService { /** * 数据查询(时间序列原始数据范围查询,时间范围为左闭右开区间,包含开始时间但不包含结束时间) * - * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature - * @param startTime 开始时间 - * @param endTime 结束时间 - * @param outTime 超时时间 - * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) - * @param - * @return + * @param paths 多个字段(表名),例如:"root.ln.wf01.wt01.temperature" + * @param startTime 查询数据的起始时间(包含该时间点) + * @param endTime 查询数据的结束时间(不包含该时间点) + * @param outTime 超时时间,单位为毫秒,表示查询的最长等待时间 + * @param clazz 返回数据对应的对象类型,要求对象属性与数据库字段名一致 + * @param 返回数据的对象类型泛型 + * @return 查询结果的对象列表,如果查询失败则返回 null */ @Override - public List executeRawDataQuery(List paths, long startTime, long endTime, long outTime, Class clazz) { + public List executeRawDataQuery(List paths, long startTime, long endTime, long outTime, + Class clazz) { SessionDataSet sessionDataSet = executeRawDataQuery(paths, startTime, endTime, outTime); List columnNames = sessionDataSet.getColumnNames(); List resultEntities = null; try { resultEntities = packagingObjectData(sessionDataSet, columnNames, clazz); } catch (Exception e) { - log.error("IotDBSession executeRawDataQuery失败: paths={}, startTime:[{}], endTime:[{}],outTime:[{}],error={}", paths, startTime, endTime, outTime, e.getMessage()); + log.error("IotDBSession executeRawDataQuery失败: paths={}, startTime:[{}], endTime:[{}], " + + "outTime:[{}], error={}", paths, startTime, endTime, outTime, e.getMessage()); } return resultEntities; } @@ -293,7 +310,8 @@ public class IoTDBServiceImpl implements IoTDBService { sessionDataSetWrapper = sessionPool.executeLastDataQuery(paths, lastTime); return sessionDataSetWrapper.getSessionDataSet(); } catch (Exception e) { - log.error("IotDBSession executeLastDataQuery失败: paths={}, lastTime:[{}], error={}", paths, lastTime, e.getMessage()); + log.error("IotDBSession executeLastDataQuery失败: paths={}, lastTime:[{}], error={}", + paths, lastTime, e.getMessage()); } finally { sessionPool.closeResultSet(sessionDataSetWrapper); } @@ -303,11 +321,11 @@ public class IoTDBServiceImpl implements IoTDBService { /** * 最新点查询(查询最后一条时间戳大于等于某个时间点的数据) * - * @param * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature * @param lastTime 结束时间 * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) - * @return + * @return 查询结果的对象列表,如果查询失败则返回 null + * @param 返回数据的对象类型泛型 */ @Override public List executeLastDataQuery(List paths, long lastTime, Class clazz) { @@ -317,7 +335,8 @@ public class IoTDBServiceImpl implements IoTDBService { try { resultEntities = packagingObjectData(sessionDataSet, columnNames, clazz); } catch (Exception e) { - log.error("IotDBSession executeLastDataQuery失败: paths={}, lastTime:[{}], error={}", paths, lastTime, e.getMessage()); + log.error("IotDBSession executeLastDataQuery失败: paths={}, lastTime:[{}], error={}", + paths, lastTime, e.getMessage()); } return resultEntities; } @@ -332,15 +351,18 @@ public class IoTDBServiceImpl implements IoTDBService { * @return SessionDataSet */ @Override - public SessionDataSet executeLastDataQueryForOneDevice(String db, String device, List sensors, boolean isLegalPathNodes) { + public SessionDataSet executeLastDataQueryForOneDevice(String db, String device, List sensors, + boolean isLegalPathNodes) { SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); SessionDataSetWrapper sessionDataSetWrapper = null; try { - log.info("iotdb数据查询:db:[{}], device:[{}],sensors:[{}], isLegalPathNodes:[{}]", db, device, sensors, isLegalPathNodes); + log.info("iotdb数据查询:db:[{}], device:[{}],sensors:[{}], isLegalPathNodes:[{}]", + db, device, sensors, isLegalPathNodes); sessionDataSetWrapper = sessionPool.executeLastDataQueryForOneDevice(db, device, sensors, isLegalPathNodes); return sessionDataSetWrapper.getSessionDataSet(); } catch (Exception e) { - log.error("IotDBSession executeLastDataQueryForOneDevice失败: db:[{}], device:[{}],sensors:[{}], isLegalPathNodes:[{}], error={}", db, device, sensors, isLegalPathNodes, e.getMessage()); + log.error("IotDBSession executeLastDataQueryForOneDevice失败: db:[{}], device:[{}], sensors:[{}], " + + "isLegalPathNodes:[{}], error={}", db, device, sensors, isLegalPathNodes, e.getMessage()); } finally { sessionPool.closeResultSet(sessionDataSetWrapper); } @@ -348,23 +370,28 @@ public class IoTDBServiceImpl implements IoTDBService { } /** + * 查询单个设备的最新数据(获取指定设备的最新传感器数据) + * * @param db root.ln.wf01 * @param device root.ln.wf01.wt01 * @param sensors temperature,status(字段名) * @param isLegalPathNodes true(避免路径校验) * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) - * @param - * @return + * @return 查询结果的对象列表,如果查询失败则返回 null + * @param 返回数据的对象类型泛型 */ @Override - public List executeLastDataQueryForOneDevice(String db, String device, List sensors, boolean isLegalPathNodes, Class clazz) { + public List executeLastDataQueryForOneDevice(String db, String device, List sensors, + boolean isLegalPathNodes, + Class clazz) { SessionDataSet sessionDataSet = executeLastDataQueryForOneDevice(db, device, sensors, isLegalPathNodes); List columnNames = sessionDataSet.getColumnNames(); List resultEntities = null; try { resultEntities = packagingObjectData(sessionDataSet, columnNames, clazz); } catch (Exception e) { - log.error("IotDBSession executeLastDataQueryForOneDevice失败: db:[{}], device:[{}],sensors:[{}], isLegalPathNodes:[{}], error={}", db, device, sensors, isLegalPathNodes, e.getMessage()); + log.error("IotDBSession executeLastDataQueryForOneDevice失败: db:[{}], device:[{}],sensors:[{}], " + + "isLegalPathNodes:[{}], error={}", db, device, sensors, isLegalPathNodes, e.getMessage()); } return resultEntities; } @@ -385,7 +412,8 @@ public class IoTDBServiceImpl implements IoTDBService { sessionDataSetWrapper = sessionPool.executeAggregationQuery(paths, aggregations); return sessionDataSetWrapper.getSessionDataSet(); } catch (Exception e) { - log.error("IotDBSession executeAggregationQuery失败: paths:[{}], aggregations:[{}] ,error={}", paths, aggregations, e.getMessage()); + log.error("IotDBSession executeAggregationQuery失败: paths:[{}], aggregations:[{}] ,error={}", + paths, aggregations, e.getMessage()); } finally { sessionPool.closeResultSet(sessionDataSetWrapper); } @@ -402,15 +430,18 @@ public class IoTDBServiceImpl implements IoTDBService { * @return SessionDataSet */ @Override - public SessionDataSet executeAggregationQuery(List paths, List aggregations, long startTime, long endTime) { + public SessionDataSet executeAggregationQuery(List paths, List aggregations, + long startTime, long endTime) { SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); SessionDataSetWrapper sessionDataSetWrapper = null; try { - log.info("iotdb聚合查询:paths:[{}], aggregations:[{}],startTime:[{}], endTime:[{}]", paths, aggregations, startTime, endTime); + log.info("iotdb聚合查询:paths:[{}], aggregations:[{}],startTime:[{}], endTime:[{}]", + paths, aggregations, startTime, endTime); sessionDataSetWrapper = sessionPool.executeAggregationQuery(paths, aggregations, startTime, endTime); return sessionDataSetWrapper.getSessionDataSet(); } catch (Exception e) { - log.error("IotDBSession executeAggregationQuery失败: paths:[{}], aggregations:[{}] ,startTime:[{}], endTime:[{}],error={}", paths, aggregations, startTime, endTime, e.getMessage()); + log.error("IotDBSession executeAggregationQuery失败: paths:[{}], aggregations:[{}], " + + "startTime:[{}], endTime:[{}],error={}", paths, aggregations, startTime, endTime, e.getMessage()); } finally { sessionPool.closeResultSet(sessionDataSetWrapper); } @@ -424,19 +455,25 @@ public class IoTDBServiceImpl implements IoTDBService { * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT * @param startTime 开始时间(包含) * @param endTime 结束时间 - * @param interval + * @param interval 查询的时间间隔(单位为毫秒) * @return SessionDataSet */ @Override - public SessionDataSet executeAggregationQuery(List paths, List aggregations, long startTime, long endTime, long interval) { + public SessionDataSet executeAggregationQuery(List paths, List aggregations, + long startTime, long endTime, long interval) { SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); SessionDataSetWrapper sessionDataSetWrapper = null; try { - log.info("iotdb聚合查询:paths:[{}], aggregations:[{}],startTime:[{}], endTime:[{}] ,interval:[{}]", paths, aggregations, startTime, endTime, interval); - sessionDataSetWrapper = sessionPool.executeAggregationQuery(paths, aggregations, startTime, endTime, interval); + log.info("iotdb聚合查询:paths:[{}], aggregations:[{}],startTime:[{}], endTime:[{}] ,interval:[{}]", + paths, aggregations, startTime, endTime, interval); + sessionDataSetWrapper = sessionPool.executeAggregationQuery( + paths, aggregations, startTime, endTime, interval + ); return sessionDataSetWrapper.getSessionDataSet(); } catch (Exception e) { - log.error("IotDBSession executeAggregationQuery失败: paths:[{}], aggregations:[{}] ,startTime:[{}], endTime:[{}], interval:[{}], error={}", paths, aggregations, startTime, endTime, interval, e.getMessage()); + log.error("IotDBSession executeAggregationQuery失败: paths:[{}], aggregations:[{}] , " + + "startTime:[{}], endTime:[{}], interval:[{}], error={}", + paths, aggregations, startTime, endTime, interval, e.getMessage()); } finally { sessionPool.closeResultSet(sessionDataSetWrapper); } @@ -450,21 +487,26 @@ public class IoTDBServiceImpl implements IoTDBService { * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT * @param startTime 开始时间(包含) * @param endTime 结束时间 - * @param interval - * @param slidingStep + * @param interval 查询的时间间隔(单位为毫秒) + * @param slidingStep 滑动步长(单位为毫秒) * @return SessionDataSet */ @Override - public SessionDataSet executeAggregationQuery(List paths, List aggregations, long startTime, long endTime, long interval, long slidingStep) { + public SessionDataSet executeAggregationQuery(List paths, List aggregations, + long startTime, long endTime, long interval, long slidingStep) { SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); SessionDataSetWrapper sessionDataSetWrapper = null; try { - log.info("iotdb聚合查询:paths:[{}], aggregations:[{}],startTime:[{}], endTime:[{}] ,interval:[{}], slidingStep:[{}]", paths, aggregations, startTime, endTime, interval, slidingStep); - sessionDataSetWrapper = sessionPool.executeAggregationQuery(paths, aggregations, startTime, endTime, interval, slidingStep); + log.info("iotdb聚合查询:paths:[{}], aggregations:[{}],startTime:[{}], endTime:[{}] ,interval:[{}], " + + "slidingStep:[{}]", paths, aggregations, startTime, endTime, interval, slidingStep); + sessionDataSetWrapper = sessionPool.executeAggregationQuery(paths, aggregations, startTime, endTime, + interval, slidingStep); return sessionDataSetWrapper.getSessionDataSet(); } catch (Exception e) { - log.error("IotDBSession executeAggregationQuery失败: paths:[{}], aggregations:[{}] ,startTime:[{}], endTime:[{}], interval:[{}], slidingStep:[{}] ,error={}", paths, aggregations, startTime, endTime, interval, slidingStep, e.getMessage()); + log.error("IotDBSession executeAggregationQuery失败: paths:[{}], aggregations:[{}] , " + + "startTime:[{}], endTime:[{}], interval:[{}], slidingStep:[{}] ,error={}", + paths, aggregations, startTime, endTime, interval, slidingStep, e.getMessage()); } finally { sessionPool.closeResultSet(sessionDataSetWrapper); } @@ -474,8 +516,8 @@ public class IoTDBServiceImpl implements IoTDBService { /** * SQL查询 * - * @param sql - * @return + * @param sql SQL查询语句,支持IotDB的查询语法 + * @return 返回查询结果的 SessionDataSet,如果执行失败则返回 null */ @Override public SessionDataSet executeQueryStatement(String sql) { @@ -497,7 +539,7 @@ public class IoTDBServiceImpl implements IoTDBService { /** * SQL非查询 * - * @param sql + * @param sql SQL查询语句,支持IotDB的查询语法 */ @Override public void executeNonQueryStatement(String sql) { @@ -513,8 +555,9 @@ public class IoTDBServiceImpl implements IoTDBService { /** * 封装处理数据 * - * @param sessionDataSet - * @param titleList + * @param sessionDataSet 包含查询结果的SessionDataSet对象 + * @param titleList 列标题列表,用于映射字段名称 + * @return 返回封装后的数据列表,每个 Map 代表一行数据,键为列名,值为对应的字段值 */ @SneakyThrows @Override @@ -527,14 +570,16 @@ public class IoTDBServiceImpl implements IoTDBService { Map resultMap = new HashMap<>(); RowRecord next = sessionDataSet.next(); List fields = next.getFields(); - String timeString = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(next.getTimestamp()); + String timeString = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss") + .format(next.getTimestamp()); resultMap.put("time", timeString); for (int i = 0; i < fields.size(); i++) { Field field = fields.get(i); if (field.getDataType() == null || field.getObjectValue(field.getDataType()) == null) { resultMap.put(splitString(titleList.get(i)), null); } else { - resultMap.put(splitString(titleList.get(i)), field.getObjectValue(field.getDataType()).toString()); + resultMap.put(splitString(titleList.get(i)), + field.getObjectValue(field.getDataType()).toString()); } } resultList.add(resultMap); @@ -549,12 +594,13 @@ public class IoTDBServiceImpl implements IoTDBService { * @param sessionDataSet 查询返回的结果集 * @param titleList 查询返回的结果集内的字段名 * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) - * @param - * @return + * @return 返回封装后的对象列表,每个对象对应一行结果集数据 + * @param 返回对象的类型 */ @SneakyThrows @Override - public List packagingObjectData(SessionDataSet sessionDataSet, List titleList, Class clazz) { + public List packagingObjectData(SessionDataSet sessionDataSet, List titleList, + Class clazz) { int fetchSize = sessionDataSet.getFetchSize(); List resultList = new ArrayList<>(); titleList.remove("Time"); @@ -563,7 +609,8 @@ public class IoTDBServiceImpl implements IoTDBService { Map resultMap = new HashMap<>(); RowRecord next = sessionDataSet.next(); List fields = next.getFields(); - String timeString = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(next.getTimestamp()); + String timeString = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss") + .format(next.getTimestamp()); resultMap.put("time", timeString); if (titleList.stream().anyMatch(str -> str.contains("."))) { for (int i = 0; i < fields.size(); i++) { @@ -581,7 +628,10 @@ public class IoTDBServiceImpl implements IoTDBService { Field fieldDataType = fields.get(2); if (fieldName.getDataType() != null && fieldName.getObjectValue(fieldName.getDataType()) != null) { String mapKey = fieldName.getObjectValue(fieldName.getDataType()).toString(); - Object mapValue = convertStringToType(fieldValue.getObjectValue(fieldValue.getDataType()).toString(), fieldDataType.getObjectValue(fieldDataType.getDataType()).toString()); + Object mapValue = convertStringToType( + fieldValue.getObjectValue(fieldValue.getDataType()).toString(), + fieldDataType.getObjectValue(fieldDataType.getDataType()).toString() + ); resultMap.put(splitString(mapKey), mapValue); } } @@ -596,7 +646,7 @@ public class IoTDBServiceImpl implements IoTDBService { /** * 分割获取字段名 * - * @param str + * @param str 输入的字符串 * @return 字段名 */ public static String splitString(String str) { @@ -667,8 +717,8 @@ public class IoTDBServiceImpl implements IoTDBService { /** * 根据对象构建MeasurementSchemas * - * @param obj 对象 - * @return + * @param obj 要从中提取字段信息的对象 + * @return 返回一个包含 MeasurementSchema 的列表 */ @Override public List buildMeasurementSchemas(Object obj) { @@ -685,8 +735,8 @@ public class IoTDBServiceImpl implements IoTDBService { /** * 根据对象构建MeasurementSchemaValuesDTO * - * @param obj 对象 - * @return + * @param obj 要从中提取字段信息和对应值的对象 + * @return MeasurementSchemaValuesDTO 对象 */ @SneakyThrows @Override @@ -698,7 +748,8 @@ public class IoTDBServiceImpl implements IoTDBService { List valuesIsNullIndex = new ArrayList<>(); int valueIndex = 0; for (java.lang.reflect.Field field : fields) { - MeasurementSchema measurementSchema = new MeasurementSchema(field.getName(), getTsDataTypeByString(field.getType().getName())); + MeasurementSchema measurementSchema = new MeasurementSchema(field.getName(), + getTsDataTypeByString(field.getType().getName())); schemaList.add(measurementSchema); Object value = field.get(obj); if (value == null) { diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/InsertDataDTO.java b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/dto/InsertDataDTO.java similarity index 97% rename from cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/InsertDataDTO.java rename to cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/dto/InsertDataDTO.java index 91d5808..1560ac6 100644 --- a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/InsertDataDTO.java +++ b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/dto/InsertDataDTO.java @@ -1,4 +1,4 @@ -package com.muyu.data.process.domain; +package com.muyu.data.process.domain.dto; import lombok.AllArgsConstructor; import lombok.Builder; From fedc3c4ea7cf3adef37573866e07ec0dc8b988bf Mon Sep 17 00:00:00 2001 From: LQS <2506203757@qq.com> Date: Sun, 29 Sep 2024 12:10:28 +0800 Subject: [PATCH 21/30] =?UTF-8?q?feat():=E6=B7=BB=E5=8A=A0=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cloud-modules-enterprise-common/pom.xml | 2 +- .../cloud-modules-enterprise-server/pom.xml | 1 + cloud-modules/cloud-modules-protocol-analysis/pom.xml | 3 ++- .../java/com/muyu/analysis/ProtocolAnalysisApplication.java | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/pom.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/pom.xml index a51a034..0935b0a 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/pom.xml +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/pom.xml @@ -24,7 +24,7 @@ com.muyu cloud-common-core - + io.swagger.core.v3 swagger-annotations-jakarta diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml index d817bf8..61d93d4 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/pom.xml @@ -22,6 +22,7 @@ + com.github.yulichang mybatis-plus-join-boot-starter diff --git a/cloud-modules/cloud-modules-protocol-analysis/pom.xml b/cloud-modules/cloud-modules-protocol-analysis/pom.xml index 3666dd4..e6f5c4c 100644 --- a/cloud-modules/cloud-modules-protocol-analysis/pom.xml +++ b/cloud-modules/cloud-modules-protocol-analysis/pom.xml @@ -89,12 +89,13 @@ cloud-modules-enterprise-server 3.6.3 - + com.github.yulichang mybatis-plus-join-boot-starter 1.4.11 + com.muyu cloud-common-core diff --git a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/ProtocolAnalysisApplication.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/ProtocolAnalysisApplication.java index ec75253..8477033 100644 --- a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/ProtocolAnalysisApplication.java +++ b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/ProtocolAnalysisApplication.java @@ -7,7 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; /** * 协议解析启动类 - * 李庆帅 + * */ @EnableCustomConfig @EnableMyFeignClients From 9f01b761823e016950ce598e1ae1f10e631d1a01 Mon Sep 17 00:00:00 2001 From: LQS <2506203757@qq.com> Date: Sun, 29 Sep 2024 12:15:41 +0800 Subject: [PATCH 22/30] =?UTF-8?q?feat():=E7=A7=BB=E9=99=A4=E5=BA=9F?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cloud-modules/cloud-modules-fault/src/main/resources/banner.txt | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 cloud-modules/cloud-modules-fault/src/main/resources/banner.txt diff --git a/cloud-modules/cloud-modules-fault/src/main/resources/banner.txt b/cloud-modules/cloud-modules-fault/src/main/resources/banner.txt deleted file mode 100644 index 0dd5eee..0000000 --- a/cloud-modules/cloud-modules-fault/src/main/resources/banner.txt +++ /dev/null @@ -1,2 +0,0 @@ -Spring Boot Version: ${spring-boot.version} -Spring Application Name: ${spring.application.name} From 6594363a91752fb488e9c845cdf1caf6dc6236d7 Mon Sep 17 00:00:00 2001 From: xinzirun Date: Sun, 29 Sep 2024 16:06:24 +0800 Subject: [PATCH 23/30] =?UTF-8?q?fix():=20=E4=BF=AE=E5=A4=8Dcloud-data-pro?= =?UTF-8?q?cess=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86=E5=BE=AE=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E6=A8=A1=E5=9D=97=20--->=20cloud-event-process?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E5=A4=84=E7=90=86=E5=BE=AE=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pom.xml | 4 ++-- .../event/process/CloudEventProcessApplication.java} | 8 ++++---- .../process/basic/config/IoTDBSessionConfig.java | 2 +- .../event}/process/basic/service/IoTDBService.java | 6 +++--- .../process/basic/service/impl/IoTDBServiceImpl.java | 10 +++++----- .../java/com/muyu/event}/process/domain/DataJSON.java | 2 +- .../com/muyu/event}/process/domain/ResultEntity.java | 4 ++-- .../com/muyu/event}/process/domain/TestDataType.java | 2 +- .../muyu/event}/process/domain/dto/InsertDataDTO.java | 2 +- .../event}/process/domain/dto/IoTDbRecordAble.java | 2 +- .../process/domain/dto/MeasurementSchemaValuesDTO.java | 2 +- .../src/main/resources/banner.txt | 0 .../src/main/resources/bootstrap.yml | 2 +- .../src/main/resources/logback/dev.xml | 2 +- .../src/main/resources/logback/prod.xml | 2 +- .../src/main/resources/logback/test.xml | 2 +- cloud-modules/pom.xml | 2 +- 17 files changed, 27 insertions(+), 27 deletions(-) rename cloud-modules/{cloud-modules-data-process => cloud-modules-event-process}/pom.xml (96%) rename cloud-modules/{cloud-modules-data-process/src/main/java/com/muyu/data/process/CloudDataProcessApplication.java => cloud-modules-event-process/src/main/java/com/muyu/event/process/CloudEventProcessApplication.java} (68%) rename cloud-modules/{cloud-modules-data-process/src/main/java/com/muyu/data => cloud-modules-event-process/src/main/java/com/muyu/event}/process/basic/config/IoTDBSessionConfig.java (98%) rename cloud-modules/{cloud-modules-data-process/src/main/java/com/muyu/data => cloud-modules-event-process/src/main/java/com/muyu/event}/process/basic/service/IoTDBService.java (98%) rename cloud-modules/{cloud-modules-data-process/src/main/java/com/muyu/data => cloud-modules-event-process/src/main/java/com/muyu/event}/process/basic/service/impl/IoTDBServiceImpl.java (99%) rename cloud-modules/{cloud-modules-data-process/src/main/java/com/muyu/data => cloud-modules-event-process/src/main/java/com/muyu/event}/process/domain/DataJSON.java (94%) rename cloud-modules/{cloud-modules-data-process/src/main/java/com/muyu/data => cloud-modules-event-process/src/main/java/com/muyu/event}/process/domain/ResultEntity.java (83%) rename cloud-modules/{cloud-modules-data-process/src/main/java/com/muyu/data => cloud-modules-event-process/src/main/java/com/muyu/event}/process/domain/TestDataType.java (94%) rename cloud-modules/{cloud-modules-data-process/src/main/java/com/muyu/data => cloud-modules-event-process/src/main/java/com/muyu/event}/process/domain/dto/InsertDataDTO.java (97%) rename cloud-modules/{cloud-modules-data-process/src/main/java/com/muyu/data => cloud-modules-event-process/src/main/java/com/muyu/event}/process/domain/dto/IoTDbRecordAble.java (78%) rename cloud-modules/{cloud-modules-data-process/src/main/java/com/muyu/data => cloud-modules-event-process/src/main/java/com/muyu/event}/process/domain/dto/MeasurementSchemaValuesDTO.java (95%) rename cloud-modules/{cloud-modules-data-process => cloud-modules-event-process}/src/main/resources/banner.txt (100%) rename cloud-modules/{cloud-modules-data-process => cloud-modules-event-process}/src/main/resources/bootstrap.yml (94%) rename cloud-modules/{cloud-modules-data-process => cloud-modules-event-process}/src/main/resources/logback/dev.xml (97%) rename cloud-modules/{cloud-modules-data-process => cloud-modules-event-process}/src/main/resources/logback/prod.xml (98%) rename cloud-modules/{cloud-modules-data-process => cloud-modules-event-process}/src/main/resources/logback/test.xml (98%) diff --git a/cloud-modules/cloud-modules-data-process/pom.xml b/cloud-modules/cloud-modules-event-process/pom.xml similarity index 96% rename from cloud-modules/cloud-modules-data-process/pom.xml rename to cloud-modules/cloud-modules-event-process/pom.xml index cb4a354..20a8257 100644 --- a/cloud-modules/cloud-modules-data-process/pom.xml +++ b/cloud-modules/cloud-modules-event-process/pom.xml @@ -9,7 +9,7 @@ 3.6.3 - cloud-modules-data-process + cloud-modules-event-process 17 @@ -18,7 +18,7 @@ - cloud-modules-data-process 数据处理 + cloud-modules-event-process 事件处理 diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/CloudDataProcessApplication.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/CloudEventProcessApplication.java similarity index 68% rename from cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/CloudDataProcessApplication.java rename to cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/CloudEventProcessApplication.java index b5ba238..46b5858 100644 --- a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/CloudDataProcessApplication.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/CloudEventProcessApplication.java @@ -1,4 +1,4 @@ -package com.muyu.data.process; +package com.muyu.event.process; import com.muyu.common.security.annotation.EnableCustomConfig; import com.muyu.common.security.annotation.EnableMyFeignClients; @@ -8,13 +8,13 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @Author: zi run * @Date 2024/9/28 22:31 - * @Description 数据处理微服启动类 + * @Description 事件处理微服启动类 */ @EnableCustomConfig @EnableMyFeignClients @SpringBootApplication -public class CloudDataProcessApplication { +public class CloudEventProcessApplication { public static void main(String[] args) { - SpringApplication.run(CloudDataProcessApplication.class, args); + SpringApplication.run(CloudEventProcessApplication.class, args); } } diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/config/IoTDBSessionConfig.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/config/IoTDBSessionConfig.java similarity index 98% rename from cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/config/IoTDBSessionConfig.java rename to cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/config/IoTDBSessionConfig.java index 3bf7de1..01a498c 100644 --- a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/config/IoTDBSessionConfig.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/config/IoTDBSessionConfig.java @@ -1,4 +1,4 @@ -package com.muyu.data.process.basic.config; +package com.muyu.event.process.basic.config; import lombok.extern.slf4j.Slf4j; import org.apache.iotdb.session.pool.SessionPool; diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/IoTDBService.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/service/IoTDBService.java similarity index 98% rename from cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/IoTDBService.java rename to cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/service/IoTDBService.java index a869c69..5c4ac01 100644 --- a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/IoTDBService.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/service/IoTDBService.java @@ -1,7 +1,7 @@ -package com.muyu.data.process.basic.service; +package com.muyu.event.process.basic.service; -import com.muyu.data.process.domain.dto.IoTDbRecordAble; -import com.muyu.data.process.domain.dto.MeasurementSchemaValuesDTO; +import com.muyu.event.process.domain.dto.IoTDbRecordAble; +import com.muyu.event.process.domain.dto.MeasurementSchemaValuesDTO; import org.apache.iotdb.common.rpc.thrift.TAggregationType; import org.apache.iotdb.isession.SessionDataSet; import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/impl/IoTDBServiceImpl.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/service/impl/IoTDBServiceImpl.java similarity index 99% rename from cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/impl/IoTDBServiceImpl.java rename to cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/service/impl/IoTDBServiceImpl.java index fcbd374..73e67e2 100644 --- a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/impl/IoTDBServiceImpl.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/service/impl/IoTDBServiceImpl.java @@ -1,10 +1,10 @@ -package com.muyu.data.process.basic.service.impl; +package com.muyu.event.process.basic.service.impl; import com.alibaba.fastjson.JSON; -import com.muyu.data.process.basic.config.IoTDBSessionConfig; -import com.muyu.data.process.basic.service.IoTDBService; -import com.muyu.data.process.domain.dto.IoTDbRecordAble; -import com.muyu.data.process.domain.dto.MeasurementSchemaValuesDTO; +import com.muyu.event.process.basic.config.IoTDBSessionConfig; +import com.muyu.event.process.basic.service.IoTDBService; +import com.muyu.event.process.domain.dto.IoTDbRecordAble; +import com.muyu.event.process.domain.dto.MeasurementSchemaValuesDTO; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/DataJSON.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/DataJSON.java similarity index 94% rename from cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/DataJSON.java rename to cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/DataJSON.java index 86c075e..16853f3 100644 --- a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/DataJSON.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/DataJSON.java @@ -1,4 +1,4 @@ -package com.muyu.data.process.domain; +package com.muyu.event.process.domain; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/ResultEntity.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/ResultEntity.java similarity index 83% rename from cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/ResultEntity.java rename to cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/ResultEntity.java index c8326d2..02d7d96 100644 --- a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/ResultEntity.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/ResultEntity.java @@ -1,6 +1,6 @@ -package com.muyu.data.process.domain; +package com.muyu.event.process.domain; -import com.muyu.data.process.domain.dto.IoTDbRecordAble; +import com.muyu.event.process.domain.dto.IoTDbRecordAble; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/TestDataType.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/TestDataType.java similarity index 94% rename from cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/TestDataType.java rename to cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/TestDataType.java index 52d196c..dd75553 100644 --- a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/TestDataType.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/TestDataType.java @@ -1,4 +1,4 @@ -package com.muyu.data.process.domain; +package com.muyu.event.process.domain; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/dto/InsertDataDTO.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/dto/InsertDataDTO.java similarity index 97% rename from cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/dto/InsertDataDTO.java rename to cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/dto/InsertDataDTO.java index 1560ac6..d213bd8 100644 --- a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/dto/InsertDataDTO.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/dto/InsertDataDTO.java @@ -1,4 +1,4 @@ -package com.muyu.data.process.domain.dto; +package com.muyu.event.process.domain.dto; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/dto/IoTDbRecordAble.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/dto/IoTDbRecordAble.java similarity index 78% rename from cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/dto/IoTDbRecordAble.java rename to cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/dto/IoTDbRecordAble.java index 6525e38..957dfb5 100644 --- a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/dto/IoTDbRecordAble.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/dto/IoTDbRecordAble.java @@ -1,4 +1,4 @@ -package com.muyu.data.process.domain.dto; +package com.muyu.event.process.domain.dto; import lombok.Data; diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/dto/MeasurementSchemaValuesDTO.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/dto/MeasurementSchemaValuesDTO.java similarity index 95% rename from cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/dto/MeasurementSchemaValuesDTO.java rename to cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/dto/MeasurementSchemaValuesDTO.java index 3e025dc..8681f19 100644 --- a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/domain/dto/MeasurementSchemaValuesDTO.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/dto/MeasurementSchemaValuesDTO.java @@ -1,4 +1,4 @@ -package com.muyu.data.process.domain.dto; +package com.muyu.event.process.domain.dto; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/cloud-modules/cloud-modules-data-process/src/main/resources/banner.txt b/cloud-modules/cloud-modules-event-process/src/main/resources/banner.txt similarity index 100% rename from cloud-modules/cloud-modules-data-process/src/main/resources/banner.txt rename to cloud-modules/cloud-modules-event-process/src/main/resources/banner.txt diff --git a/cloud-modules/cloud-modules-data-process/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-event-process/src/main/resources/bootstrap.yml similarity index 94% rename from cloud-modules/cloud-modules-data-process/src/main/resources/bootstrap.yml rename to cloud-modules/cloud-modules-event-process/src/main/resources/bootstrap.yml index 39a6819..47bf553 100644 --- a/cloud-modules/cloud-modules-data-process/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-event-process/src/main/resources/bootstrap.yml @@ -11,7 +11,7 @@ nacos: spring: application: # 应用名称 - name: cloud-data-process + name: cloud-event-process profiles: # 环境配置 active: dev diff --git a/cloud-modules/cloud-modules-data-process/src/main/resources/logback/dev.xml b/cloud-modules/cloud-modules-event-process/src/main/resources/logback/dev.xml similarity index 97% rename from cloud-modules/cloud-modules-data-process/src/main/resources/logback/dev.xml rename to cloud-modules/cloud-modules-event-process/src/main/resources/logback/dev.xml index 6a776b3..1e47ab3 100644 --- a/cloud-modules/cloud-modules-data-process/src/main/resources/logback/dev.xml +++ b/cloud-modules/cloud-modules-event-process/src/main/resources/logback/dev.xml @@ -1,7 +1,7 @@ - + diff --git a/cloud-modules/cloud-modules-data-process/src/main/resources/logback/prod.xml b/cloud-modules/cloud-modules-event-process/src/main/resources/logback/prod.xml similarity index 98% rename from cloud-modules/cloud-modules-data-process/src/main/resources/logback/prod.xml rename to cloud-modules/cloud-modules-event-process/src/main/resources/logback/prod.xml index 839788c..d59fdeb 100644 --- a/cloud-modules/cloud-modules-data-process/src/main/resources/logback/prod.xml +++ b/cloud-modules/cloud-modules-event-process/src/main/resources/logback/prod.xml @@ -1,7 +1,7 @@ - + diff --git a/cloud-modules/cloud-modules-data-process/src/main/resources/logback/test.xml b/cloud-modules/cloud-modules-event-process/src/main/resources/logback/test.xml similarity index 98% rename from cloud-modules/cloud-modules-data-process/src/main/resources/logback/test.xml rename to cloud-modules/cloud-modules-event-process/src/main/resources/logback/test.xml index 1ad1029..cb4420b 100644 --- a/cloud-modules/cloud-modules-data-process/src/main/resources/logback/test.xml +++ b/cloud-modules/cloud-modules-event-process/src/main/resources/logback/test.xml @@ -1,7 +1,7 @@ - + diff --git a/cloud-modules/pom.xml b/cloud-modules/pom.xml index c104eeb..d877d6c 100644 --- a/cloud-modules/pom.xml +++ b/cloud-modules/pom.xml @@ -14,7 +14,7 @@ cloud-modules-file cloud-modules-enterprise cloud-weixin-mp - cloud-modules-data-process + cloud-modules-event-process cloud-modules From 7e02675028dc7cba241514641ac221a09160e16a Mon Sep 17 00:00:00 2001 From: LQS <2506203757@qq.com> Date: Sun, 29 Sep 2024 17:32:46 +0800 Subject: [PATCH 24/30] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9Ekafka=E3=80=81redi?= =?UTF-8?q?s=E5=B8=B8=E9=87=8F=E7=B1=BB):=E5=AE=8C=E5=96=84MQTT=E6=8E=A5?= =?UTF-8?q?=E6=94=B6=E4=B9=8B=E5=90=8E=E8=A7=A3=E6=9E=90=E6=8A=A5=E6=96=87?= =?UTF-8?q?=E4=BC=A0=E9=80=92kafka?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JavaSample-tcp1061513671883/.lck | 0 .../common/core/constant/KafkaConstants.java | 19 ++++ .../common/core/constant/RedisConstants.java | 16 +++ cloud-common/cloud-common-kafka/pom.xml | 4 + .../car/MessageValueController.java | 2 +- .../cloud-modules-protocol-analysis/pom.xml | 5 + .../muyu/analysis/parsing/MQTT/DemoMQTT.java | 61 ----------- .../ParsingMQTT.java} | 101 ++++++++++-------- .../parsing/controller/ParsingController.java | 87 --------------- .../parsing/mapper/ParsingMapper.java | 17 --- .../parsing/remote/RemoteClientService.java | 1 + .../parsing/service/ParsingService.java | 24 ----- .../src/main/resources/bootstrap.yml | 2 + 13 files changed, 104 insertions(+), 235 deletions(-) create mode 100644 JavaSample-tcp1061513671883/.lck create mode 100644 cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/KafkaConstants.java create mode 100644 cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/RedisConstants.java delete mode 100644 cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/DemoMQTT.java rename cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/{service/impl/ParsingServiceImpl.java => MQTT/ParsingMQTT.java} (70%) delete mode 100644 cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/controller/ParsingController.java delete mode 100644 cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/mapper/ParsingMapper.java delete mode 100644 cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/ParsingService.java diff --git a/JavaSample-tcp1061513671883/.lck b/JavaSample-tcp1061513671883/.lck new file mode 100644 index 0000000..e69de29 diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/KafkaConstants.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/KafkaConstants.java new file mode 100644 index 0000000..c7980b4 --- /dev/null +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/KafkaConstants.java @@ -0,0 +1,19 @@ +package com.muyu.common.core.constant; + +/** + * kafka常量信息 + * @Author:李庆帅 + * @Package:com.muyu.common.core.constant + * @Project:cloud-server + * @name:KafkaConstants + * @Date:2024/9/29 16:41 + */ +public class KafkaConstants { + + /** + * 协议解析报文传递数据(队列名称) + */ + public final static String MESSAGE_PARSING = "MessageParsing"; + + +} diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/RedisConstants.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/RedisConstants.java new file mode 100644 index 0000000..84e6fa6 --- /dev/null +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/RedisConstants.java @@ -0,0 +1,16 @@ +package com.muyu.common.core.constant; + +/** + * redis常量信息 + * @Author:李庆帅 + * @Package:com.muyu.common.core.constant + * @Project:cloud-server + * @name:RedisConstants + * @Date:2024/9/29 17:28 + */ +public class RedisConstants { + /** + * redisKey(协议解析报文传递) + */ + public final static String MESSAGE_TEMPLATE = "messageTemplate"; +} diff --git a/cloud-common/cloud-common-kafka/pom.xml b/cloud-common/cloud-common-kafka/pom.xml index 16ec61d..81d6907 100644 --- a/cloud-common/cloud-common-kafka/pom.xml +++ b/cloud-common/cloud-common-kafka/pom.xml @@ -11,6 +11,10 @@ cloud-common-kafka + + cloud-common-kafka + + 17 17 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/MessageValueController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/MessageValueController.java index 9883e2e..e739722 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/MessageValueController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/MessageValueController.java @@ -107,7 +107,7 @@ public class MessageValueController extends BaseController * @param templateId 请求对象 * @return 返回结果 */ - @GetMapping("/messageValue/findByTemplateId/{templateId}") + @GetMapping("/findByTemplateId/{templateId}") @Operation(summary = "根据报文模版id查询报文数据", description = "根据报文模版id查询报文数据") public Result> findByTemplateId(@PathVariable("templateId") Long templateId){ List list = messageValueService.findByTemplateId(templateId); diff --git a/cloud-modules/cloud-modules-protocol-analysis/pom.xml b/cloud-modules/cloud-modules-protocol-analysis/pom.xml index e6f5c4c..c6ad48f 100644 --- a/cloud-modules/cloud-modules-protocol-analysis/pom.xml +++ b/cloud-modules/cloud-modules-protocol-analysis/pom.xml @@ -100,6 +100,11 @@ com.muyu cloud-common-core + + + com.muyu + cloud-common-kafka + diff --git a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/DemoMQTT.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/DemoMQTT.java deleted file mode 100644 index 2ba02a7..0000000 --- a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/DemoMQTT.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.muyu.analysis.parsing.MQTT; - -import com.muyu.analysis.parsing.controller.ParsingController; -import org.eclipse.paho.client.mqttv3.*; - -/** - * 测试MQTT - * @ClassName demo - * @Description 描述 - * @Author 李庆帅 - * @Date 2024/9/28 - */ -public class DemoMQTT { - - public void main(String[] args) { - - String topic = "vehicle"; - String content = "Message from MqttPublishSample"; - int qos = 2; - String broker = "tcp://106.15.136.7:1883"; - String clientId = "JavaSample"; - - - - try { - // 第三个参数为空,默认持久化策略 - MqttClient sampleClient = new MqttClient(broker, clientId); - MqttConnectOptions connOpts = new MqttConnectOptions(); - connOpts.setCleanSession(true); - System.out.println("Connecting to broker: "+broker); - sampleClient.connect(connOpts); - sampleClient.subscribe(topic,0); - sampleClient.setCallback(new MqttCallback() { - // 连接丢失 - @Override - public void connectionLost(Throwable throwable) { - - } - // 连接成功 - @Override - public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { - System.out.println(new String(mqttMessage.getPayload())); - } - // 接收信息 - @Override - public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { - - } - }); - } catch(MqttException me) { - System.out.println("reason "+me.getReasonCode()); - System.out.println("msg "+me.getMessage()); - System.out.println("loc "+me.getLocalizedMessage()); - System.out.println("cause "+me.getCause()); - System.out.println("excep "+me); - me.printStackTrace(); - } - } - - -} diff --git a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/impl/ParsingServiceImpl.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/ParsingMQTT.java similarity index 70% rename from cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/impl/ParsingServiceImpl.java rename to cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/ParsingMQTT.java index 909319a..09cffec 100644 --- a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/impl/ParsingServiceImpl.java +++ b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/ParsingMQTT.java @@ -1,78 +1,86 @@ -package com.muyu.analysis.parsing.service.impl; +package com.muyu.analysis.parsing.MQTT; +import com.muyu.analysis.parsing.remote.RemoteClientService; +import com.muyu.common.core.constant.KafkaConstants; +import com.muyu.common.core.constant.RedisConstants; +import com.muyu.common.core.domain.Result; +import com.muyu.enterprise.domain.resp.car.MessageValueListResp; +import jakarta.annotation.PostConstruct; +import jakarta.annotation.Resource; import cn.hutool.json.JSONObject; import com.alibaba.fastjson.JSON; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.muyu.analysis.parsing.controller.ParsingController; -import com.muyu.analysis.parsing.remote.RemoteClientService; -import com.muyu.analysis.parsing.mapper.ParsingMapper; -import com.muyu.analysis.parsing.service.ParsingService; -import com.muyu.common.core.domain.Result; -import com.muyu.enterprise.domain.car.MessageValue; -import com.muyu.enterprise.domain.resp.car.MessageValueListResp; import lombok.extern.log4j.Log4j2; +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.clients.producer.ProducerRecord; import org.eclipse.paho.client.mqttv3.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.stereotype.Service; +import org.springframework.stereotype.Component; -import javax.annotation.Resource; import java.util.List; /** - * 协议解析实现层 + * 协议解析处理数据发送传送到队列 * @Author:李庆帅 - * @Package:com.muyu.analysis.parsing.service.impl + * @Package:com.muyu.analysis.parsing.MQTT * @Project:cloud-server - * @name:ParsingServiceImpl - * @Date:2024/9/28 20:53 + * @name:ParsingMQTT + * @Date:2024/9/29 16:08 */ @Log4j2 -@Service -public class ParsingServiceImpl extends ServiceImpl - implements ParsingService -{ +@Component +public class ParsingMQTT { + @Resource private RedisTemplate redisTemplate; @Autowired - private RemoteClientService remoteServiceClientService; - - - - @Override - public void mqtt() { - String topic = "vehicle"; - String content = "Message from MqttPublishSample"; - int qos = 2; - String broker = "tcp://106.15.136.7:1883"; - String clientId = "JavaSample"; + private RemoteClientService remoteServiceClient; + @Resource + private KafkaProducer kafkaProducer; + /** + * 协议解析 + */ + @PostConstruct + public void mqttClient() { + String topic = "vehicle"; + String broker = "tcp://106.15.136.7:1883"; + String clientId = "JavaSample"; try { // 第三个参数为空,默认持久化策略 MqttClient sampleClient = new MqttClient(broker, clientId); MqttConnectOptions connOpts = new MqttConnectOptions(); connOpts.setCleanSession(true); - System.out.println("Connecting to broker: "+broker); + System.out.println("Connecting to broker: " + broker); sampleClient.connect(connOpts); - sampleClient.subscribe(topic,0); + sampleClient.subscribe(topic, 0); sampleClient.setCallback(new MqttCallback() { // 连接丢失 @Override public void connectionLost(Throwable throwable) { } + // 连接成功 @Override public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { System.out.println(new String(mqttMessage.getPayload())); - String mqtt= new String(mqttMessage.getPayload()); - JSONObject jsonObject = this.protocolParsing(mqtt); - System.out.println("转换后:"+jsonObject); + JSONObject entries = this.protocolParsing(new String(mqttMessage.getPayload())); + + ProducerRecord producerRecord = new ProducerRecord<>(KafkaConstants.MESSAGE_PARSING, + entries.toString() ); + kafkaProducer.send(producerRecord); + System.out.println(entries); } + /** + * 协议解析 + * @param messageStr + * @return + */ public JSONObject protocolParsing(String messageStr) { //根据空格切割数据 String[] hexArray = messageStr.split(" "); @@ -86,12 +94,12 @@ public class ParsingServiceImpl extends ServiceImpl String vehicleVin = result.substring(1, 18); log.info("车辆VIN码: " + vehicleVin); //根据车辆VIN码查询报文模板ID - Result byVehicleVin = remoteServiceClientService.findByVehicleVin(vehicleVin); + Result byVehicleVin = remoteServiceClient.findByVehicleVin(vehicleVin); Long templateId = byVehicleVin.getData(); List templateList; //从redis缓存中获取报文模板数据 try { - String redisKey = "messageTemplate" + templateId; + String redisKey = RedisConstants.MESSAGE_TEMPLATE + templateId; if (redisTemplate.hasKey(redisKey)) { List list = redisTemplate.opsForList().range(redisKey, 0, -1); templateList = list.stream() @@ -99,7 +107,7 @@ public class ParsingServiceImpl extends ServiceImpl .toList(); log.info("Redis缓存查询成功"); } else { - Result> byTemplateId = remoteServiceClientService.findByTemplateId(templateId); + Result> byTemplateId = remoteServiceClient.findByTemplateId(templateId); templateList = byTemplateId.getData(); templateList.forEach( listResp -> @@ -128,24 +136,27 @@ public class ParsingServiceImpl extends ServiceImpl //存入数据 jsonObject.put(messageValue.getMessageLabel(), value); } - System.out.println("发发呆沙发斯蒂芬萨达:"+jsonObject.toString()); return jsonObject; } + // 接收信息 @Override public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { } }); - } catch(MqttException me) { - System.out.println("reason "+me.getReasonCode()); - System.out.println("msg "+me.getMessage()); - System.out.println("loc "+me.getLocalizedMessage()); - System.out.println("cause "+me.getCause()); - System.out.println("excep "+me); + } catch (MqttException me) { + System.out.println("reason " + me.getReasonCode()); + System.out.println("msg " + me.getMessage()); + System.out.println("loc " + me.getLocalizedMessage()); + System.out.println("cause " + me.getCause()); + System.out.println("excep " + me); me.printStackTrace(); } } + + + } diff --git a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/controller/ParsingController.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/controller/ParsingController.java deleted file mode 100644 index 6d89015..0000000 --- a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/controller/ParsingController.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.muyu.analysis.parsing.controller; - -import cn.hutool.json.JSONObject; -import com.muyu.analysis.parsing.MQTT.DemoMQTT; -import com.muyu.analysis.parsing.service.ParsingService; -import org.eclipse.paho.client.mqttv3.*; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -/** - * 协议解析控制层 - * @Author:李庆帅 - * @Package:com.muyu.analysis.parsing.controller - * @Project:cloud-server - * @name:ParsingController - * @Date:2024/9/28 20:36 - */ -@RestController -@RequestMapping("/parsing") -public class ParsingController -{ - private static final String topic = "vehicle"; - private static final String content = "Message from MqttPublishSample"; - private static final int qos = 2; - private static final String broker = "tcp://106.15.136.7:1883"; - private static final String clientId = "JavaSample"; - - @Autowired - private ParsingService parsingService; - -// /** -// * 协议解析 -// * @param messageStr -// * @return -// */ -// @PostMapping("/protocolParsing") -// public JSONObject protocolParsing(@RequestParam("messageStr") String messageStr) { -// try { -// // 第三个参数为空,默认持久化策略 -// MqttClient sampleClient = new MqttClient(broker, clientId); -// MqttConnectOptions connOpts = new MqttConnectOptions(); -// connOpts.setCleanSession(true); -// System.out.println("Connecting to broker: "+broker); -// sampleClient.connect(connOpts); -// sampleClient.subscribe(topic,0); -// sampleClient.setCallback(new MqttCallback() { -// // 连接丢失 -// @Override -// public void connectionLost(Throwable throwable) { -// -// } -// // 连接成功 -// @Override -// public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { -// System.out.println(new String(mqttMessage.getPayload())); -// } -// // 接收信息 -// @Override -// public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { -// -// } -// }); -// } catch(MqttException me) { -// System.out.println("reason "+me.getReasonCode()); -// System.out.println("msg "+me.getMessage()); -// System.out.println("loc "+me.getLocalizedMessage()); -// System.out.println("cause "+me.getCause()); -// System.out.println("excep "+me); -// me.printStackTrace(); -// } -// JSONObject messageValue = parsingService.protocolParsing(messageStr); -// return messageValue; -// } - - /** - * 协议解析 - */ - @PostMapping("/mqttClient") - public void mqttClient() { - parsingService.mqtt(); - } - - -} diff --git a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/mapper/ParsingMapper.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/mapper/ParsingMapper.java deleted file mode 100644 index 913cd90..0000000 --- a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/mapper/ParsingMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.muyu.analysis.parsing.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.muyu.enterprise.domain.car.MessageValue; -import org.apache.ibatis.annotations.Mapper; - -/** - * 协议解析持久层 - * @Author:李庆帅 - * @Package:com.muyu.analysis.parsing.mapper - * @Project:cloud-server - * @name:ParsingMapper - * @Date:2024/9/28 20:54 - */ -@Mapper -public interface ParsingMapper extends BaseMapper { -} diff --git a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/RemoteClientService.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/RemoteClientService.java index 43eae53..bfaebb8 100644 --- a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/RemoteClientService.java +++ b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/remote/RemoteClientService.java @@ -4,6 +4,7 @@ import com.muyu.analysis.parsing.remote.factory.RemoteClientServiceFactory; import com.muyu.common.core.constant.ServiceNameConstants; import com.muyu.common.core.domain.Result; import com.muyu.enterprise.domain.resp.car.MessageValueListResp; +import io.swagger.v3.oas.annotations.Operation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; diff --git a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/ParsingService.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/ParsingService.java deleted file mode 100644 index 9885754..0000000 --- a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/service/ParsingService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.muyu.analysis.parsing.service; - -import cn.hutool.json.JSONObject; -import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.enterprise.domain.car.MessageValue; - -/** - * 协议解析业务层 - * @Author:李庆帅 - * @Package:com.muyu.analysis.parsing.service - * @Project:cloud-server - * @name:ParsingService - * @Date:2024/9/28 20:50 - */ -public interface ParsingService extends IService -{ - - - /** - * 协议解析 - * @return - */ - void mqtt(); -} diff --git a/cloud-modules/cloud-modules-protocol-analysis/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-protocol-analysis/src/main/resources/bootstrap.yml index 02ebf66..e6feb7f 100644 --- a/cloud-modules/cloud-modules-protocol-analysis/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-protocol-analysis/src/main/resources/bootstrap.yml @@ -44,3 +44,5 @@ spring: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} # 系统环境Config共享配置 - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + # kafka共享配置 + - application-kafka-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} From 514c94b398607d235062358819b1727839d85544 Mon Sep 17 00:00:00 2001 From: LQS <2506203757@qq.com> Date: Sun, 29 Sep 2024 17:45:01 +0800 Subject: [PATCH 25/30] =?UTF-8?q?feat():=E4=BF=AE=E6=94=B9=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=89=93=E5=8D=B0=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/constant/RedisConstants.java | 1 + .../muyu/analysis/parsing/MQTT/ParsingMQTT.java | 17 ++++++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/RedisConstants.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/RedisConstants.java index 84e6fa6..f0e7487 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/RedisConstants.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/RedisConstants.java @@ -9,6 +9,7 @@ package com.muyu.common.core.constant; * @Date:2024/9/29 17:28 */ public class RedisConstants { + /** * redisKey(协议解析报文传递) */ diff --git a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/ParsingMQTT.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/ParsingMQTT.java index 09cffec..dc0347a 100644 --- a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/ParsingMQTT.java +++ b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/ParsingMQTT.java @@ -73,7 +73,8 @@ public class ParsingMQTT { ProducerRecord producerRecord = new ProducerRecord<>(KafkaConstants.MESSAGE_PARSING, entries.toString() ); kafkaProducer.send(producerRecord); - System.out.println(entries); + log.info("解析之后的数据"+entries); + } /** @@ -115,13 +116,15 @@ public class ParsingMQTT { redisKey, JSON.toJSONString(listResp) ) ); - log.info("数据库查询成功"); + log.info("数据库查询成功:"+byTemplateId); } } catch (Exception e) { + log.info("获取报文模板失败"); throw new RuntimeException("获取报文模板失败"); } //判断报文模板列表不为空 if (templateList.isEmpty()) { + log.info("报文模版为空"); throw new RuntimeException("报文模版为空"); } //存储报文模版解析后的数据 @@ -146,11 +149,11 @@ public class ParsingMQTT { } }); } catch (MqttException me) { - System.out.println("reason " + me.getReasonCode()); - System.out.println("msg " + me.getMessage()); - System.out.println("loc " + me.getLocalizedMessage()); - System.out.println("cause " + me.getCause()); - System.out.println("excep " + me); + log.info("reason " + me.getReasonCode()); + log.info("msg " + me.getMessage()); + log.info("loc " + me.getLocalizedMessage()); + log.info("cause " + me.getCause()); + log.info("excep " + me); me.printStackTrace(); } } From 940e41b297f982a50bafa197c0e242904836d245 Mon Sep 17 00:00:00 2001 From: LQS <2506203757@qq.com> Date: Sun, 29 Sep 2024 18:04:46 +0800 Subject: [PATCH 26/30] =?UTF-8?q?fix():=E4=BF=AE=E5=A4=8D=E4=B8=8Edev.anal?= =?UTF-8?q?ysis=E5=90=88=E5=B9=B6=E6=8A=A5=E9=94=99=EF=BC=88Move=20or=20co?= =?UTF-8?q?mmit=20them=20before=20Merge=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JavaSample-tcp1061513671883/.lck | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 JavaSample-tcp1061513671883/.lck diff --git a/JavaSample-tcp1061513671883/.lck b/JavaSample-tcp1061513671883/.lck new file mode 100644 index 0000000..e69de29 From 7100bf71bfcd03208d97a5d4d53b8dc7d9ab1cbf Mon Sep 17 00:00:00 2001 From: xinzirun Date: Mon, 30 Sep 2024 00:52:20 +0800 Subject: [PATCH 27/30] =?UTF-8?q?feat():=20=E6=B7=BB=E5=8A=A0=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E5=A4=84=E7=90=86=E4=B8=9A=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cloud-modules-event-process/pom.xml | 12 ++- .../muyu/event/process/basic/CustomEvent.java | 37 ++++++++ .../event/process/basic/EventListener.java | 18 ++++ .../event/process/basic/EventPublisher.java | 39 ++++++++ .../process/config/EventListenerConfig.java | 19 ++++ .../event/process/consumer/TestConsumer.java | 52 +++++++++++ .../process/consumer/VehicleConsumer.java | 82 +++++++++++++++++ .../controller/TestEventController.java | 88 +++++++++++++++++++ .../basic/config/IoTDBSessionConfig.java | 2 +- .../basic/service/IService.java} | 10 +-- .../basic/service/impl/ServiceImpl.java} | 20 ++--- .../process/{ => iotdb}/domain/DataJSON.java | 2 +- .../{ => iotdb}/domain/ResultEntity.java | 4 +- .../{ => iotdb}/domain/TestDataType.java | 2 +- .../{ => iotdb}/domain/dto/InsertDataDTO.java | 2 +- .../domain/dto/IoTDbRecordAble.java | 2 +- .../dto/MeasurementSchemaValuesDTO.java | 2 +- .../process/iotdb/service/IoTDBService.java | 11 +++ .../iotdb/service/TestIoTDBService.java | 20 +++++ .../iotdb/service/impl/IoTDBServiceImpl.java | 14 +++ .../service/impl/TestIoTDBServiceImpl.java | 33 +++++++ .../process/listener/AddDatabaseListener.java | 43 +++++++++ .../src/main/resources/bootstrap.yml | 4 +- 23 files changed, 491 insertions(+), 27 deletions(-) create mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/CustomEvent.java create mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/EventListener.java create mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/EventPublisher.java create mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/config/EventListenerConfig.java create mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/TestConsumer.java create mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/VehicleConsumer.java create mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/controller/TestEventController.java rename cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/{ => iotdb}/basic/config/IoTDBSessionConfig.java (97%) rename cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/{basic/service/IoTDBService.java => iotdb/basic/service/IService.java} (97%) rename cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/{basic/service/impl/IoTDBServiceImpl.java => iotdb/basic/service/impl/ServiceImpl.java} (98%) rename cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/{ => iotdb}/domain/DataJSON.java (93%) rename cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/{ => iotdb}/domain/ResultEntity.java (81%) rename cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/{ => iotdb}/domain/TestDataType.java (93%) rename cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/{ => iotdb}/domain/dto/InsertDataDTO.java (97%) rename cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/{ => iotdb}/domain/dto/IoTDbRecordAble.java (75%) rename cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/{ => iotdb}/domain/dto/MeasurementSchemaValuesDTO.java (94%) create mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/service/IoTDBService.java create mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/service/TestIoTDBService.java create mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/service/impl/IoTDBServiceImpl.java create mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/service/impl/TestIoTDBServiceImpl.java create mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/listener/AddDatabaseListener.java diff --git a/cloud-modules/cloud-modules-event-process/pom.xml b/cloud-modules/cloud-modules-event-process/pom.xml index 20a8257..0c734d7 100644 --- a/cloud-modules/cloud-modules-event-process/pom.xml +++ b/cloud-modules/cloud-modules-event-process/pom.xml @@ -52,6 +52,12 @@ mysql-connector-j + + + org.apache.iotdb + iotdb-session + + com.muyu @@ -82,10 +88,10 @@ cloud-common-core - + - org.apache.iotdb - iotdb-session + com.muyu + cloud-common-kafka \ No newline at end of file diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/CustomEvent.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/CustomEvent.java new file mode 100644 index 0000000..2b80585 --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/CustomEvent.java @@ -0,0 +1,37 @@ +package com.muyu.event.process.basic; + +import com.alibaba.fastjson2.JSONObject; +import org.springframework.context.ApplicationEvent; + +/** + * @Author: zi run + * @Date 2024/9/29 21:19 + * @Description 自定义事件 + */ +public class CustomEvent extends ApplicationEvent { + + /** + * 存储与事件相关联的数据 + */ + private final JSONObject data; + + /** + * 创建一个新的自定义事件 + * + * @param source 事件源,表示触发此事件的对象 + * @param data 事件携带的数据,以JSON格式存储 + */ + public CustomEvent(Object source, JSONObject data) { + super(source); + this.data = data; + } + + /** + * 获取与此事件相关联的数据。 + * + * @return 包含事件数据的JSONObject + */ + public JSONObject getData() { + return data; + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/EventListener.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/EventListener.java new file mode 100644 index 0000000..32115a6 --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/EventListener.java @@ -0,0 +1,18 @@ +package com.muyu.event.process.basic; + +import org.springframework.context.ApplicationListener; + +/** + * @Author: zi run + * @Date 2024/9/29 21:29 + * @Description 事件监听基准 + */ +public interface EventListener extends ApplicationListener { + + /** + * 处理接收到的自定义事件。 + * + * @param event 已发布的自定义事件实例,包含事件的源和相关数据 + */ + void onEvent(CustomEvent event); +} diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/EventPublisher.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/EventPublisher.java new file mode 100644 index 0000000..c23acf5 --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/EventPublisher.java @@ -0,0 +1,39 @@ +package com.muyu.event.process.basic; + +import com.alibaba.fastjson2.JSONObject; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.context.ApplicationEventPublisherAware; +import org.springframework.stereotype.Component; + +/** + * @Author: zi run + * @Date 2024/9/29 22:01 + * @Description 事件发布者 + */ +@Component +public class EventPublisher implements ApplicationEventPublisherAware { + + /** + * 应用程序事件发布者,用于发布事件 + */ + private ApplicationEventPublisher applicationEventPublisher; + + /** + * 设置应用程序事件发布者。 + * + * @param applicationEventPublisher 应用程序事件发布者实例 + */ + @Override + public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) { + this.applicationEventPublisher = applicationEventPublisher; + } + + /** + * 发布自定义事件。 + * + * @param messages 事件携带的数据,以JSON格式传递 + */ + public void publishEvent(JSONObject messages) { + applicationEventPublisher.publishEvent(new CustomEvent(this, messages)); + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/config/EventListenerConfig.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/config/EventListenerConfig.java new file mode 100644 index 0000000..7b7913f --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/config/EventListenerConfig.java @@ -0,0 +1,19 @@ +package com.muyu.event.process.config; + +import com.muyu.event.process.listener.AddDatabaseListener; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @Author: zi run + * @Date 2024/9/29 21:29 + * @Description 事件监听配置 + */ +@Configuration +public class EventListenerConfig { + + @Bean + public AddDatabaseListener addDatabaseListener() { + return new AddDatabaseListener(); + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/TestConsumer.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/TestConsumer.java new file mode 100644 index 0000000..cd7dbe2 --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/TestConsumer.java @@ -0,0 +1,52 @@ +package com.muyu.event.process.consumer; + +import cn.hutool.core.thread.ThreadUtil; +import com.alibaba.nacos.shaded.com.google.common.collect.Lists; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.kafka.clients.consumer.ConsumerRecords; +import org.apache.kafka.clients.consumer.KafkaConsumer; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.stereotype.Component; + +import java.time.Duration; +import java.util.Collection; + +/** + * @Author: zi run + * @Date 2024/9/29 16:53 + * @Description 测试消费者 + */ +@Slf4j +//@Component +@RequiredArgsConstructor +public class TestConsumer implements InitializingBean { + + /** + * kafka消费者 + */ + private final KafkaConsumer kafkaConsumer; + + /** + * kafka主题名称 + */ + private static final String topicName = "test-topic"; + + + @Override + public void afterPropertiesSet() throws Exception { + new Thread(() -> { + log.info("启动线程监听Topic: {}", topicName); + ThreadUtil.sleep(1000); + Collection topics = Lists.newArrayList(topicName); + kafkaConsumer.subscribe(topics); + while (true) { + ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); + consumerRecords.forEach(record -> { + String value = record.value(); + log.info("从Kafka中消费的原始数据: {}", value); + }); + } + }).start(); + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/VehicleConsumer.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/VehicleConsumer.java new file mode 100644 index 0000000..46aaeea --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/VehicleConsumer.java @@ -0,0 +1,82 @@ +package com.muyu.event.process.consumer; + +import cn.hutool.core.thread.ThreadUtil; +import com.alibaba.fastjson2.JSONObject; +import com.alibaba.nacos.shaded.com.google.common.collect.Lists; +import com.muyu.event.process.basic.EventPublisher; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.kafka.clients.consumer.ConsumerRecords; +import org.apache.kafka.clients.consumer.KafkaConsumer; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; + +import java.time.Duration; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author: zi run + * @Date 2024/9/29 23:23 + * @Description 车辆消费者 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class VehicleConsumer implements InitializingBean { + + /** + * kafka消费者 + */ + private final KafkaConsumer kafkaConsumer; + + /** + * 事件发布者 + */ + private final EventPublisher eventPublisher; + + /** + * 协议解析报文传递数据(队列名称) + */ + public final static String MESSAGE_PARSING = "test-topic"; + +// @Override +// public void run(ApplicationArguments args) throws Exception { +// log.info("开始监听kafka-topic:{}", MESSAGE_PARSING); +// List topicList = Collections.singletonList(MESSAGE_PARSING); +// kafkaConsumer.subscribe(topicList); +// +// while (true) { +// ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(100)); +// consumerRecords.forEach(record -> { +// String value = record.value(); +// log.info("接收到车辆报文数据,内容:{}", value); +// eventPublisher.publishEvent(JSONObject.parseObject(value)); +// }); +// } +// } + + @Async + @Override + public void afterPropertiesSet() throws Exception { + new Thread(() -> { + log.info("启动线程监听Topic: {}", MESSAGE_PARSING); + ThreadUtil.sleep(100); + Collection topics = Lists.newArrayList(MESSAGE_PARSING); + kafkaConsumer.subscribe(topics); + while (true) { + ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(100)); + consumerRecords.forEach(consumerRecord -> { + String message = consumerRecord.value(); + log.info("接收到车辆报文数据,内容:{}", message); + eventPublisher.publishEvent(JSONObject.parseObject(message)); + }); + } + }).start(); + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/controller/TestEventController.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/controller/TestEventController.java new file mode 100644 index 0000000..c32feb1 --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/controller/TestEventController.java @@ -0,0 +1,88 @@ +package com.muyu.event.process.controller; + +import com.alibaba.fastjson2.JSONObject; +import com.muyu.common.core.constant.Constants; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.event.process.iotdb.service.TestIoTDBService; +import lombok.RequiredArgsConstructor; +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * @Author: zi run + * @Date 2024/9/29 16:24 + * @Description 测试事件控制层 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping(value = "/test-event") +public class TestEventController extends BaseController { + + /** + * kafka生产者 + */ + private final KafkaProducer kafkaProducer; + + /** + * kafka主题名称 + */ + private static final String kafkaTopicName = "test-topic"; + + /** + * 测试IoTDB业务层 + */ + private final TestIoTDBService testIoTDBService; + + /** + * 发送Kafka测试消息 + * + * @return 响应结果 + */ + @GetMapping(value = "/sendKafka") + public Result senKafka() { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("id",1); + jsonObject.put("name","张三"); + jsonObject.put("age",18); + jsonObject.put("sex","男"); + ProducerRecord producerRecord = new ProducerRecord<>(kafkaTopicName, jsonObject.toJSONString()); + kafkaProducer.send(producerRecord); + return Result.success(null, Constants.SUCCESS_MESSAGE); + } + + /** + * 查询IoTDB数据列表 + * @return 响应结果 + */ + @GetMapping(value = "/list") + public Result>> list() { + return Result.success(testIoTDBService.list(), Constants.SUCCESS_MESSAGE); + } + + /** + * 向IoTDB添加数据 + * + * @return 响应结果 + */ + @PostMapping(value = "/save") + public Result save() { + String deviceId = "root.test"; + ArrayList keyList = new ArrayList<>(); + ArrayList valueList = new ArrayList<>(); + keyList.add("car_vin"); + keyList.add("car_name"); + valueList.add("VIN123456"); + valueList.add("宝马"); + testIoTDBService.insertStringRecord(deviceId, System.currentTimeMillis(), keyList, valueList); + return Result.success(null, Constants.SUCCESS_MESSAGE); + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/config/IoTDBSessionConfig.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/basic/config/IoTDBSessionConfig.java similarity index 97% rename from cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/config/IoTDBSessionConfig.java rename to cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/basic/config/IoTDBSessionConfig.java index 01a498c..18e7feb 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/config/IoTDBSessionConfig.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/basic/config/IoTDBSessionConfig.java @@ -1,4 +1,4 @@ -package com.muyu.event.process.basic.config; +package com.muyu.event.process.iotdb.basic.config; import lombok.extern.slf4j.Slf4j; import org.apache.iotdb.session.pool.SessionPool; diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/service/IoTDBService.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/basic/service/IService.java similarity index 97% rename from cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/service/IoTDBService.java rename to cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/basic/service/IService.java index 5c4ac01..fd5d3bf 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/service/IoTDBService.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/basic/service/IService.java @@ -1,7 +1,7 @@ -package com.muyu.event.process.basic.service; +package com.muyu.event.process.iotdb.basic.service; -import com.muyu.event.process.domain.dto.IoTDbRecordAble; -import com.muyu.event.process.domain.dto.MeasurementSchemaValuesDTO; +import com.muyu.event.process.iotdb.domain.dto.IoTDbRecordAble; +import com.muyu.event.process.iotdb.domain.dto.MeasurementSchemaValuesDTO; import org.apache.iotdb.common.rpc.thrift.TAggregationType; import org.apache.iotdb.isession.SessionDataSet; import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; @@ -14,9 +14,9 @@ import java.util.Map; /** * @Author: zi run * @Date 2024/9/28 23:37 - * @Description IoTDB业务层 + * @Description IoTDB基准业务层 */ -public interface IoTDBService { +public interface IService { /** * 插入一个 Tablet 对象到 IoTDB 数据库 diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/service/impl/IoTDBServiceImpl.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/basic/service/impl/ServiceImpl.java similarity index 98% rename from cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/service/impl/IoTDBServiceImpl.java rename to cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/basic/service/impl/ServiceImpl.java index 73e67e2..bc355d9 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/service/impl/IoTDBServiceImpl.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/basic/service/impl/ServiceImpl.java @@ -1,11 +1,10 @@ -package com.muyu.event.process.basic.service.impl; +package com.muyu.event.process.iotdb.basic.service.impl; import com.alibaba.fastjson.JSON; -import com.muyu.event.process.basic.config.IoTDBSessionConfig; -import com.muyu.event.process.basic.service.IoTDBService; -import com.muyu.event.process.domain.dto.IoTDbRecordAble; -import com.muyu.event.process.domain.dto.MeasurementSchemaValuesDTO; -import lombok.RequiredArgsConstructor; +import com.muyu.event.process.iotdb.basic.config.IoTDBSessionConfig; +import com.muyu.event.process.iotdb.basic.service.IService; +import com.muyu.event.process.iotdb.domain.dto.IoTDbRecordAble; +import com.muyu.event.process.iotdb.domain.dto.MeasurementSchemaValuesDTO; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.iotdb.common.rpc.thrift.TAggregationType; @@ -17,6 +16,7 @@ import org.apache.iotdb.tsfile.read.common.RowRecord; import org.apache.iotdb.tsfile.write.record.Tablet; import org.apache.iotdb.isession.SessionDataSet; import org.apache.iotdb.tsfile.write.schema.MeasurementSchema; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.lang.reflect.Type; @@ -26,17 +26,17 @@ import java.util.stream.Collectors; /** * @Author: zi run * @Date 2024/9/28 23:38 - * @Description IoTDB业务实现层 + * @Description IoTDB基准业务实现层 */ @Slf4j @Service -@RequiredArgsConstructor -public class IoTDBServiceImpl implements IoTDBService { +public class ServiceImpl implements IService { /** * IoTDB会话配置 */ - private final IoTDBSessionConfig ioTDBSessionConfig; + @Autowired + private IoTDBSessionConfig ioTDBSessionConfig; /** * 插入一个 Tablet 对象到 IoTDB 数据库 diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/DataJSON.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/domain/DataJSON.java similarity index 93% rename from cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/DataJSON.java rename to cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/domain/DataJSON.java index 16853f3..fcd4aac 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/DataJSON.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/domain/DataJSON.java @@ -1,4 +1,4 @@ -package com.muyu.event.process.domain; +package com.muyu.event.process.iotdb.domain; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/ResultEntity.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/domain/ResultEntity.java similarity index 81% rename from cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/ResultEntity.java rename to cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/domain/ResultEntity.java index 02d7d96..ad159a6 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/ResultEntity.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/domain/ResultEntity.java @@ -1,6 +1,6 @@ -package com.muyu.event.process.domain; +package com.muyu.event.process.iotdb.domain; -import com.muyu.event.process.domain.dto.IoTDbRecordAble; +import com.muyu.event.process.iotdb.domain.dto.IoTDbRecordAble; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/TestDataType.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/domain/TestDataType.java similarity index 93% rename from cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/TestDataType.java rename to cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/domain/TestDataType.java index dd75553..eef2853 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/TestDataType.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/domain/TestDataType.java @@ -1,4 +1,4 @@ -package com.muyu.event.process.domain; +package com.muyu.event.process.iotdb.domain; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/dto/InsertDataDTO.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/domain/dto/InsertDataDTO.java similarity index 97% rename from cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/dto/InsertDataDTO.java rename to cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/domain/dto/InsertDataDTO.java index d213bd8..15b6cc2 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/dto/InsertDataDTO.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/domain/dto/InsertDataDTO.java @@ -1,4 +1,4 @@ -package com.muyu.event.process.domain.dto; +package com.muyu.event.process.iotdb.domain.dto; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/dto/IoTDbRecordAble.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/domain/dto/IoTDbRecordAble.java similarity index 75% rename from cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/dto/IoTDbRecordAble.java rename to cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/domain/dto/IoTDbRecordAble.java index 957dfb5..5b8ad62 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/dto/IoTDbRecordAble.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/domain/dto/IoTDbRecordAble.java @@ -1,4 +1,4 @@ -package com.muyu.event.process.domain.dto; +package com.muyu.event.process.iotdb.domain.dto; import lombok.Data; diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/dto/MeasurementSchemaValuesDTO.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/domain/dto/MeasurementSchemaValuesDTO.java similarity index 94% rename from cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/dto/MeasurementSchemaValuesDTO.java rename to cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/domain/dto/MeasurementSchemaValuesDTO.java index 8681f19..f04a72b 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/domain/dto/MeasurementSchemaValuesDTO.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/domain/dto/MeasurementSchemaValuesDTO.java @@ -1,4 +1,4 @@ -package com.muyu.event.process.domain.dto; +package com.muyu.event.process.iotdb.domain.dto; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/service/IoTDBService.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/service/IoTDBService.java new file mode 100644 index 0000000..b473acf --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/service/IoTDBService.java @@ -0,0 +1,11 @@ +package com.muyu.event.process.iotdb.service; + +import com.muyu.event.process.iotdb.basic.service.IService; + +/** + * @Author: zi run + * @Date 2024/9/29 22:38 + * @Description IoTDB业务层 + */ +public interface IoTDBService extends IService { +} diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/service/TestIoTDBService.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/service/TestIoTDBService.java new file mode 100644 index 0000000..84302bd --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/service/TestIoTDBService.java @@ -0,0 +1,20 @@ +package com.muyu.event.process.iotdb.service; + +import com.muyu.event.process.iotdb.basic.service.IService; + +import java.util.List; +import java.util.Map; + +/** + * @Author: zi run + * @Date 2024/9/29 17:23 + * @Description 测试IoTDB业务层 + */ +public interface TestIoTDBService extends IService { + + /** + * 查询IoTDB数据列表 + * @return 返回结果 + */ + List> list(); +} diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/service/impl/IoTDBServiceImpl.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/service/impl/IoTDBServiceImpl.java new file mode 100644 index 0000000..3167618 --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/service/impl/IoTDBServiceImpl.java @@ -0,0 +1,14 @@ +package com.muyu.event.process.iotdb.service.impl; + +import com.muyu.event.process.iotdb.basic.service.impl.ServiceImpl; +import com.muyu.event.process.iotdb.service.IoTDBService; +import org.springframework.stereotype.Service; + +/** + * @Author: zi run + * @Date 2024/9/29 22:39 + * @Description IoTDB业务实现层 + */ +@Service +public class IoTDBServiceImpl extends ServiceImpl implements IoTDBService { +} diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/service/impl/TestIoTDBServiceImpl.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/service/impl/TestIoTDBServiceImpl.java new file mode 100644 index 0000000..21dde1d --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/iotdb/service/impl/TestIoTDBServiceImpl.java @@ -0,0 +1,33 @@ +package com.muyu.event.process.iotdb.service.impl; + +import com.muyu.event.process.iotdb.basic.service.impl.ServiceImpl; +import com.muyu.event.process.iotdb.service.TestIoTDBService; +import lombok.extern.slf4j.Slf4j; +import org.apache.iotdb.isession.SessionDataSet; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +/** + * @Author: zi run + * @Date 2024/9/29 17:24 + * @Description 测试IoTDB业务实现层 + */ +@Slf4j +@Service +public class TestIoTDBServiceImpl extends ServiceImpl implements TestIoTDBService { + + /** + * 查询IoTDB数据列表 + * @return 返回结果 + */ + @Override + public List> list() { + String sql = "select * from root.test"; + SessionDataSet sessionDataSet = this.executeQueryStatement(sql); + List> list = this.packagingMapData(sessionDataSet, sessionDataSet.getColumnTypes()); + log.info("查询IoTDB数据为:{}", list.toString()); + return list; + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/listener/AddDatabaseListener.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/listener/AddDatabaseListener.java new file mode 100644 index 0000000..1e0206a --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/listener/AddDatabaseListener.java @@ -0,0 +1,43 @@ +package com.muyu.event.process.listener; + +import com.alibaba.fastjson2.JSONObject; +import com.muyu.event.process.basic.CustomEvent; +import com.muyu.event.process.basic.EventListener; +import com.muyu.event.process.iotdb.basic.service.IService; +import com.muyu.event.process.iotdb.service.IoTDBService; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author: zi run + * @Date 2024/9/29 22:12 + * @Description 添加数据库事件监听器 + */ +public class AddDatabaseListener implements EventListener { + + /** + * IoTDB业务层 + */ + @Autowired + private IoTDBService ioTDBService; + + @Override + public void onEvent(CustomEvent event) { + JSONObject data = event.getData(); + List keyList = new ArrayList<>(); + List valueList = new ArrayList<>(); + data.forEach((key, value) -> { + keyList.add(key); + valueList.add((String) value); + }); + ioTDBService.insertStringRecord("root.vehicle", System.currentTimeMillis(), keyList, valueList); + } + + @Override + public void onApplicationEvent(CustomEvent event) { + onEvent(event); + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-event-process/src/main/resources/bootstrap.yml index 47bf553..f880532 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-event-process/src/main/resources/bootstrap.yml @@ -42,4 +42,6 @@ spring: # 系统共享配置 - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} # 系统环境Config共享配置 - - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} \ No newline at end of file + - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + # kafka共享配置 + - application-kafka-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} \ No newline at end of file From 3ebd1d2c3993d365cf710fea8d69e972f68e0a65 Mon Sep 17 00:00:00 2001 From: xinzirun Date: Mon, 30 Sep 2024 18:03:48 +0800 Subject: [PATCH 28/30] =?UTF-8?q?fix():=20=E4=BF=AE=E5=A4=8D=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=A4=84=E7=90=86=E5=9F=BA=E7=A1=80=E6=9E=B6=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../muyu/event/process/basic/BasicEvent.java | 37 ++++++++ .../process/basic/BasicEventHandler.java | 37 ++++++++ .../process/basic/BasicEventListener.java | 16 ++++ .../muyu/event/process/basic/CustomEvent.java | 37 -------- .../event/process/basic/EventListener.java | 18 ---- .../event/process/basic/EventPublisher.java | 21 +++-- .../process/config/EventListenerConfig.java | 19 ---- .../process/consumer/VehicleConsumer.java | 89 +++++++++++-------- .../controller/TestEventController.java | 4 +- .../process/event/IoTDBInsertDataEvent.java | 20 +++++ .../process/listener/AddDatabaseListener.java | 43 --------- .../listener/IoTDBInsertDataListener.java | 68 ++++++++++++++ 12 files changed, 240 insertions(+), 169 deletions(-) create mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/BasicEvent.java create mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/BasicEventHandler.java create mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/BasicEventListener.java delete mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/CustomEvent.java delete mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/EventListener.java delete mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/config/EventListenerConfig.java create mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/event/IoTDBInsertDataEvent.java delete mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/listener/AddDatabaseListener.java create mode 100644 cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/listener/IoTDBInsertDataListener.java diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/BasicEvent.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/BasicEvent.java new file mode 100644 index 0000000..1701cba --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/BasicEvent.java @@ -0,0 +1,37 @@ +package com.muyu.event.process.basic; + +import org.springframework.context.ApplicationEvent; + +/** + * @Author: zi run + * @Date 2024/9/30 15:11 + * @Description 基础事件 + */ +public class BasicEvent extends ApplicationEvent { + + /** + * 事件携带的数据 + */ + private final T data; + + /** + * 构造函数,初始化事件源和数据 + * + * @param source 事件源对象 + * @param data 事件携带的数据 + */ + public BasicEvent(Object source, T data) { + super(source); + this.data = data; + } + + + /** + * 获取事件携带的数据 + * + * @return 事件数据 + */ + public T getData() { + return data; + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/BasicEventHandler.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/BasicEventHandler.java new file mode 100644 index 0000000..d9571d2 --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/BasicEventHandler.java @@ -0,0 +1,37 @@ +package com.muyu.event.process.basic; + +import org.springframework.context.ApplicationListener; +import org.springframework.stereotype.Component; + +/** + * @Author: zi run + * @Date 2024/9/30 15:37 + * @Description 基础事件处理器 + */ +@Component +public class BasicEventHandler implements ApplicationListener> { + + /** + * 具体事件监听器 + */ + private final BasicEventListener listener; + + /** + * 构造函数,用于注入具体事件监听器 + * + * @param listener 具体事件监听器 + */ + public BasicEventHandler(BasicEventListener listener) { + this.listener = listener; + } + + /** + * 处理应用事件 + * + * @param event 事件对象 + */ + @Override + public void onApplicationEvent(BasicEvent event) { + listener.onEvent(event); + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/BasicEventListener.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/BasicEventListener.java new file mode 100644 index 0000000..7fecd6e --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/BasicEventListener.java @@ -0,0 +1,16 @@ +package com.muyu.event.process.basic; + +/** + * @Author: zi run + * @Date 2024/9/30 15:35 + * @Description 基础事件监听器 + */ +public interface BasicEventListener { + + /** + * 处理事件的方法 + * + * @param event 事件对象 + */ + void onEvent(BasicEvent event); +} diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/CustomEvent.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/CustomEvent.java deleted file mode 100644 index 2b80585..0000000 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/CustomEvent.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.muyu.event.process.basic; - -import com.alibaba.fastjson2.JSONObject; -import org.springframework.context.ApplicationEvent; - -/** - * @Author: zi run - * @Date 2024/9/29 21:19 - * @Description 自定义事件 - */ -public class CustomEvent extends ApplicationEvent { - - /** - * 存储与事件相关联的数据 - */ - private final JSONObject data; - - /** - * 创建一个新的自定义事件 - * - * @param source 事件源,表示触发此事件的对象 - * @param data 事件携带的数据,以JSON格式存储 - */ - public CustomEvent(Object source, JSONObject data) { - super(source); - this.data = data; - } - - /** - * 获取与此事件相关联的数据。 - * - * @return 包含事件数据的JSONObject - */ - public JSONObject getData() { - return data; - } -} diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/EventListener.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/EventListener.java deleted file mode 100644 index 32115a6..0000000 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/EventListener.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.muyu.event.process.basic; - -import org.springframework.context.ApplicationListener; - -/** - * @Author: zi run - * @Date 2024/9/29 21:29 - * @Description 事件监听基准 - */ -public interface EventListener extends ApplicationListener { - - /** - * 处理接收到的自定义事件。 - * - * @param event 已发布的自定义事件实例,包含事件的源和相关数据 - */ - void onEvent(CustomEvent event); -} diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/EventPublisher.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/EventPublisher.java index c23acf5..b037cd2 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/EventPublisher.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/EventPublisher.java @@ -1,6 +1,5 @@ package com.muyu.event.process.basic; -import com.alibaba.fastjson2.JSONObject; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisherAware; import org.springframework.stereotype.Component; @@ -16,24 +15,24 @@ public class EventPublisher implements ApplicationEventPublisherAware { /** * 应用程序事件发布者,用于发布事件 */ - private ApplicationEventPublisher applicationEventPublisher; + private ApplicationEventPublisher publisher; /** - * 设置应用程序事件发布者。 + * 设置应用程序事件发布者 * - * @param applicationEventPublisher 应用程序事件发布者实例 + * @param publisher 应用程序事件发布者实例 */ @Override - public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) { - this.applicationEventPublisher = applicationEventPublisher; + public void setApplicationEventPublisher(ApplicationEventPublisher publisher) { + this.publisher = publisher; } /** - * 发布自定义事件。 - * - * @param messages 事件携带的数据,以JSON格式传递 + * 发布事件 + * @param event 要发布的事件 + * @param 事件数据类型 */ - public void publishEvent(JSONObject messages) { - applicationEventPublisher.publishEvent(new CustomEvent(this, messages)); + public void publish(BasicEvent event) { + publisher.publishEvent(event); } } diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/config/EventListenerConfig.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/config/EventListenerConfig.java deleted file mode 100644 index 7b7913f..0000000 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/config/EventListenerConfig.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.muyu.event.process.config; - -import com.muyu.event.process.listener.AddDatabaseListener; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * @Author: zi run - * @Date 2024/9/29 21:29 - * @Description 事件监听配置 - */ -@Configuration -public class EventListenerConfig { - - @Bean - public AddDatabaseListener addDatabaseListener() { - return new AddDatabaseListener(); - } -} diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/VehicleConsumer.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/VehicleConsumer.java index 46aaeea..9a688b4 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/VehicleConsumer.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/VehicleConsumer.java @@ -1,24 +1,24 @@ package com.muyu.event.process.consumer; -import cn.hutool.core.thread.ThreadUtil; -import com.alibaba.fastjson2.JSONObject; -import com.alibaba.nacos.shaded.com.google.common.collect.Lists; import com.muyu.event.process.basic.EventPublisher; +import com.muyu.event.process.event.IoTDBInsertDataEvent; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecords; import org.apache.kafka.clients.consumer.KafkaConsumer; -import org.springframework.beans.factory.InitializingBean; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; -import org.springframework.scheduling.annotation.Async; +import org.springframework.context.ApplicationListener; +import org.springframework.context.event.ContextClosedEvent; import org.springframework.stereotype.Component; import java.time.Duration; -import java.util.Collection; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; /** * @Author: zi run @@ -28,7 +28,7 @@ import java.util.stream.Collectors; @Slf4j @Component @RequiredArgsConstructor -public class VehicleConsumer implements InitializingBean { +public class VehicleConsumer implements ApplicationRunner, ApplicationListener { /** * kafka消费者 @@ -43,40 +43,51 @@ public class VehicleConsumer implements InitializingBean { /** * 协议解析报文传递数据(队列名称) */ - public final static String MESSAGE_PARSING = "test-topic"; + public final static String MESSAGE_PARSING = "MessageParsing"; -// @Override -// public void run(ApplicationArguments args) throws Exception { -// log.info("开始监听kafka-topic:{}", MESSAGE_PARSING); -// List topicList = Collections.singletonList(MESSAGE_PARSING); -// kafkaConsumer.subscribe(topicList); -// -// while (true) { -// ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(100)); -// consumerRecords.forEach(record -> { -// String value = record.value(); -// log.info("接收到车辆报文数据,内容:{}", value); -// eventPublisher.publishEvent(JSONObject.parseObject(value)); -// }); -// } -// } + /** + * 设定固定大小的线程池,线程数量与当前可用的处理器核心数相同 + */ + private final ExecutorService executorService = + Executors.newFixedThreadPool(10); - @Async @Override - public void afterPropertiesSet() throws Exception { - new Thread(() -> { - log.info("启动线程监听Topic: {}", MESSAGE_PARSING); - ThreadUtil.sleep(100); - Collection topics = Lists.newArrayList(MESSAGE_PARSING); - kafkaConsumer.subscribe(topics); - while (true) { - ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(100)); - consumerRecords.forEach(consumerRecord -> { - String message = consumerRecord.value(); - log.info("接收到车辆报文数据,内容:{}", message); - eventPublisher.publishEvent(JSONObject.parseObject(message)); - }); + public void run(ApplicationArguments args) throws Exception { + log.info("启动线程监听Topic: {}", MESSAGE_PARSING); + List topics = Collections.singletonList(MESSAGE_PARSING); + kafkaConsumer.subscribe(topics); + while (true) { + ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(100)); + consumerRecords.forEach(consumerRecord -> executorService.submit(() -> handleRecord(consumerRecord))); + } + } + + private void handleRecord(ConsumerRecord consumerRecord) { + String message = consumerRecord.value(); + log.info("接收到车辆报文数据,内容:{}", message); + log.info("------------------------------------------------"); + eventPublisher.publish(new IoTDBInsertDataEvent(this, message)); + } + + @Override + public void onApplicationEvent(ContextClosedEvent event) { + log.info("关闭线程池和Kafka消费者"); + + try { + executorService.shutdown(); + if (!executorService.awaitTermination(60, TimeUnit.SECONDS)) { + executorService.shutdownNow(); } - }).start(); + } catch (InterruptedException e) { + log.error("线程池关闭被中断,强制关闭", e); + executorService.shutdownNow(); + Thread.currentThread().interrupt(); + } + + try { + kafkaConsumer.close(); // 关闭Kafka消费者 + } catch (Exception e) { + log.error("关闭Kafka消费者时发生错误", e); + } } } diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/controller/TestEventController.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/controller/TestEventController.java index c32feb1..bfc0dc3 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/controller/TestEventController.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/controller/TestEventController.java @@ -50,9 +50,9 @@ public class TestEventController extends BaseController { @GetMapping(value = "/sendKafka") public Result senKafka() { JSONObject jsonObject = new JSONObject(); - jsonObject.put("id",1); + jsonObject.put("id","1"); jsonObject.put("name","张三"); - jsonObject.put("age",18); + jsonObject.put("age","18"); jsonObject.put("sex","男"); ProducerRecord producerRecord = new ProducerRecord<>(kafkaTopicName, jsonObject.toJSONString()); kafkaProducer.send(producerRecord); diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/event/IoTDBInsertDataEvent.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/event/IoTDBInsertDataEvent.java new file mode 100644 index 0000000..91d7d6e --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/event/IoTDBInsertDataEvent.java @@ -0,0 +1,20 @@ +package com.muyu.event.process.event; + +import com.muyu.event.process.basic.BasicEvent; + +/** + * @Author: zi run + * @Date 2024/9/29 21:19 + * @Description 向IoTDB插入数据事件 + */ +public class IoTDBInsertDataEvent extends BasicEvent { + + /** + * 构造函数,向IoTDB插入数据创建事件 + * + * @param messsge 消息 + */ + public IoTDBInsertDataEvent(Object source, String messsge) { + super(source, messsge); + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/listener/AddDatabaseListener.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/listener/AddDatabaseListener.java deleted file mode 100644 index 1e0206a..0000000 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/listener/AddDatabaseListener.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.muyu.event.process.listener; - -import com.alibaba.fastjson2.JSONObject; -import com.muyu.event.process.basic.CustomEvent; -import com.muyu.event.process.basic.EventListener; -import com.muyu.event.process.iotdb.basic.service.IService; -import com.muyu.event.process.iotdb.service.IoTDBService; -import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.annotation.Autowired; - -import java.util.ArrayList; -import java.util.List; - -/** - * @Author: zi run - * @Date 2024/9/29 22:12 - * @Description 添加数据库事件监听器 - */ -public class AddDatabaseListener implements EventListener { - - /** - * IoTDB业务层 - */ - @Autowired - private IoTDBService ioTDBService; - - @Override - public void onEvent(CustomEvent event) { - JSONObject data = event.getData(); - List keyList = new ArrayList<>(); - List valueList = new ArrayList<>(); - data.forEach((key, value) -> { - keyList.add(key); - valueList.add((String) value); - }); - ioTDBService.insertStringRecord("root.vehicle", System.currentTimeMillis(), keyList, valueList); - } - - @Override - public void onApplicationEvent(CustomEvent event) { - onEvent(event); - } -} diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/listener/IoTDBInsertDataListener.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/listener/IoTDBInsertDataListener.java new file mode 100644 index 0000000..0c0f96c --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/listener/IoTDBInsertDataListener.java @@ -0,0 +1,68 @@ +package com.muyu.event.process.listener; + +import com.alibaba.fastjson2.JSONObject; +import com.muyu.event.process.basic.BasicEvent; +import com.muyu.event.process.basic.BasicEventListener; +import com.muyu.event.process.event.IoTDBInsertDataEvent; +import com.muyu.event.process.iotdb.service.IoTDBService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author: zi run + * @Date 2024/9/29 22:12 + * @Description 向IoTDB插入数据事件监听器 + */ +@Component +@RequiredArgsConstructor +public class IoTDBInsertDataListener implements BasicEventListener { + + /** + * IoTDB业务层 + */ + private final IoTDBService ioTDBService; + + /** + * 设备名(表名) + */ + private static final String DEVICE_ID = "root.vehicle"; + + /** + * 处理接收到的事件,将数据插入到 IoTDB + * + * @param event 接收到的事件,包含需要插入的数据 + */ + @Override + public void onEvent(BasicEvent event) { + JSONObject data = JSONObject.parseObject(event.getData()); + List keyList = extractKeys(data); + List valueList = extractValues(data); + ioTDBService.insertStringRecord(DEVICE_ID, System.currentTimeMillis(), keyList, valueList); + } + + /** + * 从给定的JSONObject中提取所有的键 + * + * @param data 要提取键的JSONObject + * @return 键的列表 + */ + private List extractKeys(JSONObject data) { + return data.keySet().stream().collect(Collectors.toList()); + } + + /** + * 从给定的 JSONObject 中提取所有的值,并将其转换为字符串 + * + * @param data 要提取值的JSONObject + * @return 值的列表,以字符串形式表示 + */ + private List extractValues(JSONObject data) { + return data.values().stream() + .map(Object::toString) + .collect(Collectors.toList()); + } +} From 5203c69a904949f54ae47ad717dc877bcd8bd51e Mon Sep 17 00:00:00 2001 From: xinzirun Date: Mon, 30 Sep 2024 18:04:49 +0800 Subject: [PATCH 29/30] =?UTF-8?q?fix():=20=E4=BF=AE=E6=94=B9nacos=E5=91=BD?= =?UTF-8?q?=E5=90=8D=E7=A9=BA=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cloud-auth/src/main/resources/bootstrap.yml | 2 +- cloud-gateway/src/main/resources/bootstrap.yml | 2 +- .../src/main/resources/bootstrap.yml | 2 +- .../src/main/resources/bootstrap.yml | 2 +- .../cloud-modules-file/src/main/resources/bootstrap.yml | 2 +- .../cloud-modules-gen/src/main/resources/bootstrap.yml | 2 +- .../cloud-modules-system/src/main/resources/bootstrap.yml | 2 +- .../cloud-visual-monitor/src/main/resources/bootstrap.yml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/cloud-auth/src/main/resources/bootstrap.yml b/cloud-auth/src/main/resources/bootstrap.yml index 270c8d6..2bdda14 100644 --- a/cloud-auth/src/main/resources/bootstrap.yml +++ b/cloud-auth/src/main/resources/bootstrap.yml @@ -6,7 +6,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: xzr + namespace: dev # Spring spring: application: diff --git a/cloud-gateway/src/main/resources/bootstrap.yml b/cloud-gateway/src/main/resources/bootstrap.yml index 5e54e71..4132cf0 100644 --- a/cloud-gateway/src/main/resources/bootstrap.yml +++ b/cloud-gateway/src/main/resources/bootstrap.yml @@ -6,7 +6,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: xzr + namespace: dev # Spring spring: diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/bootstrap.yml index 1f2e969..aed0523 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/bootstrap.yml @@ -6,7 +6,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: xzr + namespace: dev spring: application: diff --git a/cloud-modules/cloud-modules-event-process/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-event-process/src/main/resources/bootstrap.yml index f880532..0b653df 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-event-process/src/main/resources/bootstrap.yml @@ -6,7 +6,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: xzr + namespace: dev spring: application: diff --git a/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml index dd31e1b..eea6728 100644 --- a/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml @@ -6,7 +6,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: xzr + namespace: dev # Spring spring: diff --git a/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml index 7619514..178e17b 100644 --- a/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml @@ -6,7 +6,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: xzr + namespace: dev # Spring spring: diff --git a/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml index 296688a..9390135 100644 --- a/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml @@ -6,7 +6,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: xzr + namespace: dev spring: application: diff --git a/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml b/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml index f90fa0e..ddca326 100644 --- a/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml +++ b/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml @@ -6,7 +6,7 @@ nacos: addr: 106.15.136.7:8848 user-name: nacos password: nacos - namespace: xzr + namespace: dev # Spring spring: From 7e2ad67a647bff276093f412e77cbbbb770a4017 Mon Sep 17 00:00:00 2001 From: xinzirun Date: Mon, 30 Sep 2024 19:00:17 +0800 Subject: [PATCH 30/30] =?UTF-8?q?fix():=20=E8=A7=A3=E5=86=B3=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=86=B2=E7=AA=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JavaSample-tcp1061513671883/.lck | 0 .../cloud-modules-event-process/pom.xml | 12 - .../process/CloudEventProcessApplication.java | 3 +- .../event/process/consumer/TestConsumer.java | 13 +- .../process/consumer/VehicleConsumer.java | 25 +- .../listener/IoTDBInsertDataListener.java | 2 - .../process/CloudEventProcessApplication.java | 20 + .../muyu/event/process/basic/BasicEvent.java | 37 + .../process/basic/BasicEventHandler.java | 37 + .../process/basic/BasicEventListener.java | 16 + .../event/process/basic/EventPublisher.java | 38 + .../event/process/consumer/TestConsumer.java | 52 ++ .../process/consumer/VehicleConsumer.java | 93 +++ .../controller/TestEventController.java | 88 ++ .../process/event/IoTDBInsertDataEvent.java | 20 + .../basic/config/IoTDBSessionConfig.java | 72 ++ .../process/iotdb/basic/service/IService.java | 290 +++++++ .../iotdb/basic/service/impl/ServiceImpl.java | 765 ++++++++++++++++++ .../event/process/iotdb/domain/DataJSON.java | 33 + .../process/iotdb/domain/ResultEntity.java | 36 + .../process/iotdb/domain/TestDataType.java | 43 + .../iotdb/domain/dto/InsertDataDTO.java | 67 ++ .../iotdb/domain/dto/IoTDbRecordAble.java | 12 + .../dto/MeasurementSchemaValuesDTO.java | 36 + .../process/iotdb/service/IoTDBService.java | 11 + .../iotdb/service/TestIoTDBService.java | 20 + .../iotdb/service/impl/IoTDBServiceImpl.java | 14 + .../service/impl/TestIoTDBServiceImpl.java | 33 + .../listener/IoTDBInsertDataListener.java | 68 ++ 29 files changed, 1924 insertions(+), 32 deletions(-) delete mode 100644 JavaSample-tcp1061513671883/.lck create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/CloudEventProcessApplication.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/basic/BasicEvent.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/basic/BasicEventHandler.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/basic/BasicEventListener.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/basic/EventPublisher.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/consumer/TestConsumer.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/consumer/VehicleConsumer.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/controller/TestEventController.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/event/IoTDBInsertDataEvent.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/basic/config/IoTDBSessionConfig.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/basic/service/IService.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/basic/service/impl/ServiceImpl.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/DataJSON.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/ResultEntity.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/TestDataType.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/dto/InsertDataDTO.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/dto/IoTDbRecordAble.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/dto/MeasurementSchemaValuesDTO.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/service/IoTDBService.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/service/TestIoTDBService.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/service/impl/IoTDBServiceImpl.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/service/impl/TestIoTDBServiceImpl.java create mode 100644 cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/listener/IoTDBInsertDataListener.java diff --git a/JavaSample-tcp1061513671883/.lck b/JavaSample-tcp1061513671883/.lck deleted file mode 100644 index e69de29..0000000 diff --git a/cloud-modules/cloud-modules-event-process/pom.xml b/cloud-modules/cloud-modules-event-process/pom.xml index 0c734d7..4844c85 100644 --- a/cloud-modules/cloud-modules-event-process/pom.xml +++ b/cloud-modules/cloud-modules-event-process/pom.xml @@ -46,24 +46,12 @@ spring-boot-starter-actuator - - - com.mysql - mysql-connector-j - - org.apache.iotdb iotdb-session - - - com.muyu - cloud-common-datasource - - com.muyu diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/CloudEventProcessApplication.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/CloudEventProcessApplication.java index 46b5858..b3d9116 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/CloudEventProcessApplication.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/CloudEventProcessApplication.java @@ -4,6 +4,7 @@ import com.muyu.common.security.annotation.EnableCustomConfig; import com.muyu.common.security.annotation.EnableMyFeignClients; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; /** * @Author: zi run @@ -12,7 +13,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; */ @EnableCustomConfig @EnableMyFeignClients -@SpringBootApplication +@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) public class CloudEventProcessApplication { public static void main(String[] args) { SpringApplication.run(CloudEventProcessApplication.class, args); diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/TestConsumer.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/TestConsumer.java index cd7dbe2..2e1bc55 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/TestConsumer.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/TestConsumer.java @@ -2,6 +2,7 @@ package com.muyu.event.process.consumer; import cn.hutool.core.thread.ThreadUtil; import com.alibaba.nacos.shaded.com.google.common.collect.Lists; +import com.muyu.common.core.constant.KafkaConstants; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.kafka.clients.consumer.ConsumerRecords; @@ -18,7 +19,7 @@ import java.util.Collection; * @Description 测试消费者 */ @Slf4j -//@Component +@Component @RequiredArgsConstructor public class TestConsumer implements InitializingBean { @@ -27,18 +28,12 @@ public class TestConsumer implements InitializingBean { */ private final KafkaConsumer kafkaConsumer; - /** - * kafka主题名称 - */ - private static final String topicName = "test-topic"; - - @Override public void afterPropertiesSet() throws Exception { new Thread(() -> { - log.info("启动线程监听Topic: {}", topicName); + log.info("启动线程监听Topic: {}", KafkaConstants.MESSAGE_PARSING); ThreadUtil.sleep(1000); - Collection topics = Lists.newArrayList(topicName); + Collection topics = Lists.newArrayList(KafkaConstants.MESSAGE_PARSING); kafkaConsumer.subscribe(topics); while (true) { ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/VehicleConsumer.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/VehicleConsumer.java index 9a688b4..b4e9cd6 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/VehicleConsumer.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/VehicleConsumer.java @@ -1,5 +1,6 @@ package com.muyu.event.process.consumer; +import com.muyu.common.core.constant.KafkaConstants; import com.muyu.event.process.basic.EventPublisher; import com.muyu.event.process.event.IoTDBInsertDataEvent; import lombok.RequiredArgsConstructor; @@ -40,21 +41,21 @@ public class VehicleConsumer implements ApplicationRunner, ApplicationListener topics = Collections.singletonList(MESSAGE_PARSING); + log.info("启动线程监听Topic: {}", KafkaConstants.MESSAGE_PARSING); + List topics = Collections.singletonList(KafkaConstants.MESSAGE_PARSING); kafkaConsumer.subscribe(topics); while (true) { ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(100)); @@ -62,6 +63,10 @@ public class VehicleConsumer implements ApplicationRunner, ApplicationListener consumerRecord) { String message = consumerRecord.value(); log.info("接收到车辆报文数据,内容:{}", message); @@ -69,6 +74,10 @@ public class VehicleConsumer implements ApplicationRunner, ApplicationListener extends ApplicationEvent { + + /** + * 事件携带的数据 + */ + private final T data; + + /** + * 构造函数,初始化事件源和数据 + * + * @param source 事件源对象 + * @param data 事件携带的数据 + */ + public BasicEvent(Object source, T data) { + super(source); + this.data = data; + } + + + /** + * 获取事件携带的数据 + * + * @return 事件数据 + */ + public T getData() { + return data; + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/basic/BasicEventHandler.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/basic/BasicEventHandler.java new file mode 100644 index 0000000..d9571d2 --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/basic/BasicEventHandler.java @@ -0,0 +1,37 @@ +package com.muyu.event.process.basic; + +import org.springframework.context.ApplicationListener; +import org.springframework.stereotype.Component; + +/** + * @Author: zi run + * @Date 2024/9/30 15:37 + * @Description 基础事件处理器 + */ +@Component +public class BasicEventHandler implements ApplicationListener> { + + /** + * 具体事件监听器 + */ + private final BasicEventListener listener; + + /** + * 构造函数,用于注入具体事件监听器 + * + * @param listener 具体事件监听器 + */ + public BasicEventHandler(BasicEventListener listener) { + this.listener = listener; + } + + /** + * 处理应用事件 + * + * @param event 事件对象 + */ + @Override + public void onApplicationEvent(BasicEvent event) { + listener.onEvent(event); + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/basic/BasicEventListener.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/basic/BasicEventListener.java new file mode 100644 index 0000000..7fecd6e --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/basic/BasicEventListener.java @@ -0,0 +1,16 @@ +package com.muyu.event.process.basic; + +/** + * @Author: zi run + * @Date 2024/9/30 15:35 + * @Description 基础事件监听器 + */ +public interface BasicEventListener { + + /** + * 处理事件的方法 + * + * @param event 事件对象 + */ + void onEvent(BasicEvent event); +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/basic/EventPublisher.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/basic/EventPublisher.java new file mode 100644 index 0000000..b037cd2 --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/basic/EventPublisher.java @@ -0,0 +1,38 @@ +package com.muyu.event.process.basic; + +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.context.ApplicationEventPublisherAware; +import org.springframework.stereotype.Component; + +/** + * @Author: zi run + * @Date 2024/9/29 22:01 + * @Description 事件发布者 + */ +@Component +public class EventPublisher implements ApplicationEventPublisherAware { + + /** + * 应用程序事件发布者,用于发布事件 + */ + private ApplicationEventPublisher publisher; + + /** + * 设置应用程序事件发布者 + * + * @param publisher 应用程序事件发布者实例 + */ + @Override + public void setApplicationEventPublisher(ApplicationEventPublisher publisher) { + this.publisher = publisher; + } + + /** + * 发布事件 + * @param event 要发布的事件 + * @param 事件数据类型 + */ + public void publish(BasicEvent event) { + publisher.publishEvent(event); + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/consumer/TestConsumer.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/consumer/TestConsumer.java new file mode 100644 index 0000000..cd7dbe2 --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/consumer/TestConsumer.java @@ -0,0 +1,52 @@ +package com.muyu.event.process.consumer; + +import cn.hutool.core.thread.ThreadUtil; +import com.alibaba.nacos.shaded.com.google.common.collect.Lists; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.kafka.clients.consumer.ConsumerRecords; +import org.apache.kafka.clients.consumer.KafkaConsumer; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.stereotype.Component; + +import java.time.Duration; +import java.util.Collection; + +/** + * @Author: zi run + * @Date 2024/9/29 16:53 + * @Description 测试消费者 + */ +@Slf4j +//@Component +@RequiredArgsConstructor +public class TestConsumer implements InitializingBean { + + /** + * kafka消费者 + */ + private final KafkaConsumer kafkaConsumer; + + /** + * kafka主题名称 + */ + private static final String topicName = "test-topic"; + + + @Override + public void afterPropertiesSet() throws Exception { + new Thread(() -> { + log.info("启动线程监听Topic: {}", topicName); + ThreadUtil.sleep(1000); + Collection topics = Lists.newArrayList(topicName); + kafkaConsumer.subscribe(topics); + while (true) { + ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); + consumerRecords.forEach(record -> { + String value = record.value(); + log.info("从Kafka中消费的原始数据: {}", value); + }); + } + }).start(); + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/consumer/VehicleConsumer.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/consumer/VehicleConsumer.java new file mode 100644 index 0000000..9a688b4 --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/consumer/VehicleConsumer.java @@ -0,0 +1,93 @@ +package com.muyu.event.process.consumer; + +import com.muyu.event.process.basic.EventPublisher; +import com.muyu.event.process.event.IoTDBInsertDataEvent; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.kafka.clients.consumer.ConsumerRecord; +import org.apache.kafka.clients.consumer.ConsumerRecords; +import org.apache.kafka.clients.consumer.KafkaConsumer; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.context.ApplicationListener; +import org.springframework.context.event.ContextClosedEvent; +import org.springframework.stereotype.Component; + +import java.time.Duration; +import java.util.Collections; +import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +/** + * @Author: zi run + * @Date 2024/9/29 23:23 + * @Description 车辆消费者 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class VehicleConsumer implements ApplicationRunner, ApplicationListener { + + /** + * kafka消费者 + */ + private final KafkaConsumer kafkaConsumer; + + /** + * 事件发布者 + */ + private final EventPublisher eventPublisher; + + /** + * 协议解析报文传递数据(队列名称) + */ + public final static String MESSAGE_PARSING = "MessageParsing"; + + /** + * 设定固定大小的线程池,线程数量与当前可用的处理器核心数相同 + */ + private final ExecutorService executorService = + Executors.newFixedThreadPool(10); + + @Override + public void run(ApplicationArguments args) throws Exception { + log.info("启动线程监听Topic: {}", MESSAGE_PARSING); + List topics = Collections.singletonList(MESSAGE_PARSING); + kafkaConsumer.subscribe(topics); + while (true) { + ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(100)); + consumerRecords.forEach(consumerRecord -> executorService.submit(() -> handleRecord(consumerRecord))); + } + } + + private void handleRecord(ConsumerRecord consumerRecord) { + String message = consumerRecord.value(); + log.info("接收到车辆报文数据,内容:{}", message); + log.info("------------------------------------------------"); + eventPublisher.publish(new IoTDBInsertDataEvent(this, message)); + } + + @Override + public void onApplicationEvent(ContextClosedEvent event) { + log.info("关闭线程池和Kafka消费者"); + + try { + executorService.shutdown(); + if (!executorService.awaitTermination(60, TimeUnit.SECONDS)) { + executorService.shutdownNow(); + } + } catch (InterruptedException e) { + log.error("线程池关闭被中断,强制关闭", e); + executorService.shutdownNow(); + Thread.currentThread().interrupt(); + } + + try { + kafkaConsumer.close(); // 关闭Kafka消费者 + } catch (Exception e) { + log.error("关闭Kafka消费者时发生错误", e); + } + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/controller/TestEventController.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/controller/TestEventController.java new file mode 100644 index 0000000..bfc0dc3 --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/controller/TestEventController.java @@ -0,0 +1,88 @@ +package com.muyu.event.process.controller; + +import com.alibaba.fastjson2.JSONObject; +import com.muyu.common.core.constant.Constants; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.event.process.iotdb.service.TestIoTDBService; +import lombok.RequiredArgsConstructor; +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * @Author: zi run + * @Date 2024/9/29 16:24 + * @Description 测试事件控制层 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping(value = "/test-event") +public class TestEventController extends BaseController { + + /** + * kafka生产者 + */ + private final KafkaProducer kafkaProducer; + + /** + * kafka主题名称 + */ + private static final String kafkaTopicName = "test-topic"; + + /** + * 测试IoTDB业务层 + */ + private final TestIoTDBService testIoTDBService; + + /** + * 发送Kafka测试消息 + * + * @return 响应结果 + */ + @GetMapping(value = "/sendKafka") + public Result senKafka() { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("id","1"); + jsonObject.put("name","张三"); + jsonObject.put("age","18"); + jsonObject.put("sex","男"); + ProducerRecord producerRecord = new ProducerRecord<>(kafkaTopicName, jsonObject.toJSONString()); + kafkaProducer.send(producerRecord); + return Result.success(null, Constants.SUCCESS_MESSAGE); + } + + /** + * 查询IoTDB数据列表 + * @return 响应结果 + */ + @GetMapping(value = "/list") + public Result>> list() { + return Result.success(testIoTDBService.list(), Constants.SUCCESS_MESSAGE); + } + + /** + * 向IoTDB添加数据 + * + * @return 响应结果 + */ + @PostMapping(value = "/save") + public Result save() { + String deviceId = "root.test"; + ArrayList keyList = new ArrayList<>(); + ArrayList valueList = new ArrayList<>(); + keyList.add("car_vin"); + keyList.add("car_name"); + valueList.add("VIN123456"); + valueList.add("宝马"); + testIoTDBService.insertStringRecord(deviceId, System.currentTimeMillis(), keyList, valueList); + return Result.success(null, Constants.SUCCESS_MESSAGE); + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/event/IoTDBInsertDataEvent.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/event/IoTDBInsertDataEvent.java new file mode 100644 index 0000000..91d7d6e --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/event/IoTDBInsertDataEvent.java @@ -0,0 +1,20 @@ +package com.muyu.event.process.event; + +import com.muyu.event.process.basic.BasicEvent; + +/** + * @Author: zi run + * @Date 2024/9/29 21:19 + * @Description 向IoTDB插入数据事件 + */ +public class IoTDBInsertDataEvent extends BasicEvent { + + /** + * 构造函数,向IoTDB插入数据创建事件 + * + * @param messsge 消息 + */ + public IoTDBInsertDataEvent(Object source, String messsge) { + super(source, messsge); + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/basic/config/IoTDBSessionConfig.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/basic/config/IoTDBSessionConfig.java new file mode 100644 index 0000000..18e7feb --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/basic/config/IoTDBSessionConfig.java @@ -0,0 +1,72 @@ +package com.muyu.event.process.iotdb.basic.config; + +import lombok.extern.slf4j.Slf4j; +import org.apache.iotdb.session.pool.SessionPool; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; +import java.util.List; + +/** + * @Author: zi run + * @Date 2024/9/28 22:41 + * @Description IoTDB会话配置 + */ +@Slf4j +@Component +@Configuration +public class IoTDBSessionConfig { + + @Value("${spring.iotdb.username}") + private String username; + + @Value("${spring.iotdb.password}") + private String password; + + @Value("${spring.iotdb.ip}") + private String ip; + + @Value("${spring.iotdb.port}") + private int port; + + @Value("${spring.iotdb.maxSize}") + private int maxSize; + + /** + * IoTDB会话池 + */ + private static SessionPool sessionPool = null; + + /** + * 获取IoTDB会话对象 + * @return ioTDB会话对象 + */ + public SessionPool getSessionPool() { + if (sessionPool == null) { + sessionPool = new SessionPool(ip, port, username, password, maxSize); + } + return sessionPool; + } + + /** + * 向IoTDB中插入特定设备的记录 + * + * @param deviceId 设备的唯一标识符 + * @param time 记录的时间戳,以毫秒为单位 + * @param measurements 与记录关联的测量名称列表 + * @param values 每个测量对应的值列表。值的顺序必须与测量名称一一对应 + * + *

该方法从会话池中获取一个会话,并尝试将指定的记录插入到 IoTDB 中。 + * 如果插入失败,将记录错误信息,便于后续排查。

+ */ + public void insertRecord(String deviceId, long time, List measurements, List values) { + getSessionPool(); + try { + log.info("iotdb数据入库:device_id:[{}], measurements:[{}], values:[{}]", deviceId, measurements, values); + sessionPool.insertRecord(deviceId, time, measurements, values); + } catch (Exception e) { + log.error("IotDBSession insertRecord失败: deviceId={}, time={}, measurements={}, values={}, error={}", + deviceId, time, measurements, values, e.getMessage()); + } + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/basic/service/IService.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/basic/service/IService.java new file mode 100644 index 0000000..fd5d3bf --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/basic/service/IService.java @@ -0,0 +1,290 @@ +package com.muyu.event.process.iotdb.basic.service; + +import com.muyu.event.process.iotdb.domain.dto.IoTDbRecordAble; +import com.muyu.event.process.iotdb.domain.dto.MeasurementSchemaValuesDTO; +import org.apache.iotdb.common.rpc.thrift.TAggregationType; +import org.apache.iotdb.isession.SessionDataSet; +import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; +import org.apache.iotdb.tsfile.write.record.Tablet; +import org.apache.iotdb.tsfile.write.schema.MeasurementSchema; + +import java.util.List; +import java.util.Map; + +/** + * @Author: zi run + * @Date 2024/9/28 23:37 + * @Description IoTDB基准业务层 + */ +public interface IService { + + /** + * 插入一个 Tablet 对象到 IoTDB 数据库 + * + * @param tablet 要插入的 Tablet 对象,包含待写入的数据 + */ + void insertTablet(Tablet tablet); + + /** + * 将给定的 Tablets 插入到 IoTDB 数据库中。 + * + * @param tablets 一个 Map,包含要插入的 Tablets + */ + void insertTablets(Map tablets); + + /** + * 单条数据插入(string类型数据项) + * + * @param deviceId 设备名(表名)root.ln.wf01.wt01 + * @param time 时间戳 + * @param measurements 数据项列表 + * @param values 数据项对应值列表 + */ + void insertStringRecord(String deviceId, long time, List measurements, List values); + + /** + * 单条数据插入(不同类型数据项) + * + * @param deviceId 设备名(表名)root.ln.wf01.wt01 + * @param time 时间戳 + * @param measurements 数据项列表 + * @param types 数据项对应类型列表 + * @param values 数据项对应值列表 + */ + void insertRecord(String deviceId, long time, List measurements, + List types, List values); + + /** + * 多个设备多条数据插入(string类型数据项) + * + * @param deviceIds 多个设备名(表名)root.ln.wf01.wt01 + * @param times 时间戳的列表 + * @param measurementsList 数据项列表的列表 + * @param valuesList 数据项对应值列表的列表 + */ + void insertStringRecords(List deviceIds, List times, + List> measurementsList, List> valuesList); + + /** + * 多个设备多条数据插入(不同类型数据项) + * + * @param deviceIds 多个设备名(表名))root.ln.wf01.wt01 + * @param times 时间戳的列表 + * @param measurementsList 数据项列表的列表 + * @param typesList 数据项对应类型列表的列表 + * @param valuesList 数据项对应值列表的列表 + */ + void insertRecords(List deviceIds, List times, List> measurementsList, + List> typesList, List> valuesList); + + /** + * 单个设备多条数据插入(string类型数据项) + * + * @param deviceId 单个设备名(表名))root.ln.wf01.wt01 + * @param times 时间戳的列表 + * @param measurementsList 数据项列表的列表 + * @param valuesList 数据项对应值列表的列表 + */ + void insertStringRecordsOfOneDevice(String deviceId, List times, + List> measurementsList, List> valuesList); + + /** + * 单个设备多条数据插入(不同类型数据项) + * + * @param deviceId 单个设备名(表名))root.ln.wf01.wt01 + * @param times 时间戳的列表 + * @param measurementsList 数据项列表的列表 + * @param typesList 数据项对应类型列表的列表 + * @param valuesList 数据项对应值列表的列表 + */ + void insertRecordsOfOneDevice(String deviceId, List times, List> measurementsList, + List> typesList, List> valuesList); + + /** + * 删除数据(删除一个时间序列在某个时间点前或这个时间点的数据) + * + * @param path 单个字段 root.ln.wf01.wt01.temperature + * @param endTime 删除时间点 + */ + void deleteData(String path, long endTime); + + /** + * 删除数据(删除多个时间序列在某个时间点前或这个时间点的数据) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param endTime 删除时间点 + */ + void deleteData(List paths, long endTime); + + /** + * 数据查询(时间序列原始数据范围查询,时间范围为左闭右开区间,包含开始时间但不包含结束时间) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param outTime 超时时间 + * @return SessionDataSet (Time,paths) + */ + SessionDataSet executeRawDataQuery(List paths, long startTime, long endTime, long outTime); + + /** + * 数据查询(时间序列原始数据范围查询,时间范围为左闭右开区间,包含开始时间但不包含结束时间) + * + * @param paths 多个字段(表名),例如:"root.ln.wf01.wt01.temperature" + * @param startTime 查询数据的起始时间(包含该时间点) + * @param endTime 查询数据的结束时间(不包含该时间点) + * @param outTime 超时时间,单位为毫秒,表示查询的最长等待时间 + * @param clazz 返回数据对应的对象类型,要求对象属性与数据库字段名一致 + * @param 返回数据的对象类型泛型 + * @return 查询结果的对象列表,如果查询失败则返回 null + */ + List executeRawDataQuery(List paths, long startTime, long endTime, long outTime, + Class clazz); + + /** + * 最新点查询(查询最后一条时间戳大于等于某个时间点的数据) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param lastTime 结束时间 + * @return SessionDataSet + */ + SessionDataSet executeLastDataQuery(List paths, long lastTime); + + /** + * 最新点查询(查询最后一条时间戳大于等于某个时间点的数据) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param lastTime 结束时间 + * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) + * @return 查询结果的对象列表,如果查询失败则返回 null + * @param 返回数据的对象类型泛型 + */ + List executeLastDataQuery(List paths, long lastTime, Class clazz); + + /** + * 最新点查询(快速查询单设备下指定序列最新点) + * + * @param db root.ln.wf01 + * @param device root.ln.wf01.wt01 + * @param sensors temperature,status(字段名) + * @param isLegalPathNodes true(避免路径校验) + * @return SessionDataSet + */ + SessionDataSet executeLastDataQueryForOneDevice(String db, String device, + List sensors, boolean isLegalPathNodes); + + /** + * 查询单个设备的最新数据(获取指定设备的最新传感器数据) + * + * @param db root.ln.wf01 + * @param device root.ln.wf01.wt01 + * @param sensors temperature,status(字段名) + * @param isLegalPathNodes true(避免路径校验) + * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) + * @return 查询结果的对象列表,如果查询失败则返回 null + * @param 返回数据的对象类型泛型 + */ + List executeLastDataQueryForOneDevice(String db, String device, List sensors, + boolean isLegalPathNodes, Class clazz); + + /** + * 聚合查询 + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT + * @return SessionDataSet + */ + SessionDataSet executeAggregationQuery(List paths, List aggregations); + + /** + * 聚合查询(时间序列原始数据范围查询,时间范围为左闭右开区间,包含开始时间但不包含结束时间) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT + * @param startTime 开始时间(包含) + * @param endTime 结束时间 + * @return SessionDataSet + */ + SessionDataSet executeAggregationQuery(List paths, List aggregations, + long startTime, long endTime); + + /** + * 聚合查询(支持按照时间区间分段查询) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT + * @param startTime 开始时间(包含) + * @param endTime 结束时间 + * @param interval 查询的时间间隔(单位为毫秒) + * @return SessionDataSet + */ + SessionDataSet executeAggregationQuery(List paths, List aggregations, + long startTime, long endTime, long interval); + + /** + * 聚合查询(支持按照时间区间分段查询) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT + * @param startTime 开始时间(包含) + * @param endTime 结束时间 + * @param interval 查询的时间间隔(单位为毫秒) + * @param slidingStep 滑动步长(单位为毫秒) + * @return SessionDataSet + */ + SessionDataSet executeAggregationQuery(List paths, List aggregations, + long startTime, long endTime, long interval, long slidingStep); + + /** + * SQL查询 + * + * @param sql SQL查询语句,支持IotDB的查询语法 + * @return 返回查询结果的 SessionDataSet,如果执行失败则返回 null + */ + SessionDataSet executeQueryStatement(String sql); + + + /** + * SQL非查询 + * + * @param sql SQL查询语句,支持IotDB的查询语法 + */ + void executeNonQueryStatement(String sql); + + /** + * 封装处理数据 + * + * @param sessionDataSet 包含查询结果的SessionDataSet对象 + * @param titleList 列标题列表,用于映射字段名称 + * @return 返回封装后的数据列表,每个 Map 代表一行数据,键为列名,值为对应的字段值 + */ + List> packagingMapData(SessionDataSet sessionDataSet, List titleList); + + /** + * 封装处理数据(不支持聚合查询) + * + * @param sessionDataSet 查询返回的结果集 + * @param titleList 查询返回的结果集内的字段名 + * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) + * @return 返回封装后的对象列表,每个对象对应一行结果集数据 + * @param 返回对象的类型 + */ + List packagingObjectData(SessionDataSet sessionDataSet, List titleList, + Class clazz); + + /** + * 根据对象构建MeasurementSchemas + * + * @param obj 要从中提取字段信息的对象 + * @return 返回一个包含 MeasurementSchema 的列表 + */ + List buildMeasurementSchemas(Object obj); + + /** + * 根据对象构建MeasurementSchemaValuesDTO + * + * @param obj 要从中提取字段信息和对应值的对象 + * @return MeasurementSchemaValuesDTO 对象 + */ + MeasurementSchemaValuesDTO buildMeasurementSchemasAndValues(Object obj); +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/basic/service/impl/ServiceImpl.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/basic/service/impl/ServiceImpl.java new file mode 100644 index 0000000..bc355d9 --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/basic/service/impl/ServiceImpl.java @@ -0,0 +1,765 @@ +package com.muyu.event.process.iotdb.basic.service.impl; + +import com.alibaba.fastjson.JSON; +import com.muyu.event.process.iotdb.basic.config.IoTDBSessionConfig; +import com.muyu.event.process.iotdb.basic.service.IService; +import com.muyu.event.process.iotdb.domain.dto.IoTDbRecordAble; +import com.muyu.event.process.iotdb.domain.dto.MeasurementSchemaValuesDTO; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.apache.iotdb.common.rpc.thrift.TAggregationType; +import org.apache.iotdb.isession.pool.SessionDataSetWrapper; +import org.apache.iotdb.session.pool.SessionPool; +import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; +import org.apache.iotdb.tsfile.read.common.Field; +import org.apache.iotdb.tsfile.read.common.RowRecord; +import org.apache.iotdb.tsfile.write.record.Tablet; +import org.apache.iotdb.isession.SessionDataSet; +import org.apache.iotdb.tsfile.write.schema.MeasurementSchema; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.lang.reflect.Type; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Author: zi run + * @Date 2024/9/28 23:38 + * @Description IoTDB基准业务实现层 + */ +@Slf4j +@Service +public class ServiceImpl implements IService { + + /** + * IoTDB会话配置 + */ + @Autowired + private IoTDBSessionConfig ioTDBSessionConfig; + + /** + * 插入一个 Tablet 对象到 IoTDB 数据库 + * + * @param tablet 要插入的 Tablet 对象,包含待写入的数据 + */ + @Override + public void insertTablet(Tablet tablet) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:tablet:[{}]", tablet); + sessionPool.insertTablet(tablet); + } catch (Exception e) { + log.error("IotDBSession insertTablet失败: tablet={}, error={}", tablet, e.getMessage()); + } + } + + /** + * 将给定的 Tablets 插入到 IoTDB 数据库中。 + * + * @param tablets 一个 Map,包含要插入的 Tablets + */ + @Override + public void insertTablets(Map tablets) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:tablets:[{}]", tablets); + sessionPool.insertTablets(tablets); + } catch (Exception e) { + log.error("IotDBSession insertTablets失败: tablets={}, error={}", tablets, e.getMessage()); + } + } + + /** + * 单条数据插入(string类型数据项) + * + * @param deviceId 设备名(表名)root.ln.wf01.wt01 + * @param time 时间戳 + * @param measurements 数据项列表 + * @param values 数据项对应值列表 + */ + @Override + public void insertStringRecord(String deviceId, long time, List measurements, List values) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:device_id:[{}], measurements:[{}], values:[{}]", deviceId, measurements, values); + sessionPool.insertRecord(deviceId, time, measurements, values); + } catch (Exception e) { + log.error("IotDBSession insertRecord失败: deviceId={}, time={}, measurements={}, values={}, error={}", + deviceId, time, measurements, values, e.getMessage()); + } + } + + /** + * 单条数据插入(不同类型数据项) + * + * @param deviceId 设备名(表名)root.ln.wf01.wt01 + * @param time 时间戳 + * @param measurements 数据项列表 + * @param types 数据项对应类型列表 + * @param values 数据项对应值列表 + */ + @Override + public void insertRecord(String deviceId, long time, List measurements, + List types, List values) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:device_id:[{}], measurements:[{}], types:[{}], values:[{}]", + deviceId, measurements, types, values); + sessionPool.insertRecord(deviceId, time, measurements, types, values); + } catch (Exception e) { + log.error("IotDBSession insertRecordHasTypes失败: deviceId={}, time={}, measurements={}, types={}, " + + "values={}, error={}", deviceId, time, measurements, types, values, e.getMessage()); + } + } + + + /** + * 多个设备多条数据插入(string类型数据项) + * + * @param deviceIds 多个设备名(表名)root.ln.wf01.wt01 + * @param times 时间戳的列表 + * @param measurementsList 数据项列表的列表 + * @param valuesList 数据项对应值列表的列表 + */ + @Override + public void insertStringRecords(List deviceIds, List times, List> measurementsList, + List> valuesList) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:deviceIds:[{}], measurementsList:[{}], valuesList:[{}]", + deviceIds, measurementsList, valuesList); + sessionPool.insertRecords(deviceIds, times, measurementsList, valuesList); + } catch (Exception e) { + log.error("IotDBSession insertRecords失败: deviceIds={}, times={}, measurementsList={}, " + + "valuesList={}, error={}", deviceIds, times, measurementsList, valuesList, e.getMessage()); + } + } + + /** + * 多个设备多条数据插入(不同类型数据项) + * + * @param deviceIds 多个设备名(表名))root.ln.wf01.wt01 + * @param times 时间戳的列表 + * @param measurementsList 数据项列表的列表 + * @param typesList 数据项对应类型列表的列表 + * @param valuesList 数据项对应值列表的列表 + */ + @Override + public void insertRecords(List deviceIds, List times, List> measurementsList, + List> typesList, List> valuesList) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:deviceIds:[{}], measurementsList:[{}], typesList:[{}], valuesList:[{}]", + deviceIds, measurementsList, typesList, valuesList); + sessionPool.insertRecords(deviceIds, times, measurementsList, typesList, valuesList); + } catch (Exception e) { + log.error("IotDBSession insertRecords失败: deviceIds={}, times={}, measurementsList={}, typesList={}, " + + "valuesList={}, error={}", + deviceIds, times, measurementsList, typesList, valuesList, e.getMessage()); + } + } + + /** + * 单个设备多条数据插入(string类型数据项) + * + * @param deviceId 单个设备名(表名))root.ln.wf01.wt01 + * @param times 时间戳的列表 + * @param measurementsList 数据项列表的列表 + * @param valuesList 数据项对应值列表的列表 + */ + @Override + public void insertStringRecordsOfOneDevice(String deviceId, List times, List> measurementsList, + List> valuesList) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:deviceId:[{}], measurementsList:[{}], valuesList:[{}]", + deviceId, measurementsList, valuesList); + sessionPool.insertStringRecordsOfOneDevice(deviceId, times, measurementsList, valuesList); + } catch (Exception e) { + log.error("IotDBSession insertStringRecordsOfOneDevice失败: deviceId={}, times={}, " + + "measurementsList={}, valuesList={}, error={}", + deviceId, times, measurementsList, valuesList, e.getMessage()); + } + } + + /** + * 单个设备多条数据插入(不同类型数据项) + * + * @param deviceId 单个设备名(表名))root.ln.wf01.wt01 + * @param times 时间戳的列表 + * @param measurementsList 数据项列表的列表 + * @param typesList 数据项对应类型列表的列表 + * @param valuesList 数据项对应值列表的列表 + */ + @Override + public void insertRecordsOfOneDevice(String deviceId, List times, List> measurementsList, + List> typesList, List> valuesList) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:deviceId:[{}], measurementsList:[{}], typesList:[{}], valuesList:[{}]", + deviceId, measurementsList, typesList, valuesList); + sessionPool.insertRecordsOfOneDevice(deviceId, times, measurementsList, typesList, valuesList); + } catch (Exception e) { + log.error("IotDBSession insertRecordsOfOneDevice失败: deviceId={}, times={}, " + + "measurementsList={},typesList={},valuesList={}, error={}", + deviceId, times, measurementsList, typesList, valuesList, e.getMessage()); + } + } + + /** + * 删除数据(删除一个时间序列在某个时间点前或这个时间点的数据) + * + * @param path 单个字段 root.ln.wf01.wt01.temperature + * @param endTime 删除时间点 + */ + @Override + public void deleteData(String path, long endTime) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据删除:path:[{}], endTime:[{}]", path, endTime); + sessionPool.deleteData(path, endTime); + } catch (Exception e) { + log.error("IotDBSession deleteData失败: deviceId={}, times={},error={}", path, endTime, e.getMessage()); + } + } + + /** + * 删除数据(删除多个时间序列在某个时间点前或这个时间点的数据) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param endTime 删除时间点 + */ + @Override + public void deleteData(List paths, long endTime) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据删除:paths:[{}], endTime:[{}]", paths, endTime); + sessionPool.deleteData(paths, endTime); + } catch (Exception e) { + log.error("IotDBSession deleteData失败: paths={}, times={},error={}", paths, endTime, e.getMessage()); + } + } + + /** + * 数据查询(时间序列原始数据范围查询,时间范围为左闭右开区间,包含开始时间但不包含结束时间) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param outTime 超时时间 + * @return SessionDataSet (Time,paths) + */ + @Override + public SessionDataSet executeRawDataQuery(List paths, long startTime, long endTime, long outTime) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + try { + log.info("iotdb数据查询:paths:[{}], startTime:[{}], endTime:[{}],outTime:[{}]", + paths, startTime, endTime, outTime); + sessionDataSetWrapper = sessionPool.executeRawDataQuery(paths, startTime, endTime, outTime); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeRawDataQuery失败: paths={}, startTime:[{}], endTime:[{}], " + + "outTime:[{}], error={}", paths, startTime, endTime, outTime, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * 数据查询(时间序列原始数据范围查询,时间范围为左闭右开区间,包含开始时间但不包含结束时间) + * + * @param paths 多个字段(表名),例如:"root.ln.wf01.wt01.temperature" + * @param startTime 查询数据的起始时间(包含该时间点) + * @param endTime 查询数据的结束时间(不包含该时间点) + * @param outTime 超时时间,单位为毫秒,表示查询的最长等待时间 + * @param clazz 返回数据对应的对象类型,要求对象属性与数据库字段名一致 + * @param 返回数据的对象类型泛型 + * @return 查询结果的对象列表,如果查询失败则返回 null + */ + @Override + public List executeRawDataQuery(List paths, long startTime, long endTime, long outTime, + Class clazz) { + SessionDataSet sessionDataSet = executeRawDataQuery(paths, startTime, endTime, outTime); + List columnNames = sessionDataSet.getColumnNames(); + List resultEntities = null; + try { + resultEntities = packagingObjectData(sessionDataSet, columnNames, clazz); + } catch (Exception e) { + log.error("IotDBSession executeRawDataQuery失败: paths={}, startTime:[{}], endTime:[{}], " + + "outTime:[{}], error={}", paths, startTime, endTime, outTime, e.getMessage()); + } + return resultEntities; + } + + /** + * 最新点查询(查询最后一条时间戳大于等于某个时间点的数据) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param lastTime 结束时间 + * @return SessionDataSet + */ + @Override + public SessionDataSet executeLastDataQuery(List paths, long lastTime) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + try { + log.info("iotdb数据查询:paths:[{}], lastTime:[{}]", paths, lastTime); + sessionDataSetWrapper = sessionPool.executeLastDataQuery(paths, lastTime); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeLastDataQuery失败: paths={}, lastTime:[{}], error={}", + paths, lastTime, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * 最新点查询(查询最后一条时间戳大于等于某个时间点的数据) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param lastTime 结束时间 + * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) + * @return 查询结果的对象列表,如果查询失败则返回 null + * @param 返回数据的对象类型泛型 + */ + @Override + public List executeLastDataQuery(List paths, long lastTime, Class clazz) { + SessionDataSet sessionDataSet = executeLastDataQuery(paths, lastTime); + List columnNames = sessionDataSet.getColumnNames(); + List resultEntities = null; + try { + resultEntities = packagingObjectData(sessionDataSet, columnNames, clazz); + } catch (Exception e) { + log.error("IotDBSession executeLastDataQuery失败: paths={}, lastTime:[{}], error={}", + paths, lastTime, e.getMessage()); + } + return resultEntities; + } + + /** + * 最新点查询(快速查询单设备下指定序列最新点) + * + * @param db root.ln.wf01 + * @param device root.ln.wf01.wt01 + * @param sensors temperature,status(字段名) + * @param isLegalPathNodes true(避免路径校验) + * @return SessionDataSet + */ + @Override + public SessionDataSet executeLastDataQueryForOneDevice(String db, String device, List sensors, + boolean isLegalPathNodes) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + try { + log.info("iotdb数据查询:db:[{}], device:[{}],sensors:[{}], isLegalPathNodes:[{}]", + db, device, sensors, isLegalPathNodes); + sessionDataSetWrapper = sessionPool.executeLastDataQueryForOneDevice(db, device, sensors, isLegalPathNodes); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeLastDataQueryForOneDevice失败: db:[{}], device:[{}], sensors:[{}], " + + "isLegalPathNodes:[{}], error={}", db, device, sensors, isLegalPathNodes, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * 查询单个设备的最新数据(获取指定设备的最新传感器数据) + * + * @param db root.ln.wf01 + * @param device root.ln.wf01.wt01 + * @param sensors temperature,status(字段名) + * @param isLegalPathNodes true(避免路径校验) + * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) + * @return 查询结果的对象列表,如果查询失败则返回 null + * @param 返回数据的对象类型泛型 + */ + @Override + public List executeLastDataQueryForOneDevice(String db, String device, List sensors, + boolean isLegalPathNodes, + Class clazz) { + SessionDataSet sessionDataSet = executeLastDataQueryForOneDevice(db, device, sensors, isLegalPathNodes); + List columnNames = sessionDataSet.getColumnNames(); + List resultEntities = null; + try { + resultEntities = packagingObjectData(sessionDataSet, columnNames, clazz); + } catch (Exception e) { + log.error("IotDBSession executeLastDataQueryForOneDevice失败: db:[{}], device:[{}],sensors:[{}], " + + "isLegalPathNodes:[{}], error={}", db, device, sensors, isLegalPathNodes, e.getMessage()); + } + return resultEntities; + } + + /** + * 聚合查询 + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT + * @return SessionDataSet + */ + @Override + public SessionDataSet executeAggregationQuery(List paths, List aggregations) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + try { + log.info("iotdb聚合查询:paths:[{}], aggregations:[{}]", paths, aggregations); + sessionDataSetWrapper = sessionPool.executeAggregationQuery(paths, aggregations); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeAggregationQuery失败: paths:[{}], aggregations:[{}] ,error={}", + paths, aggregations, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * 聚合查询(时间序列原始数据范围查询,时间范围为左闭右开区间,包含开始时间但不包含结束时间) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT + * @param startTime 开始时间(包含) + * @param endTime 结束时间 + * @return SessionDataSet + */ + @Override + public SessionDataSet executeAggregationQuery(List paths, List aggregations, + long startTime, long endTime) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + try { + log.info("iotdb聚合查询:paths:[{}], aggregations:[{}],startTime:[{}], endTime:[{}]", + paths, aggregations, startTime, endTime); + sessionDataSetWrapper = sessionPool.executeAggregationQuery(paths, aggregations, startTime, endTime); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeAggregationQuery失败: paths:[{}], aggregations:[{}], " + + "startTime:[{}], endTime:[{}],error={}", paths, aggregations, startTime, endTime, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * 聚合查询(支持按照时间区间分段查询) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT + * @param startTime 开始时间(包含) + * @param endTime 结束时间 + * @param interval 查询的时间间隔(单位为毫秒) + * @return SessionDataSet + */ + @Override + public SessionDataSet executeAggregationQuery(List paths, List aggregations, + long startTime, long endTime, long interval) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + try { + log.info("iotdb聚合查询:paths:[{}], aggregations:[{}],startTime:[{}], endTime:[{}] ,interval:[{}]", + paths, aggregations, startTime, endTime, interval); + sessionDataSetWrapper = sessionPool.executeAggregationQuery( + paths, aggregations, startTime, endTime, interval + ); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeAggregationQuery失败: paths:[{}], aggregations:[{}] , " + + "startTime:[{}], endTime:[{}], interval:[{}], error={}", + paths, aggregations, startTime, endTime, interval, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * 聚合查询(支持按照时间区间分段查询) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT + * @param startTime 开始时间(包含) + * @param endTime 结束时间 + * @param interval 查询的时间间隔(单位为毫秒) + * @param slidingStep 滑动步长(单位为毫秒) + * @return SessionDataSet + */ + @Override + public SessionDataSet executeAggregationQuery(List paths, List aggregations, + long startTime, long endTime, long interval, long slidingStep) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + + try { + log.info("iotdb聚合查询:paths:[{}], aggregations:[{}],startTime:[{}], endTime:[{}] ,interval:[{}], " + + "slidingStep:[{}]", paths, aggregations, startTime, endTime, interval, slidingStep); + sessionDataSetWrapper = sessionPool.executeAggregationQuery(paths, aggregations, startTime, endTime, + interval, slidingStep); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeAggregationQuery失败: paths:[{}], aggregations:[{}] , " + + "startTime:[{}], endTime:[{}], interval:[{}], slidingStep:[{}] ,error={}", + paths, aggregations, startTime, endTime, interval, slidingStep, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * SQL查询 + * + * @param sql SQL查询语句,支持IotDB的查询语法 + * @return 返回查询结果的 SessionDataSet,如果执行失败则返回 null + */ + @Override + public SessionDataSet executeQueryStatement(String sql) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + + try { + log.info("iotdb SQL查询:sql:[{}]", sql); + sessionDataSetWrapper = sessionPool.executeQueryStatement(sql); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeQueryStatement失败:sql:[{}],error={}", sql, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * SQL非查询 + * + * @param sql SQL查询语句,支持IotDB的查询语法 + */ + @Override + public void executeNonQueryStatement(String sql) { + SessionPool sessionPool = ioTDBSessionConfig.getSessionPool(); + try { + log.info("iotdb SQL无查询:sql:[{}]", sql); + sessionPool.executeNonQueryStatement(sql); + } catch (Exception e) { + log.error("IotDBSession executeNonQueryStatement失败:sql:[{}],error={}", sql, e.getMessage()); + } + } + + /** + * 封装处理数据 + * + * @param sessionDataSet 包含查询结果的SessionDataSet对象 + * @param titleList 列标题列表,用于映射字段名称 + * @return 返回封装后的数据列表,每个 Map 代表一行数据,键为列名,值为对应的字段值 + */ + @SneakyThrows + @Override + public List> packagingMapData(SessionDataSet sessionDataSet, List titleList) { + int fetchSize = sessionDataSet.getFetchSize(); + List> resultList = new ArrayList<>(); + titleList.remove("Time"); + if (fetchSize > 0) { + while (sessionDataSet.hasNext()) { + Map resultMap = new HashMap<>(); + RowRecord next = sessionDataSet.next(); + List fields = next.getFields(); + String timeString = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss") + .format(next.getTimestamp()); + resultMap.put("time", timeString); + for (int i = 0; i < fields.size(); i++) { + Field field = fields.get(i); + if (field.getDataType() == null || field.getObjectValue(field.getDataType()) == null) { + resultMap.put(splitString(titleList.get(i)), null); + } else { + resultMap.put(splitString(titleList.get(i)), + field.getObjectValue(field.getDataType()).toString()); + } + } + resultList.add(resultMap); + } + } + return resultList; + } + + /** + * 封装处理数据(不支持聚合查询) + * + * @param sessionDataSet 查询返回的结果集 + * @param titleList 查询返回的结果集内的字段名 + * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) + * @return 返回封装后的对象列表,每个对象对应一行结果集数据 + * @param 返回对象的类型 + */ + @SneakyThrows + @Override + public List packagingObjectData(SessionDataSet sessionDataSet, List titleList, + Class clazz) { + int fetchSize = sessionDataSet.getFetchSize(); + List resultList = new ArrayList<>(); + titleList.remove("Time"); + if (fetchSize > 0) { + while (sessionDataSet.hasNext()) { + Map resultMap = new HashMap<>(); + RowRecord next = sessionDataSet.next(); + List fields = next.getFields(); + String timeString = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss") + .format(next.getTimestamp()); + resultMap.put("time", timeString); + if (titleList.stream().anyMatch(str -> str.contains("."))) { + for (int i = 0; i < fields.size(); i++) { + Field field = fields.get(i); + String title = titleList.get(i); + if (field.getDataType() == null || field.getObjectValue(field.getDataType()) == null) { + resultMap.put(splitString(title), null); + } else { + resultMap.put(splitString(title), field.getObjectValue(field.getDataType()).toString()); + } + } + } else { + Field fieldName = fields.get(0); + Field fieldValue = fields.get(1); + Field fieldDataType = fields.get(2); + if (fieldName.getDataType() != null && fieldName.getObjectValue(fieldName.getDataType()) != null) { + String mapKey = fieldName.getObjectValue(fieldName.getDataType()).toString(); + Object mapValue = convertStringToType( + fieldValue.getObjectValue(fieldValue.getDataType()).toString(), + fieldDataType.getObjectValue(fieldDataType.getDataType()).toString() + ); + resultMap.put(splitString(mapKey), mapValue); + } + } + + String jsonString = JSON.toJSONString(resultMap); + resultList.add(JSON.parseObject(jsonString, (Type) clazz)); + } + } + return resultList; + } + + /** + * 分割获取字段名 + * + * @param str 输入的字符串 + * @return 字段名 + */ + public static String splitString(String str) { + String[] parts = str.split("\\."); + if (parts.length <= 0) { + return str; + } else { + return parts[parts.length - 1]; + } + } + + /** + * 根据数据值和数据类型返回对应数据类型数据 + * + * @param value 数据值 + * @param typeName 数据类型 + * @return 转换后的数据值 + */ + public static Object convertStringToType(String value, String typeName) { + String type = typeName.toLowerCase(); + if (type.isEmpty()) { + return value; + } + if ("boolean".equals(type)) { + return Boolean.parseBoolean(value); + } else if ("double".equals(type)) { + return Double.parseDouble(value); + } else if ("int32".equals(type)) { + return Integer.parseInt(value); + } else if ("int64".equals(type)) { + return Long.parseLong(value); + } else if ("float".equals(type)) { + return Float.parseFloat(value); + } else if ("text".equals(type)) { + return value; + } else { + return value; + } + } + + /** + * 根据对象属性的数据类型返回对应的TSDataType + * + * @param type 属性的数据类型 + * @return TSDataType + */ + public static TSDataType getTsDataTypeByString(String type) { + String typeName = splitString(type).toLowerCase(); + if ("boolean".equals(typeName)) { + return TSDataType.BOOLEAN; + } else if ("double".equals(typeName)) { + return TSDataType.DOUBLE; + } else if ("int".equals(typeName) || "integer".equals(typeName)) { + return TSDataType.INT32; + } else if ("long".equals(typeName)) { + return TSDataType.INT64; + } else if ("float".equals(typeName)) { + return TSDataType.FLOAT; + } else if ("text".equals(typeName)) { + return TSDataType.TEXT; + } else if ("string".equals(typeName)) { + return TSDataType.TEXT; + } else { + return TSDataType.UNKNOWN; + } + } + + /** + * 根据对象构建MeasurementSchemas + * + * @param obj 要从中提取字段信息的对象 + * @return 返回一个包含 MeasurementSchema 的列表 + */ + @Override + public List buildMeasurementSchemas(Object obj) { + java.lang.reflect.Field[] fields = obj.getClass().getDeclaredFields(); + List schemaList = Arrays.stream(fields).map(field -> + new MeasurementSchema(field.getName(), + getTsDataTypeByString( + field.getType().getName() + ))). + collect(Collectors.toList()); + return schemaList; + } + + /** + * 根据对象构建MeasurementSchemaValuesDTO + * + * @param obj 要从中提取字段信息和对应值的对象 + * @return MeasurementSchemaValuesDTO 对象 + */ + @SneakyThrows + @Override + public MeasurementSchemaValuesDTO buildMeasurementSchemasAndValues(Object obj) { + MeasurementSchemaValuesDTO measurementSchemaValuesDTO = new MeasurementSchemaValuesDTO(); + java.lang.reflect.Field[] fields = obj.getClass().getDeclaredFields(); + List schemaList = new ArrayList<>(); + List values = new ArrayList<>(); + List valuesIsNullIndex = new ArrayList<>(); + int valueIndex = 0; + for (java.lang.reflect.Field field : fields) { + MeasurementSchema measurementSchema = new MeasurementSchema(field.getName(), + getTsDataTypeByString(field.getType().getName())); + schemaList.add(measurementSchema); + Object value = field.get(obj); + if (value == null) { + valuesIsNullIndex.add(valueIndex); + } + values.add(value); + valueIndex++; + } + measurementSchemaValuesDTO.setSchemaList(schemaList); + measurementSchemaValuesDTO.setValues(values); + return measurementSchemaValuesDTO; + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/DataJSON.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/DataJSON.java new file mode 100644 index 0000000..fcd4aac --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/DataJSON.java @@ -0,0 +1,33 @@ +package com.muyu.event.process.iotdb.domain; + +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; + +/** + * @Author: zi run + * @Date 2024/9/29 0:11 + * @Description JSON数据对象 + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +@Tag(name = "ionDB数据源对象") +public class DataJSON { + + /** + * 时间戳 + */ + @Schema(name = "时间戳") + private Long timestamp; + + /** + * 车辆JSON数据 + */ + @Schema(name = "车辆JSON数据") + private String datasource; +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/ResultEntity.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/ResultEntity.java new file mode 100644 index 0000000..ad159a6 --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/ResultEntity.java @@ -0,0 +1,36 @@ +package com.muyu.event.process.iotdb.domain; + +import com.muyu.event.process.iotdb.domain.dto.IoTDbRecordAble; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @Author: zi run + * @Date 2024/9/29 0:18 + * @Description 结果实体 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ResultEntity extends IoTDbRecordAble { + + /** + * 温度值 + */ + private Float temperature; + + /** + * 硬件标识 + */ + private String hardware; + + /** + * 状态标识 + */ + private Boolean status; + + /** + * 时间 + */ + private String time; + +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/TestDataType.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/TestDataType.java new file mode 100644 index 0000000..eef2853 --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/TestDataType.java @@ -0,0 +1,43 @@ +package com.muyu.event.process.iotdb.domain; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author: zi run + * @Date 2024/9/29 0:22 + * @Description 测试数据类型 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class TestDataType { + + /** + * 温度值 + */ + private Float temperature; + + /** + * 硬件标识 + */ + private String hardware; + + /** + * 状态标识 + */ + private Boolean status; + + /** + * 测试Double类型 + */ + private Double testDouble; + + /** + * 测试Long类型 + */ + private Long testLong; +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/dto/InsertDataDTO.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/dto/InsertDataDTO.java new file mode 100644 index 0000000..15b6cc2 --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/dto/InsertDataDTO.java @@ -0,0 +1,67 @@ +package com.muyu.event.process.iotdb.domain.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author: zi run + * @Date 2024/9/29 0:12 + * @Description 插入数据 数据转换对象 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class InsertDataDTO { + + /** + * 温度值 + */ + private Float temperature; + + /** + * 硬件标识 + */ + private String hardware; + + /** + * 状态标识 + */ + private Boolean status; + + /** + * 创建一个单一的InsertDataDTO实例,并设置默认值。 + * + * @return 一个配置好的InsertDataDTO对象 + */ + public InsertDataDTO buildOne() { + InsertDataDTO insertDataDTO = new InsertDataDTO(); + insertDataDTO.setHardware("ss"); + insertDataDTO.setStatus(true); + insertDataDTO.setTemperature(12.0F); + return insertDataDTO; + } + + /** + * 创建一个单一的InsertDataDTO实例,并设置默认值。 + * + * @return 一个配置好的InsertDataDTO对象 + */ + public List buildList() { + List insertDataDTOS = new ArrayList<>(); + int buildNum = 10; + for (int i = 0; i < buildNum; i++) { + InsertDataDTO insertDataDTO = new InsertDataDTO(); + insertDataDTO.setHardware(i % 2 == 0 ? "pp" + i : null); + insertDataDTO.setStatus(i % 2 == 0); + insertDataDTO.setTemperature(12.0F + i); + insertDataDTOS.add(insertDataDTO); + } + return insertDataDTOS; + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/dto/IoTDbRecordAble.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/dto/IoTDbRecordAble.java new file mode 100644 index 0000000..5b8ad62 --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/dto/IoTDbRecordAble.java @@ -0,0 +1,12 @@ +package com.muyu.event.process.iotdb.domain.dto; + +import lombok.Data; + +/** + * @Author: zi run + * @Date 2024/9/29 0:23 + * @Description IoTDB数据库记录对象 + */ +@Data +public class IoTDbRecordAble { +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/dto/MeasurementSchemaValuesDTO.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/dto/MeasurementSchemaValuesDTO.java new file mode 100644 index 0000000..f04a72b --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/domain/dto/MeasurementSchemaValuesDTO.java @@ -0,0 +1,36 @@ +package com.muyu.event.process.iotdb.domain.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import org.apache.iotdb.tsfile.write.schema.MeasurementSchema; + +import java.util.List; + +/** + * @Author: zi run + * @Date 2024/9/29 0:26 + * @Description 测量模式及其对应的值 数据传输对象 + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class MeasurementSchemaValuesDTO { + + /** + * 测量模式列表,每个元素表示一个测量的定义,包括名称、数据类型等信息。 + */ + private List schemaList; + + /** + * 对应于测量模式的实际值列表,存储与 schemaList 中每个测量相对应的值。 + */ + private List values; + + /** + * 存储值为空的索引列表 + */ + private List valueIsNullIndex; +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/service/IoTDBService.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/service/IoTDBService.java new file mode 100644 index 0000000..b473acf --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/service/IoTDBService.java @@ -0,0 +1,11 @@ +package com.muyu.event.process.iotdb.service; + +import com.muyu.event.process.iotdb.basic.service.IService; + +/** + * @Author: zi run + * @Date 2024/9/29 22:38 + * @Description IoTDB业务层 + */ +public interface IoTDBService extends IService { +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/service/TestIoTDBService.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/service/TestIoTDBService.java new file mode 100644 index 0000000..84302bd --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/service/TestIoTDBService.java @@ -0,0 +1,20 @@ +package com.muyu.event.process.iotdb.service; + +import com.muyu.event.process.iotdb.basic.service.IService; + +import java.util.List; +import java.util.Map; + +/** + * @Author: zi run + * @Date 2024/9/29 17:23 + * @Description 测试IoTDB业务层 + */ +public interface TestIoTDBService extends IService { + + /** + * 查询IoTDB数据列表 + * @return 返回结果 + */ + List> list(); +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/service/impl/IoTDBServiceImpl.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/service/impl/IoTDBServiceImpl.java new file mode 100644 index 0000000..3167618 --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/service/impl/IoTDBServiceImpl.java @@ -0,0 +1,14 @@ +package com.muyu.event.process.iotdb.service.impl; + +import com.muyu.event.process.iotdb.basic.service.impl.ServiceImpl; +import com.muyu.event.process.iotdb.service.IoTDBService; +import org.springframework.stereotype.Service; + +/** + * @Author: zi run + * @Date 2024/9/29 22:39 + * @Description IoTDB业务实现层 + */ +@Service +public class IoTDBServiceImpl extends ServiceImpl implements IoTDBService { +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/service/impl/TestIoTDBServiceImpl.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/service/impl/TestIoTDBServiceImpl.java new file mode 100644 index 0000000..21dde1d --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/iotdb/service/impl/TestIoTDBServiceImpl.java @@ -0,0 +1,33 @@ +package com.muyu.event.process.iotdb.service.impl; + +import com.muyu.event.process.iotdb.basic.service.impl.ServiceImpl; +import com.muyu.event.process.iotdb.service.TestIoTDBService; +import lombok.extern.slf4j.Slf4j; +import org.apache.iotdb.isession.SessionDataSet; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +/** + * @Author: zi run + * @Date 2024/9/29 17:24 + * @Description 测试IoTDB业务实现层 + */ +@Slf4j +@Service +public class TestIoTDBServiceImpl extends ServiceImpl implements TestIoTDBService { + + /** + * 查询IoTDB数据列表 + * @return 返回结果 + */ + @Override + public List> list() { + String sql = "select * from root.test"; + SessionDataSet sessionDataSet = this.executeQueryStatement(sql); + List> list = this.packagingMapData(sessionDataSet, sessionDataSet.getColumnTypes()); + log.info("查询IoTDB数据为:{}", list.toString()); + return list; + } +} diff --git a/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/listener/IoTDBInsertDataListener.java b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/listener/IoTDBInsertDataListener.java new file mode 100644 index 0000000..0c0f96c --- /dev/null +++ b/cloud-modules/cloud-modules-event-process/src/test/java/com/muyu/event/process/listener/IoTDBInsertDataListener.java @@ -0,0 +1,68 @@ +package com.muyu.event.process.listener; + +import com.alibaba.fastjson2.JSONObject; +import com.muyu.event.process.basic.BasicEvent; +import com.muyu.event.process.basic.BasicEventListener; +import com.muyu.event.process.event.IoTDBInsertDataEvent; +import com.muyu.event.process.iotdb.service.IoTDBService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author: zi run + * @Date 2024/9/29 22:12 + * @Description 向IoTDB插入数据事件监听器 + */ +@Component +@RequiredArgsConstructor +public class IoTDBInsertDataListener implements BasicEventListener { + + /** + * IoTDB业务层 + */ + private final IoTDBService ioTDBService; + + /** + * 设备名(表名) + */ + private static final String DEVICE_ID = "root.vehicle"; + + /** + * 处理接收到的事件,将数据插入到 IoTDB + * + * @param event 接收到的事件,包含需要插入的数据 + */ + @Override + public void onEvent(BasicEvent event) { + JSONObject data = JSONObject.parseObject(event.getData()); + List keyList = extractKeys(data); + List valueList = extractValues(data); + ioTDBService.insertStringRecord(DEVICE_ID, System.currentTimeMillis(), keyList, valueList); + } + + /** + * 从给定的JSONObject中提取所有的键 + * + * @param data 要提取键的JSONObject + * @return 键的列表 + */ + private List extractKeys(JSONObject data) { + return data.keySet().stream().collect(Collectors.toList()); + } + + /** + * 从给定的 JSONObject 中提取所有的值,并将其转换为字符串 + * + * @param data 要提取值的JSONObject + * @return 值的列表,以字符串形式表示 + */ + private List extractValues(JSONObject data) { + return data.values().stream() + .map(Object::toString) + .collect(Collectors.toList()); + } +}