| | |
| | | using AngleSharp.Dom; |
| | | using Castle.Core.Resource; |
| | | using MES.Service.DB; |
| | | 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; |
| | | |
| | |
| | | //var list = customers.Select(GetSysDepartment).ToList(); |
| | | |
| | | //因为U9的模式,会导致多组织的基础数据被处理成List<>,所以需要修改方法,SaveLits中应该是把单条处理出来的List数据加起来,而不是之前的方法处理。 |
| | | List<MesCustomer> mes_customers = new List<MesCustomer>(); |
| | | foreach (ErpCustomer customer in customers) |
| | | 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) |
| | |
| | | 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": |
| | |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | //var id = db.Insertable(insertObj).ExecuteReturnIdentity(); |
| | | //根据序列获取新的MES_ID |
| | | |
| | | List<MesCustomer> customers = new List<MesCustomer>(); |
| | | |
| | | foreach (ErpDetail erpDetail in customer.ErpDetails) |
| | | List<MesCustomer> customers = new(); |
| | | |
| | | foreach (var erpDetail in customer.ErpDetails) |
| | | { |
| | | decimal mesId = 0; |
| | | var exists = db.Queryable<MesLinkU9>().Any(u => u.U9Id == customer.Id && u.OrgId == erpDetail.FUseOrgId && u.TableType == "MES_CUSTOMER"); |
| | | 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"); |
| | |
| | | { |
| | | CreateDate = DateTime.Now, |
| | | MesId = mesId.ToString(), |
| | | U9Id = customer.Id.ToString(), |
| | | OrgId = erpDetail.FUseOrgId.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") |
| | | .Where(u => |
| | | u.U9Id == customer.Id && |
| | | u.OrgId == erpDetail.FUseOrgId && |
| | | u.TableType == "MES_CUSTOMER") |
| | | .Select(u => u.MesId) // 选择 MesId 字段 |
| | | .First()); |
| | | } |
| | |
| | | |
| | | customers.Add(mesCustomer); |
| | | } |
| | | |
| | | |
| | | //customers = customer.ErpDetails.Select(ErpDetails => new MesCustomer |
| | | //{ |
| | | // Id = GetSeqUtil.GetSeq("U9_MES_ID"), |
| | |
| | | // UseOrg = Convert.ToDecimal(ErpDetails.FUseOrgId), |
| | | |
| | | //}).ToList(); |
| | | |
| | | |
| | | return customers; |
| | | } |
| | | |
| | |
| | | List<MesCustomer> customerList) |
| | | { |
| | | // 提取所有需要的 MesId 组合 |
| | | var mesIds = customerList.Select(customer => customer.Id.ToString()).ToList(); |
| | | 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(); |
| | | .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(); |
| | | .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; |
| | | |
| | | throw new NotImplementedException("删除失败"); |
| | | var deleteByIds = db.Deleteable<MesCustomer>().In(idsToDelete) |
| | | .ExecuteCommand(); |
| | | // if (deleteByIds > 0) |
| | | // return true; |
| | | return true; |
| | | //throw new NotImplementedException("删除失败"); |
| | | } |
| | | |
| | | /// <summary> |