diff --git a/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/CarFence.java b/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/CarFence.java index 4e4ef88..48e46e1 100644 --- a/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/CarFence.java +++ b/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/CarFence.java @@ -13,6 +13,7 @@ import lombok.EqualsAndHashCode; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; +import java.util.List; /** * @Author:yang @@ -82,6 +83,11 @@ public class CarFence { * 中间表ID */ private Integer middleId; + /** + * 围栏组 + */ + @TableField(exist = false) + private List carFenceGroups; public static CarFence carFenceBuild(CarFence carFence) { return CarFence.builder() diff --git a/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/CarFenceGroup.java b/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/CarFenceGroup.java new file mode 100644 index 0000000..770e3a0 --- /dev/null +++ b/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/CarFenceGroup.java @@ -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(); + } +} diff --git a/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/CarInformation.java b/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/CarInformation.java new file mode 100644 index 0000000..174f2b4 --- /dev/null +++ b/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/CarInformation.java @@ -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(); + } +} diff --git a/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/CarMiddle.java b/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/CarMiddle.java index d7f8c47..6317746 100644 --- a/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/CarMiddle.java +++ b/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/CarMiddle.java @@ -1,5 +1,7 @@ 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; @@ -18,20 +20,26 @@ import lombok.NoArgsConstructor; @AllArgsConstructor @NoArgsConstructor @Builder -@Tag(name = "车辆电子围栏中间表") +@Tag(name = "车辆电子组中间表") @TableName(value = "car_middle",autoResultMap = true) public class CarMiddle { /** * 中间表ID */ + @TableId(value = "id",type = IdType.AUTO) private Integer id; /** * 电子围栏ID */ - private Integer carFenceId; + private Integer fenceGroupId; /** * 车辆ID */ private Integer carInformationId; + + public CarMiddle(Integer fenceGroupId, Integer carInformationId) { + this.fenceGroupId = fenceGroupId; + this.carInformationId = carInformationId; + } } diff --git a/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/CarMiddleGroup.java b/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/CarMiddleGroup.java new file mode 100644 index 0000000..093d839 --- /dev/null +++ b/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/CarMiddleGroup.java @@ -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(); + } +} diff --git a/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/req/CarGroupReq.java b/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/req/CarGroupReq.java new file mode 100644 index 0000000..c3aeb37 --- /dev/null +++ b/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/req/CarGroupReq.java @@ -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 carInformations; + /** + * 围栏组 + */ + private List carFenceGroups; + +} diff --git a/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/req/FenceGroupReq.java b/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/req/FenceGroupReq.java new file mode 100644 index 0000000..f721463 --- /dev/null +++ b/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/req/FenceGroupReq.java @@ -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 carFences; + /** + * 围栏组 + */ + private List carFenceGroups; +} diff --git a/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/resq/CarFenceGroupReq.java b/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/resq/CarFenceGroupReq.java new file mode 100644 index 0000000..79d2873 --- /dev/null +++ b/cloud-common/cloud-electronic-common/src/main/java/com/muyu/domain/resq/CarFenceGroupReq.java @@ -0,0 +1,100 @@ +package com.muyu.domain.resq; + +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 com.muyu.domain.CarFenceGroup; +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; +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 CarFenceGroupReq { + /** + * 围栏主键 + */ + 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 carFenceGroups; + /** + * 优先级 + */ + private Integer priority; + /** + * 启动状态 + */ + private String status; + /** + * 围栏组类型 + */ + private String groupType; +} diff --git a/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/controller/CarFenceController.java b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/controller/CarFenceController.java index a963e5e..74a9c42 100644 --- a/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/controller/CarFenceController.java +++ b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/controller/CarFenceController.java @@ -1,9 +1,15 @@ package com.muyu.server.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.muyu.common.core.domain.Result; import com.muyu.domain.CarFence; +import com.muyu.domain.CarFenceGroup; +import com.muyu.domain.CarInformation; import com.muyu.domain.req.CarFenceReq; +import com.muyu.domain.req.CarGroupReq; +import com.muyu.domain.req.FenceGroupReq; +import com.muyu.domain.resq.CarFenceGroupReq; import com.muyu.domain.resq.CarFenceResq; import com.muyu.server.service.CarFenceService; import io.swagger.v3.oas.annotations.Operation; @@ -16,6 +22,8 @@ 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 @@ -54,11 +62,60 @@ public class CarFenceController { public Result addCarFence( @Validated @RequestBody CarFence carFence ){ - boolean connects = carFenceService.save(carFence); + Boolean connects = carFenceService.addCarFence(carFence); return connects?Result.success( null, "操作成功" ):Result.success( null, "操作失败" ); } + + /** + * add + */ + @PostMapping("/carAddList") + @Operation(summary = "查询数据",description = "查询数据") + public Result 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 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> selectCarFenceGroupList( + @Validated @RequestBody Integer id + ){ + List list = carFenceService.selectCarFenceGroupList(id); + return list.size()!=0?Result.success( + list, "操作成功" + ):Result.success( + null, "未绑定围栏" + ); + } } + diff --git a/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/controller/CarFenceGroupController.java b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/controller/CarFenceGroupController.java new file mode 100644 index 0000000..ce119fc --- /dev/null +++ b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/controller/CarFenceGroupController.java @@ -0,0 +1,46 @@ +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.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> selectConnect(){ + List connects = carMiddleGroupService.selectCarFence(); + return Result.success( + connects, "操作成功" + ); + } +} diff --git a/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/controller/CarInformationController.java b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/controller/CarInformationController.java new file mode 100644 index 0000000..8c5c7dc --- /dev/null +++ b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/controller/CarInformationController.java @@ -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> selectConnect(){ + List connects = carInformationService.list() + .stream() + .map(CarInformation::carInformationBuilder) + .toList(); + return Result.success( + connects, "操作成功" + ); + } +} diff --git a/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/mapper/CarFenceGroupMapper.java b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/mapper/CarFenceGroupMapper.java new file mode 100644 index 0000000..cf46fb8 --- /dev/null +++ b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/mapper/CarFenceGroupMapper.java @@ -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 { +} diff --git a/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/mapper/CarInformationMapper.java b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/mapper/CarInformationMapper.java new file mode 100644 index 0000000..f4ee33b --- /dev/null +++ b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/mapper/CarInformationMapper.java @@ -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 { +} diff --git a/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/mapper/CarMiddleGroupMapper.java b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/mapper/CarMiddleGroupMapper.java new file mode 100644 index 0000000..91aa15e --- /dev/null +++ b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/mapper/CarMiddleGroupMapper.java @@ -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 { + List selectByIdList(@Param("carFenceId") Integer carFenceId); + +} diff --git a/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/CarFenceGroupService.java b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/CarFenceGroupService.java new file mode 100644 index 0000000..83cbc7a --- /dev/null +++ b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/CarFenceGroupService.java @@ -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 { +} diff --git a/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/CarFenceService.java b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/CarFenceService.java index 0412252..29981b2 100644 --- a/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/CarFenceService.java +++ b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/CarFenceService.java @@ -3,9 +3,16 @@ 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.CarFenceGroup; +import com.muyu.domain.CarInformation; import com.muyu.domain.req.CarFenceReq; +import com.muyu.domain.req.CarGroupReq; +import com.muyu.domain.req.FenceGroupReq; +import com.muyu.domain.resq.CarFenceGroupReq; import com.muyu.domain.resq.CarFenceResq; +import java.util.List; + /** * @Author:yang * @Package:com.muyu.server.service @@ -19,4 +26,11 @@ public interface CarFenceService extends IService { */ public Page selectCarFence(CarFenceReq req); + Boolean addCarFence(CarFence carFence); + + Boolean addCarGroup(CarGroupReq req); + + Boolean addFenceGroup(FenceGroupReq req); + + List selectCarFenceGroupList(Integer id); } diff --git a/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/CarInformationService.java b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/CarInformationService.java new file mode 100644 index 0000000..ea50c7f --- /dev/null +++ b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/CarInformationService.java @@ -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 { +} diff --git a/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/CarMiddleGroupService.java b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/CarMiddleGroupService.java new file mode 100644 index 0000000..cb2dbca --- /dev/null +++ b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/CarMiddleGroupService.java @@ -0,0 +1,21 @@ +package com.muyu.server.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.domain.CarFenceGroup; +import com.muyu.domain.CarMiddleGroup; + +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 { + /* + 查询中间 + */ + List selectCarFence(); +} diff --git a/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/impl/CarFenceGroupServiceImpl.java b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/impl/CarFenceGroupServiceImpl.java new file mode 100644 index 0000000..af040a9 --- /dev/null +++ b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/impl/CarFenceGroupServiceImpl.java @@ -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 +implements CarFenceGroupService { +} diff --git a/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/impl/CarFenceServiceImpl.java b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/impl/CarFenceServiceImpl.java index 6198faf..98d47db 100644 --- a/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/impl/CarFenceServiceImpl.java +++ b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/impl/CarFenceServiceImpl.java @@ -4,19 +4,19 @@ 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.CarFence; -import com.muyu.domain.CarFenceClazz; -import com.muyu.domain.CarFenceType; +import com.muyu.domain.*; import com.muyu.domain.req.CarFenceReq; +import com.muyu.domain.req.CarGroupReq; +import com.muyu.domain.req.FenceGroupReq; +import com.muyu.domain.resq.CarFenceGroupReq; import com.muyu.domain.resq.CarFenceResq; import com.muyu.server.mapper.CarFenceMapper; -import com.muyu.server.service.CarFenceClazzService; -import com.muyu.server.service.CarFenceService; -import com.muyu.server.service.CarFenceTypeService; +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; /** @@ -36,6 +36,12 @@ public class CarFenceServiceImpl private CarFenceClazzService carFenceClazzService; @Autowired private CarFenceTypeService carFenceTypeService; + @Autowired + private CarMiddleGroupService carMiddleGroupService; + @Autowired + private CarFenceGroupService carFenceGroupService; + @Autowired + private CarMiddleSerivce carMiddleSerivce; /** * 查询围栏信息 */ @@ -94,6 +100,106 @@ public class CarFenceServiceImpl }}; } + @Override + public Boolean addCarFence(CarFence carFence) { + boolean connects = this.save(carFence); + System.out.println(carFence.getId()); + List 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 carInformations = req.getCarInformations(); + List carFenceGroups = req.getCarFenceGroups(); + List 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 carInformations = req.getCarFences(); + List carFenceGroups = req.getCarFenceGroups(); + List 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 selectCarFenceGroupList(Integer id) { + List list = carMiddleGroupService.list( + new LambdaQueryWrapper() + .eq(CarMiddleGroup::getFenceGroupId,id)) + .stream() + .map(CarMiddleGroup::carMiddleGroupBuilder) + .toList(); + List carFenceGroupReqs = new ArrayList<>(); + list.forEach(carMiddleGroup -> { + this.carMiddleList(carMiddleGroup,carFenceGroupReqs); + }); + return carFenceGroupReqs; + } + + private void carMiddleList(CarMiddleGroup carMiddleGroup, List carFenceGroupReqs) { + Integer carFenceId = carMiddleGroup.getCarFenceId(); + Integer fenceGroupId = carMiddleGroup.getFenceGroupId(); + List carFenceList = this.list( + new LambdaQueryWrapper() + .eq(CarFence::getId,carFenceId)) + .stream() + .map(CarFence::carFenceBuild) + .toList(); + List carFenceGroupsList = carFenceGroupService.list( + new LambdaQueryWrapper() + .eq(CarFenceGroup::getId,fenceGroupId)) + .stream() + .map(CarFenceGroup::carFenceBuild) + .toList(); + carFenceList.forEach(carFence -> { + CarFenceGroupReq carFenceGroupReq = new CarFenceGroupReq(); + carFenceGroupReq.setId(carFence.getId()); + carFenceGroupReq.setName(carFence.getName()); + carFenceGroupReq.setClazzId(carFence.getClazzId()); + carFenceGroupReq.setTypeId(carFence.getTypeId()); + carFenceGroupReq.setFenceText(carFence.getFenceText()); + carFenceGroupReq.setFenceStart(carFence.getFenceStart()); + carFenceGroupReq.setFenceEnd(carFence.getFenceEnd()); + carFenceGroupReq.setFenceCreate(carFence.getFenceCreate()); + + carFenceGroupReqs.add(carFenceGroupReq); + }); + carFenceGroupsList.forEach(carFenceGroup -> { + carFenceGroupReqs.forEach(carFenceGroupReq -> { + carFenceGroupReq.setPriority(carFenceGroup.getPriority()); + carFenceGroupReq.setStatus(carFenceGroup.getStatus()); + carFenceGroupReq.setGroupType(carFenceGroup.getGroupType()); + }); + }); + } + /** * 优化查询返回值 diff --git a/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/impl/CarInformationServiceImpl.java b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/impl/CarInformationServiceImpl.java new file mode 100644 index 0000000..f6a95a9 --- /dev/null +++ b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/impl/CarInformationServiceImpl.java @@ -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 + implements CarInformationService { +} diff --git a/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/impl/CarMiddleGroupServiceImpl.java b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/impl/CarMiddleGroupServiceImpl.java new file mode 100644 index 0000000..32d4eb5 --- /dev/null +++ b/cloud-modules/cloud-electronic/src/main/java/com/muyu/server/service/impl/CarMiddleGroupServiceImpl.java @@ -0,0 +1,44 @@ +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.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 + implements CarMiddleGroupService { + + @Autowired + private CarMiddleGroupMapper carMiddleGroupMapper; + @Autowired + private CarFenceGroupService carFenceGroupService; + + /** + * 查询中间操作 + * @return + */ + @Override + public List selectCarFence() { + return carFenceGroupService.list(); + } +} diff --git a/cloud-modules/cloud-electronic/src/main/resources/mapper/CarMiddleGroupMapper.xml b/cloud-modules/cloud-electronic/src/main/resources/mapper/CarMiddleGroupMapper.xml new file mode 100644 index 0000000..e95c1a4 --- /dev/null +++ b/cloud-modules/cloud-electronic/src/main/resources/mapper/CarMiddleGroupMapper.xml @@ -0,0 +1,15 @@ + + + + + +