Merge branch 'dev.yang'

master
Yueng 2024-09-27 11:01:15 +08:00
commit 5b1c1a27a9
66 changed files with 2973 additions and 0 deletions

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.muyu</groupId>
<artifactId>cloud-common</artifactId>
<version>3.6.3</version>
</parent>
<artifactId>cloud-electronic-common</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- MuYu Common Core-->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-common-core</artifactId>
</dependency>
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-annotations-jakarta</artifactId>
<version>2.2.8</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,104 @@
package com.muyu.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import lombok.experimental.SuperBuilder;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.domain
* @Projectcloud-electronic
* @nameCarFence
* @Date2024/9/17 16:08
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Tag(name = "车辆电子围栏类")
@TableName(value = "car_fence",autoResultMap = true)
public class CarFence {
/**
*
*/
@TableId(value = "id",type = IdType.AUTO)
private Integer id;
/**
*
*/
private String name;
/**
* ID
*/
private Integer clazzId;
/**
*
*/
@TableField(exist = false)
private String clazzName;
/**
* ID
*/
private Integer typeId;
/**
*
*/
@TableField(exist = false)
private String typeName;
/**
*
*/
private String fenceText;
/**
*
*/
@DateTimeFormat(fallbackPatterns = "yyyy-MM-dd hh:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private Date fenceStart;
/**
*
*/
@DateTimeFormat(fallbackPatterns = "yyyy-MM-dd hh:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private Date fenceEnd;
/**
*
*/
@DateTimeFormat(fallbackPatterns = "yyyy/MM/dd hh:mm:ss")
@JsonFormat(pattern = "yyyy/MM/dd hh:mm:ss")
private Date fenceCreate;
/**
* ID
*/
private Integer middleId;
/**
*
*/
@TableField(exist = false)
private List<CarFenceGroup> carFenceGroups;
public static CarFence carFenceBuild(CarFence carFence) {
return CarFence.builder()
.id(carFence.getId())
.name(carFence.getName())
.clazzId(carFence.getClazzId())
.typeId(carFence.getTypeId())
.fenceText(carFence.getFenceText())
.fenceStart(carFence.getFenceStart())
.fenceCreate(carFence.getFenceCreate())
.middleId(carFence.getMiddleId())
.build();
}
}

View File

@ -0,0 +1,39 @@
package com.muyu.domain;
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;
/**
* @Authoryang
* @Packagecom.muyu.domain
* @Projectcloud-electronic
* @nameCarFenceClazz
* @Date2024/9/17 16:41
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Tag(name = "车辆电子业务类型")
@TableName(value = "car_fence_clazz",autoResultMap = true)
public class CarFenceClazz {
/**
* ID
*/
private Integer clazzId;
/**
*
*/
private String clazzName;
public static CarFenceClazz carFenceClazzBuild(CarFenceClazz carFenceClazz) {
return CarFenceClazz.builder()
.clazzId(carFenceClazz.getClazzId())
.clazzName(carFenceClazz.getClazzName())
.build();
}
}

View File

@ -0,0 +1,54 @@
package com.muyu.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;
/**
* @Authoryang
* @Packagecom.muyu.domain
* @Projectcloud-server-8
* @namecarFenceGroup
* @Date2024/9/22 10:20
*/
//weilabzu
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Tag(name = "车辆电子业务类型")
@TableName(value = "car_fence_group",autoResultMap = true)
public class CarFenceGroup {
/**
* ID
*/
@TableId(value = "id",type = IdType.AUTO)
private Integer id;
/**
*
*/
private Integer priority;
/**
*
*/
private String status;
/**
*
*/
private String groupType;
public static CarFenceGroup carFenceBuild(CarFenceGroup carFenceGroup) {
return CarFenceGroup.builder()
.id(carFenceGroup.getId())
.priority(carFenceGroup.getPriority())
.status(carFenceGroup.getStatus())
.groupType(carFenceGroup.getGroupType())
.build();
}
}

View File

@ -0,0 +1,39 @@
package com.muyu.domain;
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;
/**
* @Authoryang
* @Packagecom.muyu.domain
* @Projectcloud-electronic
* @nameType
* @Date2024/9/17 16:40
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Tag(name = "车辆电子围栏类型")
@TableName(value = "car_fence_type",autoResultMap = true)
public class CarFenceType {
/**
* ID
*/
private Integer typeId;
/**
*
*/
private String typeName;
public static CarFenceType carFenceTypeBuild(CarFenceType carFenceType) {
return CarFenceType.builder()
.typeId(carFenceType.getTypeId())
.typeName(carFenceType.getTypeName())
.build();
}
}

View File

@ -0,0 +1,83 @@
package com.muyu.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @Authoryang
* @Packagecom.muyu.domain
* @Projectcloud-server-8
* @nameCarInformation
* @Date2024/9/22 22:18
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Tag(name = "车辆表")
@TableName(value = "car_information",autoResultMap = true)
public class CarInformation {
/**
* ID
*/
@TableId(value = "car_information_id",type = IdType.AUTO)
private Integer carInformationId;
/**
* VIN
*/
// @TableName(value = "car_information_VIN")
private String carInformationVin;
/**
*
*/
private String carInformationLicensePlate;
/**
*
*/
private String carInformationColor;
/**
*
*/
private String carInformationDriver;
/**
* ID
*/
private String carInformationFence;
/**
*
*/
@DateTimeFormat(fallbackPatterns = "yyyy/MM/dd hh:mm:ss")
@JsonFormat(pattern = "yyyy/MM/dd hh:mm:ss")
private Date carInformationExamineEnddata;
/**
* ID
*/
private Integer carInformationType;
/**
* ID
*/
private Integer carInformationBrand;
/**
* (0 1 )
*/
private Integer carInformationFocus;
public static CarInformation carInformationBuilder(CarInformation carInformation) {
return CarInformation.builder()
.carInformationId(carInformation.getCarInformationId())
.carInformationLicensePlate(carInformation.getCarInformationLicensePlate())
.build();
}
}

View File

@ -0,0 +1,53 @@
package com.muyu.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;
/**
* @Authoryang
* @Packagecom.muyu.domain
* @Projectcloud-electronic
* @namecarMiddle
* @Date2024/9/20 16:30
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Tag(name = "车辆电子组中间表")
@TableName(value = "car_middle",autoResultMap = true)
public class CarMiddle {
/**
* ID
*/
@TableId(value = "id",type = IdType.AUTO)
private Integer id;
/**
* ID
*/
private Integer fenceGroupId;
/**
* ID
*/
private Integer carInformationId;
public CarMiddle(Integer fenceGroupId, Integer carInformationId) {
this.fenceGroupId = fenceGroupId;
this.carInformationId = carInformationId;
}
public static CarMiddle carMiddleBuilder(CarMiddle carMiddle) {
return CarMiddle.builder()
.id(carMiddle.getId())
.fenceGroupId(carMiddle.getFenceGroupId())
.carInformationId(carMiddle.getCarInformationId())
.build();
}
}

View File

@ -0,0 +1,53 @@
package com.muyu.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;
/**
* @Authoryang
* @Packagecom.muyu.domain
* @Projectcloud-server-8
* @namecarMiddleGroup
* @Date2024/9/22 10:35
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Tag(name = "围栏组中间表围栏")
@TableName(value = "car_middle_group",autoResultMap = true)
public class CarMiddleGroup {
/**
* ID
*/
@TableId(value = "id",type = IdType.AUTO)
private Integer id;
/**
* ID
*/
private Integer carFenceId;
/**
*
*/
private Integer fenceGroupId;
public CarMiddleGroup(Integer carFenceId, Integer fenceGroupId) {
this.carFenceId = carFenceId;
this.fenceGroupId = fenceGroupId;
}
public static CarMiddleGroup carMiddleGroupBuilder(CarMiddleGroup carMiddleGroup) {
return CarMiddleGroup.builder()
.id(carMiddleGroup.getId())
.carFenceId(carMiddleGroup.getCarFenceId())
.fenceGroupId(carMiddleGroup.getFenceGroupId())
.build();
}
}

View File

@ -0,0 +1,28 @@
package com.muyu.domain.req;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Authoryang
* @Packagecom.muyu.domain.req
* @Projectcloud-server-8
* @nameCarFenceGroupReq
* @Date2024/9/24 14:36
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Tag(name = "车辆电子围栏组响应参数")
public class CarFenceGroupReq {
/**
* ID
*/
private Integer carId;
/**
* ID
*/
private Integer id;
}

View File

@ -0,0 +1,45 @@
package com.muyu.domain.req;
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;
/**
* @Authoryang
* @Packagecom.muyu.domain.req
* @Projectcloud-electronic
* @nameCarFenceReq
* @Date2024/9/17 16:26
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Tag(name = "电子围栏响应参数")
public class CarFenceReq {
/**
*
*/
private String name;
/**
* ID
*/
private String clazzId;
/**
* ID
*/
private String typeName;
/**
*
*/
@Schema(title = "当前页数", type = "Integer", defaultValue = "1", description = "当前页数")
private Integer pageNum=1;
/**
*
*/
@Schema(title = "分页条数", type = "Integer", defaultValue = "10", description = "每页有多少条")
private Integer pageSize=10;
}

View File

@ -0,0 +1,28 @@
package com.muyu.domain.req;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Authoryang
* @Packagecom.muyu.domain.req
* @Projectcloud-server-8
* @nameCarFenceGroupDel
* @Date2024/9/24 11:49
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Tag(name = "围栏组电子围栏响应参数")
public class CarGroupIdReq {
/**
* Id
*/
private Integer ids;
/**
* ID
*/
private Integer id;
}

View File

@ -0,0 +1,34 @@
package com.muyu.domain.req;
import com.muyu.domain.CarFenceGroup;
import com.muyu.domain.CarInformation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.domain.req
* @Projectcloud-server-8
* @nameCarGroupReq
* @Date2024/9/23 12:01
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Tag(name = "车辆电子围栏响应参数")
public class CarGroupReq {
/**
*
*/
private List<CarInformation> carInformations;
/**
*
*/
private List<CarFenceGroup> carFenceGroups;
}

View File

@ -0,0 +1,35 @@
package com.muyu.domain.req;
import com.muyu.domain.CarFence;
import com.muyu.domain.CarFenceGroup;
import com.muyu.domain.CarInformation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.domain.req
* @Projectcloud-server-8
* @nameFenceGroupReq
* @Date2024/9/24 1:09
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Tag(name = "围栏组围栏响应参数")
public class FenceGroupReq {
/**
*
*/
private List<CarFence> carFences;
/**
*
*/
private List<CarFenceGroup> carFenceGroups;
}

View File

@ -0,0 +1,96 @@
package com.muyu.domain.resq;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.domain.CarFenceGroup;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.domain.resq
* @Projectcloud-server-8
* @nameCarFenceGroupReq
* @Date2024/9/24 1:45
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Tag(name = "车辆电子围栏类")
public class CarFenceGroupResq {
/**
*
*/
private Integer id;
/**
*
*/
private String name;
/**
* ID
*/
private Integer clazzId;
/**
*
*/
@TableField(exist = false)
private String clazzName;
/**
* ID
*/
private Integer typeId;
/**
*
*/
@TableField(exist = false)
private String typeName;
/**
*
*/
private String fenceText;
/**
*
*/
@DateTimeFormat(fallbackPatterns = "yyyy-MM-dd hh:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private Date fenceStart;
/**
*
*/
@DateTimeFormat(fallbackPatterns = "yyyy-MM-dd hh:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private Date fenceEnd;
/**
*
*/
@DateTimeFormat(fallbackPatterns = "yyyy/MM/dd hh:mm:ss")
@JsonFormat(pattern = "yyyy/MM/dd hh:mm:ss")
private Date fenceCreate;
/**
* ID
*/
private Integer middleId;
/**
*
*/
@TableField(exist = false)
private List<CarFenceGroup> carFenceGroups;
/**
*
*/
private Integer priority;
/**
*
*/
private String status;
/**
*
*/
private String groupType;
}

View File

@ -0,0 +1,49 @@
package com.muyu.domain.resq;
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.Data;
import lombok.NoArgsConstructor;
/**
* @Authoryang
* @Packagecom.muyu.domain.resq
* @Projectcloud-server-8
* @nameCarFenceGroupsResq
* @Date2024/9/25 21:08
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Tag(name = "车辆电子围栏类")
public class CarFenceGroupsResq {
/**
* ID
*/
@TableId(value = "id",type = IdType.AUTO)
private Integer id;
/**
*
*/
private Integer priority;
/**
*
*/
private String status;
/**
*
*/
private String groupType;
/**
* VIN
*/
// @TableName(value = "car_information_VIN")
private String carInformationLicensePlate;
/**
*
*/
private String fenceText;
}

View File

@ -0,0 +1,77 @@
package com.muyu.domain.resq;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.domain.CarFence;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @Authoryang
* @Packagecom.muyu.domain.resq
* @Projectcloud-electronic
* @nameCarFenceResq
* @Date2024/9/17 16:35
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Tag(name = "车辆电子围栏类")
@TableName(value = "car_fence",autoResultMap = true)
public class CarFenceResq {
/**
*
*/
private Integer id;
/**
*
*/
private String name;
/**
*
*/
private String clazzName;
/**
*
*/
private String typeName;
/**
*
*/
@DateTimeFormat(fallbackPatterns = "yyyy-MM-dd hh:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private Date fenceStart;
/**
*
*/
@DateTimeFormat(fallbackPatterns = "yyyy-MM-dd hh:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private Date fenceEnd;
/**
*
*/
@DateTimeFormat(fallbackPatterns = "yyyy/MM/dd hh:mm:ss")
@JsonFormat(pattern = "yyyy/MM/dd hh:mm:ss")
private Date fenceCreate;
public static CarFenceResq carFenceResqListBuilder(CarFence etlDataScore) {
return CarFenceResq.builder()
.id(etlDataScore.getId())
.name(etlDataScore.getName())
.clazzName(etlDataScore.getClazzName())
.typeName(etlDataScore.getTypeName())
.fenceStart(etlDataScore.getFenceStart())
.fenceEnd(etlDataScore.getFenceEnd())
.fenceCreate(etlDataScore.getFenceCreate())
.build();
}
}

View File

@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.muyu</groupId>
<artifactId>cloud-server</artifactId>
<version>3.6.3</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<groupId>com.muyu.server</groupId>
<artifactId>cloud-Vehicle-Simulation</artifactId>
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- <dependency> -->
<!-- <groupId>com.muyu</groupId> -->
<!-- <artifactId>cloud-common-rabbit</artifactId> -->
<!-- </dependency> -->
<!-- SpringCloud Alibaba Nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- SpringCloud Alibaba Nacos Config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- SpringCloud Alibaba Sentinel -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<!-- SpringBoot Actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- Mysql Connector -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
<!-- MuYu Common DataSource -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-common-datasource</artifactId>
</dependency>
<!-- MuYu Common DataScope -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-common-datascope</artifactId>
</dependency>
<!-- MuYu Common Log -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-common-log</artifactId>
</dependency>
<!-- 接口模块 -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-common-api-doc</artifactId>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-electronic-common</artifactId>
<version>3.6.3</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>6.0.0</version>
</dependency>
</dependencies>
<build>
<finalName>cloud-electronic</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- &lt;!&ndash; 加入maven deploy插件当在deploy时忽略些model&ndash;&gt; -->
<!-- <plugin> -->
<!-- <groupId>org.apache.maven.plugins</groupId> -->
<!-- <artifactId>maven-deploy-plugin</artifactId> -->
<!-- <version>3.1.1</version> -->
<!-- <configuration> -->
<!-- <skip>true</skip> -->
<!-- </configuration> -->
<!-- </plugin> -->
</plugins>
</build>
</project>

View File

@ -0,0 +1,20 @@
package com.muyu.vehicle;
import com.muyu.common.security.annotation.EnableMyFeignClients;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @Author
* @Packagecom.muyu.server.integration
* @Projectcloud-integration
* @nameIntegration
* @Date2024/9/17 9:56
*/
@EnableMyFeignClients
@SpringBootApplication
public class VehicleSimulationApplication {
public static void main(String[] args) {
SpringApplication.run(VehicleSimulationApplication.class, args);
}
}

View File

@ -0,0 +1,2 @@
Spring Boot Version: ${spring-boot.version}
Spring Application Name: ${spring.application.name}

View File

@ -0,0 +1,47 @@
# Tomcat
server:
port: 9111
# nacos线上地址
nacos:
addr: 127.0.0.1:8848
user-name: nacos
password: nacos
namespace: eight
# Spring
spring:
application:
# 应用名称
name: cloud-electronic
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}

View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 日志存放路径 -->
<property name="log.path" value="logs/cloud-electronic"/>
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 系统日志输出 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/info.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>INFO</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/error.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>ERROR</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 系统模块日志级别控制 -->
<logger name="com.muyu" level="info"/>
<!-- Spring日志级别控制 -->
<logger name="org.springframework" level="warn"/>
<root level="info">
<appender-ref ref="console"/>
</root>
<!--系统操作日志-->
<root level="info">
<appender-ref ref="file_info"/>
<appender-ref ref="file_error"/>
</root>
</configuration>

View File

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 日志存放路径 -->
<property name="log.path" value="logs/cloud-electronic"/>
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
<property name="log.sky.pattern" value="%d{HH:mm:ss.SSS} %yellow([%tid]) [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.sky.pattern}</pattern>
</encoder>
</appender>
<!-- 系统日志输出 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/info.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>INFO</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/error.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>ERROR</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 使用gRpc将日志发送到skywalking服务端 -->
<appender name="GRPC_LOG" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<Pattern>${log.sky.pattern}</Pattern>
</layout>
</encoder>
</appender>
<!-- 系统模块日志级别控制 -->
<logger name="com.muyu" level="info"/>
<!-- Spring日志级别控制 -->
<logger name="org.springframework" level="warn"/>
<root level="info">
<appender-ref ref="GRPC_LOG"/>
<appender-ref ref="console"/>
</root>
<!--系统操作日志-->
<root level="info">
<appender-ref ref="file_info"/>
<appender-ref ref="file_error"/>
</root>
</configuration>

View File

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 日志存放路径 -->
<property name="log.path" value="logs/cloud-electronic"/>
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
<property name="log.sky.pattern" value="%d{HH:mm:ss.SSS} %yellow([%tid]) [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.sky.pattern}</pattern>
</encoder>
</appender>
<!-- 系统日志输出 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/info.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>INFO</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/error.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>ERROR</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 使用gRpc将日志发送到skywalking服务端 -->
<appender name="GRPC_LOG" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<Pattern>${log.sky.pattern}</Pattern>
</layout>
</encoder>
</appender>
<!-- 系统模块日志级别控制 -->
<logger name="com.muyu" level="info"/>
<!-- Spring日志级别控制 -->
<logger name="org.springframework" level="warn"/>
<root level="info">
<appender-ref ref="GRPC_LOG"/>
<appender-ref ref="console"/>
</root>
<!--系统操作日志-->
<root level="info">
<appender-ref ref="file_info"/>
<appender-ref ref="file_error"/>
</root>
</configuration>

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.server.mapper.CarMiddleGroupMapper">
<select id="selectByIdList" resultType="com.muyu.domain.CarMiddleGroup">
select
*
from
car_middle_group
where
car_fence_id = #{carFenceId};
</select>
</mapper>

View File

@ -0,0 +1,108 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.muyu</groupId>
<artifactId>cloud-server</artifactId>
<version>3.6.3</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<groupId>com.muyu.server</groupId>
<artifactId>cloud-electronic</artifactId>
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- <dependency> -->
<!-- <groupId>com.muyu</groupId> -->
<!-- <artifactId>cloud-common-rabbit</artifactId> -->
<!-- </dependency> -->
<!-- SpringCloud Alibaba Nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- SpringCloud Alibaba Nacos Config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- SpringCloud Alibaba Sentinel -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<!-- SpringBoot Actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- Mysql Connector -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
<!-- MuYu Common DataSource -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-common-datasource</artifactId>
</dependency>
<!-- MuYu Common DataScope -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-common-datascope</artifactId>
</dependency>
<!-- MuYu Common Log -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-common-log</artifactId>
</dependency>
<!-- 接口模块 -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-common-api-doc</artifactId>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-electronic-common</artifactId>
<version>3.6.3</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>6.0.0</version>
</dependency>
</dependencies>
<build>
<finalName>cloud-electronic</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- &lt;!&ndash; 加入maven deploy插件当在deploy时忽略些model&ndash;&gt; -->
<!-- <plugin> -->
<!-- <groupId>org.apache.maven.plugins</groupId> -->
<!-- <artifactId>maven-deploy-plugin</artifactId> -->
<!-- <version>3.1.1</version> -->
<!-- <configuration> -->
<!-- <skip>true</skip> -->
<!-- </configuration> -->
<!-- </plugin> -->
</plugins>
</build>
</project>

View File

@ -0,0 +1,20 @@
package com.muyu.server;
import com.muyu.common.security.annotation.EnableMyFeignClients;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @Author
* @Packagecom.muyu.server.integration
* @Projectcloud-integration
* @nameIntegration
* @Date2024/9/17 9:56
*/
@EnableMyFeignClients
@SpringBootApplication
public class IntegrationApplication {
public static void main(String[] args) {
SpringApplication.run(IntegrationApplication.class, args);
}
}

View File

@ -0,0 +1,43 @@
package com.muyu.server.controller;
import com.muyu.common.core.domain.Result;
import com.muyu.domain.CarFenceClazz;
import com.muyu.server.service.CarFenceClazzService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.server.controller
* @Projectcloud-electronic
* @nameCarFenceClazzController
* @Date2024/9/20 14:31
*/
@RequestMapping("/carFenceClazz")
@RestController
@AllArgsConstructor
@Tag(name = "查询数据",description = "从围栏信息表中查询数据")
@Log4j2
public class CarFenceClazzController {
private final CarFenceClazzService carFenceClazzService;
/**
*
*/
@PostMapping("/selectClazz")
@Operation(summary = "查询数据",description = "查询数据")
public Result<List<CarFenceClazz>> selectConnect(){
List<CarFenceClazz> connects = carFenceClazzService.list();
return Result.success(
connects, "操作成功"
);
}
}

View File

@ -0,0 +1,141 @@
package com.muyu.server.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.muyu.common.core.domain.Result;
import com.muyu.domain.CarFence;
import com.muyu.domain.req.*;
import com.muyu.domain.resq.CarFenceGroupResq;
import com.muyu.domain.resq.CarFenceGroupsResq;
import com.muyu.domain.resq.CarFenceResq;
import com.muyu.server.service.CarFenceService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.server.controller
* @Projectcloud-electronic
* @nameCarFenceController
* @Date2024/9/17 16:46
*/
@RequestMapping("/carFence")
@RestController
@AllArgsConstructor
@Tag(name = "查询数据",description = "从围栏信息表中查询数据")
@Log4j2
public class CarFenceController {
private final CarFenceService carFenceService;
/**
*
*/
@PostMapping("/selectConnect")
@Operation(summary = "查询数据",description = "查询数据")
public Result<Page<CarFenceResq>> selectConnect(
@Validated @RequestBody CarFenceReq req
){
Page<CarFenceResq> connects = carFenceService.selectCarFence(req);
return Result.success(
connects, "操作成功"
);
}
/**
* add
*/
@PostMapping("/addCarFence")
@Operation(summary = "查询数据",description = "查询数据")
public Result<String> addCarFence(
@Validated @RequestBody CarFence carFence
){
Boolean connects = carFenceService.addCarFence(carFence);
return connects?Result.success(
null, "操作成功"
):Result.success(
null, "操作失败"
);
}
/**
* add
*/
@PostMapping("/carAddList")
@Operation(summary = "查询数据",description = "查询数据")
public Result<String> addCarFence(
@Validated @RequestBody CarGroupReq req
){
Boolean connects = carFenceService.addCarGroup(req);
return connects?Result.success(
null, "操作成功"
):Result.success(
null, "操作失败"
);
}
/**
* add
*/
@PostMapping("/selectFenceMiddleGroup")
@Operation(summary = "查询数据",description = "查询数据")
public Result<String> selectFenceMiddleGroup(
@Validated @RequestBody FenceGroupReq req
){
Boolean connects = carFenceService.addFenceGroup(req);
return connects?Result.success(
null, "操作成功"
):Result.success(
null, "操作失败"
);
}
/**
*
*/
@PostMapping("/selectCarFenceGroupList")
@Operation(summary = "查询数据",description = "查询数据")
public Result<List<CarFenceGroupResq>> selectCarFenceGroupList(
@Validated @RequestBody Integer id
){
List<CarFenceGroupResq> list = carFenceService.selectCarFenceGroupList(id);
return list.size()!=0?Result.success(
list, "操作成功"
):Result.success(
null, "未绑定围栏"
);
}
/**
*
*/
@DeleteMapping("/carFenceGroupDel")
@Operation(summary = "解除绑定围栏",description = "查询围栏数据")
public Result<String> carFenceGroupDel(
@Validated @RequestBody CarGroupIdReq carGroupIdReq
){
Boolean list = carFenceService.carFenceGroupDel(carGroupIdReq);
return list?Result.success(
null, "操作成功"
):Result.success(
null, "未绑定围栏"
);
}
/**
*
*/
@PostMapping("/carGroupList")
@Operation(summary = "查询车辆围栏组数据",description = "查询车辆围栏组信息")
public Result<List<CarFenceGroupsResq>> carGroupList(@RequestBody CarFenceGroupReq req){
List<CarFenceGroupsResq> connects = carFenceService.carGroupList(req);
return Result.success(
connects, "操作成功"
);
}
}

View File

@ -0,0 +1,48 @@
package com.muyu.server.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.muyu.common.core.domain.Result;
import com.muyu.domain.CarFenceGroup;
import com.muyu.domain.req.CarFenceGroupReq;
import com.muyu.domain.req.CarFenceReq;
import com.muyu.domain.resq.CarFenceResq;
import com.muyu.server.service.CarFenceGroupService;
import com.muyu.server.service.CarMiddleGroupService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.server.controller
* @Projectcloud-server-8
* @nameCarFenceGroupController
* @Date2024/9/23 1:12
*/
@RequestMapping("/CarFenceGroup")
@RestController
@AllArgsConstructor
@Tag(name = "查询数据",description = "从中间表中查询数据")
@Log4j2
public class CarFenceGroupController {
private final CarMiddleGroupService carMiddleGroupService;
/**
*
*/
@PostMapping("/selectCarMiddleGroup")
@Operation(summary = "查询数据",description = "查询数据")
public Result<List<CarFenceGroup>> selectConnect(){
List<CarFenceGroup> connects = carMiddleGroupService.selectCarFence();
return Result.success(
connects, "操作成功"
);
}
}

View File

@ -0,0 +1,43 @@
package com.muyu.server.controller;
import com.muyu.common.core.domain.Result;
import com.muyu.domain.CarFenceType;
import com.muyu.server.service.CarFenceTypeService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.server.controller
* @Projectcloud-electronic
* @nameCarFenceClazzController
* @Date2024/9/20 14:31
*/
@RequestMapping("/carFenceType")
@RestController
@AllArgsConstructor
@Tag(name = "查询数据",description = "从围栏信息表中查询数据")
@Log4j2
public class CarFenceTypeController {
private final CarFenceTypeService carFenceTypeService;
/**
*
*/
@PostMapping("/selectType")
@Operation(summary = "查询数据",description = "查询数据")
public Result<List<CarFenceType>> selectConnect(){
List<CarFenceType> connects = carFenceTypeService.list();
return Result.success(
connects, "操作成功"
);
}
}

View File

@ -0,0 +1,47 @@
package com.muyu.server.controller;
import com.muyu.common.core.domain.Result;
import com.muyu.domain.CarFenceType;
import com.muyu.domain.CarInformation;
import com.muyu.server.service.CarInformationService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.server.controller
* @Projectcloud-server-8
* @nameCarInformationController
* @Date2024/9/22 22:20
*/
@RequestMapping("/carInformation")
@RestController
@AllArgsConstructor
@Tag(name = "查询数据",description = "从围栏信息表中查询数据")
@Log4j2
public class CarInformationController {
private final CarInformationService carInformationService;
/**
*
*/
@PostMapping("/selectCarInformation")
@Operation(summary = "查询数据",description = "查询数据")
public Result<List<CarInformation>> selectConnect(){
List<CarInformation> connects = carInformationService.list()
.stream()
.map(CarInformation::carInformationBuilder)
.toList();
return Result.success(
connects, "操作成功"
);
}
}

View File

@ -0,0 +1,54 @@
package com.muyu.server.controller;
import com.muyu.common.core.domain.Result;
import com.muyu.domain.CarFenceGroup;
import com.muyu.domain.CarMiddle;
import com.muyu.domain.req.CarFenceGroupReq;
import com.muyu.domain.resq.CarFenceGroupsResq;
import com.muyu.server.service.CarMiddleSerivce;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.server.controller
* @Projectcloud-electronic
* @nameCarMiddleController
* @Date2024/9/20 16:33
*/
@RequestMapping("/carMiddle")
@RestController
@AllArgsConstructor
@Tag(name = "添加数据",description = "从中间表添加数据")
@Log4j2
public class CarMiddleController {
private CarMiddleSerivce carMiddleSerivce;
/**
* add
*/
@PostMapping("/carAddList")
@Operation(summary = "查询数据",description = "查询数据")
public Result<String> addCarFence(
@Validated @RequestBody CarMiddle carMiddle
){
boolean connects = carMiddleSerivce.save(carMiddle);
return connects?Result.success(
null, "操作成功"
):Result.success(
null, "操作失败"
);
}
}

View File

@ -0,0 +1,16 @@
package com.muyu.server.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.domain.CarFenceClazz;
import org.apache.ibatis.annotations.Mapper;
/**
* @Authoryang
* @Packagecom.muyu.server.mapper
* @Projectcloud-electronic
* @nameCarFenceClazzMapper
* @Date2024/9/17 17:34
*/
@Mapper
public interface CarFenceClazzMapper extends BaseMapper<CarFenceClazz> {
}

View File

@ -0,0 +1,17 @@
package com.muyu.server.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.domain.CarFenceClazz;
import com.muyu.domain.CarFenceGroup;
import org.apache.ibatis.annotations.Mapper;
/**
* @Authoryang
* @Packagecom.muyu.server.mapper
* @Projectcloud-server-8
* @nameCarFenceGroupMapper
* @Date2024/9/22 20:54
*/
@Mapper
public interface CarFenceGroupMapper extends BaseMapper<CarFenceGroup> {
}

View File

@ -0,0 +1,16 @@
package com.muyu.server.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.domain.CarFence;
import org.apache.ibatis.annotations.Mapper;
/**
* @Authoryang
* @Packagecom.muyu.server.mysql
* @Projectcloud-electronic
* @nameCarFenceServiceMapper
* @Date2024/9/17 17:13
*/
@Mapper
public interface CarFenceMapper extends BaseMapper<CarFence> {
}

View File

@ -0,0 +1,16 @@
package com.muyu.server.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.domain.CarFenceType;
import org.apache.ibatis.annotations.Mapper;
/**
* @Authoryang
* @Packagecom.muyu.server.mapper
* @Projectcloud-electronic
* @nameCarFenceTypeMapper
* @Date2024/9/17 17:32
*/
@Mapper
public interface CarFenceTypeMapper extends BaseMapper<CarFenceType> {
}

View File

@ -0,0 +1,16 @@
package com.muyu.server.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.domain.CarInformation;
import org.apache.ibatis.annotations.Mapper;
/**
* @Authoryang
* @Packagecom.muyu.server.mapper
* @Projectcloud-server-8
* @nameCarInformationMapper
* @Date2024/9/22 22:24
*/
@Mapper
public interface CarInformationMapper extends BaseMapper<CarInformation> {
}

View File

@ -0,0 +1,22 @@
package com.muyu.server.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.domain.CarMiddle;
import com.muyu.domain.CarMiddleGroup;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.server.mapper
* @Projectcloud-server-8
* @nameCarMiddleGroupMapper
* @Date2024/9/22 20:43
*/
@Mapper
public interface CarMiddleGroupMapper extends BaseMapper<CarMiddleGroup> {
List<CarMiddleGroup> selectByIdList(@Param("carFenceId") Integer carFenceId);
}

View File

@ -0,0 +1,16 @@
package com.muyu.server.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.domain.CarMiddle;
import org.apache.ibatis.annotations.Mapper;
/**
* @Authoryang
* @Packagecom.muyu.server.mapper
* @Projectcloud-electronic
* @nameCarMiddleMapper
* @Date2024/9/20 16:35
*/
@Mapper
public interface CarMiddleMapper extends BaseMapper<CarMiddle> {
}

View File

@ -0,0 +1,14 @@
package com.muyu.server.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.domain.CarFenceClazz;
/**
* @Authoryang
* @Packagecom.muyu.server.service
* @Projectcloud-electronic
* @nameCarFenceClazzService
* @Date2024/9/17 17:33
*/
public interface CarFenceClazzService extends IService<CarFenceClazz>{
}

View File

@ -0,0 +1,15 @@
package com.muyu.server.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.domain.CarFenceClazz;
import com.muyu.domain.CarFenceGroup;
/**
* @Authoryang
* @Packagecom.muyu.server.service
* @Projectcloud-server-8
* @nameCarFenceGroupService
* @Date2024/9/22 20:53
*/
public interface CarFenceGroupService extends IService<CarFenceGroup> {
}

View File

@ -0,0 +1,37 @@
package com.muyu.server.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.domain.CarFence;
import com.muyu.domain.req.*;
import com.muyu.domain.resq.CarFenceGroupResq;
import com.muyu.domain.resq.CarFenceGroupsResq;
import com.muyu.domain.resq.CarFenceResq;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.server.service
* @Projectcloud-electronic
* @nameCarFenceService
* @Date2024/9/17 16:54
*/
public interface CarFenceService extends IService<CarFence> {
/**
*
*/
public Page<CarFenceResq> selectCarFence(CarFenceReq req);
Boolean addCarFence(CarFence carFence);
Boolean addCarGroup(CarGroupReq req);
Boolean addFenceGroup(FenceGroupReq req);
List<CarFenceGroupResq> selectCarFenceGroupList(Integer id);
Boolean carFenceGroupDel(CarGroupIdReq carGroupIdReq);
List<CarFenceGroupsResq> carGroupList(CarFenceGroupReq req);
}

View File

@ -0,0 +1,14 @@
package com.muyu.server.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.domain.CarFenceType;
/**
* @Authoryang
* @Packagecom.muyu.server.service
* @Projectcloud-electronic
* @nameCarFenceTypeService
* @Date2024/9/17 17:29
*/
public interface CarFenceTypeService extends IService<CarFenceType>{
}

View File

@ -0,0 +1,14 @@
package com.muyu.server.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.domain.CarInformation;
/**
* @Authoryang
* @Packagecom.muyu.server.service
* @Projectcloud-server-8
* @nameCarInformationService
* @Date2024/9/22 22:22
*/
public interface CarInformationService extends IService<CarInformation> {
}

View File

@ -0,0 +1,23 @@
package com.muyu.server.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.domain.CarFenceGroup;
import com.muyu.domain.CarMiddleGroup;
import com.muyu.domain.req.CarFenceGroupReq;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.server.service
* @Projectcloud-server-8
* @nameCarMiddleGroupController
* @Date2024/9/22 20:40
*/
public interface CarMiddleGroupService extends IService<CarMiddleGroup> {
/*
*/
List<CarFenceGroup> selectCarFence();
}

View File

@ -0,0 +1,20 @@
package com.muyu.server.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.domain.CarFenceGroup;
import com.muyu.domain.CarMiddle;
import com.muyu.domain.req.CarFenceGroupReq;
import com.muyu.domain.resq.CarFenceGroupsResq;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.server.service
* @Projectcloud-electronic
* @nameCarMiddleSerivce
* @Date2024/9/20 16:34
*/
public interface CarMiddleSerivce extends IService<CarMiddle> {
}

View File

@ -0,0 +1,20 @@
package com.muyu.server.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.domain.CarFenceClazz;
import com.muyu.server.mapper.CarFenceClazzMapper;
import com.muyu.server.service.CarFenceClazzService;
import org.springframework.stereotype.Service;
/**
* @Authoryang
* @Packagecom.muyu.server.service.impl
* @Projectcloud-electronic
* @nameCarFenceClazzServiceImpl
* @Date2024/9/17 17:33
*/
@Service
public class CarFenceClazzServiceImpl
extends ServiceImpl<CarFenceClazzMapper, CarFenceClazz>
implements CarFenceClazzService {
}

View File

@ -0,0 +1,22 @@
package com.muyu.server.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.domain.CarFenceClazz;
import com.muyu.domain.CarFenceGroup;
import com.muyu.server.mapper.CarFenceClazzMapper;
import com.muyu.server.mapper.CarFenceGroupMapper;
import com.muyu.server.service.CarFenceGroupService;
import org.springframework.stereotype.Service;
/**
* @Authoryang
* @Packagecom.muyu.server.service.impl
* @Projectcloud-server-8
* @nameCarFenceGroupServiceImpl
* @Date2024/9/22 20:53
*/
@Service
public class CarFenceGroupServiceImpl
extends ServiceImpl<CarFenceGroupMapper, CarFenceGroup>
implements CarFenceGroupService {
}

View File

@ -0,0 +1,301 @@
package com.muyu.server.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.utils.StringUtils;
import com.muyu.domain.*;
import com.muyu.domain.req.*;
import com.muyu.domain.resq.CarFenceGroupResq;
import com.muyu.domain.resq.CarFenceGroupsResq;
import com.muyu.domain.resq.CarFenceResq;
import com.muyu.server.mapper.CarFenceMapper;
import com.muyu.server.service.*;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.server.service.impl
* @Projectcloud-electronic
* @nameCarFenceServiceImpl
* @Date2024/9/17 16:57
*/
@Service
@Log4j2
public class CarFenceServiceImpl
extends ServiceImpl<CarFenceMapper, CarFence>
implements CarFenceService {
@Autowired
private CarFenceClazzService carFenceClazzService;
@Autowired
private CarFenceTypeService carFenceTypeService;
@Autowired
private CarMiddleGroupService carMiddleGroupService;
@Autowired
private CarFenceGroupService carFenceGroupService;
@Autowired
private CarMiddleSerivce carMiddleSerivce;
@Autowired
private CarInformationService carInformationService;
/**
*
*/
@Override
public Page<CarFenceResq> selectCarFence(CarFenceReq req) {
LambdaQueryWrapper<CarFence> queryWrapper = new LambdaQueryWrapper<>();
//数据来源类型
queryWrapper.eq(
StringUtils.isNoneEmpty(req.getName()),
CarFence::getName, req.getName()
);
queryWrapper.eq(
StringUtils.isNoneEmpty(req.getName()),
CarFence::getName, req.getName()
);
queryWrapper.eq(
StringUtils.isNoneEmpty(req.getName()),
CarFence::getName, req.getName()
);
//使用MyBatis-Plus的分页功能进行查询
Page<CarFence> carFencePage = this.page(
//创建分页参数,包括页码和每页显示的记录数
new Page<>(req.getPageNum(),
req.getPageSize()),
//传递查询条件
queryWrapper
);
List<CarFenceClazz> carFenceClazzList = carFenceClazzService.list()
.stream()
.map(CarFenceClazz::carFenceClazzBuild)
.toList();
List<CarFenceType> carFenceTypeList = carFenceTypeService.list()
.stream()
.map(CarFenceType::carFenceTypeBuild)
.toList();
List<CarFence> carFenceList = carFencePage.getRecords();
this.optimizeEntity(carFenceList,carFenceClazzList,carFenceTypeList);
//构建一个新的分页响应对象
return new Page<>() {{
//从查询结果中获取记录并使用流式处理将每条记录转换为EtlDataScoreResp对象
List<CarFenceResq> etlDataScoreRespList = carFencePage.getRecords().stream()
//使用map操作将EtlDataScore对象转换为EtlDataScoreResp对象
.map(CarFenceResq::carFenceResqListBuilder)
//收集流中的元素到列表中
.toList();
//设置分页响应中的记录列表
setRecords(etlDataScoreRespList);
//设置分页响应中的总记录数
setTotal(carFencePage.getTotal());
//设置分页响应中的当前页码
setCurrent(carFencePage.getCurrent());
//设置分页响应中的每页记录数
setSize(carFencePage.getSize());
}};
}
@Override
public Boolean addCarFence(CarFence carFence) {
boolean connects = this.save(carFence);
System.out.println(carFence.getId());
List<CarFenceGroup> carFenceGroups = carFence.getCarFenceGroups();
carFenceGroupService.saveBatch(carFenceGroups);
carFenceGroups.forEach(carFenceGroup -> {
Integer id = carFenceGroup.getId();
CarMiddleGroup carMiddleGroup = new CarMiddleGroup();
carMiddleGroup.setCarFenceId(carFence.getId());
carMiddleGroup.setFenceGroupId(carFenceGroup.getId());
carMiddleGroupService.save(carMiddleGroup);
});
return connects;
}
@Override
public Boolean addCarGroup(CarGroupReq req) {
List<CarInformation> carInformations = req.getCarInformations();
List<CarFenceGroup> carFenceGroups = req.getCarFenceGroups();
List<CarMiddle> carMiddles = new ArrayList<>();
carFenceGroups.forEach(carFenceGroup -> {
carInformations.forEach(carInformation -> {
Integer carFenceGroupId = carFenceGroup.getId();
Integer carInformationId = carInformation.getCarInformationId();
carMiddles.add(new CarMiddle(carFenceGroupId,carInformationId));
});
});
return carMiddleSerivce.saveBatch(carMiddles);
}
@Override
public Boolean addFenceGroup(FenceGroupReq req) {
List<CarFence> carInformations = req.getCarFences();
List<CarFenceGroup> carFenceGroups = req.getCarFenceGroups();
List<CarMiddleGroup> carMiddles = new ArrayList<>();
carFenceGroups.forEach(carFenceGroup -> {
carInformations.forEach(carFence -> {
Integer carFenceGroupId = carFenceGroup.getId();
Integer id = carFence.getId();
carMiddles.add(new CarMiddleGroup(carFenceGroupId,id));
});
});
return carMiddleGroupService.saveBatch(carMiddles);
}
@Override
public List<CarFenceGroupResq> selectCarFenceGroupList(Integer id) {
List<CarMiddleGroup> list = carMiddleGroupService.list(
new LambdaQueryWrapper<CarMiddleGroup>()
.eq(CarMiddleGroup::getFenceGroupId,id))
.stream()
.map(CarMiddleGroup::carMiddleGroupBuilder)
.toList();
List<CarFenceGroupResq> carFenceGroupResqs = new ArrayList<>();
list.forEach(carMiddleGroup -> {
this.carMiddleList(carMiddleGroup, carFenceGroupResqs);
});
return carFenceGroupResqs;
}
@Override
public Boolean carFenceGroupDel(CarGroupIdReq carGroupIdReq) {
List<CarMiddleGroup> list = carMiddleGroupService.list(
new LambdaQueryWrapper<CarMiddleGroup>()
.eq(CarMiddleGroup::getCarFenceId, carGroupIdReq.getId())
.eq(CarMiddleGroup::getFenceGroupId, carGroupIdReq.getIds()))
.stream()
.map(CarMiddleGroup::carMiddleGroupBuilder)
.toList();
return carMiddleGroupService.removeBatchByIds(list);
}
private void carMiddleList(CarMiddleGroup carMiddleGroup, List<CarFenceGroupResq> carFenceGroupResqs) {
Integer carFenceId = carMiddleGroup.getCarFenceId();
Integer fenceGroupId = carMiddleGroup.getFenceGroupId();
List<CarFence> carFenceList = this.list(
new LambdaQueryWrapper<CarFence>()
.eq(CarFence::getId,carFenceId))
.stream()
.map(CarFence::carFenceBuild)
.toList();
List<CarFenceGroup> carFenceGroupsList = carFenceGroupService.list(
new LambdaQueryWrapper<CarFenceGroup>()
.eq(CarFenceGroup::getId,fenceGroupId))
.stream()
.map(CarFenceGroup::carFenceBuild)
.toList();
carFenceList.forEach(carFence -> {
CarFenceGroupResq carFenceGroupResq = new CarFenceGroupResq();
carFenceGroupResq.setId(carFence.getId());
carFenceGroupResq.setName(carFence.getName());
carFenceGroupResq.setClazzId(carFence.getClazzId());
carFenceGroupResq.setTypeId(carFence.getTypeId());
carFenceGroupResq.setFenceText(carFence.getFenceText());
carFenceGroupResq.setFenceStart(carFence.getFenceStart());
carFenceGroupResq.setFenceEnd(carFence.getFenceEnd());
carFenceGroupResq.setFenceCreate(carFence.getFenceCreate());
carFenceGroupResqs.add(carFenceGroupResq);
});
carFenceGroupsList.forEach(carFenceGroup -> {
carFenceGroupResqs.forEach(carFenceGroupResq -> {
carFenceGroupResq.setPriority(carFenceGroup.getPriority());
carFenceGroupResq.setStatus(carFenceGroup.getStatus());
carFenceGroupResq.setGroupType(carFenceGroup.getGroupType());
});
});
}
/**
*
* @param carFenceList
* @param carFenceClazzList
* @param carFenceTypeList
*/
private void optimizeEntity(
List<CarFence> carFenceList,
List<CarFenceClazz> carFenceClazzList,
List<CarFenceType> carFenceTypeList) {
carFenceList.forEach(carFence -> {
carFenceClazzList.forEach(carFenceClazz -> {
if (carFenceClazz.getClazzId().equals(carFence.getClazzId())) {
carFence.setClazzName(carFenceClazz.getClazzName());
}else {
return;
}
});
carFenceTypeList.forEach(carFenceType -> {
if (carFenceType.getTypeId().equals(carFence.getTypeId())) {
carFence.setTypeName(carFenceType.getTypeName());
}else{
return;
}
});
});
}
@Override
public List<CarFenceGroupsResq> carGroupList(CarFenceGroupReq req) {
List<CarFenceGroupsResq> fenceGroupList = new ArrayList<>();
CarFenceGroupsResq carFenceGroupsResq = new CarFenceGroupsResq();
List<CarMiddleGroup> list = carMiddleGroupService.list(
new LambdaQueryWrapper<CarMiddleGroup>()
.eq(CarMiddleGroup::getCarFenceId, req.getId()))
.stream()
.map(CarMiddleGroup::carMiddleGroupBuilder)
.toList();
List<CarFence> carFenceList = this.list()
.stream()
.map(CarFence::carFenceBuild)
.toList();
list.forEach(carMiddleGroup -> {
List<CarMiddle> carMiddleGroupList = carMiddleSerivce.list(
new LambdaQueryWrapper<CarMiddle>()
.eq(CarMiddle::getFenceGroupId, carMiddleGroup.getFenceGroupId()))
.stream()
.map(CarMiddle::carMiddleBuilder)
.toList();
carMiddleGroupList.forEach(carMiddle -> {
List<CarFenceGroup> carFenceGroupList = carFenceGroupService.list(
new LambdaQueryWrapper<CarFenceGroup>()
.eq(CarFenceGroup::getId, carMiddle.getFenceGroupId()))
.stream()
.map(CarFenceGroup::carFenceBuild)
.toList();
List<CarInformation> carInformationList = carInformationService.list(
new LambdaQueryWrapper<CarInformation>()
.eq(CarInformation::getCarInformationId, carMiddle.getCarInformationId()))
.stream()
.map(CarInformation::carInformationBuilder)
.toList();
carFenceList.forEach(carFence -> {
carFenceGroupsResq.setFenceText(carFence.getFenceText());
});
carFenceGroupList.forEach(carFenceGroup -> {
carFenceGroupsResq.setId(carFenceGroup.getId());
carFenceGroupsResq.setStatus(carFenceGroup.getStatus());
carFenceGroupsResq.setPriority(carFenceGroup.getPriority());
carFenceGroupsResq.setGroupType(carFenceGroup.getGroupType());
});
carInformationList.forEach(carInformation -> {
carFenceGroupsResq.setCarInformationLicensePlate(carInformation.getCarInformationLicensePlate());
});
fenceGroupList.add(carFenceGroupsResq);
});
});
return fenceGroupList;
}
}

View File

@ -0,0 +1,20 @@
package com.muyu.server.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.domain.CarFenceType;
import com.muyu.server.mapper.CarFenceTypeMapper;
import com.muyu.server.service.CarFenceTypeService;
import org.springframework.stereotype.Service;
/**
* @Authoryang
* @Packagecom.muyu.server.service.impl
* @Projectcloud-electronic
* @nameCarFenceTypeServiceImpl
* @Date2024/9/17 17:30
*/
@Service
public class CarFenceTypeServiceImpl
extends ServiceImpl<CarFenceTypeMapper, CarFenceType>
implements CarFenceTypeService {
}

View File

@ -0,0 +1,22 @@
package com.muyu.server.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.domain.CarFenceType;
import com.muyu.domain.CarInformation;
import com.muyu.server.mapper.CarFenceTypeMapper;
import com.muyu.server.mapper.CarInformationMapper;
import com.muyu.server.service.CarInformationService;
import org.springframework.stereotype.Service;
/**
* @Authoryang
* @Packagecom.muyu.server.service.impl
* @Projectcloud-server-8
* @nameCarInformationServiceImpl
* @Date2024/9/22 22:22
*/
@Service
public class CarInformationServiceImpl
extends ServiceImpl<CarInformationMapper, CarInformation>
implements CarInformationService {
}

View File

@ -0,0 +1,45 @@
package com.muyu.server.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.domain.CarFenceGroup;
import com.muyu.domain.CarFenceType;
import com.muyu.domain.CarMiddleGroup;
import com.muyu.domain.req.CarFenceGroupReq;
import com.muyu.server.mapper.CarFenceTypeMapper;
import com.muyu.server.mapper.CarMiddleGroupMapper;
import com.muyu.server.service.CarFenceGroupService;
import com.muyu.server.service.CarFenceTypeService;
import com.muyu.server.service.CarMiddleGroupService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.server.service.impl
* @Projectcloud-server-8
* @nameCarMiddleGroupServiceImpl
* @Date2024/9/22 20:43
*/
@Service
public class CarMiddleGroupServiceImpl
extends ServiceImpl<CarMiddleGroupMapper, CarMiddleGroup>
implements CarMiddleGroupService {
@Autowired
private CarMiddleGroupMapper carMiddleGroupMapper;
@Autowired
private CarFenceGroupService carFenceGroupService;
/**
*
* @return
*/
@Override
public List<CarFenceGroup> selectCarFence() {
return carFenceGroupService.list();
}
}

View File

@ -0,0 +1,28 @@
package com.muyu.server.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.domain.*;
import com.muyu.domain.req.CarFenceGroupReq;
import com.muyu.domain.resq.CarFenceGroupsResq;
import com.muyu.server.mapper.CarMiddleMapper;
import com.muyu.server.service.*;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.server.service.impl
* @Projectcloud-electronic
* @nameCarMiddleSerivceImpl
* @Date2024/9/20 16:34
*/
@Service
@AllArgsConstructor
public class CarMiddleSerivceImpl
extends ServiceImpl<CarMiddleMapper, CarMiddle>
implements CarMiddleSerivce {
}

View File

@ -0,0 +1,118 @@
package com.muyu.server.util;//package com.muyu.server.util;
//
//import com.alibaba.druid.pool.DruidDataSource;
//import com.muyu.common.domain.Connect;
//import com.muyu.common.domain.req.ConnectReq;
//import lombok.extern.log4j.Log4j2;
//import org.springframework.stereotype.Component;
//
//import java.sql.Connection;
//import java.sql.PreparedStatement;
//import java.sql.ResultSet;
//import java.sql.SQLException;
//
///**
// * @Author张腾
// * @Packagecom.muyu.server.util
// * @Projectcloud-integration
// * @nameBaseDao
// * @Date2024/8/20 21:45
// */
//@Component
//@Log4j2
//public class JdbcHelper {
//
// /**
// * 连接池
// * @param connect 连接池对象参数 查询结构
// * @return 返回结果
// */
// public static DruidDataSource getConn( Connect connect) {
// while (0<connect.getMaxWaitTimes()){
// try {
// DruidDataSource druidDataSource = new DruidDataSource();
// String dcp = connect.getDataConnParam();
// druidDataSource.setUrl(new ConnectReq().getUrl()
// +connect.getIpAddress()+":"+connect.getPort()+
// "/"+connect.getDatabaseName() +
// (dcp != null && !dcp.isEmpty()? "?" + dcp : ""));
// druidDataSource.setUsername(connect.getUserName());
// druidDataSource.setPassword(connect.getPassword());
// //"com.mysql.cj.jdbc.Driver"
// druidDataSource.setDriverClassName(new ConnectReq().getDRIVER());
// druidDataSource.setInitialSize(connect.getInitSize());
// druidDataSource.setMaxActive(connect.getMaxNumConn());
// druidDataSource.setMaxWait(connect.getMaxWaitTime());
//
// return druidDataSource;
// } catch (Exception e) {
// log.error("异常为:{}", String.valueOf(e));
// }
// }
//
// return null;
// }
//
// /**
// * 查询服务器上说有数据库名 连接池
// * @return
// */
// public static DruidDataSource getConnRs(String dataName) {
//
// try {
// DruidDataSource druidDataSource = new DruidDataSource();
// druidDataSource.setUrl("jdbc:mysql://21.12.0.10:3306/"+dataName+"?useUnicode=true&characterEncoding" +
// "=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8");
// druidDataSource.setUsername("root");
// druidDataSource.setPassword("Bwie-8666");
// druidDataSource.setDriverClassName(new ConnectReq().getDRIVER());
//
// return druidDataSource;
// } catch (Exception e) {
// log.error("异常为:{}", String.valueOf(e));
//
// }
//
// return null;
// }
//
// /**
// * 查询服务器上说有数据库中表名 连接池
// * @return
// */
// public static DruidDataSource getDataConnRs(String name) {
//
// try {
// DruidDataSource druidDataSource = new DruidDataSource();
// druidDataSource.setUrl("jdbc:mysql://21.12.0.10:3306/"
// +name+
// "?useUnicode=true&characterEncoding=" +
// "utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8");
// druidDataSource.setUsername("root");
// druidDataSource.setPassword("Bwie-8666");
// druidDataSource.setDriverClassName(new ConnectReq().getDRIVER());
//
// return druidDataSource;
// } catch (Exception e) {
// log.error("异常为:{}", String.valueOf(e));
//
// }
//
// return null;
// }
//
// public static void close(Connection connection,PreparedStatement preparedStatement,ResultSet resultSet) throws SQLException {
//
// if (null != connection){
// connection.close();
// }
//
// if (null != preparedStatement){
// preparedStatement.close();
// }
//
// if (null != resultSet){
// resultSet.close();
// }
// }
//}

View File

@ -0,0 +1,11 @@
package com.muyu.server.util;
/**
* @Authoryang
* @Packagecom.muyu.server.util
* @Projectcloud-electronic
* @namePaginationInterceptor
* @Date2024/9/17 19:22
*/
public class PaginationInterceptor {
}

View File

@ -0,0 +1,39 @@
package com.muyu.server.util;
import jakarta.servlet.ServletContextEvent;
import jakarta.servlet.ServletContextListener;
import jakarta.servlet.annotation.WebListener;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* @Authoryang
* @Packagecom.muyu.server.util
* @Projectcloud-property
* @nameThread
* @Date2024/8/24 21:01
*/
@WebListener
public class Thread {
@WebListener
public class ThreadManagerListener implements ServletContextListener {
private ExecutorService executorService;
@Override
public void contextInitialized(ServletContextEvent sce) {
// 初始化并启动线程
executorService = Executors.newSingleThreadExecutor();
executorService.submit(() -> {
// 你的线程任务
});
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
// 停止线程
executorService.shutdownNow();
}
}
}

View File

@ -0,0 +1,2 @@
Spring Boot Version: ${spring-boot.version}
Spring Application Name: ${spring.application.name}

View File

@ -0,0 +1,47 @@
# Tomcat
server:
port: 9111
# nacos线上地址
nacos:
addr: 127.0.0.1:8848
user-name: nacos
password: nacos
namespace: eight
# Spring
spring:
application:
# 应用名称
name: cloud-electronic
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}

View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 日志存放路径 -->
<property name="log.path" value="logs/cloud-electronic"/>
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 系统日志输出 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/info.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>INFO</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/error.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>ERROR</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 系统模块日志级别控制 -->
<logger name="com.muyu" level="info"/>
<!-- Spring日志级别控制 -->
<logger name="org.springframework" level="warn"/>
<root level="info">
<appender-ref ref="console"/>
</root>
<!--系统操作日志-->
<root level="info">
<appender-ref ref="file_info"/>
<appender-ref ref="file_error"/>
</root>
</configuration>

View File

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 日志存放路径 -->
<property name="log.path" value="logs/cloud-electronic"/>
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
<property name="log.sky.pattern" value="%d{HH:mm:ss.SSS} %yellow([%tid]) [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.sky.pattern}</pattern>
</encoder>
</appender>
<!-- 系统日志输出 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/info.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>INFO</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/error.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>ERROR</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 使用gRpc将日志发送到skywalking服务端 -->
<appender name="GRPC_LOG" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<Pattern>${log.sky.pattern}</Pattern>
</layout>
</encoder>
</appender>
<!-- 系统模块日志级别控制 -->
<logger name="com.muyu" level="info"/>
<!-- Spring日志级别控制 -->
<logger name="org.springframework" level="warn"/>
<root level="info">
<appender-ref ref="GRPC_LOG"/>
<appender-ref ref="console"/>
</root>
<!--系统操作日志-->
<root level="info">
<appender-ref ref="file_info"/>
<appender-ref ref="file_error"/>
</root>
</configuration>

View File

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 日志存放路径 -->
<property name="log.path" value="logs/cloud-electronic"/>
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
<property name="log.sky.pattern" value="%d{HH:mm:ss.SSS} %yellow([%tid]) [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.sky.pattern}</pattern>
</encoder>
</appender>
<!-- 系统日志输出 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/info.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>INFO</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/error.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>ERROR</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 使用gRpc将日志发送到skywalking服务端 -->
<appender name="GRPC_LOG" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<Pattern>${log.sky.pattern}</Pattern>
</layout>
</encoder>
</appender>
<!-- 系统模块日志级别控制 -->
<logger name="com.muyu" level="info"/>
<!-- Spring日志级别控制 -->
<logger name="org.springframework" level="warn"/>
<root level="info">
<appender-ref ref="GRPC_LOG"/>
<appender-ref ref="console"/>
</root>
<!--系统操作日志-->
<root level="info">
<appender-ref ref="file_info"/>
<appender-ref ref="file_error"/>
</root>
</configuration>

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.server.mapper.CarMiddleGroupMapper">
<select id="selectByIdList" resultType="com.muyu.domain.CarMiddleGroup">
select
*
from
car_middle_group
where
car_fence_id = #{carFenceId};
</select>
</mapper>

View File

@ -9,6 +9,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<modules> <modules>
<module>cloud-electronic</module>
<module>cloud-modules-system</module> <module>cloud-modules-system</module>
<module>cloud-modules-gen</module> <module>cloud-modules-gen</module>
<module>cloud-modules-file</module> <module>cloud-modules-file</module>

View File

@ -246,6 +246,13 @@
<version>${muyu.version}</version> <version>${muyu.version}</version>
</dependency> </dependency>
<!-- 系统级别 插件 -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-common-system</artifactId>
<version>${muyu.version}</version>
</dependency>
<!-- xxl-job-core --> <!-- xxl-job-core -->
<dependency> <dependency>
<groupId>com.xuxueli</groupId> <groupId>com.xuxueli</groupId>
@ -275,6 +282,8 @@
<module>cloud-visual</module> <module>cloud-visual</module>
<module>cloud-modules</module> <module>cloud-modules</module>
<module>cloud-common</module> <module>cloud-common</module>
<module>cloud-modules/cloud-electronic</module>
<module>cloud-modules/cloud-Vehicle-Simulation</module>
</modules> </modules>
<packaging>pom</packaging> <packaging>pom</packaging>