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 |  136 +++++++++++++++++++++++++++++++++++----------
 1 files changed, 106 insertions(+), 30 deletions(-)

diff --git a/StandardPda/MES.Service/service/BasicData/MesCustomerManager.cs b/StandardPda/MES.Service/service/BasicData/MesCustomerManager.cs
index c58718f..13668bc 100644
--- a/StandardPda/MES.Service/service/BasicData/MesCustomerManager.cs
+++ b/StandardPda/MES.Service/service/BasicData/MesCustomerManager.cs
@@ -3,7 +3,6 @@
 using MES.Service.Modes;
 using MES.Service.util;
 using SqlSugar;
-using System.Collections.Generic;
 
 namespace MES.Service.service.BasicData;
 
@@ -31,6 +30,7 @@
                     break;
                 case "2":
                 case "4":
+                    //鍏堝垹闄わ紝鍚庢柊澧�
                     if (InsertOrUpdateBatch(db, entity))
                         return 1;
                     break;
@@ -48,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)
@@ -67,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":
@@ -126,26 +126,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>();
+        List<MesCustomer> customers = new();
 
-        customers = customer.ErpDetails.Select(ErpDetails => new MesCustomer
+        foreach (var 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,
+                    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());
+            }
 
-        }).ToList();
-        
+            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,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>
@@ -216,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;
@@ -227,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