diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/dev/CarFenceDev.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/dev/CarFenceDev.java new file mode 100644 index 0000000..8d48151 --- /dev/null +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/dev/CarFenceDev.java @@ -0,0 +1,102 @@ +package com.business.common.dev; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.common.core.annotation.Excel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 车辆与电子围栏 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class CarFenceDev { + private Long carId; + + /** 车辆识别码 */ + @Excel(name = "车辆识别码") + private String vin; + + /** 品牌 */ + @Excel(name = "品牌") + private String brand; + + /** 型号 */ + @Excel(name = "型号") + private String model; + + /** 生产年份 */ + @Excel(name = "生产年份") + private Long manufactureYear; + + /** 车身类型 */ + @Excel(name = "车身类型") + private String bodyType; + + /** 车辆颜色 */ + @Excel(name = "车辆颜色") + private String color; + + /** 发动机排量 */ + @Excel(name = "发动机排量") + private Long engineCapacity; + + /** 燃油类型 */ + @Excel(name = "燃油类型") + private String fuelType; + + /** 变速器类型 */ + @Excel(name = "变速器类型") + private String transmission; + + /** 驱动类型 */ + @Excel(name = "驱动类型") + private String driveType; + + /** 行驶里程 */ + @Excel(name = "行驶里程") + private Long mileage; + + /** 注册日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "注册日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date registrationDate; + + /** 车牌号 */ + @Excel(name = "车牌号") + private String registrationNumber; + + /** 所有者 */ + @Excel(name = "所有者") + private Long ownerId; + /** + * 电子围栏主键 + */ + private Long fenceId; + /** + * 围栏名称 + */ + private String fenceName; + /** + * 围栏类型 + */ + private String fenceType = "多边形"; + /** + * 驶入驶出 + */ + private String eventType = "N"; + /** + * 围栏状态 + */ + private String staut = "Y"; + /** + *坐标 + */ + private String polygonPoints; +} diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/dev/CarGroupsDev.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/dev/CarGroupsDev.java new file mode 100644 index 0000000..155560c --- /dev/null +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/dev/CarGroupsDev.java @@ -0,0 +1,87 @@ +package com.business.common.dev; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.common.core.annotation.Excel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 车辆与围栏组 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class CarGroupsDev { + private Long carId; + + /** 车辆识别码 */ + @Excel(name = "车辆识别码") + private String vin; + + /** 品牌 */ + @Excel(name = "品牌") + private String brand; + + /** 型号 */ + @Excel(name = "型号") + private String model; + + /** 生产年份 */ + @Excel(name = "生产年份") + private Long manufactureYear; + + /** 车身类型 */ + @Excel(name = "车身类型") + private String bodyType; + + /** 车辆颜色 */ + @Excel(name = "车辆颜色") + private String color; + + /** 发动机排量 */ + @Excel(name = "发动机排量") + private Long engineCapacity; + + /** 燃油类型 */ + @Excel(name = "燃油类型") + private String fuelType; + + /** 变速器类型 */ + @Excel(name = "变速器类型") + private String transmission; + + /** 驱动类型 */ + @Excel(name = "驱动类型") + private String driveType; + + /** 行驶里程 */ + @Excel(name = "行驶里程") + private Long mileage; + + /** 注册日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "注册日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date registrationDate; + + /** 车牌号 */ + @Excel(name = "车牌号") + private String registrationNumber; + + /** 所有者 */ + @Excel(name = "所有者") + private Long ownerId; + + /** + * 围栏组id + */ + private Long groupsId; + /** + * 围栏组名称 + */ + private String groupsName; +} diff --git a/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/dev/GroupFenceDev.java b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/dev/GroupFenceDev.java new file mode 100644 index 0000000..6dc7ec4 --- /dev/null +++ b/muyu-modules/muyu-business/muyu-business-common/src/main/java/com/business/common/dev/GroupFenceDev.java @@ -0,0 +1,48 @@ +package com.business.common.dev; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 围栏组与电子围栏 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class GroupFenceDev { + /** + * 围栏组id + */ + private Long groupsId; + /** + * 围栏组名称 + */ + private String groupsName; + /** + * 电子围栏主键 + */ + private Long fenceId; + /** + * 围栏名称 + */ + private String fenceName; + /** + * 围栏类型 + */ + private String fenceType = "多边形"; + /** + * 驶入驶出 + */ + private String eventType = "N"; + /** + * 围栏状态 + */ + private String staut = "Y"; + /** + *坐标 + */ + private String polygonPoints; +} diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/controller/MapController.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/controller/MapController.java index 6af3e7b..0d6ac2a 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/controller/MapController.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/controller/MapController.java @@ -1,13 +1,18 @@ package com.muyu.goods.controller; +import com.business.common.dev.CarFenceDev; +import com.business.common.dev.CarGroupsDev; +import com.business.common.dev.GroupFenceDev; import com.business.common.domain.Fence; import com.business.common.domain.FenceGroups; import com.business.common.domain.Path; import com.business.common.psvm.Pences; +import com.dtflys.forest.annotation.Post; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.controller.BaseController; import com.muyu.goods.service.IMapService; import com.muyu.goods.service.impl.MapService; +import net.sf.jsqlparser.statement.select.Select; import org.apache.commons.codec.language.bm.Rule; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; @@ -88,4 +93,31 @@ public class MapController extends BaseController { public Result updateFence(@PathVariable Long fenceId) { return success(iMapService.updateFence(fenceId)); } + + /** + * 车辆与电子围栏 + * @return + */ + @PostMapping("selectCarFence") + public Result> selectCarFence() { + return success(iMapService.selectCarFence()); + } + + /** + * 车辆与围栏组 + * @return + */ + @PostMapping("selectCarGroups") + public Result> selectCarGroups() { + return success(iMapService.selectCarGroups()); + } + + /** + * 围栏组与电子围栏 + * @return + */ + @PostMapping("selectGroupFence") + public Result> selectGroupFence() { + return success(iMapService.selectGroupFence()); + } } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/mapper/MapMapper.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/mapper/MapMapper.java index 1d62ea0..b3b7df9 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/mapper/MapMapper.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/mapper/MapMapper.java @@ -1,6 +1,8 @@ package com.muyu.goods.mapper; -import com.business.common.domain.Car; +import com.business.common.dev.CarFenceDev; +import com.business.common.dev.CarGroupsDev; +import com.business.common.dev.GroupFenceDev; import com.business.common.domain.Fence; import com.business.common.domain.FenceGroups; import org.apache.ibatis.annotations.Param; @@ -18,4 +20,20 @@ public interface MapMapper { Fence queryFence(@Param("fenceId") Long fenceId); int updateFence(@Param("fenceId") Long fenceId, @Param("status") String status); + + void indexCarGroupsMiddle(@Param("carId") Long carId); + + List selectGroupFenceMiddleOne(); + + List selectCarFence(); + + List selectCarGroups(); + + List selectGroupFence(); + + void indexCarFence(@Param("carId") Long carId, @Param("fenceId") Long fenceId); + + void deleteCarGroups(@Param("carId") Long carId); + + void deleteCarFence(@Param("carId") Long carId); } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/IMapService.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/IMapService.java index 213ee49..41ef07b 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/IMapService.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/IMapService.java @@ -1,5 +1,8 @@ package com.muyu.goods.service; +import com.business.common.dev.CarFenceDev; +import com.business.common.dev.CarGroupsDev; +import com.business.common.dev.GroupFenceDev; import com.business.common.domain.Fence; import com.business.common.domain.FenceGroups; import com.business.common.domain.Path; @@ -24,4 +27,10 @@ public interface IMapService { Fence queryFence(Long fenceId); String updateFence(Long fenceId); + + List selectCarFence(); + + List selectCarGroups(); + + List selectGroupFence(); } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/impl/CarServiceImpl.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/impl/CarServiceImpl.java index 596ca92..19ae244 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/impl/CarServiceImpl.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/impl/CarServiceImpl.java @@ -6,7 +6,7 @@ import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import com.alibaba.fastjson.JSON; -import com.business.common.dev.LongitudeAndLatitude; +import com.business.common.dev.*; import com.business.common.domain.*; import com.business.common.pojo.HttpCar; import com.muyu.goods.client.ManageApi; @@ -19,6 +19,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import javax.annotation.Resource; + /** * 车辆信息Service业务层处理 * @@ -37,6 +39,8 @@ public class CarServiceImpl implements ICarService private MapMapper mapMapper; @Autowired private RedisTemplate redisTemplate; + @Resource + private ExecuteService service; /** * 查询车辆信息 @@ -94,6 +98,7 @@ public class CarServiceImpl implements ICarService int i = carMapper.insertCar(car); if (i>0) { Car car1 = carMapper.carByCar(); + service.indexGroupFence(car1); } return i; } @@ -119,7 +124,13 @@ public class CarServiceImpl implements ICarService @Override public int deleteCarByCarIds(Long[] carIds) { - return carMapper.deleteCarByCarIds(carIds); + int i = carMapper.deleteCarByCarIds(carIds); + if (i>0){ + for (Long carId : carIds) { + service.deleteCarGroupFence(carId); + } + } + return i; } /** @@ -131,7 +142,11 @@ public class CarServiceImpl implements ICarService @Override public int deleteCarByCarId(Long carId) { - return carMapper.deleteCarByCarId(carId); + int i = carMapper.deleteCarByCarId(carId); + if (i>0) { + service.deleteCarGroupFence(carId); + } + return i; } @Override diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/impl/ExecuteService.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/impl/ExecuteService.java new file mode 100644 index 0000000..29601bc --- /dev/null +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/impl/ExecuteService.java @@ -0,0 +1,38 @@ +package com.muyu.goods.service.impl; + +import com.business.common.dev.GroupFenceDev; +import com.business.common.domain.Car; +import com.muyu.goods.mapper.MapMapper; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +@Service +@Log4j2 +public class ExecuteService { + @Autowired + private MapMapper mapMapper; + + @Async + public void indexGroupFence(Car car) { + mapMapper.indexCarGroupsMiddle(car.getCarId()); + List list = mapMapper.selectGroupFenceMiddleOne(); + List groupFenceDevList = list.stream().filter(fence -> fence.getGroupsId() == 1).collect(Collectors.toList()); + System.out.println(groupFenceDevList); + for (GroupFenceDev groupFenceDev : groupFenceDevList) { + mapMapper.indexCarFence(car.getCarId(),groupFenceDev.getFenceId()); + } + log.info("indexGroupFence完成"); + } + + @Async + public void deleteCarGroupFence(Long carId){ + mapMapper.deleteCarGroups(carId); + mapMapper.deleteCarFence(carId); + log.info("delete完成"); + } +} diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/impl/MapService.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/impl/MapService.java index 2fa6834..f395e47 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/impl/MapService.java +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/goods/service/impl/MapService.java @@ -3,6 +3,9 @@ package com.muyu.goods.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.business.common.dev.CarFenceDev; +import com.business.common.dev.CarGroupsDev; +import com.business.common.dev.GroupFenceDev; import com.business.common.domain.Fence; import com.business.common.domain.FenceGroups; import com.business.common.domain.Path; @@ -105,4 +108,19 @@ public class MapService implements IMapService { } return "失败"; } + + @Override + public List selectCarFence() { + return mapMapper.selectCarFence(); + } + + @Override + public List selectCarGroups() { + return mapMapper.selectCarGroups(); + } + + @Override + public List selectGroupFence() { + return mapMapper.selectGroupFence(); + } } diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/resources/mapper/rule/MapMapper.xml b/muyu-modules/muyu-business/muyu-business-server/src/main/resources/mapper/rule/MapMapper.xml index d0a8f75..9238bbf 100644 --- a/muyu-modules/muyu-business/muyu-business-server/src/main/resources/mapper/rule/MapMapper.xml +++ b/muyu-modules/muyu-business/muyu-business-server/src/main/resources/mapper/rule/MapMapper.xml @@ -48,6 +48,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{polygonPoints}, + + insert into car_groups_middle + values (0,#{carId},1); + + + insert into car_fence_middle + values (0,#{carId},#{fenceId}); + update fence set staut = #{status} @@ -58,6 +66,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from fence where fence_id = #{fenceId}; + + delete + from car_groups_middle + where car_id = #{carId}; + + + delete + from car_fence_middle + where car_id = #{carId}; + @@ -68,6 +86,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where fence_id = #{fenceId} + + + +