From fdbb8d1d091524727456bf63d86b9612d39f822d Mon Sep 17 00:00:00 2001 From: Administrator <1144154118@qq.com> Date: 星期一, 21 八月 2023 17:18:17 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml | 1 ard-work/src/main/java/com/ruoyi/dispatch/controller/ArdDispatchPoliceController.java | 111 +++++++ ard-work/src/main/java/com/ruoyi/utils/forest/UavClient.java | 2 ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml | 2 ard-work/src/main/java/com/ruoyi/dispatch/service/impl/ArdDispatchPoliceServiceImpl.java | 138 +++++++++ ard-work/src/main/java/com/ruoyi/device/camera/domain/ArdCameras.java | 2 ard-work/src/main/java/com/ruoyi/dispatch/mapper/ArdDispatchPoliceMapper.java | 87 +++++ ard-work/src/main/java/com/ruoyi/device/uav/controller/ArdUavController.java | 13 ard-work/src/main/java/com/ruoyi/dispatch/service/IArdDispatchPoliceService.java | 61 ++++ ard-work/src/main/resources/mapper/dispatch/ArdDispatchPoliceMapper.xml | 159 ++++++++++ ard-work/src/main/java/com/ruoyi/scheduling/domian/SchedulingParam.java | 2 ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java | 77 ++-- ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java | 17 ard-work/src/main/java/com/ruoyi/dispatch/domain/ArdDispatchPoliceUser.java | 52 +++ ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java | 53 ++- ard-work/src/main/java/com/ruoyi/dispatch/domain/ArdDispatchPolice.java | 109 +++++++ 16 files changed, 817 insertions(+), 69 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java b/ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java index 2ca4552..c046a48 100644 --- a/ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java @@ -125,45 +125,50 @@ */ @Override public List<SysUser> getNearAppUsers(SchedulingParam param) { - Double longitude = param.getLongitude(); - Double latitude = param.getLatitude(); - if (longitude == null && latitude == null) { - log.debug("鍘熺偣鍧愭爣涓虹┖"); - return null; - } - Integer radius = param.getSealingRadius(); - - if (radius == null) { - log.debug("鍗婂緞璺濈涓虹┖"); - return null; - } - - SysUser user = new SysUser(); - List<SysUser> appUserList = iSysUserService.selectAllAppUserList(user); - //杩囨护鍦ㄧ嚎 - List<SysUser> onLineList = appUserList.stream() - .filter(sysUser -> (sysUser.getAppOnlineState().equals("1"))) - .collect(Collectors.toList()); - //杩囨护鑼冨洿 List<SysUser> filteredList = new ArrayList<>(); - for(SysUser sysUser:onLineList) { - ArdAppPosition ardAppPosition = ardAppPositionMapper.selectLastArdAppPositionByUserId(sysUser.getUserId()); - if (ardAppPosition != null) { - Double lon = ardAppPosition.getLongitude(); - Double lat = ardAppPosition.getLatitude(); - if(longitude==null||latitude==null) - { - continue; - } - double distance = GisTool.getDistance(new double[]{ longitude, latitude}, new double[]{ lon, lat}); - if (distance <= radius) { - Map<String,Object> params=new HashMap<>(); - params.put("longitude",lon); - params.put("latitude",lat); - sysUser.setParams(params); - filteredList.add(sysUser); // 灏嗘弧瓒虫潯浠剁殑鐢ㄦ埛娣诲姞鍒扮瓫閫夊垪琛ㄤ腑 + try { + Long deptId = SecurityUtils.getLoginUser().getUser().getDeptId(); + Double longitude = param.getLongitude(); + Double latitude = param.getLatitude(); + if (longitude == null && latitude == null) { + log.debug("鍘熺偣鍧愭爣涓虹┖"); + return null; + } + Integer radius = param.getSealingRadius(); + + if (radius == null) { + log.debug("鍗婂緞璺濈涓虹┖"); + return null; + } + + SysUser user = new SysUser(); + user.setDeptId(deptId); + List<SysUser> appUserList = iSysUserService.selectAllAppUserList(user); + //杩囨护鍦ㄧ嚎 + List<SysUser> onLineList = appUserList.stream() + .filter(sysUser -> (sysUser.getAppOnlineState().equals("1"))) + .collect(Collectors.toList()); + //杩囨护鑼冨洿 + for (SysUser sysUser : onLineList) { + ArdAppPosition ardAppPosition = ardAppPositionMapper.selectLastArdAppPositionByUserId(sysUser.getUserId()); + if (ardAppPosition != null) { + Double lon = ardAppPosition.getLongitude(); + Double lat = ardAppPosition.getLatitude(); + if (longitude == null || latitude == null) { + continue; + } + double distance = GisTool.getDistance(new double[]{longitude, latitude}, new double[]{lon, lat}); + if (distance <= radius) { + Map<String, Object> params = new HashMap<>(); + params.put("longitude", lon); + params.put("latitude", lat); + sysUser.setParams(params); + filteredList.add(sysUser); // 灏嗘弧瓒虫潯浠剁殑鐢ㄦ埛娣诲姞鍒扮瓫閫夊垪琛ㄤ腑 + } } } + } catch (Exception ex) { + log.error("鑾峰彇灏佹帶鍦堝唴鎵�鏈夊湪绾縜pp鐢ㄦ埛寮傚父" + ex.getMessage()); } return filteredList; } diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/domain/ArdCameras.java b/ard-work/src/main/java/com/ruoyi/device/camera/domain/ArdCameras.java index cfdf554..1c8ed55 100644 --- a/ard-work/src/main/java/com/ruoyi/device/camera/domain/ArdCameras.java +++ b/ard-work/src/main/java/com/ruoyi/device/camera/domain/ArdCameras.java @@ -104,7 +104,7 @@ * 閮ㄩ棬ID */ @Excel(name = "閮ㄩ棬ID") - private Integer deptId; + private Long deptId; /** * 鏂逛綅瑙� diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java index 88b4637..e14f950 100644 --- a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java @@ -47,8 +47,7 @@ private SysDeptMapper sysDeptMapper; @Resource private RedisCache redisCache; - @Resource - private IHikClientService hikClientService; + @Resource private ArdChannelMapper ardChannelMapper; @@ -235,6 +234,13 @@ } if (ardCameras.size() > 0) { for (ArdCameras camera : ardCameras) { + ArdChannel ardChannel=new ArdChannel(); + ardChannel.setDeviceId(camera.getId()); + List<ArdChannel> ardChannels = ardChannelMapper.selectArdChannelList(ardChannel); + if(ardChannels!=null) + { + camera.setChannelList(ardChannels); + } Map<String, Object> cameraMap = ArdTool.convertEntityToMap(camera); childList.add(cameraMap); } @@ -297,6 +303,7 @@ @Override public List<ArdCameras> getNearCameras(SchedulingParam param) { try { + Long deptId=SecurityUtils.getLoginUser().getUser().getDeptId(); Double longitude = param.getLongitude(); Double latitude = param.getLatitude(); if (longitude == null && latitude == null) { @@ -309,8 +316,10 @@ return null; } String dayNightTime = redisCache.getCacheObject("sys_config:dayNightTime"); - //鑾峰彇鎵�鏈夊厜鐢� - List<ArdCameras> ardCamerasList = ardCamerasMapper.selectArdCamerasList(new ArdCameras()); + //鑾峰彇鎵�鏈夊厜鐢�(鎸夐儴闂�) + ArdCameras cameras= new ArdCameras(); + cameras.setDeptId(deptId); + List<ArdCameras> ardCamerasList = ardCamerasMapper.selectArdCamerasList(cameras); //缁熻鎵�鏈夊厜鐢靛彲瑙嗚寖鍥村唴涓庢姤璀︾偣鐨勮窛绂� List<ArdCameras> ardCameras = new ArrayList<>(); for (ArdCameras camera : ardCamerasList) { diff --git a/ard-work/src/main/java/com/ruoyi/device/uav/controller/ArdUavController.java b/ard-work/src/main/java/com/ruoyi/device/uav/controller/ArdUavController.java index a8f40e1..ea8ad38 100644 --- a/ard-work/src/main/java/com/ruoyi/device/uav/controller/ArdUavController.java +++ b/ard-work/src/main/java/com/ruoyi/device/uav/controller/ArdUavController.java @@ -44,7 +44,7 @@ @PostMapping("/") @ApiOperation("鏃犱汉鏈簆ost鎺ュ彛") - public Object post(@RequestBody Map<String,String> param) { + public Object post(@RequestBody Map<String, String> param) { String url = param.get("url"); String data = param.get("data"); return this.uavService.doUavRequest(POST, url, data); @@ -52,9 +52,18 @@ @DeleteMapping("/") @ApiOperation("鏃犱汉鏈篸elete鎺ュ彛") - public Object delete(@RequestParam String url, @RequestParam String data) { + public Object delete(@RequestBody Map<String, String> param) { + String url = param.get("url"); + String data = param.get("data"); return this.uavService.doUavRequest(DELETE, url, data); } + @GetMapping("/getToken") + @ApiOperation("鏃犱汉鏈篸elete鎺ュ彛") + public Object getToken() { + + return this.uavService.getToken(); + } + } diff --git a/ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java b/ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java index 14acb4d..99dae26 100644 --- a/ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java +++ b/ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java @@ -5,6 +5,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.utils.forest.UavClient; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.binary.Base64; @@ -29,12 +30,12 @@ public static final String PASSWORD = "ardkj12345";//瀵嗙爜 public static final String SALT = "0123456789012345";//鐩� - //token 鐧婚檰鍚庢瘡娆¤姹�,鍦╤eader涓惡甯� - private String token;//鐧诲綍鎴愬姛杩斿洖鐨則oken private Map uavUser;//鐧诲綍鐨勭敤鎴蜂俊鎭� private ObjectMapper om = new ObjectMapper(); @Autowired private UavClient uavClient; + @Autowired + private RedisCache redisCache; @PostConstruct public void created() { @@ -51,32 +52,40 @@ e.printStackTrace(); } //鎵цmethod + this.getToken();//鑾峰彇token楠岃瘉,楠岃瘉token鏈夋晥鎬� try { - res = (String) requestMethod.invoke(this.uavClient, url, this.token, data); - } catch (InvocationTargetException e) { - ForestNetworkException fe = (ForestNetworkException) e.getCause(); - if (fe.getStatusCode() == 401) {//token澶辨晥,閲嶆柊鐧诲綍 - this.login(); - } - try {//鍐嶆璋冪敤鎺ュ彛 - res = (String) requestMethod.invoke(this.uavClient, url, this.token, data); - } catch (IllegalAccessException ex) { - ex.printStackTrace(); - } catch (InvocationTargetException ex) { - ex.printStackTrace(); - } + res = (String) requestMethod.invoke(this.uavClient, url, this.getToken(), data); } catch (IllegalAccessException e) { - throw new RuntimeException(e); + System.out.println("doUavRequest 璁块棶澶辫触" + e.getMessage()); + } catch (InvocationTargetException e) { + System.out.println("doUavRequest 鎵ц澶辫触" + e.getMessage()); + e.printStackTrace(); } return res; } public Map getUavUser() { - if (this.uavUser == null) { - this.login(); + return redisCache.getCacheMap("uav:uavUser"); + } + + public String getToken() { + //鑾峰彇uav鐢ㄦ埛淇℃伅 + Map uavUser = redisCache.getCacheMap("uav:uavUser"); + String token = (String) uavUser.get("access_token"); + //楠岃瘉token鏈夋晥鎬� + try { + String res = uavClient.GET("manage/api/v1/devices", token, "{}"); + } catch (ForestNetworkException fe) { + if (fe.getStatusCode() == 401) {//token澶辨晥,閲嶆柊鐧诲綍 + this.login(); + //鍐嶆鑾峰彇token + uavUser = redisCache.getCacheMap("uav:uavUser"); + token = (String) uavUser.get("access_token"); + return token; + } } - return this.uavUser; + return token; } public void login() { @@ -84,11 +93,11 @@ String codedPassword = this.Encrypt(PASSWORD, SALT); String body = "{\"username\":\"" + USERNAME + "\",\"password\":\"" + codedPassword + "\"}"; try { + //uavClient.GET("logout", null, "{}"); String res = uavClient.POST("login", null, body); Map resMap = om.readValue(res, Map.class); - this.uavUser = (Map) resMap.get("data"); - if (this.uavUser != null) { - this.token = (String) this.uavUser.get("access_token"); + if (resMap != null) { + redisCache.setCacheMap("uav:uavUser", (Map) resMap.get("data")); } } catch (ForestRuntimeException e) { log.error("鏃犱汉鏈鸿繛鎺ヨ秴鏃�" + e.getMessage()); diff --git a/ard-work/src/main/java/com/ruoyi/dispatch/controller/ArdDispatchPoliceController.java b/ard-work/src/main/java/com/ruoyi/dispatch/controller/ArdDispatchPoliceController.java new file mode 100644 index 0000000..6ed83ed --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/dispatch/controller/ArdDispatchPoliceController.java @@ -0,0 +1,111 @@ +package com.ruoyi.dispatch.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.dispatch.domain.ArdDispatchPolice; +import com.ruoyi.dispatch.service.IArdDispatchPoliceService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 娲捐绠$悊Controller + * + * @author ard + * @date 2023-08-21 + */ +@Api(tags = "娲捐绠$悊") +@RestController +@RequestMapping("/dispatch/police") +public class ArdDispatchPoliceController extends BaseController +{ + @Autowired + private IArdDispatchPoliceService ardDispatchPoliceService; + + /** + * 鏌ヨ娲捐绠$悊鍒楄〃 + */ + @ApiOperation("鏌ヨ娲捐绠$悊鍒楄〃") + @PreAuthorize("@ss.hasPermi('dispatch:police:list')") + @GetMapping("/list") + public TableDataInfo list(ArdDispatchPolice ardDispatchPolice) + { + startPage(); + List<ArdDispatchPolice> list = ardDispatchPoliceService.selectArdDispatchPoliceList(ardDispatchPolice); + return getDataTable(list); + } + + /** + * 瀵煎嚭娲捐绠$悊鍒楄〃 + */ + @PreAuthorize("@ss.hasPermi('dispatch:police:export')") + @Log(title = "娲捐绠$悊", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ArdDispatchPolice ardDispatchPolice) + { + List<ArdDispatchPolice> list = ardDispatchPoliceService.selectArdDispatchPoliceList(ardDispatchPolice); + ExcelUtil<ArdDispatchPolice> util = new ExcelUtil<ArdDispatchPolice>(ArdDispatchPolice.class); + util.exportExcel(response, list, "娲捐绠$悊鏁版嵁"); + } + + /** + * 鑾峰彇娲捐绠$悊璇︾粏淇℃伅 + */ + @PreAuthorize("@ss.hasPermi('dispatch:police:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") String id) + { + return success(ardDispatchPoliceService.selectArdDispatchPoliceById(id)); + } + + /** + * 鏂板娲捐绠$悊 + */ + @ApiOperation("鏂板娲捐绠$悊") + @PreAuthorize("@ss.hasPermi('dispatch:police:add')") + @Log(title = "娲捐绠$悊", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ArdDispatchPolice ardDispatchPolice) + { + return toAjax(ardDispatchPoliceService.insertArdDispatchPolice(ardDispatchPolice)); + } + + /** + * 淇敼娲捐绠$悊 + */ + @PreAuthorize("@ss.hasPermi('dispatch:police:edit')") + @Log(title = "娲捐绠$悊", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ArdDispatchPolice ardDispatchPolice) + { + return toAjax(ardDispatchPoliceService.updateArdDispatchPolice(ardDispatchPolice)); + } + + /** + * 鍒犻櫎娲捐绠$悊 + */ + @ApiOperation("鍒犻櫎娲捐绠$悊") + @PreAuthorize("@ss.hasPermi('dispatch:police:remove')") + @Log(title = "娲捐绠$悊", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable String[] ids) + { + return toAjax(ardDispatchPoliceService.deleteArdDispatchPoliceByIds(ids)); + } +} diff --git a/ard-work/src/main/java/com/ruoyi/dispatch/domain/ArdDispatchPolice.java b/ard-work/src/main/java/com/ruoyi/dispatch/domain/ArdDispatchPolice.java new file mode 100644 index 0000000..64d3dab --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/dispatch/domain/ArdDispatchPolice.java @@ -0,0 +1,109 @@ +package com.ruoyi.dispatch.domain; + +import java.util.List; + +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 娲捐绠$悊瀵硅薄 ard_dispatch_police + * + * @author ard + * @date 2023-08-21 + */ +public class ArdDispatchPolice extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** ID */ + private String id; + + /** 娲捐鍚嶇О */ + @Excel(name = "娲捐鍚嶇О") + private String name; + + /** 缁忓害 */ + @Excel(name = "缁忓害") + private Double longitude; + + /** 绾害 */ + @Excel(name = "绾害") + private Double latitude; + + /** 閮ㄩ棬ID */ + @Excel(name = "閮ㄩ棬ID") + private Integer deptId; + + /** 鐢ㄦ埛ID */ + @Excel(name = "鐢ㄦ埛ID") + private String userId; + + /** 娲捐鍏宠仈鐢ㄦ埛淇℃伅 */ + private List<String> ardDispatchPoliceUserList; + + public void setId(String id) + { + this.id = id; + } + + public String getId() + { + return id; + } + public void setName(String name) + { + this.name = name; + } + + public String getName() + { + return name; + } + public void setLongitude(Double longitude) + { + this.longitude = longitude; + } + + public Double getLongitude() + { + return longitude; + } + public void setLatitude(Double latitude) + { + this.latitude = latitude; + } + + public Double getLatitude() + { + return latitude; + } + public void setDeptId(Integer deptId) + { + this.deptId = deptId; + } + + public Integer getDeptId() + { + return deptId; + } + public void setUserId(String userId) + { + this.userId = userId; + } + + public String getUserId() + { + return userId; + } + + public List<String> getArdDispatchPoliceUserList() { + return ardDispatchPoliceUserList; + } + + public void setArdDispatchPoliceUserList(List<String> ardDispatchPoliceUserList) { + this.ardDispatchPoliceUserList = ardDispatchPoliceUserList; + } +} diff --git a/ard-work/src/main/java/com/ruoyi/dispatch/domain/ArdDispatchPoliceUser.java b/ard-work/src/main/java/com/ruoyi/dispatch/domain/ArdDispatchPoliceUser.java new file mode 100644 index 0000000..71c5a87 --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/dispatch/domain/ArdDispatchPoliceUser.java @@ -0,0 +1,52 @@ +package com.ruoyi.dispatch.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 娲捐鍏宠仈鐢ㄦ埛瀵硅薄 ard_dispatch_police_user + * + * @author ard + * @date 2023-08-21 + */ +public class ArdDispatchPoliceUser extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 娲捐ID */ + @Excel(name = "娲捐ID") + private String dispatchId; + + /** 鍏宠仈鐢ㄦ埛ID */ + @Excel(name = "鍏宠仈鐢ㄦ埛ID") + private String userId; + + public void setDispatchId(String dispatchId) + { + this.dispatchId = dispatchId; + } + + public String getDispatchId() + { + return dispatchId; + } + public void setUserId(String userId) + { + this.userId = userId; + } + + public String getUserId() + { + return userId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("dispatchId", getDispatchId()) + .append("userId", getUserId()) + .toString(); + } +} diff --git a/ard-work/src/main/java/com/ruoyi/dispatch/mapper/ArdDispatchPoliceMapper.java b/ard-work/src/main/java/com/ruoyi/dispatch/mapper/ArdDispatchPoliceMapper.java new file mode 100644 index 0000000..443bcd8 --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/dispatch/mapper/ArdDispatchPoliceMapper.java @@ -0,0 +1,87 @@ +package com.ruoyi.dispatch.mapper; + +import java.util.List; +import com.ruoyi.dispatch.domain.ArdDispatchPolice; +import com.ruoyi.dispatch.domain.ArdDispatchPoliceUser; + +/** + * 娲捐绠$悊Mapper鎺ュ彛 + * + * @author ard + * @date 2023-08-21 + */ +public interface ArdDispatchPoliceMapper +{ + /** + * 鏌ヨ娲捐绠$悊 + * + * @param id 娲捐绠$悊涓婚敭 + * @return 娲捐绠$悊 + */ + public ArdDispatchPolice selectArdDispatchPoliceById(String id); + + /** + * 鏌ヨ娲捐绠$悊鍒楄〃 + * + * @param ardDispatchPolice 娲捐绠$悊 + * @return 娲捐绠$悊闆嗗悎 + */ + public List<ArdDispatchPolice> selectArdDispatchPoliceList(ArdDispatchPolice ardDispatchPolice); + + /** + * 鏂板娲捐绠$悊 + * + * @param ardDispatchPolice 娲捐绠$悊 + * @return 缁撴灉 + */ + public int insertArdDispatchPolice(ArdDispatchPolice ardDispatchPolice); + + /** + * 淇敼娲捐绠$悊 + * + * @param ardDispatchPolice 娲捐绠$悊 + * @return 缁撴灉 + */ + public int updateArdDispatchPolice(ArdDispatchPolice ardDispatchPolice); + + /** + * 鍒犻櫎娲捐绠$悊 + * + * @param id 娲捐绠$悊涓婚敭 + * @return 缁撴灉 + */ + public int deleteArdDispatchPoliceById(String id); + + /** + * 鎵归噺鍒犻櫎娲捐绠$悊 + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteArdDispatchPoliceByIds(String[] ids); + + /** + * 鎵归噺鍒犻櫎娲捐鍏宠仈鐢ㄦ埛 + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteArdDispatchPoliceUserByDispatchIds(String[] ids); + + /** + * 鎵归噺鏂板娲捐鍏宠仈鐢ㄦ埛 + * + * @param ardDispatchPoliceUserList 娲捐鍏宠仈鐢ㄦ埛鍒楄〃 + * @return 缁撴灉 + */ + public int batchArdDispatchPoliceUser(List<ArdDispatchPoliceUser> ardDispatchPoliceUserList); + + + /** + * 閫氳繃娲捐绠$悊涓婚敭鍒犻櫎娲捐鍏宠仈鐢ㄦ埛淇℃伅 + * + * @param id 娲捐绠$悊ID + * @return 缁撴灉 + */ + public int deleteArdDispatchPoliceUserByDispatchId(String id); +} diff --git a/ard-work/src/main/java/com/ruoyi/dispatch/service/IArdDispatchPoliceService.java b/ard-work/src/main/java/com/ruoyi/dispatch/service/IArdDispatchPoliceService.java new file mode 100644 index 0000000..0d68396 --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/dispatch/service/IArdDispatchPoliceService.java @@ -0,0 +1,61 @@ +package com.ruoyi.dispatch.service; + +import java.util.List; +import com.ruoyi.dispatch.domain.ArdDispatchPolice; + +/** + * 娲捐绠$悊Service鎺ュ彛 + * + * @author ard + * @date 2023-08-21 + */ +public interface IArdDispatchPoliceService +{ + /** + * 鏌ヨ娲捐绠$悊 + * + * @param id 娲捐绠$悊涓婚敭 + * @return 娲捐绠$悊 + */ + public ArdDispatchPolice selectArdDispatchPoliceById(String id); + + /** + * 鏌ヨ娲捐绠$悊鍒楄〃 + * + * @param ardDispatchPolice 娲捐绠$悊 + * @return 娲捐绠$悊闆嗗悎 + */ + public List<ArdDispatchPolice> selectArdDispatchPoliceList(ArdDispatchPolice ardDispatchPolice); + + /** + * 鏂板娲捐绠$悊 + * + * @param ardDispatchPolice 娲捐绠$悊 + * @return 缁撴灉 + */ + public int insertArdDispatchPolice(ArdDispatchPolice ardDispatchPolice); + + /** + * 淇敼娲捐绠$悊 + * + * @param ardDispatchPolice 娲捐绠$悊 + * @return 缁撴灉 + */ + public int updateArdDispatchPolice(ArdDispatchPolice ardDispatchPolice); + + /** + * 鎵归噺鍒犻櫎娲捐绠$悊 + * + * @param ids 闇�瑕佸垹闄ょ殑娲捐绠$悊涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteArdDispatchPoliceByIds(String[] ids); + + /** + * 鍒犻櫎娲捐绠$悊淇℃伅 + * + * @param id 娲捐绠$悊涓婚敭 + * @return 缁撴灉 + */ + public int deleteArdDispatchPoliceById(String id); +} diff --git a/ard-work/src/main/java/com/ruoyi/dispatch/service/impl/ArdDispatchPoliceServiceImpl.java b/ard-work/src/main/java/com/ruoyi/dispatch/service/impl/ArdDispatchPoliceServiceImpl.java new file mode 100644 index 0000000..92a99ff --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/dispatch/service/impl/ArdDispatchPoliceServiceImpl.java @@ -0,0 +1,138 @@ +package com.ruoyi.dispatch.service.impl; + +import java.util.List; + +import com.ruoyi.common.utils.DateUtils; + +import com.ruoyi.common.utils.uuid.IdUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; + +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.SecurityUtils; +import org.springframework.transaction.annotation.Transactional; +import com.ruoyi.dispatch.domain.ArdDispatchPoliceUser; +import com.ruoyi.dispatch.mapper.ArdDispatchPoliceMapper; +import com.ruoyi.dispatch.domain.ArdDispatchPolice; +import com.ruoyi.dispatch.service.IArdDispatchPoliceService; + +import javax.annotation.Resource; + +/** + * 娲捐绠$悊Service涓氬姟灞傚鐞� + * + * @author ard + * @date 2023-08-21 + */ +@Service +public class ArdDispatchPoliceServiceImpl implements IArdDispatchPoliceService { + @Resource + private ArdDispatchPoliceMapper ardDispatchPoliceMapper; + + /** + * 鏌ヨ娲捐绠$悊 + * + * @param id 娲捐绠$悊涓婚敭 + * @return 娲捐绠$悊 + */ + @Override + public ArdDispatchPolice selectArdDispatchPoliceById(String id) { + return ardDispatchPoliceMapper.selectArdDispatchPoliceById(id); + } + + /** + * 鏌ヨ娲捐绠$悊鍒楄〃 + * + * @param ardDispatchPolice 娲捐绠$悊 + * @return 娲捐绠$悊 + */ + @Override + public List<ArdDispatchPolice> selectArdDispatchPoliceList(ArdDispatchPolice ardDispatchPolice) { + return ardDispatchPoliceMapper.selectArdDispatchPoliceList(ardDispatchPolice); + } + + /** + * 鏂板娲捐绠$悊 + * + * @param ardDispatchPolice 娲捐绠$悊 + * @return 缁撴灉 + */ + @Transactional + @Override + public int insertArdDispatchPolice(ArdDispatchPolice ardDispatchPolice) { + ardDispatchPolice.setId(IdUtils.simpleUUID()); + ardDispatchPolice.setUserId(SecurityUtils.getUserId()); + ardDispatchPolice.setCreateBy(SecurityUtils.getUsername()); + ardDispatchPolice.setCreateTime(DateUtils.getNowDate()); + int rows = ardDispatchPoliceMapper.insertArdDispatchPolice(ardDispatchPolice); + insertArdDispatchPoliceUser(ardDispatchPolice); + return rows; + } + + /** + * 淇敼娲捐绠$悊 + * + * @param ardDispatchPolice 娲捐绠$悊 + * @return 缁撴灉 + */ + @Transactional + @Override + public int updateArdDispatchPolice(ArdDispatchPolice ardDispatchPolice) { + ardDispatchPolice.setUpdateBy(SecurityUtils.getUsername()); + ardDispatchPolice.setUpdateTime(DateUtils.getNowDate()); + ardDispatchPoliceMapper.deleteArdDispatchPoliceUserByDispatchId(ardDispatchPolice.getId()) + ; + insertArdDispatchPoliceUser(ardDispatchPolice); + return ardDispatchPoliceMapper.updateArdDispatchPolice(ardDispatchPolice); + } + + /** + * 鎵归噺鍒犻櫎娲捐绠$悊 + * + * @param ids 闇�瑕佸垹闄ょ殑娲捐绠$悊涓婚敭 + * @return 缁撴灉 + */ + @Transactional + @Override + public int deleteArdDispatchPoliceByIds(String[] ids) { + ardDispatchPoliceMapper.deleteArdDispatchPoliceUserByDispatchIds(ids); + return ardDispatchPoliceMapper.deleteArdDispatchPoliceByIds(ids); + } + + /** + * 鍒犻櫎娲捐绠$悊淇℃伅 + * + * @param id 娲捐绠$悊涓婚敭 + * @return 缁撴灉 + */ + @Transactional + @Override + public int deleteArdDispatchPoliceById(String id) { + ardDispatchPoliceMapper.deleteArdDispatchPoliceUserByDispatchId(id); + return ardDispatchPoliceMapper.deleteArdDispatchPoliceById(id); + } + + /** + * 鏂板娲捐鍏宠仈鐢ㄦ埛淇℃伅 + * + * @param ardDispatchPolice 娲捐绠$悊瀵硅薄 + */ + public void insertArdDispatchPoliceUser(ArdDispatchPolice ardDispatchPolice) { + List<String> ardDispatchPoliceUserList = ardDispatchPolice.getArdDispatchPoliceUserList(); + String id = ardDispatchPolice.getId(); + if (StringUtils.isNotNull(ardDispatchPoliceUserList)) { + List<ArdDispatchPoliceUser> list = new ArrayList<ArdDispatchPoliceUser>(); + for (String userId : ardDispatchPoliceUserList) { + ArdDispatchPoliceUser ardDispatchPoliceUser=new ArdDispatchPoliceUser(); + ardDispatchPoliceUser.setUserId(userId); + ardDispatchPoliceUser.setDispatchId(id); + list.add(ardDispatchPoliceUser); + } + if (list.size() > 0) { + ardDispatchPoliceMapper.batchArdDispatchPoliceUser(list); + } + } + } +} diff --git a/ard-work/src/main/java/com/ruoyi/scheduling/domian/SchedulingParam.java b/ard-work/src/main/java/com/ruoyi/scheduling/domian/SchedulingParam.java index 9b911d5..b75ed90 100644 --- a/ard-work/src/main/java/com/ruoyi/scheduling/domian/SchedulingParam.java +++ b/ard-work/src/main/java/com/ruoyi/scheduling/domian/SchedulingParam.java @@ -1,7 +1,5 @@ package com.ruoyi.scheduling.domian; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** diff --git a/ard-work/src/main/java/com/ruoyi/utils/forest/UavClient.java b/ard-work/src/main/java/com/ruoyi/utils/forest/UavClient.java index 8fcd0ad..370e866 100644 --- a/ard-work/src/main/java/com/ruoyi/utils/forest/UavClient.java +++ b/ard-work/src/main/java/com/ruoyi/utils/forest/UavClient.java @@ -17,7 +17,7 @@ @Post(IP + "${url}") String POST(@DataVariable("url") String url, @Header("x-auth-token") String token, @JSONBody String body); - @Post(IP + "${url}") + @Delete(IP + "${url}") String DELETE(@DataVariable("url") String url, @Header("x-auth-token") String token, @JSONBody String body); diff --git a/ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml b/ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml index 8d14d35..7d1aa7f 100644 --- a/ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml +++ b/ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml @@ -70,7 +70,7 @@ <select id="selectArdAlarmpointsWellList" parameterType="ArdAlarmpointsWell" resultMap="ArdAlarmpointsWellResult"> <include refid="selectArdAlarmpointsWellVo"/> <where> - <if test="wellId != null and wellId != ''">and c.well_id = #{wellId}</if> + <if test="wellId != null and wellId != ''">and c.well_id like ('%${wellId}%')</if> <if test="wellNumber != null and wellNumber != ''">and c.well_number = #{wellNumber}</if> <if test="userId != null and userId != ''">and c.user_id = #{userId}</if> <if test="deptId != null ">and (c.dept_id = #{deptId} OR c.dept_id IN ( SELECT t.dept_id FROM sys_dept t diff --git a/ard-work/src/main/resources/mapper/dispatch/ArdDispatchPoliceMapper.xml b/ard-work/src/main/resources/mapper/dispatch/ArdDispatchPoliceMapper.xml new file mode 100644 index 0000000..7056376 --- /dev/null +++ b/ard-work/src/main/resources/mapper/dispatch/ArdDispatchPoliceMapper.xml @@ -0,0 +1,159 @@ +<?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.ruoyi.dispatch.mapper.ArdDispatchPoliceMapper"> + + <resultMap type="ArdDispatchPolice" id="ArdDispatchPoliceResult"> + <result property="id" column="id"/> + <result property="name" column="name"/> + <result property="longitude" column="longitude"/> + <result property="latitude" column="latitude"/> + <result property="deptId" column="dept_id"/> + <result property="userId" column="user_id"/> + <result property="createBy" column="create_by"/> + <result property="createTime" column="create_time"/> + <result property="updateBy" column="update_by"/> + <result property="updateTime" column="update_time"/> + <!-- 瀛愭煡璇紝鍏宠仈 ard_dispatch_police_user 琛� --> + <collection property="ardDispatchPoliceUserList" ofType="java.lang.String" select="getUserIdsByMainTableId" + column="id"/> + </resultMap> + <select id="getUserIdsByMainTableId" resultType="java.lang.String"> + SELECT user_id + FROM ard_dispatch_police_user + WHERE dispatch_id = #{id} + </select> + <resultMap id="ArdDispatchPoliceArdDispatchPoliceUserResult" type="ArdDispatchPolice" + extends="ArdDispatchPoliceResult"> + <collection property="ardDispatchPoliceUserList" notNullColumn="sub_dispatch_id" javaType="java.util.List" + resultMap="ArdDispatchPoliceUserResult"/> + </resultMap> + + <resultMap type="ArdDispatchPoliceUser" id="ArdDispatchPoliceUserResult"> + <result property="dispatchId" column="sub_dispatch_id"/> + <result property="userId" column="sub_user_id"/> + </resultMap> + + <sql id="selectArdDispatchPoliceVo"> + SELECT ID, + NAME, + longitude, + latitude, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time + FROM ard_dispatch_police + </sql> + + <select id="selectArdDispatchPoliceList" parameterType="ArdDispatchPolice" resultMap="ArdDispatchPoliceResult"> + <include refid="selectArdDispatchPoliceVo"/> + <where> + <if test="name != null and name != ''">and name like '%'||#{name}||'%'</if> + <if test="longitude != null ">and longitude = #{longitude}</if> + <if test="latitude != null ">and latitude = #{latitude}</if> + <if test="deptId != null ">and dept_id = #{deptId}</if> + <if test="userId != null and userId != ''">and user_id = #{userId}</if> + </where> + </select> + + <select id="selectArdDispatchPoliceById" parameterType="String" + resultMap="ArdDispatchPoliceArdDispatchPoliceUserResult"> + select a.id, + a.name, + a.longitude, + a.latitude, + a.dept_id, + a.user_id, + a.create_by, + a.create_time, + a.update_by, + a.update_time, + b.dispatch_id as sub_dispatch_id, + b.user_id as sub_user_id + from ard_dispatch_police a + left join ard_dispatch_police_user b on b.dispatch_id = a.id + where a.id = #{id} + </select> + + <insert id="insertArdDispatchPolice" parameterType="ArdDispatchPolice"> + insert into ard_dispatch_police + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null">id,</if> + <if test="name != null">name,</if> + <if test="longitude != null">longitude,</if> + <if test="latitude != null">latitude,</if> + <if test="deptId != null">dept_id,</if> + <if test="userId != null">user_id,</if> + <if test="createBy != null">create_by,</if> + <if test="createTime != null">create_time,</if> + <if test="updateBy != null">update_by,</if> + <if test="updateTime != null">update_time,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null">#{id},</if> + <if test="name != null">#{name},</if> + <if test="longitude != null">#{longitude},</if> + <if test="latitude != null">#{latitude},</if> + <if test="deptId != null">#{deptId},</if> + <if test="userId != null">#{userId},</if> + <if test="createBy != null">#{createBy},</if> + <if test="createTime != null">#{createTime},</if> + <if test="updateBy != null">#{updateBy},</if> + <if test="updateTime != null">#{updateTime},</if> + </trim> + </insert> + + <update id="updateArdDispatchPolice" parameterType="ArdDispatchPolice"> + update ard_dispatch_police + <trim prefix="SET" suffixOverrides=","> + <if test="name != null">name = #{name},</if> + <if test="longitude != null">longitude = #{longitude},</if> + <if test="latitude != null">latitude = #{latitude},</if> + <if test="deptId != null">dept_id = #{deptId},</if> + <if test="userId != null">user_id = #{userId},</if> + <if test="createBy != null">create_by = #{createBy},</if> + <if test="createTime != null">create_time = #{createTime},</if> + <if test="updateBy != null">update_by = #{updateBy},</if> + <if test="updateTime != null">update_time = #{updateTime},</if> + </trim> + where id = #{id} + </update> + + <delete id="deleteArdDispatchPoliceById" parameterType="String"> + delete + from ard_dispatch_police + where id = #{id} + </delete> + + <delete id="deleteArdDispatchPoliceByIds" parameterType="String"> + delete from ard_dispatch_police where id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </delete> + + <delete id="deleteArdDispatchPoliceUserByDispatchIds" parameterType="String"> + delete from ard_dispatch_police_user where dispatch_id in + <foreach item="dispatchId" collection="array" open="(" separator="," close=")"> + #{dispatchId} + </foreach> + </delete> + + <delete id="deleteArdDispatchPoliceUserByDispatchId" parameterType="String"> + delete + from ard_dispatch_police_user + where dispatch_id = #{dispatchId} + </delete> + + <insert id="batchArdDispatchPoliceUser"> + insert into ard_dispatch_police_user( dispatch_id, user_id) values + <foreach item="item" index="index" collection="list" separator=","> + ( #{item.dispatchId}, #{item.userId}) + </foreach> + </insert> + +</mapper> \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml b/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml index b988080..7f4291b 100644 --- a/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml +++ b/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml @@ -18,5 +18,6 @@ </settings> <typeAliases> <package name="com.ruoyi.*.*.domain"/> <!--鏇挎崲鎴愪綘鐨勯」鐩殑瀹炰綋绫荤殑璺緞(杩欎釜閰嶇疆瀵逛簬椤圭洰鏉ヨ娌℃湁浣滅敤锛屼粎浠呮槸鍐欑粰IDEA涓婂畨瑁呯殑 MyBatis 鎻掍欢鐪嬬殑锛岄槻姝㈡爣绾�)--> + <package name="com.ruoyi.*.domain"/> </typeAliases> </configuration> -- Gitblit v1.9.3