From 5e9162834262836280dfb143e9872f2a53876169 Mon Sep 17 00:00:00 2001
From: wbc <2597324127@qq.com>
Date: 星期六, 19 七月 2025 13:54:06 +0800
Subject: [PATCH] 生产订单添加当前推送时间
---
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