From dd5eb6d0b30ce8291febffdaab98aeb5b93fad01 Mon Sep 17 00:00:00 2001 From: 南骏 池 <chiffly@163.com> Date: 星期二, 21 一月 2025 13:30:31 +0800 Subject: [PATCH] 1.客户信息接口将id存到关系表,获取新id存入数据库 2.客户信息删除方法优化. --- StandardPda/MES.Service/service/BasicData/MesCustomerManager.cs | 116 ++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 97 insertions(+), 19 deletions(-) diff --git a/StandardPda/MES.Service/service/BasicData/MesCustomerManager.cs b/StandardPda/MES.Service/service/BasicData/MesCustomerManager.cs index c58718f..61f49d5 100644 --- a/StandardPda/MES.Service/service/BasicData/MesCustomerManager.cs +++ b/StandardPda/MES.Service/service/BasicData/MesCustomerManager.cs @@ -1,9 +1,12 @@ -锘縰sing MES.Service.DB; +锘縰sing AngleSharp.Dom; +using Castle.Core.Resource; +using MES.Service.DB; using MES.Service.Dto.webApi; using MES.Service.Modes; using MES.Service.util; using SqlSugar; using System.Collections.Generic; +using System.Security.Cryptography; namespace MES.Service.service.BasicData; @@ -31,6 +34,7 @@ break; case "2": case "4": + //鍏堝垹闄わ紝鍚庢柊澧� if (InsertOrUpdateBatch(db, entity)) return 1; break; @@ -126,25 +130,75 @@ private List<MesCustomer> GetSysDepartment(ErpCustomer customer) { - //var db = SqlSugarHelper.GetInstance(); + var db = SqlSugarHelper.GetInstance(); //var id = db.Insertable(insertObj).ExecuteReturnIdentity(); + //鏍规嵁搴忓垪鑾峰彇鏂扮殑MES_ID + + List<MesCustomer> customers = new List<MesCustomer>(); - customers = customer.ErpDetails.Select(ErpDetails => new MesCustomer + foreach (ErpDetail erpDetail in customer.ErpDetails) { - Id = GetSeqUtil.GetSeq("U9_MES_ID"), - CustNo = customer.FNumber, - CustSname = customer.FShortName, - CustName = customer.FName, - Anred = customer.FContact, - Telf1 = customer.FMobilephone, - Fseller = customer.FSeller, - CUSTOMER_STATE = customer.State, - Fforbidstatus = customer.FForbidStatus, - UseOrg = Convert.ToDecimal(ErpDetails.FUseOrgId), + decimal mesId = 0; + var exists = db.Queryable<MesLinkU9>().Any(u => u.U9Id == customer.Id && u.OrgId == erpDetail.FUseOrgId && u.TableType == "MES_CUSTOMER"); + if (!exists) + { + mesId = GetSeqUtil.GetSeq("U9_MES_ID"); + var entity = new MesLinkU9 + { + CreateDate = DateTime.Now, + MesId = mesId.ToString(), + U9Id = customer.Id.ToString(), + OrgId = erpDetail.FUseOrgId.ToString(), + TableType = "MES_CUSTOMER" - }).ToList(); + }; + var insertUser = db.Insertable(entity).ExecuteCommand(); + } + else + { + mesId = Convert.ToDecimal(db.Queryable<MesLinkU9>() + .Where(u => u.U9Id == customer.Id && u.OrgId == erpDetail.FUseOrgId && u.TableType == "MES_CUSTOMER") + .Select(u => u.MesId) // 閫夋嫨 MesId 瀛楁 + .First()); + } + + var mesCustomer = new MesCustomer + { + Id = mesId, + CustNo = customer.FNumber, + CustSname = customer.FShortName, + CustName = customer.FName, + Anred = customer.FContact, + Telf1 = customer.FMobilephone, + Fseller = customer.FSeller, + CUSTOMER_STATE = customer.State, + Fforbidstatus = customer.FForbidStatus, + UseOrg = Convert.ToDecimal(erpDetail.FUseOrgId), + Type = customer.Type + }; + + customers.Add(mesCustomer); + } + + + + + //customers = customer.ErpDetails.Select(ErpDetails => new MesCustomer + //{ + // Id = GetSeqUtil.GetSeq("U9_MES_ID"), + // CustNo = customer.FNumber, + // CustSname = customer.FShortName, + // CustName = customer.FName, + // Anred = customer.FContact, + // Telf1 = customer.FMobilephone, + // Fseller = customer.FSeller, + // CUSTOMER_STATE = customer.State, + // Fforbidstatus = customer.FForbidStatus, + // UseOrg = Convert.ToDecimal(ErpDetails.FUseOrgId), + + //}).ToList(); return customers; } @@ -176,8 +230,28 @@ private bool DeleteCustomerBatch(SqlSugarScope db, List<MesCustomer> customerList) { - var ids = customerList.Select(it => it.Id).ToArray(); - var deleteByIds = db.Deleteable<MesCustomer>().In(ids).ExecuteCommand(); + // 鎻愬彇鎵�鏈夐渶瑕佺殑 MesId 缁勫悎 + var mesIds = customerList.Select(customer => customer.Id.ToString()).ToList(); + + // 浣跨敤杩欎簺 MesId 鍘绘煡璇� MesLinkU9 琛紝鎵惧埌瀵瑰簲鐨� U9Id + var u9Ids = db.Queryable<MesLinkU9>() + .Where(u => mesIds.Contains(u.MesId) && u.TableType == "MES_CUSTOMER") + .Select(u => u.U9Id) + .Distinct() // 搴旂敤 Distinct 鍘婚噸 + .ToList(); + + // 鏍规嵁 U9Id 鎵惧埌鎵�鏈夊搴旂殑 MesId锛岃繘琛屽垹闄� + // 娉ㄦ剰锛氳繖閲屽亣璁炬偍纭疄鎯宠鍒犻櫎杩欎簺璁板綍銆傚鏋滀笉纭畾锛岃鍏堟煡璇互楠岃瘉缁撴灉銆� + var idsToDelete = db.Queryable<MesLinkU9>() + .Where(u => u9Ids.Contains(u.U9Id) && u.TableType == "MES_CUSTOMER") + .Select(u => u.MesId) + .Distinct() // 搴旂敤 Distinct 鍘婚噸 + .ToList(); + + + //浠ヤ笂鏂规硶鍙互鑰冭檻浼樺寲锛屽皢U9id鎵句釜鏂板缓瀛楁瀛樺湪MES_CUSTOMER涓紝灏卞彲浠ュ皯涓�姝ユ煡璇簡銆� + + var deleteByIds = db.Deleteable<MesCustomer>().In(idsToDelete).ExecuteCommand(); if (deleteByIds > 0) return true; @@ -216,9 +290,9 @@ /// 鏂颁唬鐮� private bool InsertOrUpdate(SqlSugarScope db, MesCustomer entity) { - db.Deleteable<MesCustomer>() - .Where(s => s.Id == entity.Id) - .ExecuteCommand(); + //db.Deleteable<MesCustomer>() + // .Where(s => s.Id == entity.Id) + // .ExecuteCommand(); var insert = db.Insertable(entity).ExecuteCommand(); return insert > 0; @@ -227,6 +301,10 @@ private bool InsertOrUpdateBatch(SqlSugarScope db, List<MesCustomer> customerList) { + //鍏堝垹闄わ紝鍐嶆柊澧� + if (!DeleteCustomerBatch(db, customerList)) + return false; + foreach (var entity in customerList) if (!InsertOrUpdate(db, entity)) return false; -- Gitblit v1.9.3