From 2058f9a0686d1b2d5543d369fb768c9bd40e0e63 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期三, 30 八月 2023 16:52:29 +0800
Subject: [PATCH] 增加电子围栏关联用户

---
 ard-work/src/main/java/com/ruoyi/alarmpoints/elecwall/domain/ArdWallUser.java              |   24 ++++++++
 ard-work/src/main/resources/mapper/alarmpoints/ArdWallMapper.xml                           |   30 ++++++++++
 ard-work/src/main/java/com/ruoyi/dispatch/service/impl/ArdDispatchPoliceServiceImpl.java   |    8 --
 ard-work/src/main/java/com/ruoyi/alarmpoints/elecwall/domain/ArdWall.java                  |   16 +++++
 ard-work/src/main/java/com/ruoyi/alarmpoints/elecwall/service/impl/ArdWallServiceImpl.java |   45 +++++++++++++-
 ard-work/src/main/java/com/ruoyi/alarmpoints/elecwall/mapper/ArdWallMapper.java            |   27 +++++++++
 6 files changed, 137 insertions(+), 13 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/alarmpoints/elecwall/domain/ArdWall.java b/ard-work/src/main/java/com/ruoyi/alarmpoints/elecwall/domain/ArdWall.java
index 1aa5914..81cefa4 100644
--- a/ard-work/src/main/java/com/ruoyi/alarmpoints/elecwall/domain/ArdWall.java
+++ b/ard-work/src/main/java/com/ruoyi/alarmpoints/elecwall/domain/ArdWall.java
@@ -1,9 +1,12 @@
 package com.ruoyi.alarmpoints.elecwall.domain;
 
+import com.ruoyi.common.core.domain.entity.SysUser;
 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;
+
+import java.util.List;
 
 /**
  * 鐢靛瓙鍥存爮绠$悊瀵硅薄 ard_wall
@@ -41,8 +44,19 @@
     /** 鎵�灞炵敤鎴� */
     @Excel(name = "鎵�灞炵敤鎴�")
     private String userId;
+    /** 鍏宠仈鐢ㄦ埛鍒楄〃 */
+    @Excel(name = "鍏宠仈鐢ㄦ埛鍒楄〃")
+    List<SysUser> sysUserList;
 
-    public void setId(String id) 
+    public List<SysUser> getSysUserList() {
+        return sysUserList;
+    }
+
+    public void setSysUserList(List<SysUser> sysUserList) {
+        this.sysUserList = sysUserList;
+    }
+
+    public void setId(String id)
     {
         this.id = id;
     }
diff --git a/ard-work/src/main/java/com/ruoyi/alarmpoints/elecwall/domain/ArdWallUser.java b/ard-work/src/main/java/com/ruoyi/alarmpoints/elecwall/domain/ArdWallUser.java
new file mode 100644
index 0000000..eae4f4a
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarmpoints/elecwall/domain/ArdWallUser.java
@@ -0,0 +1,24 @@
+package com.ruoyi.alarmpoints.elecwall.domain;
+
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+
+/**
+ * 娲捐鍏宠仈鐢ㄦ埛瀵硅薄 ard_dispatch_police_user
+ * 
+ * @author ard
+ * @date 2023-08-21
+ */
+@Data
+public class ArdWallUser
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 鍥存爮ID */
+    @Excel(name = "鍥存爮ID")
+    private String wallId;
+
+    /** 鍏宠仈鐢ㄦ埛ID */
+    @Excel(name = "鍏宠仈鐢ㄦ埛ID")
+    private String userId;
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarmpoints/elecwall/mapper/ArdWallMapper.java b/ard-work/src/main/java/com/ruoyi/alarmpoints/elecwall/mapper/ArdWallMapper.java
index 1ac201a..4ff3dd4 100644
--- a/ard-work/src/main/java/com/ruoyi/alarmpoints/elecwall/mapper/ArdWallMapper.java
+++ b/ard-work/src/main/java/com/ruoyi/alarmpoints/elecwall/mapper/ArdWallMapper.java
@@ -2,6 +2,8 @@
 
 import java.util.List;
 import com.ruoyi.alarmpoints.elecwall.domain.ArdWall;
+import com.ruoyi.alarmpoints.elecwall.domain.ArdWallUser;
+import com.ruoyi.dispatch.domain.ArdDispatchPoliceUser;
 
 /**
  * 鐢靛瓙鍥存爮绠$悊Mapper鎺ュ彛
@@ -58,4 +60,29 @@
      * @return 缁撴灉
      */
     public int deleteArdWallByIds(String[] ids);
+
+    /**
+     * 鎵归噺鏂板鍥存爮鍏宠仈鐢ㄦ埛
+     *
+     * @param ardWallUserList 鍥存爮鍏宠仈鐢ㄦ埛鍒楄〃
+     * @return 缁撴灉
+     */
+    public int batchArdWallUser(List<ArdWallUser> ardWallUserList);
+
+
+    /**
+     * 閫氳繃鍥存爮绠$悊涓婚敭鍒犻櫎娲捐鍏宠仈鐢ㄦ埛淇℃伅
+     *
+     * @param id 鍥存爮绠$悊ID
+     * @return 缁撴灉
+     */
+    public int deleteArdWallUserByWallId(String id);
+
+    /**
+     * 鎵归噺鍒犻櫎鍥存爮鍏宠仈鐢ㄦ埛
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteArdWallUserByWallIds(String[] ids);
 }
diff --git a/ard-work/src/main/java/com/ruoyi/alarmpoints/elecwall/service/impl/ArdWallServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarmpoints/elecwall/service/impl/ArdWallServiceImpl.java
index 124fea2..4840e3c 100644
--- a/ard-work/src/main/java/com/ruoyi/alarmpoints/elecwall/service/impl/ArdWallServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/alarmpoints/elecwall/service/impl/ArdWallServiceImpl.java
@@ -1,9 +1,16 @@
 package com.ruoyi.alarmpoints.elecwall.service.impl;
 
+import java.util.ArrayList;
 import java.util.List;
+
+import com.ruoyi.alarmpoints.elecwall.domain.ArdWallUser;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
+import com.ruoyi.dispatch.domain.ArdDispatchPolice;
+import com.ruoyi.dispatch.domain.ArdDispatchPoliceUser;
 import org.springframework.stereotype.Service;
 import com.ruoyi.alarmpoints.elecwall.mapper.ArdWallMapper;
 import com.ruoyi.alarmpoints.elecwall.domain.ArdWall;
@@ -53,9 +60,11 @@
     @Override
     public int insertArdWall(ArdWall ardWall) {
         ardWall.setId(IdUtils.simpleUUID());
-                ardWall.setCreateBy(SecurityUtils.getUsername());
-                ardWall.setCreateTime(DateUtils.getNowDate());
-            return ardWallMapper.insertArdWall(ardWall);
+        ardWall.setCreateBy(SecurityUtils.getUsername());
+        ardWall.setCreateTime(DateUtils.getNowDate());
+        int i = ardWallMapper.insertArdWall(ardWall);
+        insertArdWallUser(ardWall);
+        return i;
     }
 
     /**
@@ -66,8 +75,10 @@
      */
     @Override
     public int updateArdWall(ArdWall ardWall) {
-                ardWall.setUpdateBy(SecurityUtils.getUsername());
-                ardWall.setUpdateTime(DateUtils.getNowDate());
+        ardWall.setUpdateBy(SecurityUtils.getUsername());
+        ardWall.setUpdateTime(DateUtils.getNowDate());
+        ardWallMapper.deleteArdWallUserByWallId(ardWall.getId());
+        insertArdWallUser(ardWall);
         return ardWallMapper.updateArdWall(ardWall);
     }
 
@@ -79,6 +90,7 @@
      */
     @Override
     public int deleteArdWallByIds(String[] ids) {
+        ardWallMapper.deleteArdWallUserByWallIds(ids);
         return ardWallMapper.deleteArdWallByIds(ids);
     }
 
@@ -90,6 +102,29 @@
      */
     @Override
     public int deleteArdWallById(String id) {
+        ardWallMapper.deleteArdWallUserByWallId(id);
         return ardWallMapper.deleteArdWallById(id);
     }
+
+    /**
+     * 鏂板鐢靛瓙鍥存爮鍏宠仈鐢ㄦ埛淇℃伅
+     *
+     * @param ardWall 鐢靛瓙鍥存爮绠$悊瀵硅薄
+     */
+    public void insertArdWallUser(ArdWall ardWall) {
+        List<SysUser> sysUserList = ardWall.getSysUserList();
+        String id = ardWall.getId();
+        if (StringUtils.isNotNull(sysUserList)) {
+            List<ArdWallUser> list = new ArrayList<ArdWallUser>();
+            for (SysUser user : sysUserList) {
+                ArdWallUser ardWallUser = new ArdWallUser();
+                ardWallUser.setWallId(id);
+                ardWallUser.setUserId(user.getUserId());
+                list.add(ardWallUser);
+            }
+            if (list.size() > 0) {
+                ardWallMapper.batchArdWallUser(list);
+            }
+        }
+    }
 }
diff --git a/ard-work/src/main/java/com/ruoyi/dispatch/service/impl/ArdDispatchPoliceServiceImpl.java b/ard-work/src/main/java/com/ruoyi/dispatch/service/impl/ArdDispatchPoliceServiceImpl.java
index b6df112..18dd7b0 100644
--- a/ard-work/src/main/java/com/ruoyi/dispatch/service/impl/ArdDispatchPoliceServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/dispatch/service/impl/ArdDispatchPoliceServiceImpl.java
@@ -83,8 +83,7 @@
     public int updateArdDispatchPolice(ArdDispatchPolice ardDispatchPolice) {
         ardDispatchPolice.setUpdateBy(SecurityUtils.getUsername());
         ardDispatchPolice.setUpdateTime(DateUtils.getNowDate());
-        ardDispatchPoliceMapper.deleteArdDispatchPoliceUserByDispatchId(ardDispatchPolice.getId())
-        ;
+        ardDispatchPoliceMapper.deleteArdDispatchPoliceUserByDispatchId(ardDispatchPolice.getId());
         insertArdDispatchPoliceUser(ardDispatchPolice);
         return ardDispatchPoliceMapper.updateArdDispatchPolice(ardDispatchPolice);
     }
@@ -115,11 +114,6 @@
         return ardDispatchPoliceMapper.deleteArdDispatchPoliceById(id);
     }
 
-    /**
-     * 鏂板娲捐鍏宠仈鐢ㄦ埛淇℃伅
-     *
-     * @param ardDispatchPolice 娲捐绠$悊瀵硅薄
-     */
     /**
      * 鏂板娲捐鍏宠仈鐢ㄦ埛淇℃伅
      *
diff --git a/ard-work/src/main/resources/mapper/alarmpoints/ArdWallMapper.xml b/ard-work/src/main/resources/mapper/alarmpoints/ArdWallMapper.xml
index 68933d9..53d55fe 100644
--- a/ard-work/src/main/resources/mapper/alarmpoints/ArdWallMapper.xml
+++ b/ard-work/src/main/resources/mapper/alarmpoints/ArdWallMapper.xml
@@ -16,6 +16,19 @@
         <result property="createTime"    column="create_time"    />
         <result property="updateBy"    column="update_by"    />
         <result property="updateTime"    column="update_time"    />
+        <!-- 瀛愭煡璇紝鍏宠仈 ard_dispatch_police_user 琛� -->
+        <collection property="sysUserList" ofType="java.util.List" select="getSysUserListByMainTableId" column="id"/>
+    </resultMap>
+    <select id="getSysUserListByMainTableId" resultType="SysUser">
+        SELECT u.*
+        FROM ard_wall_user b
+        left join sys_user u on b.user_id = u.user_id
+        WHERE wall_id = #{id}
+    </select>
+    <resultMap type="SysUser" id="SysUserListResult">
+        <result property="userId" column="sub_user_id"/>
+        <result property="nickName" column="sub_nick_name"/>
+        <result property="deptId" column="sub_dept_id"/>
     </resultMap>
 
     <sql id="selectArdWallVo">
@@ -96,4 +109,21 @@
             #{id}
         </foreach>
     </delete>
+    <insert id="batchArdWallUser">
+        insert into ard_wall_user( wall_id, user_id) values
+        <foreach item="item" index="index" collection="list" separator=",">
+            ( #{item.wallId}, #{item.userId})
+        </foreach>
+    </insert>
+    <delete id="deleteArdWallUserByWallId" parameterType="String">
+        delete
+        from ard_wall_user
+        where wall_id = #{wallId}
+    </delete>
+    <delete id="deleteArdWallUserByWallIds" parameterType="String">
+        delete from ard_wall_user where wall_id in
+        <foreach item="wallId" collection="array" open="(" separator="," close=")">
+            #{wallId}
+        </foreach>
+    </delete>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3