Merge branch 'dev.yang'
commit
5b1c1a27a9
|
@ -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>
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.domain
|
||||
* @Project:cloud-electronic
|
||||
* @name:CarFence
|
||||
* @Date:2024/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();
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.domain
|
||||
* @Project:cloud-electronic
|
||||
* @name:CarFenceClazz
|
||||
* @Date:2024/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();
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.domain
|
||||
* @Project:cloud-server-8
|
||||
* @name:carFenceGroup
|
||||
* @Date:2024/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();
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.domain
|
||||
* @Project:cloud-electronic
|
||||
* @name:Type
|
||||
* @Date:2024/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();
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.domain
|
||||
* @Project:cloud-server-8
|
||||
* @name:CarInformation
|
||||
* @Date:2024/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();
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.domain
|
||||
* @Project:cloud-electronic
|
||||
* @name:carMiddle
|
||||
* @Date:2024/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();
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.domain
|
||||
* @Project:cloud-server-8
|
||||
* @name:carMiddleGroup
|
||||
* @Date:2024/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();
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.domain.req
|
||||
* @Project:cloud-server-8
|
||||
* @name:CarFenceGroupReq
|
||||
* @Date:2024/9/24 14:36
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Tag(name = "车辆电子围栏组响应参数")
|
||||
public class CarFenceGroupReq {
|
||||
/**
|
||||
* 车辆ID
|
||||
*/
|
||||
private Integer carId;
|
||||
/**
|
||||
* 围栏组ID
|
||||
*/
|
||||
private Integer id;
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.domain.req
|
||||
* @Project:cloud-electronic
|
||||
* @name:CarFenceReq
|
||||
* @Date:2024/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;
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.domain.req
|
||||
* @Project:cloud-server-8
|
||||
* @name:CarFenceGroupDel
|
||||
* @Date:2024/9/24 11:49
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Tag(name = "围栏组电子围栏响应参数")
|
||||
public class CarGroupIdReq {
|
||||
/**
|
||||
* 围栏组Id
|
||||
*/
|
||||
private Integer ids;
|
||||
/**
|
||||
* 围栏ID
|
||||
*/
|
||||
private Integer id;
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.domain.req
|
||||
* @Project:cloud-server-8
|
||||
* @name:CarGroupReq
|
||||
* @Date:2024/9/23 12:01
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Tag(name = "车辆电子围栏响应参数")
|
||||
public class CarGroupReq {
|
||||
/**
|
||||
* 车辆
|
||||
*/
|
||||
|
||||
private List<CarInformation> carInformations;
|
||||
/**
|
||||
* 围栏组
|
||||
*/
|
||||
private List<CarFenceGroup> carFenceGroups;
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.domain.req
|
||||
* @Project:cloud-server-8
|
||||
* @name:FenceGroupReq
|
||||
* @Date:2024/9/24 1:09
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Tag(name = "围栏组围栏响应参数")
|
||||
public class FenceGroupReq {
|
||||
|
||||
/**
|
||||
* 车辆
|
||||
*/
|
||||
|
||||
private List<CarFence> carFences;
|
||||
/**
|
||||
* 围栏组
|
||||
*/
|
||||
private List<CarFenceGroup> carFenceGroups;
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.domain.resq
|
||||
* @Project:cloud-server-8
|
||||
* @name:CarFenceGroupReq
|
||||
* @Date:2024/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;
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.domain.resq
|
||||
* @Project:cloud-server-8
|
||||
* @name:CarFenceGroupsResq
|
||||
* @Date:2024/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;
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.domain.resq
|
||||
* @Project:cloud-electronic
|
||||
* @name:CarFenceResq
|
||||
* @Date:2024/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();
|
||||
}
|
||||
}
|
|
@ -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>
|
||||
<!-- <!– 加入maven deploy插件,当在deploy时,忽略些model–> -->
|
||||
<!-- <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>
|
|
@ -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:杨闪闪
|
||||
* @Package:com.muyu.server.integration
|
||||
* @Project:cloud-integration
|
||||
* @name:Integration
|
||||
* @Date:2024/9/17 下午9:56
|
||||
*/
|
||||
@EnableMyFeignClients
|
||||
@SpringBootApplication
|
||||
public class VehicleSimulationApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(VehicleSimulationApplication.class, args);
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
Spring Boot Version: ${spring-boot.version}
|
||||
Spring Application Name: ${spring.application.name}
|
|
@ -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}
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
||||
<!-- <!– 加入maven deploy插件,当在deploy时,忽略些model–> -->
|
||||
<!-- <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>
|
|
@ -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:杨闪闪
|
||||
* @Package:com.muyu.server.integration
|
||||
* @Project:cloud-integration
|
||||
* @name:Integration
|
||||
* @Date:2024/9/17 下午9:56
|
||||
*/
|
||||
@EnableMyFeignClients
|
||||
@SpringBootApplication
|
||||
public class IntegrationApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(IntegrationApplication.class, args);
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.controller
|
||||
* @Project:cloud-electronic
|
||||
* @name:CarFenceClazzController
|
||||
* @Date:2024/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, "操作成功"
|
||||
);
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.controller
|
||||
* @Project:cloud-electronic
|
||||
* @name:CarFenceController
|
||||
* @Date:2024/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, "操作成功"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.controller
|
||||
* @Project:cloud-server-8
|
||||
* @name:CarFenceGroupController
|
||||
* @Date:2024/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, "操作成功"
|
||||
);
|
||||
}
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.controller
|
||||
* @Project:cloud-electronic
|
||||
* @name:CarFenceClazzController
|
||||
* @Date:2024/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, "操作成功"
|
||||
);
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.controller
|
||||
* @Project:cloud-server-8
|
||||
* @name:CarInformationController
|
||||
* @Date:2024/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, "操作成功"
|
||||
);
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.controller
|
||||
* @Project:cloud-electronic
|
||||
* @name:CarMiddleController
|
||||
* @Date:2024/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, "操作失败"
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.mapper
|
||||
* @Project:cloud-electronic
|
||||
* @name:CarFenceClazzMapper
|
||||
* @Date:2024/9/17 17:34
|
||||
*/
|
||||
@Mapper
|
||||
public interface CarFenceClazzMapper extends BaseMapper<CarFenceClazz> {
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.mapper
|
||||
* @Project:cloud-server-8
|
||||
* @name:CarFenceGroupMapper
|
||||
* @Date:2024/9/22 20:54
|
||||
*/
|
||||
@Mapper
|
||||
public interface CarFenceGroupMapper extends BaseMapper<CarFenceGroup> {
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.mysql
|
||||
* @Project:cloud-electronic
|
||||
* @name:CarFenceServiceMapper
|
||||
* @Date:2024/9/17 17:13
|
||||
*/
|
||||
@Mapper
|
||||
public interface CarFenceMapper extends BaseMapper<CarFence> {
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.mapper
|
||||
* @Project:cloud-electronic
|
||||
* @name:CarFenceTypeMapper
|
||||
* @Date:2024/9/17 17:32
|
||||
*/
|
||||
@Mapper
|
||||
public interface CarFenceTypeMapper extends BaseMapper<CarFenceType> {
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.mapper
|
||||
* @Project:cloud-server-8
|
||||
* @name:CarInformationMapper
|
||||
* @Date:2024/9/22 22:24
|
||||
*/
|
||||
@Mapper
|
||||
public interface CarInformationMapper extends BaseMapper<CarInformation> {
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.mapper
|
||||
* @Project:cloud-server-8
|
||||
* @name:CarMiddleGroupMapper
|
||||
* @Date:2024/9/22 20:43
|
||||
*/
|
||||
@Mapper
|
||||
public interface CarMiddleGroupMapper extends BaseMapper<CarMiddleGroup> {
|
||||
List<CarMiddleGroup> selectByIdList(@Param("carFenceId") Integer carFenceId);
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.mapper
|
||||
* @Project:cloud-electronic
|
||||
* @name:CarMiddleMapper
|
||||
* @Date:2024/9/20 16:35
|
||||
*/
|
||||
@Mapper
|
||||
public interface CarMiddleMapper extends BaseMapper<CarMiddle> {
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
package com.muyu.server.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.muyu.domain.CarFenceClazz;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.service
|
||||
* @Project:cloud-electronic
|
||||
* @name:CarFenceClazzService
|
||||
* @Date:2024/9/17 17:33
|
||||
*/
|
||||
public interface CarFenceClazzService extends IService<CarFenceClazz>{
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.service
|
||||
* @Project:cloud-server-8
|
||||
* @name:CarFenceGroupService
|
||||
* @Date:2024/9/22 20:53
|
||||
*/
|
||||
public interface CarFenceGroupService extends IService<CarFenceGroup> {
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.service
|
||||
* @Project:cloud-electronic
|
||||
* @name:CarFenceService
|
||||
* @Date:2024/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);
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
package com.muyu.server.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.muyu.domain.CarFenceType;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.service
|
||||
* @Project:cloud-electronic
|
||||
* @name:CarFenceTypeService
|
||||
* @Date:2024/9/17 17:29
|
||||
*/
|
||||
public interface CarFenceTypeService extends IService<CarFenceType>{
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
package com.muyu.server.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.muyu.domain.CarInformation;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.service
|
||||
* @Project:cloud-server-8
|
||||
* @name:CarInformationService
|
||||
* @Date:2024/9/22 22:22
|
||||
*/
|
||||
public interface CarInformationService extends IService<CarInformation> {
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.service
|
||||
* @Project:cloud-server-8
|
||||
* @name:CarMiddleGroupController
|
||||
* @Date:2024/9/22 20:40
|
||||
*/
|
||||
public interface CarMiddleGroupService extends IService<CarMiddleGroup> {
|
||||
/*
|
||||
查询中间
|
||||
*/
|
||||
List<CarFenceGroup> selectCarFence();
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.service
|
||||
* @Project:cloud-electronic
|
||||
* @name:CarMiddleSerivce
|
||||
* @Date:2024/9/20 16:34
|
||||
*/
|
||||
public interface CarMiddleSerivce extends IService<CarMiddle> {
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.service.impl
|
||||
* @Project:cloud-electronic
|
||||
* @name:CarFenceClazzServiceImpl
|
||||
* @Date:2024/9/17 17:33
|
||||
*/
|
||||
@Service
|
||||
public class CarFenceClazzServiceImpl
|
||||
extends ServiceImpl<CarFenceClazzMapper, CarFenceClazz>
|
||||
implements CarFenceClazzService {
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.service.impl
|
||||
* @Project:cloud-server-8
|
||||
* @name:CarFenceGroupServiceImpl
|
||||
* @Date:2024/9/22 20:53
|
||||
*/
|
||||
@Service
|
||||
public class CarFenceGroupServiceImpl
|
||||
extends ServiceImpl<CarFenceGroupMapper, CarFenceGroup>
|
||||
implements CarFenceGroupService {
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.service.impl
|
||||
* @Project:cloud-electronic
|
||||
* @name:CarFenceServiceImpl
|
||||
* @Date:2024/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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.service.impl
|
||||
* @Project:cloud-electronic
|
||||
* @name:CarFenceTypeServiceImpl
|
||||
* @Date:2024/9/17 17:30
|
||||
*/
|
||||
@Service
|
||||
public class CarFenceTypeServiceImpl
|
||||
extends ServiceImpl<CarFenceTypeMapper, CarFenceType>
|
||||
implements CarFenceTypeService {
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.service.impl
|
||||
* @Project:cloud-server-8
|
||||
* @name:CarInformationServiceImpl
|
||||
* @Date:2024/9/22 22:22
|
||||
*/
|
||||
@Service
|
||||
public class CarInformationServiceImpl
|
||||
extends ServiceImpl<CarInformationMapper, CarInformation>
|
||||
implements CarInformationService {
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.service.impl
|
||||
* @Project:cloud-server-8
|
||||
* @name:CarMiddleGroupServiceImpl
|
||||
* @Date:2024/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();
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.service.impl
|
||||
* @Project:cloud-electronic
|
||||
* @name:CarMiddleSerivceImpl
|
||||
* @Date:2024/9/20 16:34
|
||||
*/
|
||||
@Service
|
||||
@AllArgsConstructor
|
||||
public class CarMiddleSerivceImpl
|
||||
extends ServiceImpl<CarMiddleMapper, CarMiddle>
|
||||
implements CarMiddleSerivce {
|
||||
}
|
|
@ -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:张腾
|
||||
// * @Package:com.muyu.server.util
|
||||
// * @Project:cloud-integration
|
||||
// * @name:BaseDao
|
||||
// * @Date:2024/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();
|
||||
// }
|
||||
// }
|
||||
//}
|
|
@ -0,0 +1,11 @@
|
|||
package com.muyu.server.util;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.util
|
||||
* @Project:cloud-electronic
|
||||
* @name:PaginationInterceptor
|
||||
* @Date:2024/9/17 19:22
|
||||
*/
|
||||
public class PaginationInterceptor {
|
||||
}
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* @Author:yang
|
||||
* @Package:com.muyu.server.util
|
||||
* @Project:cloud-property
|
||||
* @name:Thread
|
||||
* @Date:2024/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();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
Spring Boot Version: ${spring-boot.version}
|
||||
Spring Application Name: ${spring.application.name}
|
|
@ -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}
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -9,6 +9,7 @@
|
|||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<modules>
|
||||
<module>cloud-electronic</module>
|
||||
<module>cloud-modules-system</module>
|
||||
<module>cloud-modules-gen</module>
|
||||
<module>cloud-modules-file</module>
|
||||
|
|
9
pom.xml
9
pom.xml
|
@ -246,6 +246,13 @@
|
|||
<version>${muyu.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- 系统级别 插件 -->
|
||||
<dependency>
|
||||
<groupId>com.muyu</groupId>
|
||||
<artifactId>cloud-common-system</artifactId>
|
||||
<version>${muyu.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- xxl-job-core -->
|
||||
<dependency>
|
||||
<groupId>com.xuxueli</groupId>
|
||||
|
@ -275,6 +282,8 @@
|
|||
<module>cloud-visual</module>
|
||||
<module>cloud-modules</module>
|
||||
<module>cloud-common</module>
|
||||
<module>cloud-modules/cloud-electronic</module>
|
||||
<module>cloud-modules/cloud-Vehicle-Simulation</module>
|
||||
</modules>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
|
|
Loading…
Reference in New Issue