ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankLoadLog.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,93 @@ 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_load_log * * @author ard * @date 2024-07-23 */ public class ArdTankLoadLog extends BaseEntity { private static final long serialVersionUID = 1L; /** ä¸»é® */ private String id; /** 车è¾ä¸»é® */ @Excel(name = "车è¾ä¸»é®") private String carId; /** å´æ ä¸»é® */ @Excel(name = "å´æ 主é®") private String wallId; /** å¼å§æ¶é´ */ @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 setWallId(String wallId) { this.wallId = wallId; } public String getWallId() { return wallId; } 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("wallId", getWallId()) .append("beginTime", getBeginTime()) .append("endTime", getEndTime()) .toString(); } } ard-work/src/main/java/com/ruoyi/sy/gps31/PositionContainer.java
@@ -14,6 +14,8 @@ private static Map<String,Map<String,Object>> carPositionMap = new HashMap();//ä¾è½¦è¾åæ¾å®æ½è½¦è¾ä½ç½®:carIdï¼è½¦è¾ä½ç½® private static Map<String,Thread> tankCarParkingAlarmTHread = new HashMap();//ä¾è½¦è¾åæ¾å¼å¸¸å车线ç¨:carIdï¼å¼å¸¸åè½¦çº¿ç¨ public static Map<String, List<ArdSyCarLock>> getTopicSubscribe() { return topicSubscribe; } @@ -48,4 +50,12 @@ public static void setCarPositionMap(Map<String, Map<String, Object>> carPositionMap) { PositionContainer.carPositionMap = carPositionMap; } public static Map<String, Thread> getTankCarParkingAlarmTHread() { return tankCarParkingAlarmTHread; } public static void setTankCarParkingAlarmTHread(Map<String, Thread> tankCarParkingAlarmTHread) { PositionContainer.tankCarParkingAlarmTHread = tankCarParkingAlarmTHread; } } ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java
@@ -376,14 +376,17 @@ }*/ if(PositionContainer.getTankCarParkingAlarmTHread().get(carId) == null){ Thread tankCarParkingAlarmThread = new Thread(){//å建线ç¨å¤æç½è½¦å¼å¸¸å车æ¥è¦ @Override public void run() { ((ArdTankAbnormalParkAlarmServiceImpl)SpringUtils.getBean("ardTankAbnormalParkAlarmServiceImpl")).insertArdTankAbnormalParkAlarm(gpsMap); } }; PositionContainer.getTankCarParkingAlarmTHread().put(carId,tankCarParkingAlarmThread); tankCarParkingAlarmThread.start(); } Thread tankCarParkingAlarmThread = new Thread(){//å建线ç¨å¤æç½è½¦å¼å¸¸å车æ¥è¦ @Override public void run() { ((ArdTankAbnormalParkAlarmServiceImpl)SpringUtils.getBean("ardTankAbnormalParkAlarmServiceImpl")).insertArdTankAbnormalParkAlarm(gpsMap); } }; //tankCarParkingAlarmThread.start(); /*Thread autoProcessThread = new Thread(){//èªå¨ææ§çº¿ç¨ @Override ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankAbnormalParkAlarmMapper.java
@@ -59,9 +59,7 @@ */ public int deleteArdTankAbnormalParkAlarmByIds(String[] ids); public ArdTankAbnormalParkAlarm selectArdTankAbnormalParkAlarmByCarIdAndEndTimeIsNull(String carId); public List<ArdTankAbnormalParkAlarm> selectArdTankAbnormalParkAlarmByCarIdNoEndTime(String carId); public int deleteArdTankAbnormalParkAlarmByCarId(String carId); public int deleteArdTankAbnormalParkAlarmByEndTime(); public int deleteArdTankAbnormalParkAlarmByCarIdAndEndTimeIsNull(String carId); } ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankLoadLogMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,70 @@ package com.ruoyi.sy.mapper; import java.util.List; import com.ruoyi.sy.domain.ArdTankLoadLog; import org.apache.ibatis.annotations.Param; /** * ç½è½¦è¿å ¥å¸æ²¹ç¹è®°å½Mapperæ¥å£ * * @author ard * @date 2024-07-23 */ public interface ArdTankLoadLogMapper { /** * æ¥è¯¢ç½è½¦è¿å ¥å¸æ²¹ç¹è®°å½ * * @param id ç½è½¦è¿å ¥å¸æ²¹ç¹è®°å½ä¸»é® * @return ç½è½¦è¿å ¥å¸æ²¹ç¹è®°å½ */ public ArdTankLoadLog selectArdTankLoadLogById(String id); /** * æ¥è¯¢ç½è½¦è¿å ¥å¸æ²¹ç¹è®°å½å表 * * @param ardTankLoadLog ç½è½¦è¿å ¥å¸æ²¹ç¹è®°å½ * @return ç½è½¦è¿å ¥å¸æ²¹ç¹è®°å½éå */ public List<ArdTankLoadLog> selectArdTankLoadLogList(ArdTankLoadLog ardTankLoadLog); /** * æ°å¢ç½è½¦è¿å ¥å¸æ²¹ç¹è®°å½ * * @param ardTankLoadLog ç½è½¦è¿å ¥å¸æ²¹ç¹è®°å½ * @return ç»æ */ public int insertArdTankLoadLog(ArdTankLoadLog ardTankLoadLog); /** * ä¿®æ¹ç½è½¦è¿å ¥å¸æ²¹ç¹è®°å½ * * @param ardTankLoadLog ç½è½¦è¿å ¥å¸æ²¹ç¹è®°å½ * @return ç»æ */ public int updateArdTankLoadLog(ArdTankLoadLog ardTankLoadLog); /** * å é¤ç½è½¦è¿å ¥å¸æ²¹ç¹è®°å½ * * @param id ç½è½¦è¿å ¥å¸æ²¹ç¹è®°å½ä¸»é® * @return ç»æ */ public int deleteArdTankLoadLogById(String id); /** * æ¹éå é¤ç½è½¦è¿å ¥å¸æ²¹ç¹è®°å½ * * @param ids éè¦å é¤çæ°æ®ä¸»é®éå * @return ç»æ */ public int deleteArdTankLoadLogByIds(String[] ids); public ArdTankLoadLog selectArdTankLoadLogByCarIdAndWallIdAndEndTimeIsNull(@Param("carId") String carId,@Param("wallId") String wallId); public List<ArdTankLoadLog> selectArdTankLoadLogByCarIdAndEndTimeIsNull(String carId); public int deleteArdTankLoadLogByCarId(String carId); public List<ArdTankLoadLog> selectArdTankLoadLogByCarIdAndEndTimeIsNotNull(String carId); } ard-work/src/main/java/com/ruoyi/sy/service/IArdTankAbnormalParkAlarmService.java
@@ -56,5 +56,5 @@ */ public int deleteArdTankAbnormalParkAlarmById(String id); public int deleteArdTankAbnormalParkAlarmByEndTime(); //public int deleteArdTankAbnormalParkAlarmByEndTime(); } ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankAbnormalParkAlarmServiceImpl.java
@@ -4,6 +4,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; import com.alibaba.fastjson.JSON; import com.ruoyi.common.core.domain.entity.SysConfig; @@ -11,8 +12,11 @@ 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.ArdTankLoadLog; import com.ruoyi.sy.domain.ArdTankWall; import com.ruoyi.sy.gps31.PositionContainer; import com.ruoyi.sy.mapper.ArdSyCarMapper; import com.ruoyi.sy.mapper.ArdTankLoadLogMapper; import com.ruoyi.sy.mapper.ArdTankWallMapper; import com.ruoyi.system.mapper.SysConfigMapper; import com.ruoyi.system.mapper.SysDeptMapper; @@ -58,6 +62,9 @@ @Resource private SysUserMapper sysUserMapper; @Resource private ArdTankLoadLogMapper ardTankLoadLogMapper; private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); /** @@ -88,7 +95,7 @@ ardTankAbnormalParkAlarm.setId(IdUtils.simpleUUID()); return ardTankAbnormalParkAlarmMapper.insertArdTankAbnormalParkAlarm(ardTankAbnormalParkAlarm); }*/ @Override /*@Override public int insertArdTankAbnormalParkAlarm(Map<String,Object> gpsMap) { if(((Number)gpsMap.get("speed")).intValue() != 0){//é度ä¸ä¸º0ï¼ä¸æ¯å¼å¸¸å车 int result = ardTankAbnormalParkAlarmMapper.deleteArdTankAbnormalParkAlarmByCarId((String)gpsMap.get("carId")); @@ -176,6 +183,163 @@ } } } }*/ @Override public int insertArdTankAbnormalParkAlarm(Map<String,Object> gpsMap) { ArdSyCar ardSyCarResult = ardSyCarMapper.getArdSyTankCarByCarId((String)gpsMap.get("carId")); if(ardSyCarResult == null){//没æåé æéææ²¡æææ¥çµç£éï¼ä¸æ¯ç½è½¦ PositionContainer.getTankCarParkingAlarmTHread().remove((String)gpsMap.get("carId")); return 0; } List<ArdTankWall> ardTankWallResult = ardTankWallMapper.getDistinctArdTankWallByCarId((String)gpsMap.get("carId"));//å»éæ¥è¯¢è½¦è¾ææ¥ççµç£éææ¥ççµåå´æ if(ardTankWallResult.isEmpty()){//æ²¡æææ¥çµåå´æ ï¼ä¸æ¶åæ¥è¦ PositionContainer.getTankCarParkingAlarmTHread().remove((String)gpsMap.get("carId")); return 0; } if(((Number)gpsMap.get("speed")).intValue() != 0){//é度ä¸ä¸º0ï¼ä¸æ¯å¼å¸¸å车 /*int result = ardTankAbnormalParkAlarmMapper.deleteArdTankAbnormalParkAlarmByCarIdAndLoadEndTimeIsNull((String)gpsMap.get("carId")); PositionContainer.getTankCarParkingAlarmTHread().remove((String)gpsMap.get("carId")); return result;*/ //æ¥çæ¯å¦è¿å ¥è¿è£ æ²¹ç¹ List<ArdTankLoadLog> ardTankLoadLogResult = ardTankLoadLogMapper.selectArdTankLoadLogByCarIdAndEndTimeIsNull((String)gpsMap.get("carId")); if(!ardTankLoadLogResult.isEmpty()){ Integer loadOilInterval = 5;//é»è®¤æ¶é´ä¸º5min SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique("loadOilInterval");//æ¥è¯¢æ¶é´é´é if(sysConfig != null){ loadOilInterval = Integer.parseInt(sysConfig.getConfigValue()); } Date endLoadDate = new Date(); for(ArdTankLoadLog ardTankLoadLog : ardTankLoadLogResult){ Date beginLoadDate = null; try { beginLoadDate = this.sdf.parse(ardTankLoadLog.getBeginTime()); } catch (ParseException e) { e.printStackTrace(); PositionContainer.getTankCarParkingAlarmTHread().remove((String)gpsMap.get("carId")); return 0; } if(endLoadDate.getTime() - beginLoadDate.getTime() >= loadOilInterval * 60 * 1000) {//å½åæ¶é´è¶ è¿è£ æ²¹æ¶é´è®¾å®éå¼ ardTankLoadLog.setEndTime(this.sdf.format(endLoadDate)); ardTankLoadLogMapper.updateArdTankLoadLog(ardTankLoadLog); }else{ ardTankLoadLogMapper.deleteArdTankLoadLogById(ardTankLoadLog.getId()); } } } int result = ardTankAbnormalParkAlarmMapper.deleteArdTankAbnormalParkAlarmByCarIdAndEndTimeIsNull((String)gpsMap.get("carId")); PositionContainer.getTankCarParkingAlarmTHread().remove((String)gpsMap.get("carId")); return result; }else {//é度为0ï¼èèå¼å¸¸å车 //è·åè£ æ²¹ç¹ List<ArdTankWall> loadOilArdTankWallResult = ardTankWallResult.stream().filter(ardTankWall -> ardTankWall.getWallType().equals("è£ æ²¹ç¹")).collect(Collectors.toList()); //è·å叿²¹ç¹åè½¦åº List<ArdTankWall> unloadOilOrGarageArdTankWallResult = ardTankWallResult.stream().filter(ardTankWall -> !ardTankWall.getWallType().equals("è£ æ²¹ç¹")).collect(Collectors.toList()); //车è¾å½åä½ç½® 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 : loadOilArdTankWallResult){//å¨ä»»æè£ æ²¹ç¹çµåå´æ å ï¼è®¡å ¥è£ æ²¹è®°å½ 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)){ ArdTankLoadLog ardTankLoadLogResult = ardTankLoadLogMapper.selectArdTankLoadLogByCarIdAndWallIdAndEndTimeIsNull((String)gpsMap.get("carId"),ardTankWall.getId()); if(ardTankLoadLogResult == null){ ArdTankLoadLog ardTankLoadLog = new ArdTankLoadLog(); ardTankLoadLog.setId(IdUtils.simpleUUID()); ardTankLoadLog.setCarId((String)gpsMap.get("carId")); ardTankLoadLog.setWallId(ardTankWall.getId()); ardTankLoadLog.setBeginTime(sdf.format(new Date())); PositionContainer.getTankCarParkingAlarmTHread().remove((String)gpsMap.get("carId")); return ardTankLoadLogMapper.insertArdTankLoadLog(ardTankLoadLog); } } } for(ArdTankWall ardTankWall : unloadOilOrGarageArdTankWallResult){//å¨ä»»æå¸æ²¹ç¹æè½¦åºçµåå´æ å 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)){ PositionContainer.getTankCarParkingAlarmTHread().remove((String)gpsMap.get("carId")); return ardTankLoadLogMapper.deleteArdTankLoadLogByCarId((String)gpsMap.get("carId"));//è¿å ¥å¸æ²¹ç¹æè½¦åºå°±å é¤è£ æ²¹è®°å½ } } //æ¥è¦é»è¾ List<ArdTankLoadLog> ardTankLoadLogResult = ardTankLoadLogMapper.selectArdTankLoadLogByCarIdAndEndTimeIsNotNull((String)gpsMap.get("carId")); if(!ardTankLoadLogResult.isEmpty()){//ä¸ä¸ºç©ºï¼åå¨ä»»æè£ æ²¹ç¹é¿æåçè¿ List<ArdTankAbnormalParkAlarm> ardTankAbnormalParkAlarmResultList = ardTankAbnormalParkAlarmMapper.selectArdTankAbnormalParkAlarmByCarIdNoEndTime((String)gpsMap.get("carId")); if(!ardTankAbnormalParkAlarmResultList.isEmpty()){//ä¸ä¸ºç©ºï¼å·²æè®°å½ for(ArdTankAbnormalParkAlarm ardTankAbnormalParkAlarm : ardTankAbnormalParkAlarmResultList){ 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(ardTankAbnormalParkAlarm.getBeginTime()); } catch (ParseException e) { e.printStackTrace(); PositionContainer.getTankCarParkingAlarmTHread().remove((String)gpsMap.get("carId")); return 0; } Date endDate = new Date(); if(endDate.getTime() - beginDate.getTime() >= abnormalParkingInterval * 60 * 1000){//å½åæ¶é´è¶ è¿å¼å¯æ¶é´è®¾å®éå¼ ardTankAbnormalParkAlarm.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",ardTankAbnormalParkAlarm.getCarId()); map.put("carName",ardTankAbnormalParkAlarm.getCarName()); map.put("alarmTime",ardTankAbnormalParkAlarm.getEndTime()); map.put("longitude",ardTankAbnormalParkAlarm.getLongitude()); map.put("latitude",ardTankAbnormalParkAlarm.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)); } } } PositionContainer.getTankCarParkingAlarmTHread().remove((String)gpsMap.get("carId")); return ardTankAbnormalParkAlarmMapper.updateArdTankAbnormalParkAlarm(ardTankAbnormalParkAlarm); }else{ PositionContainer.getTankCarParkingAlarmTHread().remove((String)gpsMap.get("carId")); return 0; } } }else{ 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())); PositionContainer.getTankCarParkingAlarmTHread().remove((String)gpsMap.get("carId")); return ardTankAbnormalParkAlarmMapper.insertArdTankAbnormalParkAlarm(ardTankAbnormalParkAlarm); } } PositionContainer.getTankCarParkingAlarmTHread().remove((String)gpsMap.get("carId")); return 0; } } /** @@ -211,9 +375,9 @@ return ardTankAbnormalParkAlarmMapper.deleteArdTankAbnormalParkAlarmById(id); } @Override /*@Override public int deleteArdTankAbnormalParkAlarmByEndTime() { int result = ardTankAbnormalParkAlarmMapper.deleteArdTankAbnormalParkAlarmByEndTime(); return result; } }*/ } ard-work/src/main/resources/mapper/sy/ArdTankAbnormalParkAlarmMapper.xml
@@ -81,17 +81,13 @@ </foreach> </delete> <select id="selectArdTankAbnormalParkAlarmByCarIdAndEndTimeIsNull" parameterType="java.lang.String" resultMap="ArdTankAbnormalParkAlarmResult"> <select id="selectArdTankAbnormalParkAlarmByCarIdNoEndTime" 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 id="deleteArdTankAbnormalParkAlarmByCarIdAndEndTimeIsNull" 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/ArdTankLoadLogMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,90 @@ <?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.ArdTankLoadLogMapper"> <resultMap type="ArdTankLoadLog" id="ArdTankLoadLogResult"> <result property="id" column="id" /> <result property="carId" column="car_id" /> <result property="wallId" column="wall_id" /> <result property="beginTime" column="begin_time" /> <result property="endTime" column="end_time" /> </resultMap> <sql id="selectArdTankLoadLogVo"> select id, car_id, wall_id, begin_time, end_time from ard_tank_load_log </sql> <select id="selectArdTankLoadLogList" parameterType="ArdTankLoadLog" resultMap="ArdTankLoadLogResult"> <include refid="selectArdTankLoadLogVo"/> <where> <if test="carId != null and carId != ''"> and car_id = #{carId}</if> <if test="wallId != null and wallId != ''"> and wall_id = #{wallId}</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="selectArdTankLoadLogById" parameterType="String" resultMap="ArdTankLoadLogResult"> <include refid="selectArdTankLoadLogVo"/> where id = #{id} </select> <insert id="insertArdTankLoadLog" parameterType="ArdTankLoadLog"> insert into ard_tank_load_log <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id != null">id,</if> <if test="carId != null">car_id,</if> <if test="wallId != null">wall_id,</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="wallId != null">#{wallId},</if> <if test="beginTime != null">#{beginTime},</if> <if test="endTime != null">#{endTime},</if> </trim> </insert> <update id="updateArdTankLoadLog" parameterType="ArdTankLoadLog"> update ard_tank_load_log <trim prefix="SET" suffixOverrides=","> <if test="carId != null">car_id = #{carId},</if> <if test="wallId != null">wall_id = #{wallId},</if> <if test="beginTime != null">begin_time = #{beginTime},</if> <if test="endTime != null">end_time = #{endTime},</if> </trim> where id = #{id} </update> <delete id="deleteArdTankLoadLogById" parameterType="String"> delete from ard_tank_load_log where id = #{id} </delete> <delete id="deleteArdTankLoadLogByIds" parameterType="String"> delete from ard_tank_load_log where id in <foreach item="id" collection="array" open="(" separator="," close=")"> #{id} </foreach> </delete> <select id="selectArdTankLoadLogByCarIdAndWallIdAndEndTimeIsNull" parameterType="java.lang.String" resultMap="ArdTankLoadLogResult"> select * from ard_tank_load_log atll where atll.car_id = #{carId} and atll.wall_id = #{wallId} and atll.end_time is null </select> <select id="selectArdTankLoadLogByCarIdAndEndTimeIsNull" parameterType="java.lang.String" resultMap="ArdTankLoadLogResult"> select * from ard_tank_load_log atll where atll.car_id = #{carId} and atll.end_time is null </select> <delete id="deleteArdTankLoadLogByCarId" parameterType="java.lang.String"> delete from ard_tank_load_log atll where atll.car_id = #{carId} </delete> <select id="selectArdTankLoadLogByCarIdAndEndTimeIsNotNull" parameterType="java.lang.String" resultMap="ArdTankLoadLogResult"> select * from ard_tank_load_log atll where atll.car_id = #{carId} and atll.end_time is not null </select> </mapper> ard-work/src/main/resources/mapper/sy/ArdTankWallMapper.xml
@@ -98,4 +98,11 @@ inner join ard_tank_wall atw on atwl.wall_id = atw.id where atwl.lock_id = #{lockId} and atwl.process_type != '0' </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>