ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java
@@ -59,6 +59,9 @@ @Autowired private IArdTankLockPasswordService ardTankLockPasswordService; @Autowired private IArdTankWallTemporaryService ardTankWallTemporaryService; /** * æ¥è¯¢çµç£éå表 */ @@ -382,4 +385,36 @@ dataTable.setMsg("æ¥è¯¢æå"); return dataTable; } @ApiOperation("æ°å¢ä¸´æ¶çµåå´æ ") @PreAuthorize("@ss.hasPermi('sy:lock:insertArdTankWallTemporary')") @PostMapping("/insertArdTankWallTemporary") public AjaxResult insertArdTankWallTemporary(@RequestBody Map<String,Object> para) { String userId = SecurityUtils.getUserId(); String userName = SecurityUtils.getUsername(); return toAjax(ardTankWallTemporaryService.insertArdTankWallTemporary(userId,userName,para)); } @ApiOperation("æ´æ¹ä¸´æ¶çµåå´æ ") @PreAuthorize("@ss.hasPermi('sy:lock:updateArdTankWallTemporary')") @PostMapping("/updateArdTankWallTemporary") public AjaxResult updateArdTankWallTemporary(@RequestBody Map<String,Object> para) { String userId = SecurityUtils.getUserId(); String userName = SecurityUtils.getUsername(); return toAjax(ardTankWallTemporaryService.updateArdTankWallTemporary(userId,userName,para)); } @ApiOperation("æ ¹æ®ä¸ä¸ä¸»é®æ¥è¯¢ä¸´æ¶çµåå´æ ") @PreAuthorize("@ss.hasPermi('sy:lock:getArdTankWallTemporaryByCarId')") @PostMapping("/getArdTankWallTemporaryByCarId") public TableDataInfo getArdTankWallTemporaryByCarId(@RequestBody Map<String,Object> para) { Map<String,Object> result = ardTankWallTemporaryService.getArdTankWallTemporaryByCarId(para); TableDataInfo dataTable = new TableDataInfo(); dataTable.setRows((List<Map<String,Object>>) result.get("list")); dataTable.setTotal((Long) result.get("total")); dataTable.setCode(200); dataTable.setMsg("æ¥è¯¢æå"); return dataTable; } } ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankWallTemporary.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,213 @@ 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_wall_temporary * * @author ard * @date 2024-08-01 */ public class ArdTankWallTemporary extends BaseEntity { private static final long serialVersionUID = 1L; /** ä¸»é® */ private String id; /** å´æ åç§° */ @Excel(name = "å´æ åç§°") private String wallName; /** ç»åº¦ */ @Excel(name = "ç»åº¦") private Double longitude; /** 纬度 */ @Excel(name = "纬度") private Double latitude; /** è·ç¦» */ @Excel(name = "è·ç¦»") private Integer distance; /** æ¶é¿ */ @Excel(name = "æ¶é¿") private String interval; /** æä½æ¶é´ */ @Excel(name = "æä½æ¶é´") private String processTime; /** 1为çæï¼0为失æï¼-1ä¸ºå°æ */ @Excel(name = "1为çæï¼0为失æï¼-1ä¸ºå°æ") private String processMark; /** ç¨æ·ä¸»é® */ @Excel(name = "ç¨æ·ä¸»é®") private String userId; /** ç¨æ·åç§° */ @Excel(name = "ç¨æ·åç§°") private String userName; private String processInfo; private String cancelTime; private String cancelUserName; private String cancelUserId; private Long mark; public void setId(String id) { this.id = id; } public String getId() { return id; } public void setWallName(String wallName) { this.wallName = wallName; } public String getWallName() { return wallName; } 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 setDistance(Integer distance) { this.distance = distance; } public Integer getDistance() { return distance; } public void setInterval(String interval) { this.interval = interval; } public String getInterval() { return interval; } public void setProcessTime(String processTime) { this.processTime = processTime; } public String getProcessTime() { return processTime; } public void setProcessMark(String processMark) { this.processMark = processMark; } public String getProcessMark() { return processMark; } public void setUserId(String userId) { this.userId = userId; } public String getUserId() { return userId; } public void setUserName(String userName) { this.userName = userName; } public String getUserName() { return userName; } public String getProcessInfo() { return processInfo; } public void setProcessInfo(String processInfo) { this.processInfo = processInfo; } public String getCancelTime() { return cancelTime; } public void setCancelTime(String cancelTime) { this.cancelTime = cancelTime; } public Long getMark() { return mark; } public void setMark(Long mark) { this.mark = mark; } public String getCancelUserName() { return cancelUserName; } public void setCancelUserName(String cancelUserName) { this.cancelUserName = cancelUserName; } public String getCancelUserId() { return cancelUserId; } public void setCancelUserId(String cancelUserId) { this.cancelUserId = cancelUserId; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) .append("wallName", getWallName()) .append("longitude", getLongitude()) .append("latitude", getLatitude()) .append("distance", getDistance()) .append("interval", getInterval()) .append("processTime", getProcessTime()) .append("processMark", getProcessMark()) .append("userId", getUserId()) .append("userName", getUserName()) .toString(); } } ard-work/src/main/java/com/ruoyi/sy/gps31/PositionContainer.java
@@ -21,6 +21,8 @@ private static Map<String, Map<String, Map<String,Thread>>> carLockProcessThreadMap = new HashMap();//ä¾è½¦è¾ï¼çµç£éï¼æä½ç±»ååæ¾çº¿ç¨;lockState:éç¶æ,lockTime:éæ ¡æ¶,lockPassword:éå¯ç (å æ¬è¯»å),lockRestart:éå¤ä½,lockProcess:éæä½ private static Map<String,Thread> carWallThreadMap = new HashMap();////ä¾è½¦è¾åæ¾ä¸´æ¶çµåå´æ çº¿ç¨ public static Map<String, List<ArdSyCarLock>> getTopicSubscribe() { return topicSubscribe; } @@ -79,4 +81,12 @@ public static synchronized void setCarLockProcessThreadMap(Map<String, Map<String, Map<String, Thread>>> carLockProcessThreadMap) { PositionContainer.carLockProcessThreadMap = carLockProcessThreadMap; } public static synchronized Map<String, Thread> getCarWallThreadMap() { return carWallThreadMap; } public static synchronized void setCarWallThreadMap(Map<String, Thread> carWallThreadMap) { PositionContainer.carWallThreadMap = carWallThreadMap; } } ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankWallLockTemporaryMapper.java
@@ -2,6 +2,7 @@ import java.util.List; import com.ruoyi.sy.domain.ArdTankWallLockTemporary; import org.apache.ibatis.annotations.Param; /** * 临æ¶çµåå´æ çµç£éMapperæ¥å£ @@ -60,4 +61,6 @@ public int deleteArdTankWallLockTemporaryByIds(String[] ids); public int deleteArdTankWallLockTemporaryByLockId(String lockId); public int insertArdTankWallLockTemporaryList(@Param("ardTankWallLockTemporaryList") List<ArdTankWallLockTemporary> ardTankWallLockTemporaryList); } ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankWallTemporaryMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,65 @@ package com.ruoyi.sy.mapper; import java.util.List; import com.ruoyi.sy.domain.ArdTankWallTemporary; /** * çµç£é临æ¶çµåå´æ Mapperæ¥å£ * * @author ard * @date 2024-08-01 */ public interface ArdTankWallTemporaryMapper { /** * æ¥è¯¢çµç£é临æ¶çµåå´æ * * @param id çµç£é临æ¶çµåå´æ ä¸»é® * @return çµç£é临æ¶çµåå´æ */ public ArdTankWallTemporary selectArdTankWallTemporaryById(String id); /** * æ¥è¯¢çµç£é临æ¶çµåå´æ å表 * * @param ardTankWallTemporary çµç£é临æ¶çµåå´æ * @return çµç£é临æ¶çµåå´æ éå */ public List<ArdTankWallTemporary> selectArdTankWallTemporaryList(ArdTankWallTemporary ardTankWallTemporary); /** * æ°å¢çµç£é临æ¶çµåå´æ * * @param ardTankWallTemporary çµç£é临æ¶çµåå´æ * @return ç»æ */ public int insertArdTankWallTemporary(ArdTankWallTemporary ardTankWallTemporary); /** * ä¿®æ¹çµç£é临æ¶çµåå´æ * * @param ardTankWallTemporary çµç£é临æ¶çµåå´æ * @return ç»æ */ public int updateArdTankWallTemporary(ArdTankWallTemporary ardTankWallTemporary); /** * å é¤çµç£é临æ¶çµåå´æ * * @param id çµç£é临æ¶çµåå´æ ä¸»é® * @return ç»æ */ public int deleteArdTankWallTemporaryById(String id); /** * æ¹éå é¤çµç£é临æ¶çµåå´æ * * @param ids éè¦å é¤çæ°æ®ä¸»é®éå * @return ç»æ */ public int deleteArdTankWallTemporaryByIds(String[] ids); public List<ArdTankWallTemporary> getArdTankWallTemporaryByCarId(String carId); public Long selectArdTankWallTemporaryTotalByCarId(String carId); } ard-work/src/main/java/com/ruoyi/sy/service/IArdTankWallTemporaryService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,69 @@ package com.ruoyi.sy.service; import java.util.List; import java.util.Map; import com.ruoyi.sy.domain.ArdTankWallTemporary; /** * çµç£é临æ¶çµåå´æ Serviceæ¥å£ * * @author ard * @date 2024-08-01 */ public interface IArdTankWallTemporaryService { /** * æ¥è¯¢çµç£é临æ¶çµåå´æ * * @param id çµç£é临æ¶çµåå´æ ä¸»é® * @return çµç£é临æ¶çµåå´æ */ public ArdTankWallTemporary selectArdTankWallTemporaryById(String id); /** * æ¥è¯¢çµç£é临æ¶çµåå´æ å表 * * @param ardTankWallTemporary çµç£é临æ¶çµåå´æ * @return çµç£é临æ¶çµåå´æ éå */ public List<ArdTankWallTemporary> selectArdTankWallTemporaryList(ArdTankWallTemporary ardTankWallTemporary); /** * æ°å¢çµç£é临æ¶çµåå´æ * * @param ardTankWallTemporary çµç£é临æ¶çµåå´æ * @return ç»æ */ public int insertArdTankWallTemporary(ArdTankWallTemporary ardTankWallTemporary); /** * ä¿®æ¹çµç£é临æ¶çµåå´æ * * @param ardTankWallTemporary çµç£é临æ¶çµåå´æ * @return ç»æ */ public int updateArdTankWallTemporary(ArdTankWallTemporary ardTankWallTemporary); /** * æ¹éå é¤çµç£é临æ¶çµåå´æ * * @param ids éè¦å é¤ççµç£é临æ¶çµåå´æ 主é®éå * @return ç»æ */ public int deleteArdTankWallTemporaryByIds(String[] ids); /** * å é¤çµç£é临æ¶çµåå´æ ä¿¡æ¯ * * @param id çµç£é临æ¶çµåå´æ ä¸»é® * @return ç»æ */ public int deleteArdTankWallTemporaryById(String id); public int insertArdTankWallTemporary(String userId, String userName, Map<String,Object> para); public int updateArdTankWallTemporary(String userId, String userName, Map<String,Object> para); public Map<String,Object> getArdTankWallTemporaryByCarId(Map<String,Object> para); } ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankWallLockTemporaryServiceImpl.java
@@ -12,6 +12,8 @@ import com.ruoyi.sy.domain.ArdTankWallLockTemporary; import com.ruoyi.sy.service.IArdTankWallLockTemporaryService; import javax.annotation.Resource; /** * 临æ¶çµåå´æ çµç£éServiceä¸å¡å±å¤ç * @@ -20,7 +22,7 @@ */ @Service public class ArdTankWallLockTemporaryServiceImpl implements IArdTankWallLockTemporaryService { @Autowired @Resource private ArdTankWallLockTemporaryMapper ardTankWallLockTemporaryMapper; /** ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankWallTemporaryServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,263 @@ package com.ruoyi.sy.service.impl; import java.text.SimpleDateFormat; import java.util.*; import com.alibaba.fastjson.JSON; import com.github.pagehelper.PageHelper; import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.sy.domain.ArdTankLock; import com.ruoyi.sy.domain.ArdTankWallLockTemporary; import com.ruoyi.sy.gps31.PositionContainer; import com.ruoyi.sy.mapper.ArdTankLockMapper; import com.ruoyi.sy.mapper.ArdTankWallLockTemporaryMapper; import com.ruoyi.system.mapper.SysUserMapper; 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.ArdTankWallTemporaryMapper; import com.ruoyi.sy.domain.ArdTankWallTemporary; import com.ruoyi.sy.service.IArdTankWallTemporaryService; import javax.annotation.Resource; import static com.ruoyi.utils.websocket.util.WebSocketUtils.ONLINE_USER_SESSIONS; /** * çµç£é临æ¶çµåå´æ Serviceä¸å¡å±å¤ç * * @author ard * @date 2024-08-01 */ @Service public class ArdTankWallTemporaryServiceImpl implements IArdTankWallTemporaryService { @Resource private ArdTankWallTemporaryMapper ardTankWallTemporaryMapper; @Resource private ArdTankLockMapper ardTankLockMapper; @Resource private ArdTankWallLockTemporaryMapper ardTankWallLockTemporaryMapper; @Resource private SysUserMapper sysUserMapper; private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); /** * æ¥è¯¢çµç£é临æ¶çµåå´æ * * @param id çµç£é临æ¶çµåå´æ ä¸»é® * @return çµç£é临æ¶çµåå´æ */ @Override public ArdTankWallTemporary selectArdTankWallTemporaryById(String id) { return ardTankWallTemporaryMapper.selectArdTankWallTemporaryById(id); } /** * æ¥è¯¢çµç£é临æ¶çµåå´æ å表 * * @param ardTankWallTemporary çµç£é临æ¶çµåå´æ * @return çµç£é临æ¶çµåå´æ */ @Override public List<ArdTankWallTemporary> selectArdTankWallTemporaryList(ArdTankWallTemporary ardTankWallTemporary) { return ardTankWallTemporaryMapper.selectArdTankWallTemporaryList(ardTankWallTemporary); } /** * æ°å¢çµç£é临æ¶çµåå´æ * * @param ardTankWallTemporary çµç£é临æ¶çµåå´æ * @return ç»æ */ @Override public int insertArdTankWallTemporary(ArdTankWallTemporary ardTankWallTemporary) { ardTankWallTemporary.setId(IdUtils.simpleUUID()); ardTankWallTemporary.setUserId(SecurityUtils.getUserId()); return ardTankWallTemporaryMapper.insertArdTankWallTemporary(ardTankWallTemporary); } /** * ä¿®æ¹çµç£é临æ¶çµåå´æ * * @param ardTankWallTemporary çµç£é临æ¶çµåå´æ * @return ç»æ */ @Override public int updateArdTankWallTemporary(ArdTankWallTemporary ardTankWallTemporary) { return ardTankWallTemporaryMapper.updateArdTankWallTemporary(ardTankWallTemporary); } /** * æ¹éå é¤çµç£é临æ¶çµåå´æ * * @param ids éè¦å é¤ççµç£é临æ¶çµåå´æ ä¸»é® * @return ç»æ */ @Override public int deleteArdTankWallTemporaryByIds(String[] ids) { return ardTankWallTemporaryMapper.deleteArdTankWallTemporaryByIds(ids); } /** * å é¤çµç£é临æ¶çµåå´æ ä¿¡æ¯ * * @param id çµç£é临æ¶çµåå´æ ä¸»é® * @return ç»æ */ @Override public int deleteArdTankWallTemporaryById(String id) { return ardTankWallTemporaryMapper.deleteArdTankWallTemporaryById(id); } @Override public int insertArdTankWallTemporary(String userId, String userName, Map<String, Object> para) { ArdTankWallTemporary ardTankWallTemporary = new ArdTankWallTemporary(); ardTankWallTemporary.setId(IdUtils.simpleUUID()); ardTankWallTemporary.setWallName((String) para.get("wallName")); ardTankWallTemporary.setLongitude((Double) para.get("longitude")); ardTankWallTemporary.setLatitude((Double) para.get("latitude")); ardTankWallTemporary.setDistance((Integer) para.get("distance")); ardTankWallTemporary.setInterval((String) para.get("interval")); ardTankWallTemporary.setProcessTime(sdf.format(new Date())); ardTankWallTemporary.setProcessMark("1");//1ä¸ºçæ ardTankWallTemporary.setUserId(userId); ardTankWallTemporary.setUserName(userName); int result = ardTankWallTemporaryMapper.insertArdTankWallTemporary(ardTankWallTemporary); try{ return result; }finally { ArdTankLock ardTankLock = new ArdTankLock(); ardTankLock.setCarId((String) para.get("carId")); List<ArdTankLock> ardTankLockList = ardTankLockMapper.selectArdTankLockList(ardTankLock); List<ArdTankWallLockTemporary> ardTankWallLockTemporaryList = new ArrayList(); for(ArdTankLock innerArdTankLock : ardTankLockList){ ArdTankWallLockTemporary ardTankWallLockTemporary = new ArdTankWallLockTemporary(); ardTankWallLockTemporary.setId(IdUtils.simpleUUID()); ardTankWallLockTemporary.setWallId(ardTankWallTemporary.getId()); ardTankWallLockTemporary.setLockId(innerArdTankLock.getId()); ardTankWallLockTemporary.setProcessType("å¼é"); ardTankWallLockTemporaryList.add(ardTankWallLockTemporary); } if(!ardTankWallLockTemporaryList.isEmpty()){ ardTankWallLockTemporaryMapper.insertArdTankWallLockTemporaryList(ardTankWallLockTemporaryList); } //åå»ºå®æ¶çº¿ç¨ Thread thread = new Thread(){ @Override public void run() { try { Thread.sleep(60 * 1000 * Long.parseLong((String) para.get("interval"))); } catch (InterruptedException e) { //e.printStackTrace(); return; } List<String> userIdList = sysUserMapper.selectUserIdByCarId((String) para.get("carId"));//æ¥çåªäºç¨æ·æé䏿è¿ä¸ªè½¦ for (String key : ONLINE_USER_SESSIONS.keySet()){ String userId = key.split("_")[0]; if(userIdList.contains(userId)){ Map<String,Object> data = new HashMap(); data.put("40003",(String) para.get("wallName") + "已尿"); WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(key), JSON.toJSONString(data)); } } ardTankWallTemporary.setProcessMark("-1");//-1ä¸ºå°æ ardTankWallTemporaryMapper.updateArdTankWallTemporary(ardTankWallTemporary); PositionContainer.getCarWallThreadMap().remove((String) para.get("carId")); } }; thread.start(); PositionContainer.getCarWallThreadMap().put((String) para.get("carId"),thread); } } @Override public int updateArdTankWallTemporary(String userId, String userName, Map<String, Object> para) { ArdTankWallTemporary ardTankWallTemporary = new ArdTankWallTemporary(); ardTankWallTemporary.setId((String) para.get("id")); ardTankWallTemporary.setProcessTime((String) para.get("processTime") + "/" + this.sdf.format(new Date())); ardTankWallTemporary.setProcessMark("0"); ardTankWallTemporary.setUserId(para.get("userId") + "/" + userId); ardTankWallTemporary.setUserName(para.get("userName") + "/" + userName); int result = ardTankWallTemporaryMapper.updateArdTankWallTemporary(ardTankWallTemporary); try{ return result; }finally { try{//å ³éçº¿ç¨ PositionContainer.getCarWallThreadMap().get((String) para.get("carId")).interrupt(); }catch (Exception e){ e.printStackTrace(); } List<String> userIdList = sysUserMapper.selectUserIdByCarId((String) para.get("carId"));//æ¥çåªäºç¨æ·æé䏿è¿ä¸ªè½¦ for (String key : ONLINE_USER_SESSIONS.keySet()){ String usersId = key.split("_")[0]; if(userIdList.contains(usersId)){ Map<String,Object> data = new HashMap(); data.put("40003",(String) para.get("wallName") + "已被" + userName + "æ¤é"); WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(key), JSON.toJSONString(data)); } } PositionContainer.getCarWallThreadMap().remove((String) para.get("carId")); } } @Override public Map<String, Object> getArdTankWallTemporaryByCarId(Map<String, Object> para) { //å页屿§ Integer pageNum = (Integer) para.get("pageNum"); Integer pageSize = (Integer) para.get("pageSize"); PageHelper.startPage(pageNum, pageSize);//å页 Map<String,Object> resultMap = new HashMap(); List<ArdTankWallTemporary> resultList = ardTankWallTemporaryMapper.getArdTankWallTemporaryByCarId((String) para.get("carId")); for(ArdTankWallTemporary ardTankWallTemporary : resultList){ String process = ardTankWallTemporary.getProcessTime(); String[] processArray = process.split("/"); ardTankWallTemporary.setProcessTime(processArray[0]); try{ ardTankWallTemporary.setCancelTime(processArray[1]); }catch (Exception e){ ardTankWallTemporary.setCancelTime(""); } switch(ardTankWallTemporary.getProcessMark()){ case "1" : ardTankWallTemporary.setProcessInfo("çæ");break; case "0" : ardTankWallTemporary.setProcessInfo("失æ");break; case "-1" : ardTankWallTemporary.setProcessInfo("å°æ");break; default : break; } String userName = ardTankWallTemporary.getUserName(); String[] userNameArray = userName.split("/"); userName = userNameArray[0]; ardTankWallTemporary.setUserName(userName); try{ ardTankWallTemporary.setCancelUserName(userNameArray[1]); }catch (Exception e){ ardTankWallTemporary.setCancelUserName(""); } String userId = ardTankWallTemporary.getUserId(); String[] userIdArray = userId.split("/"); userId = userIdArray[0]; ardTankWallTemporary.setUserId(userId); try{ ardTankWallTemporary.setCancelUserId(userIdArray[1]); }catch (Exception e){ ardTankWallTemporary.setCancelUserId(""); } } Long total = ardTankWallTemporaryMapper.selectArdTankWallTemporaryTotalByCarId((String) para.get("carId")); resultMap.put("list",resultList); resultMap.put("total",total); return resultMap; } } ard-work/src/main/resources/mapper/sy/ArdTankWallLockTemporaryMapper.xml
@@ -69,4 +69,12 @@ <delete id="deleteArdTankWallLockTemporaryByLockId" parameterType="java.lang.String"> delete from ard_tank_wall_lock_temporary where lock_id = #{lockId} </delete> <insert id="insertArdTankWallLockTemporaryList" parameterType="com.ruoyi.sy.domain.ArdTankWallLockTemporary" > insert into ard_tank_wall_lock_temporary (id, wall_id, lock_id, process_type) values <foreach collection ="ardTankWallLockTemporaryList" item="ardTankWallLockTemporary" separator =","> (#{ardTankWallLockTemporary.id},#{ardTankWallLockTemporary.wallId},#{ardTankWallLockTemporary.lockId}, #{ardTankWallLockTemporary.processType}) </foreach > </insert> </mapper> ard-work/src/main/resources/mapper/sy/ArdTankWallTemporaryMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,132 @@ <?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.ArdTankWallTemporaryMapper"> <resultMap type="ArdTankWallTemporary" id="ArdTankWallTemporaryResult"> <result property="id" column="id" /> <result property="wallName" column="wall_name" /> <result property="longitude" column="longitude" /> <result property="latitude" column="latitude" /> <result property="distance" column="distance" /> <result property="interval" column="interval" /> <result property="processTime" column="process_time" /> <result property="processMark" column="process_mark" /> <result property="userId" column="user_id" /> <result property="userName" column="user_name" /> </resultMap> <resultMap type="ArdTankWallTemporary" id="ArdTankWallTemporaryMarkResult"> <result property="id" column="id" /> <result property="wallName" column="wall_name" /> <result property="longitude" column="longitude" /> <result property="latitude" column="latitude" /> <result property="distance" column="distance" /> <result property="interval" column="interval" /> <result property="processTime" column="process_time" /> <result property="processMark" column="process_mark" /> <result property="userId" column="user_id" /> <result property="userName" column="user_name" /> <result property="mark" column="mark" /> </resultMap> <sql id="selectArdTankWallTemporaryVo"> select id, wall_name, longitude, latitude, distance, interval, process_time, process_mark, user_id, user_name from ard_tank_wall_temporary </sql> <select id="selectArdTankWallTemporaryList" parameterType="ArdTankWallTemporary" resultMap="ArdTankWallTemporaryResult"> <include refid="selectArdTankWallTemporaryVo"/> <where> <if test="wallName != null and wallName != ''"> and wall_name like '%'||#{wallName}||'%'</if> <if test="longitude != null "> and longitude = #{longitude}</if> <if test="latitude != null "> and latitude = #{latitude}</if> <if test="distance != null "> and distance = #{distance}</if> <if test="interval != null and interval != ''"> and interval = #{interval}</if> <if test="processTime != null and processTime != ''"> and process_time = #{processTime}</if> <if test="processMark != null and processMark != ''"> and process_mark = #{processMark}</if> <if test="userId != null and userId != ''"> and user_id = #{userId}</if> <if test="userName != null and userName != ''"> and user_name like '%'||#{userName}||'%'</if> </where> </select> <select id="selectArdTankWallTemporaryById" parameterType="String" resultMap="ArdTankWallTemporaryResult"> <include refid="selectArdTankWallTemporaryVo"/> where id = #{id} </select> <insert id="insertArdTankWallTemporary" parameterType="ArdTankWallTemporary"> insert into ard_tank_wall_temporary <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id != null">id,</if> <if test="wallName != null">wall_name,</if> <if test="longitude != null">longitude,</if> <if test="latitude != null">latitude,</if> <if test="distance != null">distance,</if> <if test="interval != null">interval,</if> <if test="processTime != null">process_time,</if> <if test="processMark != null">process_mark,</if> <if test="userId != null">user_id,</if> <if test="userName != null">user_name,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id != null">#{id},</if> <if test="wallName != null">#{wallName},</if> <if test="longitude != null">#{longitude},</if> <if test="latitude != null">#{latitude},</if> <if test="distance != null">#{distance},</if> <if test="interval != null">#{interval},</if> <if test="processTime != null">#{processTime},</if> <if test="processMark != null">#{processMark},</if> <if test="userId != null">#{userId},</if> <if test="userName != null">#{userName},</if> </trim> </insert> <update id="updateArdTankWallTemporary" parameterType="ArdTankWallTemporary"> update ard_tank_wall_temporary <trim prefix="SET" suffixOverrides=","> <if test="wallName != null">wall_name = #{wallName},</if> <if test="longitude != null">longitude = #{longitude},</if> <if test="latitude != null">latitude = #{latitude},</if> <if test="distance != null">distance = #{distance},</if> <if test="interval != null">interval = #{interval},</if> <if test="processTime != null">process_time = #{processTime},</if> <if test="processMark != null">process_mark = #{processMark},</if> <if test="userId != null">user_id = #{userId},</if> <if test="userName != null">user_name = #{userName},</if> </trim> where id = #{id} </update> <delete id="deleteArdTankWallTemporaryById" parameterType="String"> delete from ard_tank_wall_temporary where id = #{id} </delete> <delete id="deleteArdTankWallTemporaryByIds" parameterType="String"> delete from ard_tank_wall_temporary where id in <foreach item="id" collection="array" open="(" separator="," close=")"> #{id} </foreach> </delete> <select id="getArdTankWallTemporaryByCarId" parameterType="java.lang.String" resultMap="ArdTankWallTemporaryMarkResult"> select atwt.*,case process_mark when '1' then 1 when '0' then 2 when '-1' then 3 end as mark from ard_sy_car "asc" inner join ard_tank_lock atl on "asc".car_id = atl.car_id inner join ard_tank_wall_lock_temporary atwlt on atl."id" = atwlt.lock_id inner join ard_tank_wall_temporary atwt on atwlt.wall_id = atwt."id" where "asc".car_id = #{carId} order by mark asc,process_time desc </select> <select id="selectArdTankWallTemporaryTotalByCarId" parameterType="java.lang.String" resultType="java.lang.Long"> select count(distinct atwt.*) from ard_sy_car "asc" inner join ard_tank_lock atl on "asc".car_id = atl.car_id inner join ard_tank_wall_lock_temporary atwlt on atl."id" = atwlt.lock_id inner join ard_tank_wall_temporary atwt on atwlt.wall_id = atwt."id" where "asc".car_id = #{carId} </select> </mapper> ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -150,4 +150,6 @@ List<SysUser> getOwnAndChildrenSoilderListAll(@Param("deptIdList")List<Long> deptIdList); List<SysUser> selectUserByDeptIdList(@Param("deptIdList")List<Long> deptIdList); List<String> selectUserIdByCarId(String carId); } ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -379,4 +379,15 @@ </foreach> and su.status = '0' </select> <select id="selectUserIdByCarId" resultType="java.lang.String"> select user_id from sys_user where dept_id in ( with recursive rsd as ( select * from sys_dept sd where sd.dept_id = ( select dept_id from ard_sy_car where car_id = #{carId}) union select psd.* from sys_dept psd inner join rsd on rsd.parent_id = psd.dept_id ) select rsd.dept_id from rsd) </select> </mapper>