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