From 366ba040d2447bacd3455299425e3166f1f992bb Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期四, 20 十一月 2025 14:38:32 +0800
Subject: [PATCH] 添加大车、大理片笼以及多设备串行/并行执行写入基础逻辑
---
mes-processes/mes-plcSend/src/main/resources/mapper/device/DeviceGroupRelationMapper.xml | 40 ++++++++++++++++++++++++----------------
1 files changed, 24 insertions(+), 16 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
index e165559..33e312c 100644
--- a/mes-processes/mes-plcSend/src/main/resources/mapper/device/DeviceGroupRelationMapper.xml
+++ b/mes-processes/mes-plcSend/src/main/resources/mapper/device/DeviceGroupRelationMapper.xml
@@ -5,38 +5,46 @@
<!-- 鎵归噺娣诲姞璁惧鍒拌澶囩粍 -->
<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)
+ created_time, updated_time, created_by, updated_by)
SELECT
- #{groupId} as group_id,
- device_id,
+ #{groupId},
+ t.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
+ END,
+ 1,
+ 5,
+ (SELECT IFNULL(MAX(connection_order), 0) FROM device_group_relation WHERE group_id = #{groupId} AND is_deleted = 0) +
+ t.row_num as connection_order,
+ NOW(),
+ NOW(),
+ 'system',
+ 'system'
+ FROM (
+ SELECT
+ device_id,
+ @row_num := @row_num + 1 as row_num
FROM (
<foreach collection="deviceIds" item="deviceId" separator=" UNION ALL ">
SELECT #{deviceId} as device_id
</foreach>
+ ) d
+ CROSS JOIN (SELECT @row_num := 0) r
+ ORDER BY device_id
) t
WHERE NOT EXISTS (
- SELECT 1 FROM device_group_relation
- WHERE group_id = #{groupId} AND device_id = device_id AND is_deleted = 0
+ SELECT 1 FROM device_group_relation dgr
+ WHERE dgr.group_id = #{groupId} AND dgr.device_id = t.device_id AND dgr.is_deleted = 0
)
</insert>
<!-- 鎵归噺浠庤澶囩粍绉婚櫎璁惧 -->
<update id="batchRemoveDevicesFromGroup" parameterType="map">
UPDATE device_group_relation
- SET is_deleted = 1, updated_at = NOW(), updated_by = 'system'
+ SET is_deleted = 1, updated_time = NOW(), updated_by = 'system'
WHERE group_id = #{groupId}
AND device_id IN
<foreach collection="deviceIds" item="deviceId" open="(" separator="," close=")">
@@ -54,7 +62,7 @@
WHEN #{deviceRole} = 'MONITOR' THEN 3
ELSE 2
END,
- updated_at = NOW(),
+ updated_time = NOW(),
updated_by = 'system'
WHERE group_id = #{groupId}
AND device_id = #{deviceId}
@@ -73,7 +81,7 @@
<!-- 鍒犻櫎璁惧缁勫叧鑱� -->
<delete id="deleteDeviceFromGroup">
UPDATE device_group_relation
- SET is_deleted = 1, updated_at = NOW(), updated_by = 'system'
+ SET is_deleted = 1, updated_time = NOW(), updated_by = 'system'
WHERE group_id = #{groupId}
AND device_id = #{deviceId}
AND is_deleted = 0
--
Gitblit v1.8.0