From b4b41579891db69a4240d422c8f4dae68cc267aa Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期一, 08 七月 2024 15:29:04 +0800 Subject: [PATCH] 罐车异常停车报警提交 --- ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 8 ard-work/src/main/resources/mapper/sy/ArdTankAbnormalParkAlarmMapper.xml | 97 ++++++++ ard-work/src/main/resources/mapper/sy/ArdTankWallMapper.xml | 7 ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java | 7 ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java | 8 ard-work/src/main/java/com/ruoyi/sy/service/IArdTankAbnormalParkAlarmService.java | 60 +++++ ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankAbnormalParkAlarmMapper.java | 67 ++++++ ard-work/src/main/resources/mapper/sy/ArdSyCarMapper.xml | 5 ard-work/src/main/java/com/ruoyi/sy/mapper/ArdSyCarMapper.java | 2 ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankAbnormalParkAlarm.java | 121 +++++++++++ ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java | 2 ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankWallMapper.java | 4 ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankAbnormalParkAlarmServiceImpl.java | 219 +++++++++++++++++++ 13 files changed, 607 insertions(+), 0 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java b/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java index beb7e1a..d7644e2 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java +++ b/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java @@ -14,6 +14,7 @@ import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.sy.param.ArdSyCarParam; +import com.ruoyi.sy.service.IArdTankAbnormalParkAlarmService; import com.ruoyi.sy.vo.ArdSyCarVo; import com.ruoyi.sy.domain.ArdSyUser; import com.ruoyi.sy.gps31.PositionContainer; @@ -71,6 +72,9 @@ @Autowired private ISysDeptService sysDeptService; + @Autowired + private IArdTankAbnormalParkAlarmService ardTankAbnormalParkAlarmService; + @Resource private SYClient sYClient; @@ -126,6 +130,9 @@ PushClientImplAlarm pushClientImplAlarm = new PushClientImplAlarm(ip,userId,password); Thread pushClientImplAlarmThread = new Thread(pushClientImplAlarm); pushClientImplAlarmThread.start(); + + //鍒犻櫎缁撴潫鏃堕棿涓簄ull鐨勮褰� + int result = ardTankAbnormalParkAlarmService.deleteArdTankAbnormalParkAlarmByEndTime(); } /** diff --git a/ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankAbnormalParkAlarm.java b/ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankAbnormalParkAlarm.java new file mode 100644 index 0000000..02ffc91 --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankAbnormalParkAlarm.java @@ -0,0 +1,121 @@ +package com.ruoyi.sy.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_tank_abnormal_park_alarm + * + * @author ard + * @date 2024-07-08 + */ +public class ArdTankAbnormalParkAlarm extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 涓婚敭 */ + private String id; + + /** 涓変竴杞﹁締涓婚敭 */ + @Excel(name = "涓変竴杞﹁締涓婚敭") + private String carId; + + /** 涓変竴杞﹁締鍚嶇О */ + @Excel(name = "涓変竴杞﹁締鍚嶇О") + private String carName; + + /** 缁忓害 */ + @Excel(name = "缁忓害") + private String longitude; + + /** 绾害 */ + @Excel(name = "绾害") + private String latitude; + + /** 寮�濮嬫椂闂� */ + @Excel(name = "寮�濮嬫椂闂�") + private String beginTime; + + /** 缁撴潫鏃堕棿 */ + @Excel(name = "缁撴潫鏃堕棿") + private String endTime; + + public void setId(String id) + { + this.id = id; + } + + public String getId() + { + return id; + } + public void setCarId(String carId) + { + this.carId = carId; + } + + public String getCarId() + { + return carId; + } + public void setCarName(String carName) + { + this.carName = carName; + } + + public String getCarName() + { + return carName; + } + public void setLongitude(String longitude) + { + this.longitude = longitude; + } + + public String getLongitude() + { + return longitude; + } + public void setLatitude(String latitude) + { + this.latitude = latitude; + } + + public String getLatitude() + { + return latitude; + } + public void setBeginTime(String beginTime) + { + this.beginTime = beginTime; + } + + public String getBeginTime() + { + return beginTime; + } + public void setEndTime(String endTime) + { + this.endTime = endTime; + } + + public String getEndTime() + { + return endTime; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("carId", getCarId()) + .append("carName", getCarName()) + .append("longitude", getLongitude()) + .append("latitude", getLatitude()) + .append("beginTime", getBeginTime()) + .append("endTime", getEndTime()) + .toString(); + } +} diff --git a/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java b/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java index 881433c..d970b18 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java +++ b/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java @@ -376,6 +376,14 @@ }*/ + Thread tankCarParkingAlarmThread = new Thread(){//鍒涘缓绾跨▼鍒ゆ柇缃愯溅寮傚父鍋滆溅鎶ヨ + @Override + public void run() { + ((ArdTankAbnormalParkAlarmServiceImpl)SpringUtils.getBean("ardTankAbnormalParkAlarmServiceImpl")).insertArdTankAbnormalParkAlarm(gpsMap); + } + }; + tankCarParkingAlarmThread.start(); + gpsMap.putAll(result); String ancestors = (String) gpsMap.get("ancestors");//鑾峰彇鐖剁骇閮ㄩ棬 String[] ancestorsArray = ancestors.split(","); diff --git a/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdSyCarMapper.java b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdSyCarMapper.java index c70b53e..22ae2e4 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdSyCarMapper.java +++ b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdSyCarMapper.java @@ -86,4 +86,6 @@ public Map<String, Object> getArdSyCarAndDeptByCarId(String carId); public List<String> selectArdSyCarByDeptIds(@Param("deptIdList") List<Long> deptIdList); + + public ArdSyCar getArdSyTankCarByCarId(String carId); } diff --git a/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankAbnormalParkAlarmMapper.java b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankAbnormalParkAlarmMapper.java new file mode 100644 index 0000000..c3ffaf2 --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankAbnormalParkAlarmMapper.java @@ -0,0 +1,67 @@ +package com.ruoyi.sy.mapper; + +import java.util.List; +import com.ruoyi.sy.domain.ArdTankAbnormalParkAlarm; + +/** + * 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍Mapper鎺ュ彛 + * + * @author ard + * @date 2024-07-08 + */ +public interface ArdTankAbnormalParkAlarmMapper +{ + /** + * 鏌ヨ缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + * + * @param id 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍涓婚敭 + * @return 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + */ + public ArdTankAbnormalParkAlarm selectArdTankAbnormalParkAlarmById(String id); + + /** + * 鏌ヨ缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍鍒楄〃 + * + * @param ardTankAbnormalParkAlarm 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + * @return 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍闆嗗悎 + */ + public List<ArdTankAbnormalParkAlarm> selectArdTankAbnormalParkAlarmList(ArdTankAbnormalParkAlarm ardTankAbnormalParkAlarm); + + /** + * 鏂板缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + * + * @param ardTankAbnormalParkAlarm 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + * @return 缁撴灉 + */ + public int insertArdTankAbnormalParkAlarm(ArdTankAbnormalParkAlarm ardTankAbnormalParkAlarm); + + /** + * 淇敼缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + * + * @param ardTankAbnormalParkAlarm 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + * @return 缁撴灉 + */ + public int updateArdTankAbnormalParkAlarm(ArdTankAbnormalParkAlarm ardTankAbnormalParkAlarm); + + /** + * 鍒犻櫎缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + * + * @param id 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍涓婚敭 + * @return 缁撴灉 + */ + public int deleteArdTankAbnormalParkAlarmById(String id); + + /** + * 鎵归噺鍒犻櫎缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteArdTankAbnormalParkAlarmByIds(String[] ids); + + public ArdTankAbnormalParkAlarm selectArdTankAbnormalParkAlarmByCarIdAndEndTimeIsNull(String carId); + + public int deleteArdTankAbnormalParkAlarmByCarId(String carId); + + public int deleteArdTankAbnormalParkAlarmByEndTime(); +} diff --git a/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankWallMapper.java b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankWallMapper.java index 444ee50..f6ffff2 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankWallMapper.java +++ b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankWallMapper.java @@ -66,4 +66,8 @@ public List<Map<String,String>> getArdTankWallByLockId(String id); public Long selectArdTankWallTotal(String wallName); + + public List<ArdTankWall> getDistinctArdTankWallByCarId(String carId); + + public int deleteArdTankAbnormalParkAlarmByCarId(String carId); } diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankAbnormalParkAlarmService.java b/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankAbnormalParkAlarmService.java new file mode 100644 index 0000000..b2a5403 --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankAbnormalParkAlarmService.java @@ -0,0 +1,60 @@ +package com.ruoyi.sy.service; + +import java.util.List; +import java.util.Map; + +import com.ruoyi.sy.domain.ArdTankAbnormalParkAlarm; + +/** + * 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍Service鎺ュ彛 + * + * @author ard + * @date 2024-07-08 + */ +public interface IArdTankAbnormalParkAlarmService +{ + /** + * 鏌ヨ缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + * + * @param id 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍涓婚敭 + * @return 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + */ + public ArdTankAbnormalParkAlarm selectArdTankAbnormalParkAlarmById(String id); + + /** + * 鏌ヨ缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍鍒楄〃 + * + * @param ardTankAbnormalParkAlarm 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + * @return 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍闆嗗悎 + */ + public List<ArdTankAbnormalParkAlarm> selectArdTankAbnormalParkAlarmList(ArdTankAbnormalParkAlarm ardTankAbnormalParkAlarm); + + //public int insertArdTankAbnormalParkAlarm(ArdTankAbnormalParkAlarm ardTankAbnormalParkAlarm); + public int insertArdTankAbnormalParkAlarm(Map<String,Object> gpsMap); + + /** + * 淇敼缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + * + * @param ardTankAbnormalParkAlarm 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + * @return 缁撴灉 + */ + public int updateArdTankAbnormalParkAlarm(ArdTankAbnormalParkAlarm ardTankAbnormalParkAlarm); + + /** + * 鎵归噺鍒犻櫎缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + * + * @param ids 闇�瑕佸垹闄ょ殑缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteArdTankAbnormalParkAlarmByIds(String[] ids); + + /** + * 鍒犻櫎缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍淇℃伅 + * + * @param id 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍涓婚敭 + * @return 缁撴灉 + */ + public int deleteArdTankAbnormalParkAlarmById(String id); + + public int deleteArdTankAbnormalParkAlarmByEndTime(); +} diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankAbnormalParkAlarmServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankAbnormalParkAlarmServiceImpl.java new file mode 100644 index 0000000..c30caca --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankAbnormalParkAlarmServiceImpl.java @@ -0,0 +1,219 @@ +package com.ruoyi.sy.service.impl; + +import java.awt.geom.Point2D; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + +import com.alibaba.fastjson.JSON; +import com.ruoyi.common.core.domain.entity.SysConfig; +import com.ruoyi.common.core.domain.entity.SysDept; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.utils.uuid.IdUtils; +import com.ruoyi.sy.domain.ArdSyCar; +import com.ruoyi.sy.domain.ArdTankWall; +import com.ruoyi.sy.mapper.ArdSyCarMapper; +import com.ruoyi.sy.mapper.ArdTankWallMapper; +import com.ruoyi.system.mapper.SysConfigMapper; +import com.ruoyi.system.mapper.SysDeptMapper; +import com.ruoyi.system.mapper.SysUserMapper; +import com.ruoyi.utils.gps.GeoTools; +import com.ruoyi.utils.websocket.util.WebSocketUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.sy.mapper.ArdTankAbnormalParkAlarmMapper; +import com.ruoyi.sy.domain.ArdTankAbnormalParkAlarm; +import com.ruoyi.sy.service.IArdTankAbnormalParkAlarmService; + +import javax.annotation.Resource; + +import static com.ruoyi.utils.websocket.util.WebSocketUtils.ONLINE_USER_SESSIONS; + +/** + * 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍Service涓氬姟灞傚鐞� + * + * @author ard + * @date 2024-07-08 + */ +@Service +public class ArdTankAbnormalParkAlarmServiceImpl implements IArdTankAbnormalParkAlarmService { + @Resource + private ArdTankAbnormalParkAlarmMapper ardTankAbnormalParkAlarmMapper; + + @Resource + private ArdSyCarMapper ardSyCarMapper; + + @Resource + private ArdTankWallMapper ardTankWallMapper; + + @Resource + private SysConfigMapper sysConfigMapper; + + @Resource + private SysDeptMapper sysDeptMapper; + + @Resource + private SysUserMapper sysUserMapper; + + private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + /** + * 鏌ヨ缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + * + * @param id 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍涓婚敭 + * @return 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + */ + @Override + public ArdTankAbnormalParkAlarm selectArdTankAbnormalParkAlarmById(String id) { + return ardTankAbnormalParkAlarmMapper.selectArdTankAbnormalParkAlarmById(id); + } + + /** + * 鏌ヨ缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍鍒楄〃 + * + * @param ardTankAbnormalParkAlarm 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + * @return 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + */ + @Override + public List<ArdTankAbnormalParkAlarm> selectArdTankAbnormalParkAlarmList(ArdTankAbnormalParkAlarm ardTankAbnormalParkAlarm) { + return ardTankAbnormalParkAlarmMapper.selectArdTankAbnormalParkAlarmList(ardTankAbnormalParkAlarm); + } + + + /*@Override + public int insertArdTankAbnormalParkAlarm(ArdTankAbnormalParkAlarm ardTankAbnormalParkAlarm) { + ardTankAbnormalParkAlarm.setId(IdUtils.simpleUUID()); + return ardTankAbnormalParkAlarmMapper.insertArdTankAbnormalParkAlarm(ardTankAbnormalParkAlarm); + }*/ + @Override + public int insertArdTankAbnormalParkAlarm(Map<String,Object> gpsMap) { + if(((Number)gpsMap.get("speed")).intValue() != 0){//閫熷害涓嶄负0锛屼笉鏄紓甯稿仠杞� + int result = ardTankAbnormalParkAlarmMapper.deleteArdTankAbnormalParkAlarmByCarId((String)gpsMap.get("carId")); + return result; + }else { + ArdSyCar ardSyCarResult = ardSyCarMapper.getArdSyTankCarByCarId((String)gpsMap.get("carId")); + if(ardSyCarResult == null){//娌℃湁鍒嗛厤鏉冮檺鎴栨病鏈夋寕鎺ョ數纾侀攣锛屼笉鏄綈杞� + return 0; + }else{ + Boolean alarmFlag = true;//鎶ヨ鏍囪,true涓鸿褰�,false涓哄拷鐣� + + List<ArdTankWall> ardTankWallResult = ardTankWallMapper.getDistinctArdTankWallByCarId((String)gpsMap.get("carId"));//鍘婚噸鏌ヨ杞﹁締鎸傛帴鐨勭數纾侀攣鎸傛帴鐨勭數瀛愬洿鏍� + Point2D.Double point = new Point2D.Double(Double.parseDouble(String.valueOf((Number)gpsMap.get("lng"))), Double.parseDouble(String.valueOf((Number)gpsMap.get("lat"))));//杞﹁締褰撳墠浣嶇疆 + List<Point2D.Double> pts = new ArrayList<Point2D.Double>(); + + for(ArdTankWall ardTankWall : ardTankWallResult){ + pts.clear(); + String[] wallpoiArro = ardTankWall.getWallPoi().split(","); + for (int j = 0; j < wallpoiArro.length; j = j + 3) {//鏋勫缓澶氳竟褰� + pts.add(new Point2D.Double(Double.parseDouble(wallpoiArro[j]), Double.parseDouble(wallpoiArro[j+1]))); + } + if(GeoTools.IsPtInPoly(point, pts)){//鍦ㄤ换鎰忕數瀛愬洿鏍忓唴锛屼笉鎶ヨ + int result = ardTankAbnormalParkAlarmMapper.deleteArdTankAbnormalParkAlarmByCarId((String)gpsMap.get("carId")); + alarmFlag = false; + return result; + } + } + if(alarmFlag){ + ArdTankAbnormalParkAlarm ardTankAbnormalParkAlarmResult = ardTankAbnormalParkAlarmMapper.selectArdTankAbnormalParkAlarmByCarIdAndEndTimeIsNull((String)gpsMap.get("carId")); + if(ardTankAbnormalParkAlarmResult == null){//鏈夎褰曠粨鏉熸椂闂达紝鍋氭柊澧炴搷浣� + ArdTankAbnormalParkAlarm ardTankAbnormalParkAlarm = new ArdTankAbnormalParkAlarm(); + ardTankAbnormalParkAlarm.setId(IdUtils.simpleUUID()); + ardTankAbnormalParkAlarm.setCarId((String)gpsMap.get("carId")); + ardTankAbnormalParkAlarm.setCarName((String)gpsMap.get("carName")); + ardTankAbnormalParkAlarm.setLongitude(String.valueOf((Number)gpsMap.get("lng"))); + ardTankAbnormalParkAlarm.setLatitude(String.valueOf((Number)gpsMap.get("lat"))); + ardTankAbnormalParkAlarm.setBeginTime(sdf.format(new Date())); + return ardTankAbnormalParkAlarmMapper.insertArdTankAbnormalParkAlarm(ardTankAbnormalParkAlarm); + }else{//鏈夎褰曠粨鏉熸椂闂达紝鍋氫慨鏀规搷浣� + Integer abnormalParkingInterval = 5;//榛樿鏃堕棿涓�5min + SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique("abnormalParkingInterval");//鏌ヨ鏃堕棿闂撮殧 + if(sysConfig != null){ + abnormalParkingInterval = Integer.parseInt(sysConfig.getConfigValue()); + } + Date beginDate = null; + try { + beginDate = this.sdf.parse(ardTankAbnormalParkAlarmResult.getBeginTime()); + } catch (ParseException e) { + e.printStackTrace(); + return 0; + } + Date endDate = new Date(); + if(endDate.getTime() - beginDate.getTime() >= abnormalParkingInterval * 60 * 1000){//褰撳墠鏃堕棿瓒呰繃寮�鍚椂闂磋瀹氶槇鍊� + ardTankAbnormalParkAlarmResult.setEndTime(sdf.format(endDate)); + //鏍规嵁鏉冮檺鍋氭姤璀ebsocket鎺ㄩ�� + List<SysDept> sysDeptList = sysDeptMapper.getParentsDeptListByDeptId(Long.parseLong(ardSyCarResult.getDeptId())); + List<Long> deptIdList = new ArrayList(); + for(SysDept sysDept : sysDeptList){ + deptIdList.add(sysDept.getDeptId()); + } + List<SysUser> sysUserList = sysUserMapper.selectUserByDeptIdList(deptIdList); + for(SysUser sysUser : sysUserList){ + Map<String,Object> map = new HashMap(); + map.put("carId",ardTankAbnormalParkAlarmResult.getCarId()); + map.put("carName",ardTankAbnormalParkAlarmResult.getCarName()); + map.put("alarmTime",ardTankAbnormalParkAlarmResult.getEndTime()); + map.put("longitude",ardTankAbnormalParkAlarmResult.getLongitude()); + map.put("latitude",ardTankAbnormalParkAlarmResult.getLatitude()); + map.put("alarmInfo","寮傚父鍋滆溅"); + Map<String,Map<String,Object>> data = new HashMap(); + data.put("40001",map); + for (String key : ONLINE_USER_SESSIONS.keySet()) { + if(key.startsWith(sysUser.getUserId() + "_")){ + WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(key), JSON.toJSONString(data)); + } + } + } + return ardTankAbnormalParkAlarmMapper.updateArdTankAbnormalParkAlarm(ardTankAbnormalParkAlarmResult); + }else{ + return 0; + } + } + }else{ + return 0; + } + } + } + } + + /** + * 淇敼缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + * + * @param ardTankAbnormalParkAlarm 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + * @return 缁撴灉 + */ + @Override + public int updateArdTankAbnormalParkAlarm(ArdTankAbnormalParkAlarm ardTankAbnormalParkAlarm) { + return ardTankAbnormalParkAlarmMapper.updateArdTankAbnormalParkAlarm(ardTankAbnormalParkAlarm); + } + + /** + * 鎵归噺鍒犻櫎缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍 + * + * @param ids 闇�瑕佸垹闄ょ殑缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍涓婚敭 + * @return 缁撴灉 + */ + @Override + public int deleteArdTankAbnormalParkAlarmByIds(String[] ids) { + return ardTankAbnormalParkAlarmMapper.deleteArdTankAbnormalParkAlarmByIds(ids); + } + + /** + * 鍒犻櫎缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍淇℃伅 + * + * @param id 缃愯溅寮傚父鍋滆溅鎶ヨ璁板綍涓婚敭 + * @return 缁撴灉 + */ + @Override + public int deleteArdTankAbnormalParkAlarmById(String id) { + return ardTankAbnormalParkAlarmMapper.deleteArdTankAbnormalParkAlarmById(id); + } + + @Override + public int deleteArdTankAbnormalParkAlarmByEndTime() { + int result = ardTankAbnormalParkAlarmMapper.deleteArdTankAbnormalParkAlarmByEndTime(); + return result; + } +} diff --git a/ard-work/src/main/resources/mapper/sy/ArdSyCarMapper.xml b/ard-work/src/main/resources/mapper/sy/ArdSyCarMapper.xml index b5e728a..b1e3574 100644 --- a/ard-work/src/main/resources/mapper/sy/ArdSyCarMapper.xml +++ b/ard-work/src/main/resources/mapper/sy/ArdSyCarMapper.xml @@ -121,4 +121,9 @@ #{deptId} </foreach> </select> + <select id="getArdSyTankCarByCarId" parameterType="java.lang.String" resultMap="ArdSyCarResult"> + select distinct "asc".* from ard_sy_car "asc" + inner join ard_tank_lock atl on "asc".car_id = atl.car_id + where "asc".car_id = #{carId} + </select> </mapper> \ No newline at end of file diff --git a/ard-work/src/main/resources/mapper/sy/ArdTankAbnormalParkAlarmMapper.xml b/ard-work/src/main/resources/mapper/sy/ArdTankAbnormalParkAlarmMapper.xml new file mode 100644 index 0000000..f8fa69f --- /dev/null +++ b/ard-work/src/main/resources/mapper/sy/ArdTankAbnormalParkAlarmMapper.xml @@ -0,0 +1,97 @@ +<?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.sy.mapper.ArdTankAbnormalParkAlarmMapper"> + + <resultMap type="ArdTankAbnormalParkAlarm" id="ArdTankAbnormalParkAlarmResult"> + <result property="id" column="id" /> + <result property="carId" column="car_id" /> + <result property="carName" column="car_name" /> + <result property="longitude" column="longitude" /> + <result property="latitude" column="latitude" /> + <result property="beginTime" column="begin_time" /> + <result property="endTime" column="end_time" /> + </resultMap> + + <sql id="selectArdTankAbnormalParkAlarmVo"> + select id, car_id, car_name, longitude, latitude, begin_time, end_time from ard_tank_abnormal_park_alarm + </sql> + + <select id="selectArdTankAbnormalParkAlarmList" parameterType="ArdTankAbnormalParkAlarm" resultMap="ArdTankAbnormalParkAlarmResult"> + <include refid="selectArdTankAbnormalParkAlarmVo"/> + <where> + <if test="carId != null and carId != ''"> and car_id = #{carId}</if> + <if test="carName != null and carName != ''"> and car_name like '%'||#{carName}||'%'</if> + <if test="longitude != null and longitude != ''"> and longitude = #{longitude}</if> + <if test="latitude != null and latitude != ''"> and latitude = #{latitude}</if> + <if test="beginTime != null and beginTime != ''"> and begin_time = #{beginTime}</if> + <if test="endTime != null and endTime != ''"> and end_time = #{endTime}</if> + </where> + </select> + + <select id="selectArdTankAbnormalParkAlarmById" parameterType="String" resultMap="ArdTankAbnormalParkAlarmResult"> + <include refid="selectArdTankAbnormalParkAlarmVo"/> + where id = #{id} + </select> + + <insert id="insertArdTankAbnormalParkAlarm" parameterType="ArdTankAbnormalParkAlarm"> + insert into ard_tank_abnormal_park_alarm + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null">id,</if> + <if test="carId != null">car_id,</if> + <if test="carName != null">car_name,</if> + <if test="longitude != null">longitude,</if> + <if test="latitude != null">latitude,</if> + <if test="beginTime != null">begin_time,</if> + <if test="endTime != null">end_time,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null">#{id},</if> + <if test="carId != null">#{carId},</if> + <if test="carName != null">#{carName},</if> + <if test="longitude != null">#{longitude},</if> + <if test="latitude != null">#{latitude},</if> + <if test="beginTime != null">#{beginTime},</if> + <if test="endTime != null">#{endTime},</if> + </trim> + </insert> + + <update id="updateArdTankAbnormalParkAlarm" parameterType="ArdTankAbnormalParkAlarm"> + update ard_tank_abnormal_park_alarm + <trim prefix="SET" suffixOverrides=","> + <if test="carId != null">car_id = #{carId},</if> + <if test="carName != null">car_name = #{carName},</if> + <if test="longitude != null">longitude = #{longitude},</if> + <if test="latitude != null">latitude = #{latitude},</if> + <if test="beginTime != null">begin_time = #{beginTime},</if> + <if test="endTime != null">end_time = #{endTime},</if> + </trim> + where id = #{id} + </update> + + <delete id="deleteArdTankAbnormalParkAlarmById" parameterType="String"> + delete from ard_tank_abnormal_park_alarm where id = #{id} + </delete> + + <delete id="deleteArdTankAbnormalParkAlarmByIds" parameterType="String"> + delete from ard_tank_abnormal_park_alarm where id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </delete> + + <select id="selectArdTankAbnormalParkAlarmByCarIdAndEndTimeIsNull" parameterType="java.lang.String" resultMap="ArdTankAbnormalParkAlarmResult"> + select * from ard_tank_abnormal_park_alarm atapa + where atapa.car_id = #{carId} and atapa.end_time is null + </select> + + <delete id="deleteArdTankAbnormalParkAlarmByCarId" parameterType="java.lang.String"> + delete from ard_tank_abnormal_park_alarm atapa + where atapa.car_id = #{carId} and atapa.end_time is null + </delete> + + <delete id="deleteArdTankAbnormalParkAlarmByEndTime" > + delete from ard_tank_abnormal_park_alarm atapa where atapa.end_time is null + </delete> +</mapper> \ No newline at end of file diff --git a/ard-work/src/main/resources/mapper/sy/ArdTankWallMapper.xml b/ard-work/src/main/resources/mapper/sy/ArdTankWallMapper.xml index 73dbb28..94fe588 100644 --- a/ard-work/src/main/resources/mapper/sy/ArdTankWallMapper.xml +++ b/ard-work/src/main/resources/mapper/sy/ArdTankWallMapper.xml @@ -81,4 +81,11 @@ <if test="wallName != null and wallName != ''"> and wall_name like '%'||#{wallName}||'%'</if> </where> </select> + + <select id="getDistinctArdTankWallByCarId" resultMap="ArdTankWallResult" parameterType="java.lang.String"> + select distinct atw.* from ard_tank_lock atl + inner join ard_tank_wall_lock atwl on atl.id = atwl.lock_id + inner join ard_tank_wall atw on atwl.wall_id = atw.id + where atl.car_id = #{carId} + </select> </mapper> \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java index f132a51..234e2eb 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java @@ -148,4 +148,6 @@ List<SysUser> getOwnAndChildrenOnlineSoilderList(@Param("deptIdList")List<Long> deptIdList); List<SysUser> getOwnAndChildrenSoilderListAll(@Param("deptIdList")List<Long> deptIdList); + + List<SysUser> selectUserByDeptIdList(@Param("deptIdList")List<Long> deptIdList); } diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index a014700..913ec65 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -371,4 +371,12 @@ and su.status = '0' and su.del_flag = '0' order by su.dept_id asc </select> + + <select id="selectUserByDeptIdList" resultMap="SysUserOnlyResult"> + select * from sys_user su where su.dept_id in + <foreach collection="deptIdList" item="deptId" open="(" close=")" separator=","> + #{deptId} + </foreach> + and su.status = '0' + </select> </mapper> \ No newline at end of file -- Gitblit v1.9.3