| ard-work/src/main/java/com/ruoyi/sy/controller/OilWallController.java | ●●●●● patch | view | raw | blame | history | |
| ard-work/src/main/java/com/ruoyi/sy/domain/ArdAccessFence.java | ●●●●● patch | view | raw | blame | history | |
| ard-work/src/main/java/com/ruoyi/sy/domain/ArdAccessNum.java | ●●●●● patch | view | raw | blame | history | |
| ard-work/src/main/java/com/ruoyi/sy/domain/ArdWallWarming.java | ●●●●● patch | view | raw | blame | history | |
| ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java | ●●●●● patch | view | raw | blame | history | |
| ard-work/src/main/java/com/ruoyi/sy/mapper/ArdAccessNumMapper.java | ●●●●● patch | view | raw | blame | history | |
| ard-work/src/main/java/com/ruoyi/sy/service/ArdAccessNumService.java | ●●●●● patch | view | raw | blame | history | |
| ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdAccessNumServiceImpl.java | ●●●●● patch | view | raw | blame | history |
ard-work/src/main/java/com/ruoyi/sy/controller/OilWallController.java
@@ -3,15 +3,10 @@ import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.common.utils.uuid.UUID; import com.ruoyi.sy.domain.ArdAccessFence; import com.ruoyi.sy.domain.ArdOilWall; import com.ruoyi.sy.domain.*; import com.ruoyi.sy.mapper.ArdAccessNumMapper; import com.ruoyi.sy.param.OilWallParam; import com.ruoyi.sy.service.ArdAccessFenceService; import com.ruoyi.sy.service.ArdOilWallService; import com.ruoyi.sy.domain.ArdSyCar; import com.ruoyi.sy.domain.ArdSyUser; import com.ruoyi.sy.service.IArdSyCarService; import com.ruoyi.sy.service.IArdSyUserService; import com.ruoyi.sy.service.*; import com.ruoyi.sy.service.impl.ArdAccessFenceServiceImpl; import com.ruoyi.sy.service.impl.ArdOilWallServiceImpl; import com.ruoyi.system.service.ISysConfigService; @@ -49,6 +44,9 @@ @Autowired private ArdAccessFenceService ardAccessFenceService; @Autowired private ArdAccessNumService ardAccessNumService; @PostMapping("/add") @ApiOperation("添加电子围栏") @@ -108,6 +106,21 @@ return Results.succeed(ardAccessFenceService.all()); } @GetMapping("/rollTime") @ApiOperation("查询时间步长") public Results rollTime(){ return Results.succeed(ardAccessNumService.queryNum()); } @GetMapping("/updTime") @ApiOperation("保存时间步长") public Results updTime(@RequestBody ArdAccessNum ardAccessNum){ return Results.succeed(ardAccessNumService.add(ardAccessNum)); } // @GetMapping("/addCar") // @ApiOperation("手动添加车辆") // public Results addCar(@RequestBody ArdAccessNum ardAccessNum){ // return Results.succeed(); // } } ard-work/src/main/java/com/ruoyi/sy/domain/ArdAccessFence.java
@@ -14,8 +14,10 @@ private String deptName; private String lng; private String lat; private String intoShipment; private String intoShipmentId; private String intoShipmentTime; private String intoUnloadId; private String intoUnloadTime; private String outShipmentId; private String outShipmentTime; } ard-work/src/main/java/com/ruoyi/sy/domain/ArdAccessNum.java
New file @@ -0,0 +1,13 @@ package com.ruoyi.sy.domain; import lombok.Data; /** * @author Administrator */ @Data public class ArdAccessNum { private String id; private String name; private String num; } ard-work/src/main/java/com/ruoyi/sy/domain/ArdWallWarming.java
New file @@ -0,0 +1,13 @@ package com.ruoyi.sy.domain; import lombok.Data; @Data public class ArdWallWarming { private String id; private String accessId; private String lng; private String lat; private String time; private String sustain; } ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java
@@ -86,13 +86,6 @@ String time = (String) gpsMap.get("result");//定位时间 String deptNum = (String) result.get("deptId");//获取部门ID String deptName = (String) result.get("deptName");//获取部门名称 // String carId = "13"; // String lng = "124.74695492384757"; // String lat = "46.09510768522894"; // String carName = "黑E21397";//获取车牌号 // String time = "20231019161815";//定位时间 // String deptNum = "100";//获取部门ID // String deptName = "厂级";//获取部门名称 //定义2维空间 Point2D.Double point = new Point2D.Double(Double.parseDouble(lng), Double.parseDouble(lat)); List<Point2D.Double> pts = new ArrayList<Point2D.Double>(); @@ -100,7 +93,7 @@ ArdAccessFence ardAccessFence = ((ArdAccessFenceServiceImpl)SpringUtils.getBean("ArdAccessFenceServiceImpl")).queryAccess(carId); //如果没有说明车辆未进入装油点,需要匹配所有装油点围栏 if(ardAccessFence==null){ //匹配全部装油点围栏 //车辆未进入装油点 List<ArdOilWall> ardOilWalls = ((ArdOilWallServiceImpl)SpringUtils.getBean("ArdOilWallServiceImpl")).accessAll(); for (int i = 0; i < ardOilWalls.size(); i++) { pts.clear(); @@ -110,14 +103,14 @@ pts.add(new Point2D.Double(Double.parseDouble(coord[j]), Double.parseDouble(coord[j+1]))); } if(GeoTools.IsPtInPoly(point, pts)){ //进入了围栏入库 //进入装油点入库 ArdAccessFence ardAccessFence1 = new ArdAccessFence(); ardAccessFence1.setId(String.valueOf(UUID.randomUUID())); ardAccessFence1.setCarId(carId); ardAccessFence1.setCarName(carName); ardAccessFence1.setDeptId(deptNum); ardAccessFence1.setDeptName(deptName); ardAccessFence1.setIntoShipment("进入装油点"); ardAccessFence1.setIntoShipmentId(ardOilWall.getId()); ardAccessFence1.setIntoShipmentTime(time); ardAccessFence1.setLng(lng); ardAccessFence1.setLat(lat); @@ -126,11 +119,33 @@ } } }else { String out = ardAccessFence.getOutShipmentId(); if(out == null){ //车辆未开出装油点 String into = ardAccessFence.getIntoShipmentId(); ArdOilWall ardOilWall = ((ArdOilWallServiceImpl) SpringUtils.getBean("ArdOilWallServiceImpl")).one(into); pts.clear(); String[] coord = ardOilWall.getCoord().split(","); for (int j = 0; j < coord.length; j = j + 3) { pts.add(new Point2D.Double(Double.parseDouble(coord[j]), Double.parseDouble(coord[j + 1]))); } if (!GeoTools.IsPtInPoly(point, pts)) { //车辆开出装油点 ardAccessFence.setOutShipmentId(into); ardAccessFence.setOutShipmentTime(time); } ardAccessFence.setLng(lng); ardAccessFence.setLat(lat); ((ArdAccessFenceServiceImpl)SpringUtils.getBean("ArdAccessFenceServiceImpl")).updAccess(ardAccessFence); }else { //车辆已经开出装油点,判断是否进入卸油点 String unload = ardAccessFence.getIntoUnloadId(); //如果unload为空,判断是否进入卸油点 if(unload==null){ //查询全部卸油点 //车辆未进入卸油点 List<ArdOilWall> ardOilWalls = ((ArdOilWallServiceImpl) SpringUtils.getBean("ArdOilWallServiceImpl")).uploadAll(); //是否在路上 Boolean isRoad = true; for (int i = 0; i < ardOilWalls.size(); i++) { pts.clear(); ArdOilWall ardOilWall = ardOilWalls.get(i); @@ -142,14 +157,19 @@ //进入卸油点,存入卸油点围栏ID ardAccessFence.setIntoUnloadId(ardOilWall.getId()); ardAccessFence.setIntoUnloadTime(time); break; } } ardAccessFence.setLng(lng); ardAccessFence.setLat(lat); ((ArdAccessFenceServiceImpl)SpringUtils.getBean("ArdAccessFenceServiceImpl")).updAccess(ardAccessFence); //已经进入卸油点,不在路上不需要停车报警 isRoad = false; break; } } if(isRoad){ //如果在路上需要记录每次坐标与上次是否相同,如果一样更新停留时间 } }else { //如果unload有值,则继续判断是否出了卸油点,匹配卸油点的唯一ID //车辆已经进入卸油点,判断是否已经开出卸油点 ArdOilWall ardOilWall = ((ArdOilWallServiceImpl) SpringUtils.getBean("ArdOilWallServiceImpl")).one(unload); pts.clear(); String[] coord = ardOilWall.getCoord().split(","); @@ -166,7 +186,7 @@ ((ArdAccessFenceServiceImpl)SpringUtils.getBean("ArdAccessFenceServiceImpl")).updAccess(ardAccessFence); } } } } //清淤入栏结束------------ ard-work/src/main/java/com/ruoyi/sy/mapper/ArdAccessNumMapper.java
New file @@ -0,0 +1,10 @@ package com.ruoyi.sy.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.sy.domain.ArdAccessNum; /** * @author Administrator */ public interface ArdAccessNumMapper extends BaseMapper<ArdAccessNum> { } ard-work/src/main/java/com/ruoyi/sy/service/ArdAccessNumService.java
New file @@ -0,0 +1,12 @@ package com.ruoyi.sy.service; import com.ruoyi.sy.domain.ArdAccessNum; import java.util.List; public interface ArdAccessNumService { List<ArdAccessNum> queryNum(); int add(ArdAccessNum ardAccessNum); } ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdAccessNumServiceImpl.java
New file @@ -0,0 +1,26 @@ package com.ruoyi.sy.service.impl; import com.ruoyi.sy.domain.ArdAccessNum; import com.ruoyi.sy.mapper.ArdAccessNumMapper; import com.ruoyi.sy.service.ArdAccessNumService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class ArdAccessNumServiceImpl implements ArdAccessNumService { @Autowired private ArdAccessNumMapper ardAccessNumMapper; @Override public List<ArdAccessNum> queryNum() { return ardAccessNumMapper.selectList(null); } @Override public int add(ArdAccessNum ardAccessNum) { return ardAccessNumMapper.insert(ardAccessNum); } }