Merge branch 'master' of https://gitea.qinmian.online/ToBeNumberOne/god-car-base
# Conflicts: # car-base-server/src/main/java/com/god/base/server/controller/FenceController.java # car-base-server/src/main/java/com/god/base/server/mapper/FenceMapper.java # car-base-server/src/main/java/com/god/base/server/service/FenceService.java # car-base-server/src/main/java/com/god/base/server/service/impl/FenceServiceImpl.javamaster
commit
428135ed02
|
@ -0,0 +1,96 @@
|
|||
package com.god.base.common.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.god.base.common.domain.request.FenceAddRequest;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 电子围栏信息
|
||||
*
|
||||
* @author Lou-Zs
|
||||
* @Date 2023/11/20 19:41
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@TableName(value = "t_fence")
|
||||
public class Fence {
|
||||
|
||||
|
||||
/**
|
||||
* 围栏主建编号
|
||||
*/
|
||||
@TableId(value = "fence_id",type = IdType.AUTO)
|
||||
private Integer fenceId;
|
||||
|
||||
/**
|
||||
* 围栏名称
|
||||
*/
|
||||
@NotEmpty(message = "围栏名称不能为空")
|
||||
private String fenceName;
|
||||
|
||||
/**
|
||||
* 围栏坐标位置
|
||||
*/
|
||||
private String fenceLocation;
|
||||
|
||||
/**
|
||||
* 激活状态
|
||||
* 0-停用
|
||||
* 1-开启
|
||||
*/
|
||||
private Integer fenceStatus;
|
||||
|
||||
/**
|
||||
* 行驶状态
|
||||
* 1-驶入
|
||||
* 2-驶出
|
||||
*/
|
||||
private Integer driveStatus;
|
||||
|
||||
/**
|
||||
* 车辆主建
|
||||
*/
|
||||
private String carVinId;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH-mm-ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss",timezone = "GMT+8")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH-mm-ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss",timezone = "GMT+8")
|
||||
private Date updateTime;
|
||||
|
||||
|
||||
|
||||
public static Fence fenceBuildAdd(FenceAddRequest fenceAddRequest){
|
||||
return Fence.builder()
|
||||
.fenceName(fenceAddRequest.getFenceName())
|
||||
.fenceLocation(fenceAddRequest.getFenceLocation())
|
||||
.fenceStatus(fenceAddRequest.getFenceStatus())
|
||||
.driveStatus(fenceAddRequest.getDriveStatus())
|
||||
.carVinId(fenceAddRequest.getCarVinId())
|
||||
.createTime(fenceAddRequest.getCreateTime())
|
||||
.updateTime(fenceAddRequest.getUpdateTime())
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,76 @@
|
|||
package com.god.base.common.domain.request;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 围栏新增参数
|
||||
*
|
||||
* @author Lou-Zs
|
||||
* @Date 2023/11/20 19:41
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@TableName(value = "t_fence")
|
||||
public class FenceAddRequest {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 围栏名称
|
||||
*/
|
||||
@NotEmpty(message = "围栏名称不能为空")
|
||||
private String fenceName;
|
||||
|
||||
/**
|
||||
* 围栏坐标位置
|
||||
*/
|
||||
private String fenceLocation;
|
||||
|
||||
/**
|
||||
* 激活状态
|
||||
* 0-停用
|
||||
* 1-开启
|
||||
*/
|
||||
private Integer fenceStatus;
|
||||
|
||||
/**
|
||||
* 行驶状态
|
||||
* 1-驶入
|
||||
* 2-驶出
|
||||
*/
|
||||
private Integer driveStatus;
|
||||
|
||||
/**
|
||||
* 车辆主建
|
||||
*/
|
||||
private String carVinId;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH-mm-ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss",timezone = "GMT+8")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH-mm-ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss",timezone = "GMT+8")
|
||||
private Date updateTime;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
package com.god.base.common.domain.request;
|
||||
|
||||
import com.god.base.common.page.PageQuery;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
/**
|
||||
* 电子围栏查询条件
|
||||
*
|
||||
* @author Lou-Zs
|
||||
* @Date 2023/11/20 22:01
|
||||
**/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class FenceQueryRequest extends PageQuery {
|
||||
|
||||
|
||||
/**
|
||||
* 围栏名称
|
||||
*/
|
||||
private String fenceName;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 激活状态
|
||||
* 0-停用
|
||||
* 1-开启
|
||||
*/
|
||||
private Integer fenceStatus;
|
||||
|
||||
/**
|
||||
* 行驶状态
|
||||
* 1-驶入
|
||||
* 2-驶出
|
||||
*/
|
||||
private Integer driveStatus;
|
||||
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
package com.god.base.common.page;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询条件
|
||||
*
|
||||
* @author Lou-Zs
|
||||
* @Date 2023/11/20 22:03
|
||||
**/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class PageQuery {
|
||||
|
||||
|
||||
private Integer pageNum;
|
||||
|
||||
|
||||
|
||||
private Integer pageSize;
|
||||
|
||||
|
||||
|
||||
public <T> Page<T> buildPage(){
|
||||
Page<T> page = new Page<>(this.pageNum, this.pageSize);
|
||||
return page;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
package com.god.base.server.common.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 电池箱信息表
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@TableName("t_battery_box")
|
||||
public class BatteryBox {
|
||||
|
||||
/**
|
||||
* 电池箱主键
|
||||
*/
|
||||
private long batteryBoxId;
|
||||
/**
|
||||
* 电池包编码
|
||||
*/
|
||||
private String batteryBoxBatteryPackCoding;
|
||||
/**
|
||||
* 电池包型名称
|
||||
*/
|
||||
private String batteryBoxName;
|
||||
/**
|
||||
* 电池型号编号
|
||||
*/
|
||||
private String batteryBoxNumber;
|
||||
/**
|
||||
* 实际容量
|
||||
*/
|
||||
private String batteryBoxActualCapacity;
|
||||
/**
|
||||
* 实际电压
|
||||
*/
|
||||
private String batteryBoxVirtualVoltage;
|
||||
/**
|
||||
* 实际质量
|
||||
*/
|
||||
private String batteryBoxActualMass;
|
||||
/**
|
||||
* 出厂时间
|
||||
*/
|
||||
@DateTimeFormat
|
||||
private Date batteryBoxDate;
|
||||
/**
|
||||
* 所在电池组编码
|
||||
*/
|
||||
private long cellId;
|
||||
/**
|
||||
* 所在车辆VIN
|
||||
*/
|
||||
private String carVin;
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
package com.god.base.server.common.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 电池箱型号
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@TableName("t_batteryBox_model")
|
||||
public class BatteryBoxModel {
|
||||
/**
|
||||
* 电池箱型号主键
|
||||
*/
|
||||
private long batteryBoxModelId;
|
||||
/**
|
||||
* 型号名称
|
||||
*/
|
||||
private String batteryBoxModelName;
|
||||
/**
|
||||
* 型号编号
|
||||
*/
|
||||
private String batteryBoxModelNumber;
|
||||
/**
|
||||
* 电池包规格代码
|
||||
*/
|
||||
private String batteryBoxModelPackSpecificationCode;
|
||||
/**
|
||||
* 电池品牌
|
||||
*/
|
||||
private int batteryBoxModelBrand;
|
||||
/**
|
||||
* 温度探针总数
|
||||
*/
|
||||
private String batteryBoxModelTemperatureProbePopulation;
|
||||
/**
|
||||
* 模块串并联方式
|
||||
*/
|
||||
private String batteryBoxModelModuleSeriesParallelMode;
|
||||
/**
|
||||
* 模块个数
|
||||
*/
|
||||
private String batteryBoxModelNumberOfModules;
|
||||
/**
|
||||
* 生产厂商名称
|
||||
*/
|
||||
private String batteryBoxModelManufacturerName;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,127 @@
|
|||
package com.god.base.server.common.domain;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.god.base.server.common.domain.request.CarRequest;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 车辆信息
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@TableName(value = "t_car")
|
||||
public class Car {
|
||||
/**
|
||||
* 车辆Vin 主键
|
||||
*/
|
||||
private String carVinId;
|
||||
/**
|
||||
* 单位id
|
||||
*/
|
||||
private long userId;
|
||||
/**
|
||||
* 车辆类型id
|
||||
*/
|
||||
private long carTypeId;
|
||||
/**
|
||||
* 电池箱信息id
|
||||
*/
|
||||
private long batteryBoxId;
|
||||
/**
|
||||
* 电池组id
|
||||
*/
|
||||
private long cellId;
|
||||
/**
|
||||
* 单体电池id
|
||||
*/
|
||||
private long batteryCellId;
|
||||
/**
|
||||
* 电池组模块id
|
||||
*/
|
||||
private long batteryPackInformationId;
|
||||
/**
|
||||
* 电子围栏ID
|
||||
*/
|
||||
private long fenceId;
|
||||
/**
|
||||
* 车牌号
|
||||
*/
|
||||
private String carNumber;
|
||||
/**
|
||||
* 驱动机主键
|
||||
*/
|
||||
private long driveMotorId;
|
||||
/**
|
||||
* 车辆总里程
|
||||
*/
|
||||
private String carMileage;
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
private String createBy;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
/**
|
||||
* 更新者
|
||||
*/
|
||||
private String updateBy;
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@DateTimeFormat
|
||||
private Date updateTime;
|
||||
/**
|
||||
* 区域
|
||||
*/
|
||||
private String address;
|
||||
/**
|
||||
* 电池厂商
|
||||
*/
|
||||
private String batteryManufacturer;
|
||||
/**
|
||||
* 电机厂商
|
||||
*/
|
||||
private String motorManufacturer;
|
||||
/**
|
||||
* 电机编号
|
||||
*/
|
||||
private String motorNumber;
|
||||
/**
|
||||
* 电池编号
|
||||
*/
|
||||
private String batteryNumber;
|
||||
/**
|
||||
* 逻辑删除
|
||||
*/
|
||||
private int isDelete;
|
||||
|
||||
|
||||
public static Car addReqBuild(CarRequest carRequest){
|
||||
return Car.builder()
|
||||
//把所有的属性点都加上
|
||||
.carVinId(carRequest.getCarVinId())
|
||||
.carTypeId(carRequest.getCarTypeId())
|
||||
.batteryManufacturer(carRequest.getBatteryManufacturer())
|
||||
.motorManufacturer(carRequest.getMotorManufacturer())
|
||||
.motorNumber(carRequest.getMotorNumber())
|
||||
.batteryNumber(carRequest.getBatteryNumber())
|
||||
.batteryNumber(carRequest.getBatteryNumber())
|
||||
.build()
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
package com.god.base.server.common.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 车辆类型表
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@TableName("t_carT_type")
|
||||
public class CarType {
|
||||
|
||||
/**
|
||||
* 车辆类型主建
|
||||
*/
|
||||
private long id;
|
||||
/**
|
||||
* 类型名称
|
||||
*/
|
||||
private String carTypename;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
package com.god.base.server.common.domain.request;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 车辆请求参数
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@NotNull
|
||||
public class CarRequest {
|
||||
|
||||
/**
|
||||
* 车辆Vin 主键
|
||||
*/
|
||||
@NotEmpty(message = "车辆vin不能为空")
|
||||
private String carVinId;
|
||||
/**
|
||||
* 车辆类型
|
||||
*/
|
||||
@NotEmpty(message = "车辆类型不能为空")
|
||||
private long carTypeId;
|
||||
/**
|
||||
* 电子围栏ID
|
||||
*/
|
||||
@NotEmpty(message = "电子围栏不能为空")
|
||||
private long fenceId;
|
||||
/**
|
||||
* 电池厂商
|
||||
*/
|
||||
@NotEmpty(message = "电池厂商不能为空")
|
||||
private String batteryManufacturer;
|
||||
/**
|
||||
* 电机厂商
|
||||
*/
|
||||
@NotEmpty(message = "电机厂商不能为空")
|
||||
private String motorManufacturer;
|
||||
/**
|
||||
* 电机编号
|
||||
*/
|
||||
@NotEmpty(message = "电机编号不能为空")
|
||||
private String motorNumber;
|
||||
/**
|
||||
* 电池编号
|
||||
*/
|
||||
@NotEmpty(message = "电池编号不能为空")
|
||||
private String batteryNumber;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
# Tomcat
|
||||
server:
|
||||
port: 9802
|
||||
port: 9803
|
||||
|
||||
# Spring
|
||||
spring:
|
||||
|
|
|
@ -59,9 +59,27 @@
|
|||
<groupId>com.mysql</groupId>
|
||||
<artifactId>mysql-connector-j</artifactId>
|
||||
</dependency>
|
||||
<!-- 登录-->
|
||||
<dependency>
|
||||
<groupId>com.god</groupId>
|
||||
<artifactId>god-common-security</artifactId>
|
||||
<version>3.6.3</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
<version>3.4.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
<version>3.4.2</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
<build>
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
<plugins>
|
||||
|
|
|
@ -17,6 +17,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|||
@SpringBootApplication
|
||||
public class GodCarBaseApplication {
|
||||
public static void main (String[] args) {
|
||||
SpringApplication.run(com.god.base.server.GodCarBaseApplication .class, args);
|
||||
SpringApplication.run(GodCarBaseApplication.class, args);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,77 @@
|
|||
package com.god.base.server.controller;
|
||||
import com.god.base.server.common.domain.Car;
|
||||
import com.god.base.server.common.domain.request.CarRequest;
|
||||
import com.god.base.server.service.CarService;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.god.common.core.domain.Result;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 车辆管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/car")
|
||||
@Log4j2
|
||||
public class CarController {
|
||||
@Autowired
|
||||
private CarService carService;
|
||||
|
||||
|
||||
/**
|
||||
* 车辆信息查看
|
||||
*/
|
||||
@GetMapping("carList/{userId}")
|
||||
public Result<?> carList(@PathVariable String userId){
|
||||
log.info("请求参数" + userId);
|
||||
Result<List<Car>> carList = carService.carList(userId);
|
||||
log.info("响应参数" + carList);
|
||||
return Result.success(carList);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 添加车辆
|
||||
*/
|
||||
@PostMapping("/addCar")
|
||||
public Result<String> addCarP(@RequestBody @Validated CarRequest carRequest){
|
||||
log.info("请求参数" + carRequest);
|
||||
boolean save = carService.save(Car.addReqBuild(carRequest));
|
||||
log.info("响应参数" + save);
|
||||
return Result.success();
|
||||
}
|
||||
/**
|
||||
* 修改车辆的连接 进行上报
|
||||
*/
|
||||
@PostMapping("/updCar/{vinId}")
|
||||
public Result updCat(@PathVariable @Validated String vinId){
|
||||
log.info("请求参数" + vinId);
|
||||
carService.updateById(vinId);
|
||||
log.info("响应参数" + vinId);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 逻辑删除
|
||||
*/
|
||||
@PostMapping("/delCar/{vinId}")
|
||||
public Result delCar(@PathVariable String vinId){
|
||||
log.info("请求参数" + vinId);
|
||||
boolean b = carService.removeById(vinId);
|
||||
log.info("响应参数" + b);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 实时轨迹
|
||||
*/
|
||||
@PostMapping
|
||||
public Result sSgj(){
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,113 @@
|
|||
package com.god.base.server.controller;
|
||||
|
||||
/**
|
||||
* @ClassName FenceController
|
||||
* @Author Lou-Zs
|
||||
* @Date 2023/11/19 20:00
|
||||
* @Version 1.0
|
||||
* @Description TODO
|
||||
**/
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
import com.god.base.common.domain.Fence;
|
||||
import com.god.base.common.domain.request.FenceAddRequest;
|
||||
import com.god.base.common.domain.request.FenceQueryRequest;
|
||||
import com.god.base.server.service.FenceService;
|
||||
import com.god.common.core.web.page.TableDataInfo;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.god.common.core.domain.Result;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
/**
|
||||
* base围栏操作
|
||||
* @author Lou-Zs
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/baseFence")
|
||||
@Log4j2
|
||||
public class FenceController {
|
||||
|
||||
@Autowired
|
||||
private HttpServletRequest request;
|
||||
@Autowired
|
||||
private FenceService fenceService;
|
||||
|
||||
|
||||
/**
|
||||
* 增添电子围栏
|
||||
* @param fenceAddRequest
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/insertFence")
|
||||
public Result<String> insertFence(@RequestBody @Validated FenceAddRequest fenceAddRequest){
|
||||
log.info("功能介绍新增电子围栏,请求方式;{},请求路径:{},请求参数:{}",
|
||||
request.getMethod(),
|
||||
request.getRequestURL(),
|
||||
JSONObject.toJSONString(fenceAddRequest));
|
||||
|
||||
//围栏添加
|
||||
fenceService.save(Fence.fenceBuildAdd(fenceAddRequest));
|
||||
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据围栏编号编辑围栏信息
|
||||
* @param fence
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/updateFence")
|
||||
public Result<String> updateFence(@RequestBody @Validated Fence fence){
|
||||
log.info("功能介绍:编辑围栏信息,请求方式:{},请求路径:{},请求参数:{}",
|
||||
request.getMethod(),
|
||||
request.getRequestURL(),
|
||||
JSONObject.toJSONString(fence));
|
||||
|
||||
//编辑电子围栏信息
|
||||
fenceService.updateById(fence);
|
||||
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据围栏编号删除围栏
|
||||
* @param fenceId
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/deleteFence")
|
||||
public Result<String> deleteFence(@RequestParam("fenceId") Integer fenceId){
|
||||
log.info("功能介绍:通过围栏编号删除围栏,请求方式:{},请求路径:{},请求参数:{}",
|
||||
request.getMethod(),
|
||||
request.getRequestURL(),
|
||||
JSONObject.toJSONString(fenceId));
|
||||
|
||||
//根据围栏编号删除围栏
|
||||
fenceService.removeById(fenceId);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询电子围栏列表
|
||||
* @param fenceQueryRequest
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/fenceListAndPage")
|
||||
public Result<TableDataInfo<Fence>> fenceListAndPage(@RequestBody FenceQueryRequest fenceQueryRequest){
|
||||
log.info("功能介绍:查询围栏列表,请求方式:{},请求路径:{},请求参数:{}",
|
||||
request.getMethod(),
|
||||
request.getRequestURL(),
|
||||
JSONObject.toJSONString(fenceQueryRequest));
|
||||
|
||||
//分页查询围栏列表
|
||||
TableDataInfo<Fence> dataInfo = fenceService.fenceListAndPage(fenceQueryRequest);
|
||||
|
||||
return Result.success(dataInfo);
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package com.god.base.server.mapper;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.god.base.server.common.domain.Car;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 车辆mapper
|
||||
*/
|
||||
@Mapper
|
||||
public interface CarMapper extends BaseMapper<Car> {
|
||||
|
||||
List<Car> getList(int userId1);
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
package com.god.base.server.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.god.base.common.domain.Fence;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* @ClassName FenceMapper
|
||||
* @Author Lou-Zs
|
||||
* @Date 2023/11/19 20:28
|
||||
* @Version 1.0
|
||||
* @Description TODO
|
||||
**/
|
||||
@Mapper
|
||||
public interface FenceMapper extends BaseMapper<Fence> {
|
||||
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
package com.god.base.server.service;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.god.base.server.common.domain.Car;
|
||||
import com.god.common.core.domain.Result;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 车辆管理层
|
||||
*/
|
||||
public interface CarService extends IService<Car> {
|
||||
|
||||
|
||||
Result<List<Car>> carList(@Param("userId") String userId);
|
||||
|
||||
void updateById(@Param("vinId") String vinId);
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
package com.god.base.server.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.god.base.common.domain.Fence;
|
||||
import com.god.base.common.domain.request.FenceQueryRequest;
|
||||
import com.god.common.core.web.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* @ClassName FenceService
|
||||
* @Author Lou-Zs
|
||||
* @Date 2023/11/19 22:26
|
||||
* @Version 1.0
|
||||
* @Description TODO
|
||||
**/
|
||||
|
||||
/**
|
||||
* 电子围栏
|
||||
* @author Lou-Zs
|
||||
*/
|
||||
public interface FenceService extends IService<Fence> {
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询电子围栏列表
|
||||
* @param fenceQueryRequest
|
||||
* @return
|
||||
*/
|
||||
TableDataInfo<Fence> fenceListAndPage(FenceQueryRequest fenceQueryRequest);
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
package com.god.base.server.service.impl;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.god.base.server.common.domain.Car;
|
||||
import com.god.base.server.mapper.CarMapper;
|
||||
import com.god.base.server.service.CarService;
|
||||
import com.god.common.core.domain.Result;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 车辆管理业务层
|
||||
*/
|
||||
@Log4j2
|
||||
@Service
|
||||
public class CarServiceImpl extends ServiceImpl<CarMapper,Car> implements CarService {
|
||||
@Autowired
|
||||
private CarMapper carMapper;
|
||||
|
||||
@Override
|
||||
public Result<List<Car>> carList(String userId) {
|
||||
// Long userId1 = SecurityUtils.getUserId();
|
||||
// if (null == userId1){
|
||||
// throw new SecurityException("请先登录");
|
||||
// }
|
||||
int userId1 = 1;
|
||||
List<Car> carList = carMapper.getList(userId1);
|
||||
return Result.success(carList);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改车辆管理信息
|
||||
* @param vinId
|
||||
*/
|
||||
@Override
|
||||
public void updateById(String vinId) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,131 @@
|
|||
package com.god.base.server.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
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.god.base.common.domain.Fence;
|
||||
import com.god.base.common.domain.request.FenceQueryRequest;
|
||||
import com.god.base.server.mapper.FenceMapper;
|
||||
import com.god.base.server.service.FenceService;
|
||||
import com.god.common.core.web.page.TableDataInfo;
|
||||
import com.god.common.redis.service.RedisService;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @ClassName FenceServiceImpl
|
||||
* @Author Lou-Zs
|
||||
* @Date 2023/11/19 22:26
|
||||
* @Version 1.0
|
||||
* @Description TODO
|
||||
**/
|
||||
|
||||
/**
|
||||
* 电子围栏
|
||||
* @author Lou-Zs
|
||||
*/
|
||||
@Service
|
||||
@Log4j2
|
||||
public class FenceServiceImpl extends ServiceImpl<FenceMapper , Fence> implements FenceService {
|
||||
|
||||
//redis
|
||||
@Autowired
|
||||
private RedisService redisService;
|
||||
|
||||
/**
|
||||
* 增添电子围栏
|
||||
* @param entity
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean save(Fence entity) {
|
||||
boolean save = super.save(entity);
|
||||
if (!save){
|
||||
log.warn("增加围栏:[/-{}-/]失败! 请求参数:{}",
|
||||
entity.getFenceName(),
|
||||
JSONObject.toJSONString(entity));
|
||||
throw new RuntimeException("增添围栏失败!");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据围栏编号删除围栏
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean removeById(Serializable id) {
|
||||
boolean remove = super.removeById(id);
|
||||
if (!remove){
|
||||
log.warn("删除围栏编号:[/-{}-/]失败!",
|
||||
id);
|
||||
throw new RuntimeException("删除围栏失败!");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据围栏编号编辑围栏信息
|
||||
* @param entity
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean updateById(Fence entity) {
|
||||
entity.setUpdateTime(new Date());
|
||||
// 获取当前围栏坐标
|
||||
String fenceLocation = entity.getFenceLocation();
|
||||
// 将围栏坐标存储到redis中
|
||||
// key 围栏编号
|
||||
// value 围栏坐标信息
|
||||
redisService.setCacheObject(entity.getFenceId()+"",fenceLocation);
|
||||
boolean update = super.updateById(entity);
|
||||
if (!update){
|
||||
log.warn("编辑围栏[/-{}-/]未成功! 请求参数:{}",
|
||||
entity.getFenceName(),
|
||||
JSONObject.toJSONString(entity));
|
||||
throw new RuntimeException("编辑围栏失败!");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询电子围栏列表
|
||||
* @param fenceQueryRequest
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<Fence> fenceListAndPage(FenceQueryRequest fenceQueryRequest) {
|
||||
LambdaQueryWrapper<Fence> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
//判断查询围栏是否为空
|
||||
if (StringUtils.isNotEmpty(fenceQueryRequest.getFenceName())){
|
||||
//模糊查询
|
||||
lambdaQueryWrapper.like(Fence::getFenceName,fenceQueryRequest.getFenceName());
|
||||
}
|
||||
//判断激活状态是否为空
|
||||
if (null != fenceQueryRequest.getFenceStatus()){
|
||||
//精确查询
|
||||
lambdaQueryWrapper.eq(Fence::getFenceStatus,fenceQueryRequest.getFenceStatus());
|
||||
}
|
||||
//判断行驶状态是否为空
|
||||
if (null != fenceQueryRequest.getDriveStatus()){
|
||||
//精确查询
|
||||
lambdaQueryWrapper.eq(Fence::getDriveStatus,fenceQueryRequest.getDriveStatus());
|
||||
}
|
||||
//分页
|
||||
Page<Fence> fencePage = fenceQueryRequest.buildPage();
|
||||
log.info("分页查询:[ {} ]", JSONObject.toJSONString(fencePage));
|
||||
Page<Fence> page = this.page(fencePage, lambdaQueryWrapper);
|
||||
return TableDataInfo.<Fence>builder()
|
||||
.rows(page.getRecords())
|
||||
.total(page.getTotal())
|
||||
.build();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
|
||||
<link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css" />
|
||||
<title>地图显示</title>
|
||||
<style>
|
||||
html,
|
||||
body,
|
||||
#container {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="container"></div>
|
||||
<!-- 加载地图JSAPI脚本 -->
|
||||
<script src="https://webapi.amap.com/maps?v=2.0&key=1dc6c2a01b67ed7f982a49fc89ac3190"></script>
|
||||
<script>
|
||||
var map = new AMap.Map('container', {
|
||||
viewMode: '3D', // 默认使用 2D 模式,如果希望使用带有俯仰角的 3D 模式,请设置 viewMode: '3D'
|
||||
zoom:11, // 初始化地图层级
|
||||
center: [116.397428, 39.90923] // 初始化地图中心点
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,81 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
|
||||
<style>
|
||||
html,
|
||||
body,
|
||||
#container {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
<title>多边形的绘制和编辑</title>
|
||||
<link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css" />
|
||||
<script src="https://webapi.amap.com/maps?v=2.0&key=1dc6c2a01b67ed7f982a49fc89ac3190&plugin=AMap.PolygonEditor"></script>
|
||||
<script src="https://a.amap.com/jsapi_demos/static/demo-center/js/demoutils.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="container"></div>
|
||||
<div class="input-card" style="width: 120px">
|
||||
<button class="btn" onclick="polyEditor.open()" style="margin-bottom: 5px">开始编辑</button>
|
||||
<button class="btn" onclick="polyEditor.close()">结束编辑</button>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
var map = new AMap.Map("container", {
|
||||
center: [116.400274, 39.905812],
|
||||
zoom: 14,
|
||||
viewMode: '3D',
|
||||
});
|
||||
|
||||
var path = [
|
||||
[116.403322, 39.920255],
|
||||
[116.410703, 39.897555],
|
||||
[116.402292, 39.892353],
|
||||
[116.389846, 39.891365]
|
||||
]
|
||||
var path1 = [
|
||||
[116.453322, 39.920255],
|
||||
[116.460703, 39.897555],
|
||||
[116.452292, 39.892353],
|
||||
[116.439846, 39.891365]
|
||||
]
|
||||
|
||||
var polygon = new AMap.Polygon({
|
||||
path: path,
|
||||
strokeColor: "#FF33FF",
|
||||
strokeWeight: 6,
|
||||
strokeOpacity: 0.2,
|
||||
fillOpacity: 0.4,
|
||||
fillColor: '#1791fc',
|
||||
zIndex: 50,
|
||||
bubble: true,
|
||||
})
|
||||
var polygon1 = new AMap.Polygon({
|
||||
path: path1,
|
||||
strokeColor: "green",
|
||||
strokeWeight: 6,
|
||||
strokeOpacity: 0.2,
|
||||
fillOpacity: 0.4,
|
||||
fillColor: '#1791fc',
|
||||
zIndex: 50,
|
||||
bubble: true,
|
||||
|
||||
})
|
||||
|
||||
map.add([polygon, polygon1])
|
||||
|
||||
// 缩放地图到合适的视野级别
|
||||
map.setFitView()
|
||||
var polyEditor;
|
||||
// var polyEditor = new AMap.PolyEditor(map, polygon)
|
||||
// polyEditor = new AMap.PolygonEditor(map)
|
||||
polyEditor = new AMap.PolygonEditor(map, polygon);
|
||||
polyEditor.addAdsorbPolygons(polygon1)
|
||||
polyEditor.open();
|
||||
// polyEditor.close();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,145 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Title</title>
|
||||
</head>
|
||||
<body>
|
||||
<!--引入高德地图sdk-->
|
||||
<!--"@amap/amap-jsapi-loader": "^1.0.1"-->
|
||||
<!--html 展示操作按钮-->
|
||||
<el-button type="primary" class="sub-btn" @click="handleStart">开始建围栏</el-button>点击开始建立围栏后,围栏操作按钮才可见
|
||||
|
||||
<div class="map-paint-box2" v-show="clickBox">
|
||||
<button class="btn" onclick="startWrite">开始绘制</button>
|
||||
<button class="btn" onclick="clearWrite">清除</button>
|
||||
<button class="btn" onclick="finishWrite">完成绘制</button>
|
||||
<button class="btn" onclick="polyEditor.open()" style="margin-bottom: 5px">开始编辑</button>
|
||||
<button class="btn" onclick="polyEditor.close()">结束编辑</button>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var map = new AMap.Map("container", {
|
||||
center: [116.400274, 39.905812],
|
||||
zoom: 14,
|
||||
viewMode: '3D',
|
||||
});
|
||||
//初始化地图:
|
||||
function initMap() {
|
||||
AMapLoader.load({
|
||||
key:"", // 申请好的Web端开发者Key,首次调用 load 时必填
|
||||
version:"2.0", // 指定要加载的 JSAPI 的版本,缺省时默认1.4.15
|
||||
AMapUI: {
|
||||
version: '1.1',
|
||||
plugins:['control/BasicControl']
|
||||
} // 需要使用的的插件列表,如比例尺'AMap.Scale'等
|
||||
}).then((AMap)=>{
|
||||
map.value = new AMap.Map("container",{ //设置地图容器id
|
||||
resizeEnable: true, //是否监控地图容器尺寸变化
|
||||
zoom: 16, //初始化地图层级、
|
||||
center: [104.560920999, 31.4560470000]
|
||||
});
|
||||
}).catch(e=>{
|
||||
console.log(e);
|
||||
})
|
||||
}
|
||||
//初始化围栏信息
|
||||
function handleStart() {
|
||||
allPoly = []
|
||||
//先从后端获取已经建立的围栏,展示在地图上存到currentOrgWeilan
|
||||
clickBox.value = true //展示操作按钮
|
||||
AMapLoader.load({
|
||||
key:"", // 申请好的Web端开发者Key,首次调用 load 时必填
|
||||
version:"2.0",
|
||||
plugins:['AMap.PolygonEditor','AMap.Polygon'], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
|
||||
}).then((AMap)=>{
|
||||
polyEditor = new AMap.PolygonEditor(map.value);
|
||||
if (currentOrgWeilan.length > 0) {
|
||||
// 复现该组织下的围栏数据
|
||||
for (let one of currentOrgWeilan ) {
|
||||
let path = []
|
||||
let arr = one.regionScope.split(',')
|
||||
for (var i of arr) {
|
||||
let itemLatLng = []
|
||||
let oneArr = i.split('_')
|
||||
itemLatLng.push(Number(oneArr[0]), Number(oneArr[1]))
|
||||
path.push(itemLatLng)
|
||||
}
|
||||
//围栏数据处理 并展示
|
||||
var polygon = new AMap.Polygon({
|
||||
path: path
|
||||
})
|
||||
allPoly.push(polygon)
|
||||
}
|
||||
map.value.add(allPoly)
|
||||
map.value.setFitView(allPoly);
|
||||
polyEditor.addAdsorbPolygons(allPoly)
|
||||
for (let one of allPoly) {
|
||||
// 双击某个围栏可以进行编辑
|
||||
one.on('dblclick', () => {
|
||||
polyOverlays = []
|
||||
currentPoly = one
|
||||
polyEditor.setTarget(one);
|
||||
polyOverlays.push(one)
|
||||
polyEditor.open();
|
||||
})
|
||||
}
|
||||
}
|
||||
// 直接在地图建立新的围栏
|
||||
polyEditor.on('add', function () {
|
||||
var polygon = data.target;
|
||||
polyEditor.addAdsorbPolygons(polygon);
|
||||
polyOverlays = []
|
||||
polyOverlays.push(polygon)
|
||||
allPoly.push(polygon)
|
||||
currentPoly = polygon // currentPoly 存放当前双击围栏,不然点其他操作时总是会操作到最后创建的围栏
|
||||
polygon.on('dblclick', () => {
|
||||
polyOverlays = []
|
||||
currentPoly = polygon
|
||||
polyEditor.setTarget(polygon);
|
||||
polyOverlays.push(polygon)
|
||||
polyEditor.open();
|
||||
})
|
||||
})
|
||||
|
||||
}).catch(e=>{
|
||||
console.log(e);
|
||||
})
|
||||
|
||||
}
|
||||
function startWrite() {
|
||||
polyEditor.close();
|
||||
polyEditor.setTarget();
|
||||
polyEditor.open();
|
||||
polyPointArr = []
|
||||
}
|
||||
function clearWrite() {
|
||||
allPoly.some((one,index)=> {
|
||||
if (one==currentPoly) {
|
||||
allPoly.splice(index,1)
|
||||
return true
|
||||
}
|
||||
})
|
||||
map.value.remove(polyOverlays)
|
||||
polyEditor.close()
|
||||
}
|
||||
|
||||
async function finishWrite() {
|
||||
polyEditor.close()
|
||||
for (var item of allPoly) {
|
||||
let polyAr = item.getPath()
|
||||
let str = '',allStrArr = [], allStr=''
|
||||
for (var one of polyAr) {
|
||||
str = one.lng+'_'+one.lat
|
||||
allStrArr.push(str)
|
||||
}
|
||||
allStr=allStrArr.join(',');
|
||||
polyPointArr.push(allStr)
|
||||
}
|
||||
//polyPointArr是围栏角坐标集合,可以传给后端判断是否在坐标围栏内
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,82 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Title</title>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<script src="https://webapi.amap.com/maps?v=1.4.15&key=1dc6c2a01b67ed7f982a49fc89ac3190&plugin=AMap.MouseTool"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var map = new AMap.Map('container', {
|
||||
center: [121.548181, 29.806906],
|
||||
zoom: 15
|
||||
});
|
||||
|
||||
var path = [
|
||||
[121.546266, 29.80975],
|
||||
[121.54543, 29.806845],
|
||||
[121.548713, 29.806752],
|
||||
[121.549957, 29.809508]
|
||||
]
|
||||
|
||||
var polygon = new AMap.Polygon({
|
||||
path: path,
|
||||
strokeColor: "#1E9FFF",
|
||||
strokeWeight: 2,
|
||||
strokeStyle: 'dashed',
|
||||
strokeOpacity: 1,
|
||||
fillOpacity: 0.1,
|
||||
fillColor: '#1E9FFF',
|
||||
zIndex: 50,
|
||||
})
|
||||
|
||||
map.add(polygon)
|
||||
// 缩放地图到合适的视野级别
|
||||
map.setFitView([polygon])
|
||||
|
||||
|
||||
var map = new AMap.Map('container', {
|
||||
zoom: 14
|
||||
});
|
||||
|
||||
var mouseTool = new AMap.MouseTool(map);
|
||||
|
||||
//监听draw事件可获取画好的覆盖物
|
||||
var overlays = [];
|
||||
mouseTool.on('draw', function (e) {
|
||||
//绘制多边形;
|
||||
overlays.push(e.obj);
|
||||
//获取坐标;
|
||||
console.log(e.obj.getPath());
|
||||
//格式化坐标;
|
||||
var polyPoints = e.obj.getPath();
|
||||
var arr = "";
|
||||
for (var i = 0; i < polyPoints.length; i++) {
|
||||
arr += polyPoints[i].lng + "," + polyPoints[i].lat + ";";
|
||||
}
|
||||
console.log(arr);//121.540994,29.870174;121.55138,29.858116;121.55756,29.874193;
|
||||
})
|
||||
|
||||
//多边形样式;
|
||||
mouseTool.polygon({
|
||||
strokeColor: "#1E9FFF",
|
||||
strokeWeight: 2,
|
||||
strokeStyle: 'dashed',
|
||||
strokeOpacity: 1,
|
||||
fillOpacity: 0.1,
|
||||
fillColor: '#1E9FFF',
|
||||
zIndex: 50,
|
||||
});
|
||||
|
||||
//清除覆盖物;
|
||||
var radios = document.getElementsByName('func');
|
||||
document.getElementById('clear').onclick = function () {
|
||||
map.remove(overlays)
|
||||
overlays = [];
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,25 @@
|
|||
package com.god.base.server.util;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* mybatis-plus 分页配置类
|
||||
* @author 孙帅比
|
||||
*/
|
||||
@Configuration
|
||||
@MapperScan("com.god.base.server.mapper") //mapper持久层所在位置
|
||||
public class MyBatisPlusPageHelperConfig {
|
||||
|
||||
|
||||
/**
|
||||
* 项目启动创建分页插件实例
|
||||
* @return
|
||||
*/
|
||||
@Bean
|
||||
public PaginationInterceptor paginationInterceptor(){
|
||||
return new PaginationInterceptor();
|
||||
}
|
||||
}
|
|
@ -4,6 +4,8 @@ server:
|
|||
|
||||
# Spring
|
||||
spring:
|
||||
# main:
|
||||
# allow-bean-definition-overriding: true
|
||||
application:
|
||||
# 应用名称
|
||||
name: god-car-base
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
<?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.god.base.server.mapper.CarMapper">
|
||||
|
||||
<!-- 车辆列表-->
|
||||
<select id="getList" resultType="com.god.base.server.common.domain.Car">
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
t_car
|
||||
JOIN t_car_type ON t_car.car_type_id = t_car_type.id
|
||||
JOIN t_battery_box ON t_car.battery_box_id = t_battery_box.battery_box_id
|
||||
JOIN t_cell ON t_car.cell_id = t_cell.cell_id
|
||||
JOIN t_batterycell ON t_car.battery_cell_id = t_batterycell.batterycell_id
|
||||
JOIN t_batterypackinformation ON t_car.battery_pack_information_id = t_batterypackinformation.batterypackinformation_id
|
||||
JOIN t_drive_motor ON t_car.drive_motor_id = t_drive_motor.drive_motor_id
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
Loading…
Reference in New Issue