zhangnaisong
2024-07-08 b4b41579891db69a4240d422c8f4dae68cc267aa
罐车异常停车报警提交
已添加5个文件
已修改8个文件
607 ■■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankAbnormalParkAlarm.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/mapper/ArdSyCarMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankAbnormalParkAlarmMapper.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankWallMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/service/IArdTankAbnormalParkAlarmService.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankAbnormalParkAlarmServiceImpl.java 219 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/sy/ArdSyCarMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/sy/ArdTankAbnormalParkAlarmMapper.xml 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/sy/ArdTankWallMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();
        //删除结束时间为null的记录
        int result = ardTankAbnormalParkAlarmService.deleteArdTankAbnormalParkAlarmByEndTime();
    }
    /**
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();
    }
}
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(",");
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);
}
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();
}
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);
}
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();
}
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));
                            //根据权限做报警websocket推送
                            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;
    }
}
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>
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>
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>
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);
}
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>