From 5e85548b01e92d4db571c7abebe6ef5cb9cd526c Mon Sep 17 00:00:00 2001 From: shaowenhao <3121640096@qq.com> Date: Fri, 24 Nov 2023 13:37:20 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=A1=E7=90=86=E8=BD=A6=E8=BE=86=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/god/base/common/page/PageQuery.java | 1 - .../god/base/server/common/domain/Car.java | 43 +++--- .../common/domain/request/CarRequest.java | 20 ++- .../src/main/resources/bootstrap.yml | 2 +- .../base/server/GodCarBaseApplication.java | 17 +++ .../base/server/controller/CarController.java | 131 ++++++++++++++---- .../com/god/base/server/mapper/CarMapper.java | 38 ++++- .../god/base/server/service/CarService.java | 9 +- .../server/service/impl/CarServiceImpl.java | 100 ++++++++++++- .../src/main/resources/bootstrap.yml | 2 +- .../src/main/resources/mapper/CarMapper.xml | 47 +++++-- 11 files changed, 343 insertions(+), 67 deletions(-) diff --git a/car-base-common/src/main/java/com/god/base/common/page/PageQuery.java b/car-base-common/src/main/java/com/god/base/common/page/PageQuery.java index 1a319f2..ca8ca69 100644 --- a/car-base-common/src/main/java/com/god/base/common/page/PageQuery.java +++ b/car-base-common/src/main/java/com/god/base/common/page/PageQuery.java @@ -7,7 +7,6 @@ import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; - /** * 分页查询条件 * diff --git a/car-base-common/src/main/java/com/god/base/server/common/domain/Car.java b/car-base-common/src/main/java/com/god/base/server/common/domain/Car.java index 3ceef4a..e91cfbb 100644 --- a/car-base-common/src/main/java/com/god/base/server/common/domain/Car.java +++ b/car-base-common/src/main/java/com/god/base/server/common/domain/Car.java @@ -1,28 +1,31 @@ package com.god.base.server.common.domain; - import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import com.god.base.server.common.domain.request.CarRequest; +import com.god.common.core.annotation.Excel; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; /** - * 车辆信息 + * @ClassName Car + * @Author WenHao.Sao */ @Data -@NoArgsConstructor @AllArgsConstructor +@NoArgsConstructor @Builder @TableName(value = "t_car") -public class Car { +public class Car { + /** * 车辆Vin 主键 */ + @Excel(name = "车辆carVibId") private String carVinId; /** * 单位id @@ -31,6 +34,7 @@ public class Car { /** * 车辆类型id */ + @Excel(name = "车辆类型ID") private long carTypeId; /** * 电池箱信息id @@ -51,6 +55,7 @@ public class Car { /** * 电子围栏ID */ + @Excel(name = "电子围栏ID") private long fenceId; /** * 车牌号 @@ -71,6 +76,8 @@ public class Car { /** * 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "开始时间" , width = 30, dateFormat = "yyyy-MM-dd") private Date createTime; /** * 更新者 @@ -79,7 +86,8 @@ public class Car { /** * 更新时间 */ - @DateTimeFormat + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "结束时间" , width = 30, dateFormat = "yyyy-MM-dd") private Date updateTime; /** * 区域 @@ -88,40 +96,43 @@ public class Car { /** * 电池厂商 */ + @Excel(name = "电池厂商") private String batteryManufacturer; /** * 电机厂商 */ + @Excel(name = "电机厂商") private String motorManufacturer; /** * 电机编号 */ + @Excel(name = "电机编号") private String motorNumber; /** * 电池编号 */ + @Excel(name = "电池编号") private String batteryNumber; /** * 逻辑删除 */ private int isDelete; + /** + * 车辆状态 + */ + @Excel(name = "车辆状态") + private int status; - - public static Car addReqBuild(CarRequest carRequest){ + public static Car carBuildAdd(CarRequest carRequest){ return Car.builder() - //把所有的属性点都加上 .carVinId(carRequest.getCarVinId()) .carTypeId(carRequest.getCarTypeId()) + .fenceId(carRequest.getFenceId()) + .status(carRequest.getStatus()) .batteryManufacturer(carRequest.getBatteryManufacturer()) .motorManufacturer(carRequest.getMotorManufacturer()) .motorNumber(carRequest.getMotorNumber()) - .batteryNumber(carRequest.getBatteryNumber()) - .batteryNumber(carRequest.getBatteryNumber()) - .build() - ; + .build(); } - - - } diff --git a/car-base-common/src/main/java/com/god/base/server/common/domain/request/CarRequest.java b/car-base-common/src/main/java/com/god/base/server/common/domain/request/CarRequest.java index a2ddded..e2ab4aa 100644 --- a/car-base-common/src/main/java/com/god/base/server/common/domain/request/CarRequest.java +++ b/car-base-common/src/main/java/com/god/base/server/common/domain/request/CarRequest.java @@ -1,5 +1,7 @@ package com.god.base.server.common.domain.request; +import com.god.base.common.page.PageQuery; +import com.god.common.core.annotation.Excel; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -14,42 +16,54 @@ import javax.validation.constraints.NotNull; @NoArgsConstructor @AllArgsConstructor @NotNull -public class CarRequest { +public class CarRequest extends PageQuery { /** * 车辆Vin 主键 */ @NotEmpty(message = "车辆vin不能为空") + @Excel(name = "车辆carVibId") private String carVinId; /** * 车辆类型 */ - @NotEmpty(message = "车辆类型不能为空") + @NotNull(message = "车辆类型不能为空") + @Excel(name = "车辆类型ID") private long carTypeId; /** * 电子围栏ID */ - @NotEmpty(message = "电子围栏不能为空") + @NotNull(message = "电子围栏不能为空") + @Excel(name = "电子围栏ID") private long fenceId; + /** + * 车辆状态 已离线 / 已连接 + */ + @Excel(name = "车辆状态") + private int status; /** * 电池厂商 */ @NotEmpty(message = "电池厂商不能为空") + @Excel(name = "电池厂商") private String batteryManufacturer; /** * 电机厂商 */ @NotEmpty(message = "电机厂商不能为空") + @Excel(name = "电机厂商") private String motorManufacturer; /** * 电机编号 */ @NotEmpty(message = "电机编号不能为空") + @Excel(name = "电机编号") private String motorNumber; /** * 电池编号 */ @NotEmpty(message = "电池编号不能为空") + @Excel(name = "电池编号") private String batteryNumber; diff --git a/car-base-common/src/main/resources/bootstrap.yml b/car-base-common/src/main/resources/bootstrap.yml index 403a368..a68864d 100644 --- a/car-base-common/src/main/resources/bootstrap.yml +++ b/car-base-common/src/main/resources/bootstrap.yml @@ -6,7 +6,7 @@ server: spring: application: # 应用名称 - name: god-car-base + name: god-car-management profiles: # 环境配置 active: dev diff --git a/car-base-server/src/main/java/com/god/base/server/GodCarBaseApplication.java b/car-base-server/src/main/java/com/god/base/server/GodCarBaseApplication.java index 49d14d9..1e75882 100644 --- a/car-base-server/src/main/java/com/god/base/server/GodCarBaseApplication.java +++ b/car-base-server/src/main/java/com/god/base/server/GodCarBaseApplication.java @@ -18,5 +18,22 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; public class GodCarBaseApplication { public static void main (String[] args) { SpringApplication.run(GodCarBaseApplication.class, args); + System.out.println("(♥◠‿◠)ノ゙ 车辆管理模块启动成功 ლ(´ڡ`ლ)゙ \n" + + " ,--, \n" + + " ,---.'| ,--. \n" + + " ,---, | | : ,---, ,--.'| \n" + + " ' .' \\ : : | ' .' \\ ,--,: : | \n" + + " / ; '. | ' : / ; '. ,`--.'`| ' : \n" + + ": : \\ ; ; ' : : \\ | : : | | \n" + + ": | /\\ \\ ' | |__ : | /\\ \\ : | \\ | : \n" + + "| : ' ;. : | | :.'|| : ' ;. : | : ' '; | \n" + + "| | ;/ \\ \\' : ;| | ;/ \\ \\' ' ;. ; \n" + + "' : | \\ \\ ,'| | ./ ' : | \\ \\ ,'| | | \\ | \n" + + "| | ' '--' ; : ; | | ' '--' ' : | ; .' \n" + + "| : : | ,/ | : : | | '`--' \n" + + "| | ,' '---' | | ,' ' : | \n" + + "`--'' `--'' ; |.' \n" + + " '---' \n" + + " "); } } diff --git a/car-base-server/src/main/java/com/god/base/server/controller/CarController.java b/car-base-server/src/main/java/com/god/base/server/controller/CarController.java index 991d700..af98c20 100644 --- a/car-base-server/src/main/java/com/god/base/server/controller/CarController.java +++ b/car-base-server/src/main/java/com/god/base/server/controller/CarController.java @@ -1,13 +1,23 @@ package com.god.base.server.controller; + +import com.alibaba.fastjson.JSONObject; 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 com.god.common.core.domain.Result; +import com.god.common.core.utils.poi.ExcelUtil; +import com.god.common.core.web.controller.BaseController; +import com.god.common.core.web.page.TableDataInfo; +import com.god.common.log.annotation.Log; +import com.god.common.log.enums.BusinessType; +import com.god.common.security.annotation.RequiresPermissions; 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; +import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -16,55 +26,128 @@ import java.util.List; @RestController @RequestMapping("/car") @Log4j2 -public class CarController { +public class CarController extends BaseController { + + @Autowired + private HttpServletRequest request; // 用于获取方法执行信息 + @Autowired private CarService carService; + /** + * 查询车辆信息管理列表 + */ + @RequiresPermissions + @GetMapping("/list") + public Result> list(@RequestBody CarRequest carRequest){ + log.info("功能介绍车辆信息列表查看,请求方式:{},请求路径:{},请求参数:{}", + request.getMethod(), + request.getRequestURL(), + JSONObject.toJSONString(carRequest)); + + startPage();//设置请求分页数据 + List list = carService.selectCarInfoList(carRequest); + + log.info("功能介绍车辆信息列表查看,响应方式:{},响应路径:{},响应参数:{}", + request.getMethod(), + request.getRequestURL(), + JSONObject.toJSONString(list)); + + return getDataTable(list); + } + /** * 车辆信息查看 */ @GetMapping("carList/{userId}") public Result carList(@PathVariable String userId){ - log.info("请求参数" + userId); + + log.info("功能介绍车辆信息列表查看,请求方式:{},请求路径:{},请求参数:{}", + request.getMethod(), + request.getRequestURL(), + JSONObject.toJSONString(userId)); + + startPage();//设置请求分页数据 继承方法 Result> carList = carService.carList(userId); - log.info("响应参数" + carList); + + log.info("功能介绍车辆信息列表查看,响应方式:{},响应路径:{},响应参数:{}", + request.getMethod(), + request.getRequestURL(), + JSONObject.toJSONString(carList)); + return Result.success(carList); } /** - * 添加车辆 + * 添加车辆管理信息 */ + @Log(title = "车辆信息管理" , businessType = BusinessType.INSERT) // 添加 @PostMapping("/addCar") public Result 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); + + carService.save(Car.carBuildAdd(carRequest)); + return Result.success(); } /** - * 逻辑删除 + * 修改车辆信息 */ - @PostMapping("/delCar/{vinId}") - public Result delCar(@PathVariable String vinId){ - log.info("请求参数" + vinId); - boolean b = carService.removeById(vinId); - log.info("响应参数" + b); + @Log(title = "车辆信息管理" , businessType = BusinessType.UPDATE) //修改 + @PostMapping("/updCar") + public Result updCar(@PathVariable @Validated Car car){ + log.info("功能介绍修改车辆,请求方式:{},请求路径:{},请求参数:{}", + request.getMethod(), + request.getRequestURL(), + JSONObject.toJSONString(car)); + + carService.updateById(car); + + log.info("功能介绍修改车辆,响应方式:{},响应路径:{},响应参数:{}", + request.getMethod(), + request.getRequestURL(), + JSONObject.toJSONString(car)); + return Result.success(); } + /** + * 逻辑删除车辆信息管理 + */ + @Log(title = "车辆信息管理" , businessType = BusinessType.DELETE) // 删除 + @DeleteMapping("/delCar/{vinId}") + public Result delCar(@PathVariable String vinId){ + log.info("功能介绍逻辑删除车辆信息,请求方式:{},请求路径:{},请求参数:{}", + request.getMethod(), + request.getRequestURL(), + JSONObject.toJSONString(vinId)); + + boolean b = carService.removeById(vinId); + + log.info("功能介绍逻辑删除车辆信息,响应方式:{},响应路径:{},响应参数:{}", + request.getMethod(), + request.getRequestURL(), + JSONObject.toJSONString(b)); + + return Result.success(); + } + + /** + * 导出车辆信息管理列表 + */ + @RequiresPermissions("car:car:export") + @Log(title = "车辆信息管理" , businessType = BusinessType.EXPORT) // 导出 跳转业务操作类型表中 + @PostMapping("/export") + public void export(HttpServletResponse response , Car car , CarRequest carRequest) + { + List list = carService.selectCarInfoList(carRequest); + ExcelUtil util = new ExcelUtil<>(Car.class); + //对list数据源将其里面的数据导入到excel表单 + util.exportExcel(response,list,"车辆信息管理"); + } + /** * 实时轨迹 */ diff --git a/car-base-server/src/main/java/com/god/base/server/mapper/CarMapper.java b/car-base-server/src/main/java/com/god/base/server/mapper/CarMapper.java index e0df394..7104319 100644 --- a/car-base-server/src/main/java/com/god/base/server/mapper/CarMapper.java +++ b/car-base-server/src/main/java/com/god/base/server/mapper/CarMapper.java @@ -1,10 +1,11 @@ package com.god.base.server.mapper; - import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.god.base.server.common.domain.Car; +import com.god.base.server.common.domain.request.CarRequest; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -15,5 +16,38 @@ import java.util.List; @Mapper public interface CarMapper extends BaseMapper { - List getList(int userId1); + @Select("SELECT\n" + + "t_car.car_vin_id ,\n" + + "t_car_type.car_type_name , \n" + + "t_fence.fence_name , \n" + + "t_car.battery_manufacturer ,\n" + + "t_car.motor_manufacturer ,\n" + + "t_car.motor_number , \n" + + "t_car.battery_number ,\n" + + "t_car.status \n" + + "\n" + + "FROM\n" + + "\tt_car\n" + + "\tJOIN t_fence ON t_car.fence_id = t_fence.fence_id\n" + + "\tJOIN t_car_type ON t_car.car_type_id = t_car_type.id where t_car.user_id = #{userId1}") + List getList(@Param("userId1") int userId); + + @Select("select * from t_car where 1=1 " + + " and car_vin_id = #{carVinId}" + + " and car_type_id = #{carTypeId}" + + " and fence_id = #{fenceId}" + + " and status = #{status}" + + " and motor_manufacturer = #{motorManufacturer}" + + " and battery_manufacturer = #{batteryManufacturer}" + + " and motor_number = #{motorNumber}" + + " and battery_number = #{batteryNumber}" + ) + List selectCarInfoList(Car car); + + /** + * 车辆管理信息查询 + * @param carRequest + * @return + */ + List selectVehicleInfoList(CarRequest carRequest); } diff --git a/car-base-server/src/main/java/com/god/base/server/service/CarService.java b/car-base-server/src/main/java/com/god/base/server/service/CarService.java index 506ed27..7d62751 100644 --- a/car-base-server/src/main/java/com/god/base/server/service/CarService.java +++ b/car-base-server/src/main/java/com/god/base/server/service/CarService.java @@ -1,8 +1,11 @@ package com.god.base.server.service; + import com.baomidou.mybatisplus.extension.service.IService; import com.god.base.server.common.domain.Car; +import com.god.base.server.common.domain.request.CarRequest; import com.god.common.core.domain.Result; import org.apache.ibatis.annotations.Param; + import java.util.List; /** @@ -13,5 +16,9 @@ public interface CarService extends IService { Result> carList(@Param("userId") String userId); - void updateById(@Param("vinId") String vinId); + + List selectCarInfoList(CarRequest carRequest); } + + + diff --git a/car-base-server/src/main/java/com/god/base/server/service/impl/CarServiceImpl.java b/car-base-server/src/main/java/com/god/base/server/service/impl/CarServiceImpl.java index 2bb4f19..3e10608 100644 --- a/car-base-server/src/main/java/com/god/base/server/service/impl/CarServiceImpl.java +++ b/car-base-server/src/main/java/com/god/base/server/service/impl/CarServiceImpl.java @@ -1,12 +1,18 @@ package com.god.base.server.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.god.base.server.common.domain.Car; +import com.god.base.server.common.domain.request.CarRequest; 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.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.io.Serializable; import java.util.List; /** @@ -14,10 +20,18 @@ import java.util.List; */ @Log4j2 @Service -public class CarServiceImpl extends ServiceImpl implements CarService { +public class CarServiceImpl extends ServiceImpl implements CarService { + @Autowired private CarMapper carMapper; + + /** + * 车辆信息 + * + * @param userId + * @return + */ @Override public Result> carList(String userId) { // Long userId1 = SecurityUtils.getUserId(); @@ -26,17 +40,93 @@ public class CarServiceImpl extends ServiceImpl implements CarSer // } int userId1 = 1; List carList = carMapper.getList(userId1); - return Result.success(carList); + return Result.success(carList); } /** - * 修改车辆管理信息 - * @param vinId + * 查询车辆信息管理列表 + * + * @param carRequest 车辆信息管理 + * @return */ @Override - public void updateById(String vinId) { + public List selectCarInfoList(CarRequest carRequest) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + //判断vin是否为空 + if (StringUtils.isNotEmpty(carRequest.getCarVinId())){ + //模糊查询 vin + lambdaQueryWrapper.like(Car::getCarVinId, carRequest.getCarVinId()); + } + //模糊查询 车辆类型 + lambdaQueryWrapper.like(Car::getCarTypeId, carRequest.getCarTypeId()); + //模糊查询 电子围栏 + lambdaQueryWrapper.like(Car::getFenceId, carRequest.getFenceId()); + //模糊查询 车辆状态 + lambdaQueryWrapper.like(Car::getStatus, carRequest.getStatus()); + if (StringUtils.isNotEmpty(carRequest.getBatteryManufacturer())){ + //模糊查询 电池厂商 + lambdaQueryWrapper.like(Car::getBatteryManufacturer, carRequest.getBatteryManufacturer()); + } + if (StringUtils.isNotEmpty(carRequest.getMotorManufacturer())){ + //模糊查询 电机厂商 + lambdaQueryWrapper.like(Car::getMotorManufacturer, carRequest.getMotorManufacturer()); + } + if (StringUtils.isNotEmpty(carRequest.getMotorNumber())){ + //模糊查询 电机编号 + lambdaQueryWrapper.like(Car::getMotorNumber, carRequest.getMotorNumber()); + } + if (StringUtils.isNotEmpty(carRequest.getBatteryNumber())){ + //模糊查询 电池编号 + lambdaQueryWrapper.like(Car::getBatteryNumber, carRequest.getBatteryNumber()); + } + return carMapper.selectVehicleInfoList(carRequest); + } + + + /** + * 根据VIN 编辑管理修改车辆信息数据 + * @param entity + * @return + */ + @Override + public boolean updateById(Car entity) { + boolean updatedById = super.updateById(entity); + if (!updatedById){ + throw new RuntimeException("修改失败"); + } + return true; + } + + /** + * 添加车辆管理数据 + * @param entity + * @return + */ + @Override + public boolean save(Car entity) { + boolean addCar = super.save(entity); + if (!addCar){ + 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; } diff --git a/car-base-server/src/main/resources/bootstrap.yml b/car-base-server/src/main/resources/bootstrap.yml index 40c59f2..a9d9161 100644 --- a/car-base-server/src/main/resources/bootstrap.yml +++ b/car-base-server/src/main/resources/bootstrap.yml @@ -1,6 +1,6 @@ # Tomcat server: - port: 9802 + port: 9028 # Spring spring: diff --git a/car-base-server/src/main/resources/mapper/CarMapper.xml b/car-base-server/src/main/resources/mapper/CarMapper.xml index 2cb039a..ec922b6 100644 --- a/car-base-server/src/main/resources/mapper/CarMapper.xml +++ b/car-base-server/src/main/resources/mapper/CarMapper.xml @@ -3,20 +3,41 @@ - + + + and car_vin_id = #{carVinId}" + and car_type_id = #{carTypeId}" + and fence_id = #{fenceId}" + and status = #{status}" + and motor_manufacturer = #{motorManufacturer}" + and battery_manufacturer = #{batteryManufacturer}" + and motor_number = #{motorNumber}" + and battery_number = #{batteryNumber}" + - -