From 731b5b8b9d5826c5e7343d0a7b5254731a522273 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期三, 22 十月 2025 15:37:15 +0800
Subject: [PATCH] 逻辑优化
---
Services/MesOrderStaManager.cs | 91 ++++++++++++++++++++++-----------------------
1 files changed, 44 insertions(+), 47 deletions(-)
diff --git a/Services/MesOrderStaManager.cs b/Services/MesOrderStaManager.cs
index 37601dd..b00dd35 100644
--- a/Services/MesOrderStaManager.cs
+++ b/Services/MesOrderStaManager.cs
@@ -108,66 +108,64 @@
if (womdaa == null) throw new Exception("宸ュ崟涓嶅瓨鍦�");
MesQaItemsDetect02 latestFirst = null;
- var clearMaShout = false; // 鏍囪锛氭槸鍚﹂渶瑕佹竻绌洪�佹鏃堕棿
+ var clearMaShout = false;
- if (entity.Flag == 1)
+ // 鍘熸潵闄愬埗 entity.Flag == 1锛岃繖閲屽彇娑堥檺鍒讹細浠讳綍淇濆瓨鍔ㄤ綔閮借瘎浼伴妫�缁撴灉
+ // 琛岀骇閿侀槻骞跺彂
+ Db.Ado.ExecuteCommand("SELECT ID FROM WOMDAA WHERE DAA001 = :BILL_NO FOR UPDATE",
+ new SugarParameter("BILL_NO", womdaa.Daa001));
+
+ // 褰撳墠鏈�鏂伴妫�
+ latestFirst = Db.Queryable<MesQaItemsDetect02>()
+ .Where(s => s.Aufnr == womdaa.Daa001 && s.Ftype == FirstCheckType && (s.Fcancel == null || s.Fcancel != "Y"))
+ .OrderBy(s => s.CreateDate, OrderByType.Desc)
+ .First();
+
+ // 缁撴灉褰掍竴锛堥槻姝㈠熬閮ㄧ┖鏍兼垨澶у皬鍐欙級锛氬彲鑳芥潵婧愪簬鎺ュ彛/鐢ㄦ埛褰曞叆
+ var latestResult = latestFirst?.FcheckResu?.Trim();
+
+ // 浠呭湪涓嶅瓨鍦ㄩ妫�鍗曟椂鍒涘缓
+ if (latestFirst == null)
{
- // 琛岀骇閿侀槻骞跺彂
- Db.Ado.ExecuteCommand("SELECT ID FROM WOMDAA WHERE DAA001 = :BILL_NO FOR UPDATE",
- new SugarParameter("BILL_NO", womdaa.Daa001));
+ Db.Ado.ExecuteCommand(
+ "BEGIN AUTOMATIC_IPQC_FIRST_CHECK(:BILL_NO); END;",
+ new SugarParameter("BILL_NO", womdaa.Daa001, System.Data.DbType.String));
- // 褰撳墠鏈�鏂伴妫�
latestFirst = Db.Queryable<MesQaItemsDetect02>()
.Where(s => s.Aufnr == womdaa.Daa001 && s.Ftype == FirstCheckType && (s.Fcancel == null || s.Fcancel != "Y"))
.OrderBy(s => s.CreateDate, OrderByType.Desc)
.First();
- // 浠呭湪涓嶅瓨鍦ㄩ妫�鍗曟椂鍒涘缓锛堝師鈥� 涓嶅悎閫� 鈥濆凡缁熶竴鏀逛负鈥� 涓嶅悎鏍� 鈥濓紝涓斾笉鍚堟牸涓嶅啀瑙﹀彂閲嶅缓锛�
- var needCreate = latestFirst == null;
-
- if (needCreate)
+ if (latestFirst != null)
{
- Db.Ado.ExecuteCommand(
- "BEGIN AUTOMATIC_IPQC_FIRST_CHECK(:BILL_NO); END;",
- new SugarParameter("BILL_NO", womdaa.Daa001, System.Data.DbType.String));
-
- // 閲嶆柊鑾峰彇鏈�鏂伴妫�鍗�
- latestFirst = Db.Queryable<MesQaItemsDetect02>()
- .Where(s => s.Aufnr == womdaa.Daa001 && s.Ftype == FirstCheckType && (s.Fcancel == null || s.Fcancel != "Y"))
- .OrderBy(s => s.CreateDate, OrderByType.Desc)
- .First();
-
- if (latestFirst != null)
- {
- var ts = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
- Db.Updateable<MesQaItemsDetect02>()
- .SetColumns(s => s.Remeke == $"宸ユ帶鏈轰簬{ts}鑷姩鍒涘缓鐨勯妫�鍗�(棣栨鍒涘缓)")
- .Where(s => s.Id == latestFirst.Id)
- .ExecuteCommand();
- }
+ var ts = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ Db.Updateable<MesQaItemsDetect02>()
+ .SetColumns(s => s.Remeke == $"宸ユ帶鏈轰簬{ts}鑷姩鍒涘缓鐨勯妫�鍗�(棣栨鍒涘缓)")
+ .Where(s => s.Id == latestFirst.Id)
+ .ExecuteCommand();
+ }
+ }
+ else
+ {
+ // 鏈�鏂扮粨鏋滀负鈥滀笉鍚堟牸鈥� => 娓呯┖閫佹鏃堕棿锛屼笉閲嶅缓
+ if (string.Equals(latestResult, FirstCheckResultNG, StringComparison.OrdinalIgnoreCase))
+ {
+ clearMaShout = true;
+ entity.MaShoutTime = null;
+ entity.remark = $"鏈�鏂伴妫�缁撴灉鈥渰FirstCheckResultNG}鈥濓紝宸叉竻绌洪�佹鏃堕棿锛屽緟鍐嶆閫佹";
}
else
{
- // 鏈�鏂扮粨鏋滀负鈥滀笉鍚堟牸鈥� => 浠呮竻绌洪�佹鏃堕棿锛屼笉閲嶅缓
- if (latestFirst != null && latestFirst.FcheckResu == FirstCheckResultNG)
- {
- clearMaShout = true;
- entity.MaShoutTime = null;
- entity.remark = $"鏈�鏂伴妫�缁撴灉鈥渰FirstCheckResultNG}鈥濓紝宸叉竻绌洪�佹鏃堕棿锛屽緟鍐嶆閫佹";
- }
- else if (latestFirst != null)
- {
- // 鍏跺畠缁撴灉锛堝鍚堟牸锛夋洿鏂板娉�
- var ts = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
- Db.Updateable<MesQaItemsDetect02>()
- .SetColumns(s => s.Remeke == $"宸ユ帶鏈轰簬{ts}棣栨缁撴灉锛歿latestFirst.FcheckResu}")
- .Where(s => s.Id == latestFirst.Id)
- .ExecuteCommand();
- }
+ // 鍏跺畠缁撴灉鏇存柊澶囨敞
+ var ts = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ Db.Updateable<MesQaItemsDetect02>()
+ .SetColumns(s => s.Remeke == $"宸ユ帶鏈轰簬{ts}棣栨缁撴灉锛歿latestResult}")
+ .Where(s => s.Id == latestFirst.Id)
+ .ExecuteCommand();
}
}
- // 鍘熸姤宸�/鏁伴噰閿氱偣閫昏緫淇濇寔
+ // 鍚庣画閫昏緫淇濇寔
var mesReporting = Db.Queryable<MesReporting>()
.Where(s => s.BillNo == womdaa.Daa001)
.OrderByDescending(s => s.Id)
@@ -230,7 +228,7 @@
.OrderBy(x => x.CreateDate, OrderByType.Desc)
.First();
- if (sjRecord != null && sjRecord.FcheckResu == FirstCheckResultOK)
+ if (sjRecord != null && string.Equals(sjRecord.FcheckResu?.Trim(), FirstCheckResultOK, StringComparison.OrdinalIgnoreCase))
{
QualifiedInspection(new OrderMachineDto
{
@@ -244,7 +242,6 @@
}
}
- // 鏇存柊宸ュ崟鐘舵�佽〃
var upd = Db.Updateable<MesOrderSta>()
.SetColumnsIF(clearMaShout, s => s.MaShoutTime == null)
.SetColumnsIF(!clearMaShout && entity.MaShoutTime != null, s => s.MaShoutTime == entity.MaShoutTime)
--
Gitblit v1.9.3