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; } ///