From ca43cd8bfe6e4e38ad3c235fbf5d3df31c78bfb7 Mon Sep 17 00:00:00 2001 From: "DEVICE8\\12494" Date: Thu, 4 May 2023 15:40:17 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=BB=84=E7=BB=87=E7=AE=A1?= =?UTF-8?q?=E7=90=86=EF=BC=8C=E5=B7=A5=E4=BD=8D=E7=BB=91=E5=AE=9A=E5=B7=A5?= =?UTF-8?q?=E5=BA=8F=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BasicData/Tnb.BasicData/BasProcessService.cs | 2 +- system/Tnb.Systems/Permission/DepartmentService.cs | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/BasicData/Tnb.BasicData/BasProcessService.cs b/BasicData/Tnb.BasicData/BasProcessService.cs index 725de247..db43c8ae 100644 --- a/BasicData/Tnb.BasicData/BasProcessService.cs +++ b/BasicData/Tnb.BasicData/BasProcessService.cs @@ -68,7 +68,7 @@ namespace Tnb.BasicData if (organize != null) { var whereExpr = Expressionable.Create(); - var curProcessIds = await db.Queryable().Where(it => it.station_id == organize.Id).Select(it => it.process_id).ToListAsync(); + var curProcessIds = await db.Queryable().Where(it => it.station_id == organize.Id).Select(it => it.process_id).Distinct().ToListAsync(); if (curProcessIds?.Count > 0) { whereExpr = whereExpr.And((a, b) => curProcessIds.Contains(a.id)).Or((a, b) => string.IsNullOrEmpty(b.process_id)); diff --git a/system/Tnb.Systems/Permission/DepartmentService.cs b/system/Tnb.Systems/Permission/DepartmentService.cs index 5d45b5a7..3dc97348 100644 --- a/system/Tnb.Systems/Permission/DepartmentService.cs +++ b/system/Tnb.Systems/Permission/DepartmentService.cs @@ -472,7 +472,9 @@ public class DepartmentService : IDepartmentService, IDynamicApiController, ITra { var dic = _repository.GetList().ToDictionary(x => x.FullName, x => x.Id); var procList = jsonObj.Value("rowprocess"); - var basProcessStationList = procList.Select(x => new BasProcessStation + var pids = procList.Select(x => x.Value("id")).Distinct().ToList(); + var dbProcIds = await _repository.AsSugarClient().Queryable().Where(it => pids.Contains(it.process_id)).Select(it => it.process_id).ToListAsync(); + var basProcessStationList = procList.Where(x => !dbProcIds.Contains(x.Value("id"))).Select(x => new BasProcessStation { id = SnowflakeIdHelper.NextId(), org_id = dic.ContainsKey(x.Value("org_id")) ? dic[x.Value("org_id")] : "", @@ -483,7 +485,11 @@ public class DepartmentService : IDepartmentService, IDynamicApiController, ITra create_id = _userManager.UserId, create_time = DateTime.Now, }).ToList(); - isOK = await _repository.AsSugarClient().Insertable(basProcessStationList).ExecuteCommandAsync(); + //数据库中不存在则插入 + if (basProcessStationList?.Count > 0) + { + isOK = await _repository.AsSugarClient().Insertable(basProcessStationList).ExecuteCommandAsync(); + } //工位与工序解绑操作 //>1 根据传递的工位Id获取绑定过的工序Id var processIds = await _repository.AsSugarClient().Queryable().Where(it => it.station_id == input.id).Select(it => it.process_id).ToListAsync();