From 74b611d6e134df1f2f1a01e4ac061bd4bb4708be Mon Sep 17 00:00:00 2001
From: haoliang <821644@qq.com>
Date: Thu, 30 Apr 2026 01:24:44 +0800
Subject: [PATCH] =?UTF-8?q?=E9=87=87=E9=9B=86=E5=9C=B0=E5=9D=80=E5=85=B3?=
=?UTF-8?q?=E8=81=94=E6=9C=BA=E5=BA=8A=E6=94=B9=E4=B8=BA=E7=A9=BF=E6=A2=AD?=
=?UTF-8?q?=E6=A1=86=EF=BC=9A=E5=90=8E=E7=AB=AFDTO=E5=8A=A0MachineIds+SetC?=
=?UTF-8?q?ollectAddress=EF=BC=8C=E5=89=8D=E7=AB=AFel-transfer=E6=9B=BF?=
=?UTF-8?q?=E6=8D=A2checkbox?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../CollectAddressListPage.vue | 153 ++++++++++++++----
.../CollectAddressMachineItem.cs | 3 +
.../CreateCollectAddressRequest.cs | 4 +
.../UpdateCollectAddressRequest.cs | 4 +
src/CncRepository/Impl/MachineRepository.cs | 9 ++
.../Interface/IMachineRepository.cs | 2 +
src/CncService/Impl/CollectAddressService.cs | 32 +++-
7 files changed, 170 insertions(+), 37 deletions(-)
diff --git a/frontend/src/views/collect-address/CollectAddressListPage.vue b/frontend/src/views/collect-address/CollectAddressListPage.vue
index af1d448..873bbce 100644
--- a/frontend/src/views/collect-address/CollectAddressListPage.vue
+++ b/frontend/src/views/collect-address/CollectAddressListPage.vue
@@ -21,53 +21,136 @@
-
-
-
-
-
-
-
-
- {{m.machineName}}
-
-
-
-
- 取消保存
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ option.name }}
+ ({{ option.deviceCode }})
+
+
+
+
+ 在线
+ 离线
+ 停用
+
+
+
+
+ 取消保存
+
+
+
diff --git a/src/CncModels/Dto/CollectAddress/CollectAddressMachineItem.cs b/src/CncModels/Dto/CollectAddress/CollectAddressMachineItem.cs
index b0df429..a4aa7d1 100644
--- a/src/CncModels/Dto/CollectAddress/CollectAddressMachineItem.cs
+++ b/src/CncModels/Dto/CollectAddress/CollectAddressMachineItem.cs
@@ -5,6 +5,9 @@ namespace CncModels.Dto.CollectAddress
///
public class CollectAddressMachineItem
{
+ /// 机床ID
+ public int MachineId { get; set; }
+
/// 机床名称
public string MachineName { get; set; }
diff --git a/src/CncModels/Dto/CollectAddress/CreateCollectAddressRequest.cs b/src/CncModels/Dto/CollectAddress/CreateCollectAddressRequest.cs
index 702583f..b9ebad4 100644
--- a/src/CncModels/Dto/CollectAddress/CreateCollectAddressRequest.cs
+++ b/src/CncModels/Dto/CollectAddress/CreateCollectAddressRequest.cs
@@ -1,3 +1,5 @@
+using System.Collections.Generic;
+
namespace CncModels.Dto.CollectAddress
{
///
@@ -9,5 +11,7 @@ namespace CncModels.Dto.CollectAddress
public string Url { get; set; }
public int BrandId { get; set; }
public int CollectInterval { get; set; }
+ /// 关联机床ID列表
+ public List MachineIds { get; set; }
}
}
diff --git a/src/CncModels/Dto/CollectAddress/UpdateCollectAddressRequest.cs b/src/CncModels/Dto/CollectAddress/UpdateCollectAddressRequest.cs
index 9001ed0..294ba1c 100644
--- a/src/CncModels/Dto/CollectAddress/UpdateCollectAddressRequest.cs
+++ b/src/CncModels/Dto/CollectAddress/UpdateCollectAddressRequest.cs
@@ -1,3 +1,5 @@
+using System.Collections.Generic;
+
namespace CncModels.Dto.CollectAddress
{
///
@@ -9,5 +11,7 @@ namespace CncModels.Dto.CollectAddress
public string Url { get; set; }
public int BrandId { get; set; }
public int CollectInterval { get; set; }
+ /// 关联机床ID列表(全量替换)
+ public List MachineIds { get; set; }
}
}
diff --git a/src/CncRepository/Impl/MachineRepository.cs b/src/CncRepository/Impl/MachineRepository.cs
index 1cfa6bc..da6f498 100644
--- a/src/CncRepository/Impl/MachineRepository.cs
+++ b/src/CncRepository/Impl/MachineRepository.cs
@@ -188,5 +188,14 @@ namespace CncRepository.Impl
conn.Execute(sql, param);
}
}
+
+ public void SetCollectAddress(int machineId, int? collectAddressId)
+ {
+ using (var conn = CreateConnection())
+ {
+ conn.Execute("UPDATE cnc_machine SET collect_address_id = @AddressId, updated_at = NOW() WHERE id = @Id",
+ new { Id = machineId, AddressId = collectAddressId });
+ }
+ }
}
}
diff --git a/src/CncRepository/Interface/IMachineRepository.cs b/src/CncRepository/Interface/IMachineRepository.cs
index 6eb86e0..45c43d9 100644
--- a/src/CncRepository/Interface/IMachineRepository.cs
+++ b/src/CncRepository/Interface/IMachineRepository.cs
@@ -22,5 +22,7 @@ namespace CncRepository.Interface
List GetEnabledOnline();
void UpdateOnlineStatus(int id, bool isOnline);
void UpdateLastCollect(int id, Machine entity);
+ /// 设置机床所属的采集地址
+ void SetCollectAddress(int machineId, int? collectAddressId);
}
}
diff --git a/src/CncService/Impl/CollectAddressService.cs b/src/CncService/Impl/CollectAddressService.cs
index ca9d0c2..47d61d7 100644
--- a/src/CncService/Impl/CollectAddressService.cs
+++ b/src/CncService/Impl/CollectAddressService.cs
@@ -73,7 +73,17 @@ namespace CncService.Impl
CreatedAt = DateTime.Now,
UpdatedAt = DateTime.Now
};
- return _collectAddressRepository.Create(entity);
+ var id = _collectAddressRepository.Create(entity);
+
+ // 绑定机床
+ if (request.MachineIds != null)
+ {
+ foreach (var mid in request.MachineIds)
+ {
+ _machineRepository.SetCollectAddress(mid, id);
+ }
+ }
+ return id;
}
public bool Update(int id, UpdateCollectAddressRequest request)
@@ -87,7 +97,24 @@ namespace CncService.Impl
address.BrandId = (request.BrandId != 0) ? request.BrandId : address.BrandId;
address.CollectInterval = (request.CollectInterval != 0) ? request.CollectInterval : address.CollectInterval;
address.UpdatedAt = DateTime.Now;
- return _collectAddressRepository.Update(address);
+ _collectAddressRepository.Update(address);
+
+ // 全量替换机床关联
+ if (request.MachineIds != null)
+ {
+ // 先清除该地址下所有机床的关联
+ var currentMachines = _machineRepository.GetEnabledByAddressId(id);
+ foreach (var m in currentMachines)
+ {
+ _machineRepository.SetCollectAddress(m.Id, null);
+ }
+ // 再绑定新选中的机床
+ foreach (var mid in request.MachineIds)
+ {
+ _machineRepository.SetCollectAddress(mid, id);
+ }
+ }
+ return true;
}
public bool Delete(int id)
@@ -117,6 +144,7 @@ namespace CncService.Impl
}
result.Add(new CollectAddressMachineItem
{
+ MachineId = m.Id,
MachineName = m.Name ?? m.DeviceCode,
DeviceCode = m.DeviceCode,
WorkshopName = workshopName,