From 470b596ddce65dcbb8087e78f0a096d8ba1a429e Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期五, 02 八月 2024 08:17:48 +0800 Subject: [PATCH] 电磁锁新增临时电子围栏提交 --- ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankWallLockTemporaryMapper.java | 3 ard-work/src/main/java/com/ruoyi/sy/service/IArdTankWallTemporaryService.java | 69 ++++ ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java | 35 ++ ard-work/src/main/resources/mapper/sy/ArdTankWallTemporaryMapper.xml | 132 +++++++++ ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankWallLockTemporaryServiceImpl.java | 4 ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankWallTemporaryServiceImpl.java | 263 ++++++++++++++++++ ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 11 ard-work/src/main/java/com/ruoyi/sy/gps31/PositionContainer.java | 10 ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankWallTemporary.java | 213 +++++++++++++++ ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankWallTemporaryMapper.java | 65 ++++ ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java | 2 ard-work/src/main/resources/mapper/sy/ArdTankWallLockTemporaryMapper.xml | 8 12 files changed, 814 insertions(+), 1 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java b/ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java index ffe9391..1c46df5 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java +++ b/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; + } } diff --git a/ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankWallTemporary.java b/ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankWallTemporary.java new file mode 100644 index 0000000..1c0f783 --- /dev/null +++ b/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(); + } +} diff --git a/ard-work/src/main/java/com/ruoyi/sy/gps31/PositionContainer.java b/ard-work/src/main/java/com/ruoyi/sy/gps31/PositionContainer.java index 6d39843..f486885 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/gps31/PositionContainer.java +++ b/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; + } } diff --git a/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankWallLockTemporaryMapper.java b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankWallLockTemporaryMapper.java index d8f6194..8adaf4f 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankWallLockTemporaryMapper.java +++ b/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; /** * 涓存椂鐢靛瓙鍥存爮鐢电閿丮apper鎺ュ彛 @@ -60,4 +61,6 @@ public int deleteArdTankWallLockTemporaryByIds(String[] ids); public int deleteArdTankWallLockTemporaryByLockId(String lockId); + + public int insertArdTankWallLockTemporaryList(@Param("ardTankWallLockTemporaryList") List<ArdTankWallLockTemporary> ardTankWallLockTemporaryList); } diff --git a/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankWallTemporaryMapper.java b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankWallTemporaryMapper.java new file mode 100644 index 0000000..415bdea --- /dev/null +++ b/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; + +/** + * 鐢电閿佷复鏃剁數瀛愬洿鏍廙apper鎺ュ彛 + * + * @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); +} diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankWallTemporaryService.java b/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankWallTemporaryService.java new file mode 100644 index 0000000..2f5c6c6 --- /dev/null +++ b/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; + +/** + * 鐢电閿佷复鏃剁數瀛愬洿鏍廠ervice鎺ュ彛 + * + * @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); +} diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankWallLockTemporaryServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankWallLockTemporaryServiceImpl.java index 300fb96..fff0788 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankWallLockTemporaryServiceImpl.java +++ b/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; + /** * 涓存椂鐢靛瓙鍥存爮鐢电閿丼ervice涓氬姟灞傚鐞� * @@ -20,7 +22,7 @@ */ @Service public class ArdTankWallLockTemporaryServiceImpl implements IArdTankWallLockTemporaryService { - @Autowired + @Resource private ArdTankWallLockTemporaryMapper ardTankWallLockTemporaryMapper; /** diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankWallTemporaryServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankWallTemporaryServiceImpl.java new file mode 100644 index 0000000..b673448 --- /dev/null +++ b/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; + +/** + * 鐢电閿佷复鏃剁數瀛愬洿鏍廠ervice涓氬姟灞傚鐞� + * + * @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; + } + +} diff --git a/ard-work/src/main/resources/mapper/sy/ArdTankWallLockTemporaryMapper.xml b/ard-work/src/main/resources/mapper/sy/ArdTankWallLockTemporaryMapper.xml index ff0bbf4..a36f0bf 100644 --- a/ard-work/src/main/resources/mapper/sy/ArdTankWallLockTemporaryMapper.xml +++ b/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> \ No newline at end of file diff --git a/ard-work/src/main/resources/mapper/sy/ArdTankWallTemporaryMapper.xml b/ard-work/src/main/resources/mapper/sy/ArdTankWallTemporaryMapper.xml new file mode 100644 index 0000000..91ddecb --- /dev/null +++ b/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> \ 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 234e2eb..d890677 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 @@ -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); } diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 913ec65..e794039 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/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> \ No newline at end of file -- Gitblit v1.9.3