From b409e3c2f7334ec4e142666190d730de2a414b71 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期三, 22 十月 2025 15:31:16 +0800
Subject: [PATCH] 逻辑优化
---
Services/MesOrderStaManager.cs | 52 ++++++++++++++++++++++++++--------------------------
1 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/Services/MesOrderStaManager.cs b/Services/MesOrderStaManager.cs
index a459fb6..37601dd 100644
--- a/Services/MesOrderStaManager.cs
+++ b/Services/MesOrderStaManager.cs
@@ -94,16 +94,21 @@
/// 鏇存柊鏈哄櫒鏃堕棿骞跺鐞嗛妫�
/// 鍙樻洿璇存槑锛�
/// 1) 鏈�鏂伴妫�缁撴灉涓衡�滀笉鍚堟牸鈥濇椂锛氬彧娓呯┖ MA_SHOUT_TIME锛堥�佹鍛煎彨鏃堕棿锛夛紝涓嶉噸寤洪妫�鍗�
- /// 2) 鑻ヤ笉瀛樺湪棣栨鍗曟垨鏈�鏂伴妫�缁撴灉涓衡�滀笉鍚堟牸鈥濇椂锛氬厑璁哥户缁垱寤猴紙閲嶅缓锛夐妫�鍗�
- /// 3) 棣栨鍚堟牸涓旈�佹鏃堕棿 >= 璋冩満寮�濮嬫椂闂存椂锛氬啓鍏ヨ皟鏈哄畬鎴愭椂闂翠笌寮�宸ユ椂闂达紙娌跨敤鍘熼�昏緫锛�
+ /// 2) 鑻ヤ笉瀛樺湪棣栨鍗曟椂锛氬厑璁稿垱寤猴紙閲嶅缓锛夐妫�鍗�
+ /// 3) 棣栨鍚堟牸涓旈�佹鏃堕棿 >= 璋冩満寮�濮嬫椂闂存椂锛氬啓鍏ヨ皟鏈哄畬鎴愭椂闂翠笌寮�宸ユ椂闂�
/// </summary>
public bool ChangeMachineTime(MesOrderSta entity)
{
+ const string FirstCheckType = "棣栨";
+ const string FirstCheckResultOK = "鍚堟牸";
+ const string FirstCheckResultNG = "涓嶅悎鏍�";
+
var womdaa = Db.Queryable<Womdaa>()
.Where(s => s.Id == entity.OrderId).First();
if (womdaa == null) throw new Exception("宸ュ崟涓嶅瓨鍦�");
MesQaItemsDetect02 latestFirst = null;
+ var clearMaShout = false; // 鏍囪锛氭槸鍚﹂渶瑕佹竻绌洪�佹鏃堕棿
if (entity.Flag == 1)
{
@@ -113,32 +118,30 @@
// 褰撳墠鏈�鏂伴妫�
latestFirst = Db.Queryable<MesQaItemsDetect02>()
- .Where(s => s.Aufnr == womdaa.Daa001 && s.Ftype == "棣栨" && (s.Fcancel == null || s.Fcancel != "Y"))
+ .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 || latestFirst.FcheckResu == "涓嶅悎鏍�";
+ // 浠呭湪涓嶅瓨鍦ㄩ妫�鍗曟椂鍒涘缓锛堝師鈥� 涓嶅悎閫� 鈥濆凡缁熶竴鏀逛负鈥� 涓嶅悎鏍� 鈥濓紝涓斾笉鍚堟牸涓嶅啀瑙﹀彂閲嶅缓锛�
+ var needCreate = latestFirst == null;
if (needCreate)
{
- // 涓嶅瓨鍦� 鎴� 鈥滀笉鍚堟牸鈥� => 閲嶆柊鍒涘缓棣栨鍗�
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 == "棣栨" && (s.Fcancel == null || s.Fcancel != "Y"))
+ .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");
- var trigger = latestFirst.FcheckResu == "涓嶅悎鏍�" ? "涓嶅悎鏍奸噸寤�" : "棣栨鍒涘缓";
Db.Updateable<MesQaItemsDetect02>()
- .SetColumns(s => s.Remeke == $"宸ユ帶鏈轰簬{ts}鑷姩鍒涘缓鐨勯妫�鍗�({trigger})")
+ .SetColumns(s => s.Remeke == $"宸ユ帶鏈轰簬{ts}鑷姩鍒涘缓鐨勯妫�鍗�(棣栨鍒涘缓)")
.Where(s => s.Id == latestFirst.Id)
.ExecuteCommand();
}
@@ -146,19 +149,15 @@
else
{
// 鏈�鏂扮粨鏋滀负鈥滀笉鍚堟牸鈥� => 浠呮竻绌洪�佹鏃堕棿锛屼笉閲嶅缓
- if (latestFirst != null && latestFirst.FcheckResu == "涓嶅悎鏍�")
+ if (latestFirst != null && latestFirst.FcheckResu == FirstCheckResultNG)
{
- Db.Updateable<MesOrderSta>()
- .SetColumns(s => s.MaShoutTime == null)
- .Where(s => s.Id == entity.Id)
- .ExecuteCommand();
-
+ clearMaShout = true;
entity.MaShoutTime = null;
- entity.remark = $"鏈�鏂伴妫�缁撴灉鈥滀笉鍚堟牸鈥濓紝宸叉竻绌洪�佹鏃堕棿锛屽緟鍐嶆閫佹";
+ 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}")
@@ -201,7 +200,6 @@
}
catch (Exception ex)
{
- // 璁板綍寮傚父浣嗕笉闃绘娴佺▼锛堜繚鐣欏師娉ㄩ噴锛�
Console.WriteLine($"鍙戦�佹暟鎹埛鏂拌姹傛椂鍑洪敊: {ex.Message}");
}
@@ -220,7 +218,7 @@
Db.Insertable<MesAnchors>(eAnchors).ExecuteCommand();
// 鑻ラ�佹鏃堕棿瀛樺湪涓旀渶鏂伴妫�鍚堟牸 => 鍐欒皟鏈哄畬鎴愪笌寮�宸ユ椂闂�
- if (!string.IsNullOrEmpty(entity.MaShoutTime))
+ if (!clearMaShout && !string.IsNullOrEmpty(entity.MaShoutTime))
{
if (DateTime.TryParse(entity.MaShoutTime, out var sjTime) &&
DateTime.TryParse(entity.MaStartTime, out var startTime) &&
@@ -228,11 +226,11 @@
{
var sjRecord = latestFirst ??
Db.Queryable<MesQaItemsDetect02>()
- .Where(x => x.Aufnr == womdaa.Daa001 && x.Ftype == "棣栨" && (x.Fcancel == null || x.Fcancel != "Y"))
+ .Where(x => x.Aufnr == womdaa.Daa001 && x.Ftype == FirstCheckType && (x.Fcancel == null || x.Fcancel != "Y"))
.OrderBy(x => x.CreateDate, OrderByType.Desc)
.First();
- if (sjRecord != null && sjRecord.FcheckResu == "鍚堟牸")
+ if (sjRecord != null && sjRecord.FcheckResu == FirstCheckResultOK)
{
QualifiedInspection(new OrderMachineDto
{
@@ -246,15 +244,17 @@
}
}
- // 鏇存柊宸ュ崟鐘舵�佽〃锛堜繚鐣欏師娉ㄩ噴锛�
- return Db.Updateable<MesOrderSta>()
- .SetColumnsIF(entity.MaShoutTime != null, s => s.MaShoutTime == entity.MaShoutTime)
+ // 鏇存柊宸ュ崟鐘舵�佽〃
+ var upd = Db.Updateable<MesOrderSta>()
+ .SetColumnsIF(clearMaShout, s => s.MaShoutTime == null)
+ .SetColumnsIF(!clearMaShout && entity.MaShoutTime != null, s => s.MaShoutTime == entity.MaShoutTime)
.SetColumnsIF(entity.MaStartTime != null, s => s.MaStartTime == entity.MaStartTime)
.SetColumnsIF(entity.MaEndTime != null, s => s.MaEndTime == entity.MaEndTime)
.SetColumnsIF(entity.StartTime != null, s => s.StartTime == entity.StartTime)
.SetColumnsIF(entity.Flag == 1 && entity.remark != null, s => s.remark == entity.remark)
- .Where(s => s.Id == entity.Id)
- .ExecuteCommand() > 0;
+ .Where(s => s.Id == entity.Id);
+
+ return upd.ExecuteCommand() > 0;
}
/// <summary>
--
Gitblit v1.9.3