From 0ac65b10a59bcca5b22bcf03086c8aaa36a8a525 Mon Sep 17 00:00:00 2001 From: zjh <2207896513@qq.com> Date: 星期四, 12 六月 2025 20:42:41 +0800 Subject: [PATCH] 1,签收送货单接口,添加签收人;2.来料检接口,添加到货时间字段 --- StandardPda/MES.Service/service/BasicData/MesCustomerManager.cs | 170 +++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 125 insertions(+), 45 deletions(-) diff --git a/StandardPda/MES.Service/service/BasicData/MesCustomerManager.cs b/StandardPda/MES.Service/service/BasicData/MesCustomerManager.cs index d771095..13668bc 100644 --- a/StandardPda/MES.Service/service/BasicData/MesCustomerManager.cs +++ b/StandardPda/MES.Service/service/BasicData/MesCustomerManager.cs @@ -1,6 +1,7 @@ 锘縰sing MES.Service.DB; using MES.Service.Dto.webApi; using MES.Service.Modes; +using MES.Service.util; using SqlSugar; namespace MES.Service.service.BasicData; @@ -16,20 +17,21 @@ switch (customer.Type) { case "0": - if (UpdateCustomerStatus(db, entity.Id, "A")) + if (UpdateCustomerStatusBatch(db, entity, "A")) return 1; break; case "1": - if (UpdateCustomerStatus(db, entity.Id, "B")) + if (UpdateCustomerStatusBatch(db, entity, "B")) return 1; break; case "3": - if (DeleteCustomer(db, entity.Id)) + if (DeleteCustomerBatch(db, entity)) return 1; break; case "2": case "4": - if (InsertOrUpdate(db, entity)) + //鍏堝垹闄わ紝鍚庢柊澧� + if (InsertOrUpdateBatch(db, entity)) return 1; break; default: @@ -43,8 +45,18 @@ public bool SaveList(List<ErpCustomer> customers) { - var list = customers.Select(GetSysDepartment).ToList(); - var groupBy = list.GroupBy(s => s.Type) + //var list = customers.Select(GetSysDepartment).ToList(); + + //鍥犱负U9鐨勬ā寮忥紝浼氬鑷村缁勭粐鐨勫熀纭�鏁版嵁琚鐞嗘垚List<>,鎵�浠ラ渶瑕佷慨鏀规柟娉曪紝SaveLits涓簲璇ユ槸鎶婂崟鏉″鐞嗗嚭鏉ョ殑List鏁版嵁鍔犺捣鏉ワ紝鑰屼笉鏄箣鍓嶇殑鏂规硶澶勭悊銆� + List<MesCustomer> mes_customers = new(); + foreach (var customer in customers) + { + var mesCustomerList = GetSysDepartment(customer); + if (mesCustomerList != null) + mes_customers.AddRange(mesCustomerList); + } + + var groupBy = mes_customers.GroupBy(s => s.Type) .ToDictionary(g => g.Key, g => g.ToList()); return UseTransaction(db => @@ -53,11 +65,13 @@ switch (customerGroup.Key) { case "0": - if (!UpdateCustomerStatusBatch(db, customerGroup.Value,"A")) + if (!UpdateCustomerStatusBatch(db, customerGroup.Value, + "A")) throw new NotImplementedException("鍚敤澶辫触"); break; case "1": - if (!UpdateCustomerStatusBatch(db, customerGroup.Value,"B")) + if (!UpdateCustomerStatusBatch(db, customerGroup.Value, + "B")) throw new NotImplementedException("绂佺敤澶辫触"); break; case "3": @@ -110,39 +124,78 @@ throw new NotImplementedException("鍒犻櫎澶辫触"); } - private MesCustomer GetSysDepartment(ErpCustomer customer) + private List<MesCustomer> GetSysDepartment(ErpCustomer customer) { - return new MesCustomer + var db = SqlSugarHelper.GetInstance(); + //var id = db.Insertable(insertObj).ExecuteReturnIdentity(); + //鏍规嵁搴忓垪鑾峰彇鏂扮殑MES_ID + + List<MesCustomer> customers = new(); + + foreach (var erpDetail in customer.ErpDetails) { - Id = Convert.ToDecimal(customer.Id), - CustNo = customer.FNumber, - CustSname = customer.FShortName, - CustName = customer.FName, - Anred = customer.FContact, - Telf1 = customer.FMobilephone, - Fseller = customer.FSeller, + 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, + OrgId = erpDetail.FUseOrgId, + TableType = "MES_CUSTOMER" + }; + 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()); + } - /// <summary> - /// 鎺ュ彛瀛楁璋冩暣锛氭爣鍑嗙増鎺ュ彛鏂板 ERP鍗曟嵁鐘舵�� 瀛楁銆� - /// </summary> - /// <remarks> - /// 淇敼浜猴細<姹犲崡楠�> - /// 淇敼鏃ユ湡锛�<2024-12-27> - /// 淇敼璇存槑锛� - /// - 鍘熶唬鐮侊細绌� - /// - 淇敼鍚庯細 - ///FDOCUMENTSTATUS = customer.FDocumentStatus, - /// </remarks> - FDOCUMENTSTATUS = customer.FDocumentStatus, + 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 + }; - Fforbidstatus = customer.FForbidStatus, - Remark = customer.fremarks, - CreateDate = DateTime.Now, - CreateOrg= Convert.ToDecimal(customer.FCreateOrgId), - UseOrg= Convert.ToDecimal(customer.FUseOrgId), - Company = "1000", - Factory = "1000" - }; + 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; } private bool UpdateCustomerStatusBatch(SqlSugarScope db, @@ -172,12 +225,35 @@ private bool DeleteCustomerBatch(SqlSugarScope db, List<MesCustomer> customerList) { - var ids = customerList.Select(it => it.Id).ToArray(); - var deleteByIds = db.Deleteable<MesCustomer>().In(ids).ExecuteCommand(); - if (deleteByIds > 0) - return true; + // 鎻愬彇鎵�鏈夐渶瑕佺殑 MesId 缁勫悎 + var mesIds = customerList.Select(customer => customer.Id.ToString()) + .ToList(); - throw new NotImplementedException("鍒犻櫎澶辫触"); + // 浣跨敤杩欎簺 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; + return true; + //throw new NotImplementedException("鍒犻櫎澶辫触"); } /// <summary> @@ -212,9 +288,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; @@ -223,6 +299,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