啊鑫
2025-01-22 eb744ecfecc0f1b6d9c0999c65bc740d93e30eda
StandardPda/MES.Service/service/BasicData/MesCustomerManager.cs
@@ -1,12 +1,8 @@
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;
@@ -52,14 +48,12 @@
        //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)
@@ -71,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":
@@ -134,12 +130,14 @@
        //var id = db.Insertable(insertObj).ExecuteReturnIdentity();
        //根据序列获取新的MES_ID
        
        List<MesCustomer> customers = new List<MesCustomer>();
        List<MesCustomer> customers = new();
        foreach (ErpDetail erpDetail in customer.ErpDetails)
        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");
@@ -147,17 +145,19 @@
                {
                    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());
            }
@@ -226,11 +226,13 @@
        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")
            .Where(u =>
                mesIds.Contains(u.MesId) && u.TableType == "MES_CUSTOMER")
                       .Select(u => u.U9Id)
                       .Distinct() // 应用 Distinct 去重
                       .ToList();
@@ -246,11 +248,12 @@
        //以上方法可以考虑优化,将U9id找个新建字段存在MES_CUSTOMER中,就可以少一步查询了。
        var deleteByIds = db.Deleteable<MesCustomer>().In(idsToDelete).ExecuteCommand();
        if (deleteByIds > 0)
        var deleteByIds = db.Deleteable<MesCustomer>().In(idsToDelete)
            .ExecuteCommand();
        // if (deleteByIds > 0)
        //     return true;
            return true;
        throw new NotImplementedException("删除失败");
        //throw new NotImplementedException("删除失败");
    }
    /// <summary>