From f865de2a9a6d6c3c56ec304ddef56203e5b4a69e Mon Sep 17 00:00:00 2001 From: haoliang <821644@qq.com> Date: Wed, 29 Apr 2026 23:48:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=91=98=E5=B7=A5=E6=9C=BA?= =?UTF-8?q?=E5=BA=8A=E7=BB=91=E5=AE=9A=E4=BF=9D=E5=AD=98=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=EF=BC=9ADTO=E5=A2=9E=E5=8A=A0MachineIds=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=EF=BC=8CService=20Create/Update=E5=A2=9E=E5=8A=A0=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dto/Worker/CreateWorkerRequest.cs | 4 +++ .../Dto/Worker/UpdateWorkerRequest.cs | 5 +++ src/CncService/Impl/WorkerService.cs | 35 +++++++++++++++++-- 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/CncModels/Dto/Worker/CreateWorkerRequest.cs b/src/CncModels/Dto/Worker/CreateWorkerRequest.cs index 915909e..3e825c4 100644 --- a/src/CncModels/Dto/Worker/CreateWorkerRequest.cs +++ b/src/CncModels/Dto/Worker/CreateWorkerRequest.cs @@ -1,3 +1,5 @@ +using System.Collections.Generic; + namespace CncModels.Dto.Worker { /// @@ -7,5 +9,7 @@ namespace CncModels.Dto.Worker { public string Name { get; set; } public string Code { get; set; } + /// 绑定的机床ID列表 + public List MachineIds { get; set; } } } diff --git a/src/CncModels/Dto/Worker/UpdateWorkerRequest.cs b/src/CncModels/Dto/Worker/UpdateWorkerRequest.cs index 2a41165..a77b007 100644 --- a/src/CncModels/Dto/Worker/UpdateWorkerRequest.cs +++ b/src/CncModels/Dto/Worker/UpdateWorkerRequest.cs @@ -1,3 +1,5 @@ +using System.Collections.Generic; + namespace CncModels.Dto.Worker { /// @@ -6,5 +8,8 @@ namespace CncModels.Dto.Worker public class UpdateWorkerRequest { public string Name { get; set; } + public string Code { get; set; } + /// 绑定的机床ID列表(全量替换) + public List MachineIds { get; set; } } } diff --git a/src/CncService/Impl/WorkerService.cs b/src/CncService/Impl/WorkerService.cs index 24c1047..62ee668 100644 --- a/src/CncService/Impl/WorkerService.cs +++ b/src/CncService/Impl/WorkerService.cs @@ -79,7 +79,19 @@ namespace CncService.Impl CreatedAt = DateTime.Now, UpdatedAt = DateTime.Now }; - return _workerRepository.Create(entity); + var workerId = _workerRepository.Create(entity); + + // 绑定机床 + if (request.MachineIds != null) + { + foreach (var mid in request.MachineIds) + { + var binding = _workerMachineRepository.GetByMachineId(mid); + if (binding != null) throw new BusinessException(ErrorCode.Conflict, $"机床(ID={mid})已绑定其他工人"); + _workerMachineRepository.Create(workerId, mid); + } + } + return workerId; } /// @@ -91,8 +103,27 @@ namespace CncService.Impl if (entity == null) throw new BusinessException(ErrorCode.NotFound, "员工未找到"); entity.Name = request.Name ?? entity.Name; + if (!string.IsNullOrWhiteSpace(request.Code) && request.Code != entity.Code) + { + var dup = _workerRepository.GetByCode(request.Code); + if (dup != null) throw new BusinessException(ErrorCode.Conflict, "工号已存在"); + entity.Code = request.Code; + } entity.UpdatedAt = DateTime.Now; - return _workerRepository.Update(entity); + _workerRepository.Update(entity); + + // 全量替换机床绑定 + if (request.MachineIds != null) + { + _workerMachineRepository.DeleteByWorkerId(id); + foreach (var mid in request.MachineIds) + { + var binding = _workerMachineRepository.GetByMachineId(mid); + if (binding != null) throw new BusinessException(ErrorCode.Conflict, $"机床(ID={mid})已绑定其他工人"); + _workerMachineRepository.Create(id, mid); + } + } + return true; } ///