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