From e76f0739e647fe8a7e0e2618914e2faff554b1b7 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期一, 17 十一月 2025 17:33:23 +0800
Subject: [PATCH] 解决冲突

---
 mes-processes/mes-plcSend/src/main/resources/mapper/device/DeviceGroupRelationMapper.xml |   82 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 82 insertions(+), 0 deletions(-)

diff --git a/mes-processes/mes-plcSend/src/main/resources/mapper/device/DeviceGroupRelationMapper.xml b/mes-processes/mes-plcSend/src/main/resources/mapper/device/DeviceGroupRelationMapper.xml
new file mode 100644
index 0000000..e165559
--- /dev/null
+++ b/mes-processes/mes-plcSend/src/main/resources/mapper/device/DeviceGroupRelationMapper.xml
@@ -0,0 +1,82 @@
+<?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.mes.device.mapper.DeviceGroupRelationMapper">
+
+    <!-- 鎵归噺娣诲姞璁惧鍒拌澶囩粍 -->
+    <insert id="batchAddDevicesToGroup" parameterType="map">
+        INSERT INTO device_group_relation (group_id, device_id, role, status, priority, connection_order, 
+                                          created_at, updated_at, created_by, updated_by)
+        SELECT 
+            #{groupId} as group_id,
+            device_id,
+            CASE 
+                WHEN #{deviceRole} = 'CONTROLLER' THEN 1
+                WHEN #{deviceRole} = 'COLLABORATOR' THEN 2
+                WHEN #{deviceRole} = 'MONITOR' THEN 3
+                ELSE 2
+            END as role,
+            1 as status,
+            5 as priority,
+            ROW_NUMBER() OVER (ORDER BY device_id) as connection_order,
+            NOW() as created_at,
+            NOW() as updated_at,
+            'system' as created_by,
+            'system' as updated_by
+        FROM (
+            <foreach collection="deviceIds" item="deviceId" separator=" UNION ALL ">
+                SELECT #{deviceId} as device_id
+            </foreach>
+        ) t
+        WHERE NOT EXISTS (
+            SELECT 1 FROM device_group_relation 
+            WHERE group_id = #{groupId} AND device_id = device_id AND is_deleted = 0
+        )
+    </insert>
+
+    <!-- 鎵归噺浠庤澶囩粍绉婚櫎璁惧 -->
+    <update id="batchRemoveDevicesFromGroup" parameterType="map">
+        UPDATE device_group_relation 
+        SET is_deleted = 1, updated_at = NOW(), updated_by = 'system'
+        WHERE group_id = #{groupId} 
+        AND device_id IN 
+        <foreach collection="deviceIds" item="deviceId" open="(" separator="," close=")">
+            #{deviceId}
+        </foreach>
+        AND is_deleted = 0
+    </update>
+
+    <!-- 鏇存柊璁惧鍦ㄨ澶囩粍涓殑瑙掕壊 -->
+    <update id="updateDeviceRole" parameterType="map">
+        UPDATE device_group_relation 
+        SET role = CASE 
+                WHEN #{deviceRole} = 'CONTROLLER' THEN 1
+                WHEN #{deviceRole} = 'COLLABORATOR' THEN 2
+                WHEN #{deviceRole} = 'MONITOR' THEN 3
+                ELSE 2
+            END,
+            updated_at = NOW(),
+            updated_by = 'system'
+        WHERE group_id = #{groupId} 
+        AND device_id = #{deviceId} 
+        AND is_deleted = 0
+    </update>
+
+    <!-- 妫�鏌ヨ澶囨槸鍚﹀凡鍦ㄨ澶囩粍涓� -->
+    <select id="checkDeviceInGroup" parameterType="map" resultType="boolean">
+        SELECT COUNT(*) > 0 
+        FROM device_group_relation 
+        WHERE group_id = #{groupId} 
+        AND device_id = #{deviceId} 
+        AND is_deleted = 0
+    </select>
+
+    <!-- 鍒犻櫎璁惧缁勫叧鑱� -->
+    <delete id="deleteDeviceFromGroup">
+        UPDATE device_group_relation 
+        SET is_deleted = 1, updated_at = NOW(), updated_by = 'system'
+        WHERE group_id = #{groupId} 
+        AND device_id = #{deviceId} 
+        AND is_deleted = 0
+    </delete>
+
+</mapper>
\ No newline at end of file

--
Gitblit v1.8.0