From 45a69e109d3ed2f3ba6d03f722021d019cb8792a Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期二, 18 十一月 2025 10:40:28 +0800
Subject: [PATCH] 查询报工记录,获取最后一条报工记录,改为实际的工单ID
---
Services/MesOrderStaManager.cs | 553 +++++++++++++++++++++++++++++++++++--------------------
1 files changed, 350 insertions(+), 203 deletions(-)
diff --git a/Services/MesOrderStaManager.cs b/Services/MesOrderStaManager.cs
index a459fb6..abd4faa 100644
--- a/Services/MesOrderStaManager.cs
+++ b/Services/MesOrderStaManager.cs
@@ -91,125 +91,257 @@
}
/// <summary>
- /// 鏇存柊鏈哄櫒鏃堕棿骞跺鐞嗛妫�
- /// 鍙樻洿璇存槑锛�
- /// 1) 鏈�鏂伴妫�缁撴灉涓衡�滀笉鍚堟牸鈥濇椂锛氬彧娓呯┖ MA_SHOUT_TIME锛堥�佹鍛煎彨鏃堕棿锛夛紝涓嶉噸寤洪妫�鍗�
- /// 2) 鑻ヤ笉瀛樺湪棣栨鍗曟垨鏈�鏂伴妫�缁撴灉涓衡�滀笉鍚堟牸鈥濇椂锛氬厑璁哥户缁垱寤猴紙閲嶅缓锛夐妫�鍗�
- /// 3) 棣栨鍚堟牸涓旈�佹鏃堕棿 >= 璋冩満寮�濮嬫椂闂存椂锛氬啓鍏ヨ皟鏈哄畬鎴愭椂闂翠笌寮�宸ユ椂闂达紙娌跨敤鍘熼�昏緫锛�
+ /// 鏇存柊鏈哄櫒鏃堕棿骞跺鐞嗛妫�/閲嶉�佹
/// </summary>
+ /// <param name="entity">
+ /// 宸ュ崟鐘舵�佸疄浣�,鍖呭惈鏈哄櫒鏃堕棿淇℃伅
+ /// Flag锛�1 = 棣栨閫佹鍛煎彨锛�2 = 棣栨涓嶅悎鏍煎悗閲嶆柊閫佹锛涘叾瀹冨�间粎鏇存柊鏃堕棿涓嶈Е鍙戦妫�鍗曞垱寤�
+ /// </param>
+ /// <returns>鏇存柊鏄惁鎴愬姛</returns>
public bool ChangeMachineTime(MesOrderSta entity)
{
var womdaa = Db.Queryable<Womdaa>()
.Where(s => s.Id == entity.OrderId).First();
if (womdaa == null) throw new Exception("宸ュ崟涓嶅瓨鍦�");
- MesQaItemsDetect02 latestFirst = null;
-
+ // ================== 棣栨閫佹澶勭悊锛團lag == 1锛�==================
if (entity.Flag == 1)
{
- // 琛岀骇閿侀槻骞跺彂
- Db.Ado.ExecuteCommand("SELECT ID FROM WOMDAA WHERE DAA001 = :BILL_NO FOR UPDATE",
- new SugarParameter("BILL_NO", womdaa.Daa001));
+ // 骞傜瓑锛氬厛鏌ユ槸鍚﹀凡鏈夋湭浣滃簾鐨勯妫�鍗曪紙閬垮厤閲嶅鐢熸垚锛�
+ var existsFirst = Db.Queryable<MesQaItemsDetect02>()
+ .Where(s => s.Aufnr == womdaa.Daa001 && s.Ftype == "棣栨" && (s.Fcancel == null || s.Fcancel != "Y"))
+ .Any();
- // 褰撳墠鏈�鏂伴妫�
- latestFirst = Db.Queryable<MesQaItemsDetect02>()
+ if (!existsFirst)
+ {
+ // 琛岀骇閿侀槻骞跺彂锛圤racle FOR UPDATE锛�
+ Db.Ado.ExecuteCommand("SELECT ID FROM WOMDAA WHERE DAA001 = :BILL_NO FOR UPDATE",
+ new SugarParameter("BILL_NO", womdaa.Daa001));
+
+ // 浜屾纭
+ existsFirst = Db.Queryable<MesQaItemsDetect02>()
+ .Where(s => s.Aufnr == womdaa.Daa001 && s.Ftype == "棣栨" && (s.Fcancel == null || s.Fcancel != "Y"))
+ .Any();
+
+ if (!existsFirst)
+ {
+ // 璋冪敤瀛樺偍杩囩▼鐢熸垚棣栨鍗�
+ Db.Ado.ExecuteCommand(
+ "BEGIN AUTOMATIC_IPQC_FIRST_CHECK(:BILL_NO); END;",
+ new SugarParameter("BILL_NO", womdaa.Daa001, System.Data.DbType.String));
+ }
+ }
+
+ // 缁熶竴鏇存柊鏈�鏂伴妫�澶囨敞
+ var latestFirst = Db.Queryable<MesQaItemsDetect02>()
.Where(s => s.Aufnr == womdaa.Daa001 && s.Ftype == "棣栨" && (s.Fcancel == null || s.Fcancel != "Y"))
.OrderBy(s => s.CreateDate, OrderByType.Desc)
.First();
-
- // 涓嶅瓨鍦� 鎴� 鏈�鏂扮粨鏋滀负鈥滀笉鍚堟牸鈥� => 鍏佽鍒涘缓棣栨鍗曪紙鏂板閫昏緫锛屼繚鐣欐敞閲婏級
- var needCreate = latestFirst == null || latestFirst.FcheckResu == "涓嶅悎鏍�";
-
- 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));
+ var ts = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ var remark = $"宸ユ帶鏈轰簬{ts}鑷姩鍒涘缓鐨勯妫�鍗�";
+ Db.Updateable<MesQaItemsDetect02>()
+ .SetColumns(s => s.Remeke == remark)
+ .Where(s => s.Id == latestFirst.Id)
+ .ExecuteCommand();
+ }
+ }
+ // ================== 涓嶅悎鏍煎悗閲嶆柊閫佹锛團lag == 2锛�==================
+ else if (entity.Flag == 2)
+ {
+ // 鍔犻攣闃插苟鍙戯紙琛岀骇閿侊級
+ 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 == "棣栨" && (s.Fcancel == null || s.Fcancel != "Y"))
- .OrderBy(s => s.CreateDate, OrderByType.Desc)
- .First();
+ // 褰撳墠鏈�鏂版湭浣滃簾棣栨鍗�
+ var latestFirst = Db.Queryable<MesQaItemsDetect02>()
+ .Where(s => s.Aufnr == womdaa.Daa001
+ && s.Ftype == "棣栨"
+ && (s.Fcancel == null || s.Fcancel != "Y"))
+ .OrderBy(s => s.CreateDate, OrderByType.Desc)
+ .First();
- if (latestFirst != null)
+ bool needReCreate = false;
+
+ if (latestFirst != null)
+ {
+ var resu = latestFirst.FcheckResu?.Trim();
+ if (!string.IsNullOrEmpty(resu) &&
+ (resu == "涓嶅悎鏍�" || resu.Equals("NG", StringComparison.OrdinalIgnoreCase)))
{
- var ts = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
- var trigger = latestFirst.FcheckResu == "涓嶅悎鏍�" ? "涓嶅悎鏍奸噸寤�" : "棣栨鍒涘缓";
- Db.Updateable<MesQaItemsDetect02>()
- .SetColumns(s => s.Remeke == $"宸ユ帶鏈轰簬{ts}鑷姩鍒涘缓鐨勯妫�鍗�({trigger})")
- .Where(s => s.Id == latestFirst.Id)
- .ExecuteCommand();
+ needReCreate = true;
}
}
else
{
- // 鏈�鏂扮粨鏋滀负鈥滀笉鍚堟牸鈥� => 浠呮竻绌洪�佹鏃堕棿锛屼笉閲嶅缓
- if (latestFirst != null && latestFirst.FcheckResu == "涓嶅悎鏍�")
+ // 娌℃湁娲诲姩棣栨鍗曪紝鍒ゆ柇鏄惁瀛樺湪宸蹭綔搴熺殑涓嶅悎鏍奸妫�璁板綍
+ var existsCanceledNg = Db.Queryable<MesQaItemsDetect02>()
+ .Where(s => s.Aufnr == womdaa.Daa001
+ && s.Ftype == "棣栨"
+ && s.Fcancel == "Y"
+ && (s.FcheckResu == "涓嶅悎鏍�" || s.FcheckResu == "NG"))
+ .Any();
+ if (existsCanceledNg)
{
- Db.Updateable<MesOrderSta>()
- .SetColumns(s => s.MaShoutTime == null)
- .Where(s => s.Id == entity.Id)
- .ExecuteCommand();
-
- entity.MaShoutTime = null;
- entity.remark = $"鏈�鏂伴妫�缁撴灉鈥滀笉鍚堟牸鈥濓紝宸叉竻绌洪�佹鏃堕棿锛屽緟鍐嶆閫佹";
+ needReCreate = true;
+ Console.WriteLine("[閲嶉�佹] 鏃犳椿鍔ㄩ妫�鍗曚絾瀛樺湪浣滃簾鐨勪笉鍚堟牸璁板綍锛屽厑璁搁噸寤�");
}
- else if (latestFirst != null)
+ }
+
+ if (needReCreate)
+ {
+ // 浣滃簾褰撳墠娲诲姩涓嶅悎鏍煎崟
+ 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)
+ .SetColumns(s => s.Fcancel == "Y")
+ .Where(s => s.Id == latestFirst.Id
+ && (s.Fcancel == null || s.Fcancel != "Y"))
.ExecuteCommand();
+ }
+
+ bool procOk = true;
+ string procErr = "";
+ try
+ {
+ // 璋冪敤瀛樺偍杩囩▼鐢熸垚鏂伴妫�鍗�
+ Db.Ado.ExecuteCommand(
+ "BEGIN AUTOMATIC_IPQC_FIRST_CHECK(:BILL_NO); END;",
+ new SugarParameter("BILL_NO", womdaa.Daa001, System.Data.DbType.String));
+ }
+ catch (Exception ex)
+ {
+ procOk = false;
+ procErr = ex.Message;
+ Console.WriteLine($"[閲嶉�佹] 瀛樺偍杩囩▼寮傚父: {procErr}");
+ }
+
+ // 鍐嶆鏌ヨ鏂扮敓鎴愮殑棣栨鍗�
+ var newLatest = Db.Queryable<MesQaItemsDetect02>()
+ .Where(s => s.Aufnr == womdaa.Daa001
+ && s.Ftype == "棣栨"
+ && (s.Fcancel == null || s.Fcancel != "Y"))
+ .OrderBy(s => s.CreateDate, OrderByType.Desc)
+ .First();
+
+ // 瀛樺偍杩囩▼鏈敓鎴� 鈫� 鍏滃簳 C# 鑷姩鐢熸垚
+ if (newLatest == null)
+ {
+ Console.WriteLine("[閲嶉�佹] 瀛樺偍杩囩▼鏈敓鎴愶紝鎵ц C# 鍏滃簳閫昏緫");
+ var fallback = mesQaItemsDetect02Manager.AutomaticIpqcFirstCheck(womdaa.Daa001);
+ if (fallback)
+ {
+ newLatest = Db.Queryable<MesQaItemsDetect02>()
+ .Where(s => s.Aufnr == womdaa.Daa001
+ && s.Ftype == "棣栨"
+ && (s.Fcancel == null || s.Fcancel != "Y"))
+ .OrderBy(s => s.CreateDate, OrderByType.Desc)
+ .First();
+ }
+ }
+
+ if (newLatest != null)
+ {
+ var ts = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ var remark = $"宸ユ帶鏈轰簬{ts}涓嶅悎鏍奸噸鏂伴�佹鐢熸垚鐨勯妫�鍗�";
+ Db.Updateable<MesQaItemsDetect02>()
+ .SetColumns(s => s.Remeke == remark)
+ .Where(s => s.Id == newLatest.Id)
+ .ExecuteCommand();
+ }
+ else
+ {
+ Console.WriteLine("[閲嶉�佹] 浠嶆湭鐢熸垚鏂伴妫�鍗曪紝璇锋鏌ュ瓨鍌ㄨ繃绋嬭鏁版槸鍚︽帓闄や綔搴熷崟銆�");
}
}
}
- // 鍘熸姤宸�/鏁伴噰閿氱偣閫昏緫淇濇寔
+ // ========= 棣栨涓嶅悎鏍兼竻绌洪�佹鏃堕棿澶勭悊锛團lag != 2 鏃舵墠娓呯┖锛涘苟鐢熸垚缁熶竴 remark锛� =========
+ string remarkToSet = null; // 鏈�缁堣鍐欏叆 MES_ORDER_STA.remark 鐨勫唴瀹�
+ var clearMaShoutTime = false; // 鏄惁闇�瑕佺湡姝e啓 null 娓呯┖閫佹鏃堕棿
+
+ if (entity.Flag == 1)
+ {
+ // 棣栨閫佹鎻愪氦
+ if (!string.IsNullOrEmpty(entity.MaShoutTime))
+ remarkToSet = $"浜巤entity.MaShoutTime}鏃堕棿鏈変竴娆¢�佹";
+ }
+ else if (entity.Flag == 2)
+ {
+ // 涓嶅悎鏍奸噸鏂伴�佹锛堜笉娓呯┖閫佹鏃堕棿锛岀敱鍓嶇鍙兘瑕嗙洊涓烘柊鏃堕棿锛�
+ if (!string.IsNullOrEmpty(entity.MaShoutTime))
+ remarkToSet = $"浜巤entity.MaShoutTime}鏃堕棿涓嶅悎鏍奸噸鏂伴�佹";
+ }
+
+ // 闈為噸鏂伴�佹鍦烘櫙锛團lag!=2锛夋墠妫�鏌ユ槸鍚﹂渶瑕佸洜鈥滀笉鍚堟牸鈥濇竻绌洪�佹鏃堕棿
+ if (entity.Flag != 2)
+ {
+ var latestFirstCheck = Db.Queryable<MesQaItemsDetect02>()
+ .Where(s => s.Aufnr == womdaa.Daa001
+ && s.Ftype == "棣栨"
+ && (s.Fcancel == null || s.Fcancel != "Y"))
+ .OrderBy(s => s.CreateDate, OrderByType.Desc)
+ .First();
+
+ if (latestFirstCheck != null && latestFirstCheck.FcheckResu == "涓嶅悎鏍�")
+ {
+ entity.MaShoutTime = null; // 缃┖瀹炰綋锛堝悗闈㈡洿鏂版椂浣跨敤锛�
+ clearMaShoutTime = true;
+ remarkToSet = "棣栨涓嶅悎鏍硷紝閫佹鏃堕棿宸叉竻绌猴紝璇烽噸鏂伴�佹鍛煎彨鐢熸垚鏂扮殑棣栨鍗�";
+ }
+ }
+ // ========= 棣栨涓嶅悎鏍兼竻绌洪�佹鏃堕棿澶勭悊缁撴潫 =========
+
+ // ================== 閲囬泦鏁�/閿氱偣 Anchors 澶勭悊 ==================
var mesReporting = Db.Queryable<MesReporting>()
.Where(s => s.BillNo == womdaa.Daa001)
.OrderByDescending(s => s.Id)
.First();
var editDate = DateTime.Now.ToString("yyyy-MM-dd");
+
+ // 鍙戦�丠TTP璇锋眰鍒锋柊璁惧閲囬泦鏁版嵁锛堝け璐ヤ笉闃绘柇鍚庣画锛�
MesNumericalBycl mesNumerical = null;
try
{
- using var httpClient = new HttpClient { Timeout = TimeSpan.FromSeconds(30) };
- var content = new StringContent(
- JsonConvert.SerializeObject(new { machineNo = entity.MachineNo }),
- Encoding.UTF8, "application/json");
-
- var response = httpClient.PostAsync("http://192.168.0.94:9095/Numerical/RefreshDevBycl", content)
- .GetAwaiter().GetResult();
-
- if (response.IsSuccessStatusCode)
+ using (var httpClient = new HttpClient())
{
- var responseString = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
- var responseObj = JsonConvert.DeserializeObject<dynamic>(responseString);
- if (responseObj != null && responseObj.code == 200)
+ httpClient.Timeout = TimeSpan.FromSeconds(30);
+ var content = new StringContent(
+ JsonConvert.SerializeObject(new { machineNo = entity.MachineNo }),
+ Encoding.UTF8,
+ "application/json");
+ var response = httpClient
+ .PostAsync("http://192.168.0.94:9095/Numerical/RefreshDevBycl", content)
+ .GetAwaiter().GetResult();
+
+ if (response.IsSuccessStatusCode)
{
- mesNumerical = Db.Queryable<MesNumericalBycl>()
- .Where(s => s.EditDate == editDate && s.MachineNo == entity.MachineNo)
- .OrderByDescending(s => s.Id)
- .First();
+ var responseString = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
+ var responseObj = JsonConvert.DeserializeObject<dynamic>(responseString);
+ if (responseObj != null && responseObj.code == 200)
+ {
+ mesNumerical = Db.Queryable<MesNumericalBycl>()
+ .Where(s => s.EditDate == editDate && s.MachineNo == entity.MachineNo)
+ .OrderByDescending(s => s.Id)
+ .First();
+ }
}
}
}
catch (Exception ex)
{
- // 璁板綍寮傚父浣嗕笉闃绘娴佺▼锛堜繚鐣欏師娉ㄩ噴锛�
Console.WriteLine($"鍙戦�佹暟鎹埛鏂拌姹傛椂鍑洪敊: {ex.Message}");
}
+ // 鍒犻櫎骞堕噸寤哄綋鏃ラ敋鐐硅褰�
Db.Deleteable<MesAnchors>()
.Where(a => a.EditDate == editDate && a.OrderId == womdaa.Id)
.ExecuteCommand();
- var eAnchors = new MesAnchors
+ MesAnchors eAnchors = new MesAnchors
{
OrderId = womdaa.Id,
OrderNo = womdaa.Daa001,
@@ -219,40 +351,55 @@
};
Db.Insertable<MesAnchors>(eAnchors).ExecuteCommand();
- // 鑻ラ�佹鏃堕棿瀛樺湪涓旀渶鏂伴妫�鍚堟牸 => 鍐欒皟鏈哄畬鎴愪笌寮�宸ユ椂闂�
- if (!string.IsNullOrEmpty(entity.MaShoutTime))
+ // ================== 棣栨鍚堟牸 -> 鑷姩璋冩満瀹屾垚 + 鍐欏叆寮�宸ユ椂闂� ==================
+ if (!clearMaShoutTime && !string.IsNullOrEmpty(entity.MaShoutTime)) // 鏈娓呯┖鐨勫墠鎻愪笅鎵嶅垽鏂悎鏍奸�昏緫
{
if (DateTime.TryParse(entity.MaShoutTime, out var sjTime) &&
- DateTime.TryParse(entity.MaStartTime, out var startTime) &&
- sjTime >= startTime)
+ DateTime.TryParse(entity.MaStartTime, out var startTime))
{
- var sjRecord = latestFirst ??
- Db.Queryable<MesQaItemsDetect02>()
- .Where(x => x.Aufnr == womdaa.Daa001 && x.Ftype == "棣栨" && (x.Fcancel == null || x.Fcancel != "Y"))
- .OrderBy(x => x.CreateDate, OrderByType.Desc)
- .First();
-
- if (sjRecord != null && sjRecord.FcheckResu == "鍚堟牸")
+ if (sjTime >= startTime)
{
- QualifiedInspection(new OrderMachineDto
+ var sjRecord = Db.Queryable<MesQaItemsDetect02>()
+ .Where(x => x.Aufnr == womdaa.Daa001 && x.Ftype == "棣栨" && (x.Fcancel == null || x.Fcancel != "Y"))
+ .OrderBy(x => x.CreateDate, OrderByType.Desc)
+ .First();
+
+ if (sjRecord != null && sjRecord.FcheckResu == "鍚堟牸")
{
- OrderId = entity.OrderId,
- orderNo = entity.OrderNo,
- machineNo = entity.MachineNo
- });
- entity.StartTime = entity.MaShoutTime;
- entity.MaEndTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ QualifiedInspection(new OrderMachineDto
+ {
+ OrderId = entity.OrderId,
+ orderNo = entity.OrderNo,
+ machineNo = entity.MachineNo
+ });
+ // 灏嗛�佹鏃堕棿鍐欏叆寮�宸ユ椂闂�
+ entity.StartTime = entity.MaShoutTime;
+ entity.MaEndTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ // 鑻ヤ箣鍓� remark 鏄�滈�佹鈥濆彲缁х画娌跨敤锛涗笉寮哄埗瑕嗙洊
+ }
}
}
}
- // 鏇存柊宸ュ崟鐘舵�佽〃锛堜繚鐣欏師娉ㄩ噴锛�
+ // ================== 鏈�缁堟洿鏂� MES_ORDER_STA ==================
return Db.Updateable<MesOrderSta>()
- .SetColumnsIF(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)
+ // 閫佹鏃堕棿鏇存柊锛氳嫢闇�瑕佹竻绌哄垯鏄庣‘璧� null锛涘惁鍒欏綋鏈夊�兼椂鏇存柊
+ .SetColumnsIF(clearMaShoutTime, s => s.MaShoutTime == null)
+ .SetColumnsIF(!clearMaShoutTime && 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(!string.IsNullOrEmpty(remarkToSet),
+ s => s.remark == remarkToSet)
+ // 杩囨护褰撳墠璁板綍
.Where(s => s.Id == entity.Id)
.ExecuteCommand() > 0;
}
@@ -407,125 +554,125 @@
break;
case "瀹屽伐":
- {
- // 鏇存柊宸ュ崟閫夋嫨琛ㄦ樉绀虹姸鎬�
- // Db.Updateable<MesOrderSelect>()
- // .SetColumns(a => a.IsShow == 1)
- // .Where(a => orderIds.Contains(a.OrderId))
- // .ExecuteCommand();
-
- // 鏇存柊宸ュ崟鐘舵�佽〃
- // Db.Updateable<MesOrderSta>()
- // .SetColumns(a => a.IsShow == 0)
- // .SetColumns(a => a.EndTime == endDate)
- // .Where(a => orderIds.Contains(a.OrderId))
- // .ExecuteCommand();
-
- // 澶勭悊姣忎釜宸ュ崟鐨勬姤宸ユ暟鎹�
- foreach (var orderId in orderIds)
{
- // 鏌ヨ宸ュ崟涓昏〃淇℃伅
- var womdaa = Db.Queryable<Womdaa>()
- .Where(s => s.Id == orderId).First();
+ // 鏇存柊宸ュ崟閫夋嫨琛ㄦ樉绀虹姸鎬�
+ // Db.Updateable<MesOrderSelect>()
+ // .SetColumns(a => a.IsShow == 1)
+ // .Where(a => orderIds.Contains(a.OrderId))
+ // .ExecuteCommand();
- //褰撳凡鐢熸垚鏁颁笉绛変簬瀹屽伐鏁版槸灏辫烦杩�
- if (womdaa.Daa008 > womdaa.Daa011)
+ // 鏇存柊宸ュ崟鐘舵�佽〃
+ // Db.Updateable<MesOrderSta>()
+ // .SetColumns(a => a.IsShow == 0)
+ // .SetColumns(a => a.EndTime == endDate)
+ // .Where(a => orderIds.Contains(a.OrderId))
+ // .ExecuteCommand();
+
+ // 澶勭悊姣忎釜宸ュ崟鐨勬姤宸ユ暟鎹�
+ foreach (var orderId in orderIds)
{
- updateable += 1;
- continue;
+ // 鏌ヨ宸ュ崟涓昏〃淇℃伅
+ var womdaa = Db.Queryable<Womdaa>()
+ .Where(s => s.Id == orderId).First();
+
+ //褰撳凡鐢熸垚鏁颁笉绛変簬瀹屽伐鏁版槸灏辫烦杩�
+ if (womdaa.Daa008 > womdaa.Daa011)
+ {
+ updateable += 1;
+ continue;
+ }
+
+ var btnLog = new MesWorkorderBtnLog
+ {
+ WorkNo = womdaa.Daa001,
+ BtnType = "宸ユ帶鑷姩瀹屽伐",
+ BtnDate = DateTime.Now
+ };
+ db.Insertable<MesWorkorderBtnLog>(btnLog)
+ .ExecuteCommand();
+
+ // 鏇存柊宸ュ崟涓昏〃鐘舵�� - 杩欓噷灏哤omdaa琛ㄧ殑daa018鏇存柊涓哄畬宸ョ姸鎬�
+ updateable = db.Updateable<Womdaa>()
+ .SetColumns(s => s.Daa018 == daa018)
+ .SetColumnsIF("瀹屽伐".Equals(daa018),
+ s => s.Daa017 == DateTime.Now)
+ .SetColumnsIF("鏆傚仠".Equals(daa018),
+ s => s.Daa034 == DateTime.Now)
+ .Where(s => s.Id == orderId).ExecuteCommand();
+
+ // Db.Deleteable<MesOrderSelect>()
+ // .Where(a => a.OrderId == orderId)
+ // .ExecuteCommand();
+ //
+ // Db.Deleteable<MesOrderSta>()
+ // .Where(a => a.OrderId == orderId)
+ // .ExecuteCommand();
+ //鏇存柊宸ュ崟閫夋嫨琛ㄦ樉绀虹姸鎬�
+ db.Updateable<MesOrderSelect>()
+ .SetColumns(a => a.IsShow == 1)
+ .Where(a => a.OrderId == orderId)
+ .ExecuteCommand();
+
+ //鏇存柊宸ュ崟鐘舵�佽〃
+ db.Updateable<MesOrderSta>()
+ .SetColumns(a => a.IsShow == 0)
+ .SetColumns(a => a.EndTime == endDate)
+ .Where(a => a.OrderId == orderId)
+ .ExecuteCommand();
+
+ // 鏌ヨ宸叉姤宸ユ暟閲�
+ var reporting = db.Queryable<MesReporting>()
+ .Where(s => s.BillNo == womdaa.Daa001)
+ .Select(s => new MesReporting
+ {
+ OkQty = SqlFunc.AggregateSum(s.OkQty),
+ BfQty = SqlFunc.AggregateSum(s.BfQty)
+ }).First();
+
+ reporting.OkQty ??= 0;
+ reporting.BfQty ??= 0;
+
+ // 鏌ヨ宸ュ崟瑙嗗浘淇℃伅
+ // var vOrder = db.Queryable<VOrder>()
+ // .Where(s => s.ID == orderId).First();
+
+ // 璁$畻寰呮姤宸ユ暟閲�
+ // var reportingOkQty =
+ // Convert.ToDecimal(vOrder.todayOutput) -
+ // reporting.OkQty;
+ var CjQty = Db.Queryable<MesNumericalBycl>()
+ .Where(s => s.MachineNo == entity.MachineNo && s.EditDate == date)
+ .OrderByDescending(s => s.CjTiem)
+ .Select<long?>(s => s.CjNum).First();
+
+ // 璁$畻寰呮姤宸ユ暟閲�
+ var reportingOkQty = CjQty - reporting.OkQty;
+
+ // 濡傛灉鏈夊緟鎶ュ伐鏁伴噺鍒欏垱寤烘姤宸ヨ褰�
+ if (!(reportingOkQty > 0)) continue;
+ var mesReporting = new MesReporting
+ {
+ CheckType = 1,
+ BgDate = DateTime.Now,
+ AddressCode = womdaa.AddressCode,
+ MachineNo = womdaa.MachineNo,
+ // BfQty = reportingOkQty,
+ BfQty = 0,
+ BlQty = reportingOkQty,
+ OkQty = 0,
+ ItemNo = womdaa.Daa002,
+ BillNo = womdaa.Daa001,
+ CjQty = CjQty,
+ DyQty = reporting.OkQty
+ };
+
+ // 鎻掑叆鎶ュ伐璁板綍
+ db.Insertable(mesReporting)
+ .IgnoreColumns(true).ExecuteCommand();
}
- var btnLog = new MesWorkorderBtnLog
- {
- WorkNo = womdaa.Daa001,
- BtnType = "宸ユ帶鑷姩瀹屽伐",
- BtnDate = DateTime.Now
- };
- db.Insertable<MesWorkorderBtnLog>(btnLog)
- .ExecuteCommand();
-
- // 鏇存柊宸ュ崟涓昏〃鐘舵�� - 杩欓噷灏哤omdaa琛ㄧ殑daa018鏇存柊涓哄畬宸ョ姸鎬�
- updateable = db.Updateable<Womdaa>()
- .SetColumns(s => s.Daa018 == daa018)
- .SetColumnsIF("瀹屽伐".Equals(daa018),
- s => s.Daa017 == DateTime.Now)
- .SetColumnsIF("鏆傚仠".Equals(daa018),
- s => s.Daa034 == DateTime.Now)
- .Where(s => s.Id == orderId).ExecuteCommand();
-
- // Db.Deleteable<MesOrderSelect>()
- // .Where(a => a.OrderId == orderId)
- // .ExecuteCommand();
- //
- // Db.Deleteable<MesOrderSta>()
- // .Where(a => a.OrderId == orderId)
- // .ExecuteCommand();
- //鏇存柊宸ュ崟閫夋嫨琛ㄦ樉绀虹姸鎬�
- db.Updateable<MesOrderSelect>()
- .SetColumns(a => a.IsShow == 1)
- .Where(a => a.OrderId == orderId)
- .ExecuteCommand();
-
- //鏇存柊宸ュ崟鐘舵�佽〃
- db.Updateable<MesOrderSta>()
- .SetColumns(a => a.IsShow == 0)
- .SetColumns(a => a.EndTime == endDate)
- .Where(a => a.OrderId == orderId)
- .ExecuteCommand();
-
- // 鏌ヨ宸叉姤宸ユ暟閲�
- var reporting = db.Queryable<MesReporting>()
- .Where(s => s.BillNo == womdaa.Daa001)
- .Select(s => new MesReporting
- {
- OkQty = SqlFunc.AggregateSum(s.OkQty),
- BfQty = SqlFunc.AggregateSum(s.BfQty)
- }).First();
-
- reporting.OkQty ??= 0;
- reporting.BfQty ??= 0;
-
- // 鏌ヨ宸ュ崟瑙嗗浘淇℃伅
- // var vOrder = db.Queryable<VOrder>()
- // .Where(s => s.ID == orderId).First();
-
- // 璁$畻寰呮姤宸ユ暟閲�
- // var reportingOkQty =
- // Convert.ToDecimal(vOrder.todayOutput) -
- // reporting.OkQty;
- var CjQty = Db.Queryable<MesNumericalBycl>()
- .Where(s => s.MachineNo == entity.MachineNo && s.EditDate == date)
- .OrderByDescending(s=>s.CjTiem)
- .Select<long?>(s=>s.CjNum).First();
-
- // 璁$畻寰呮姤宸ユ暟閲�
- var reportingOkQty = CjQty - reporting.OkQty;
-
- // 濡傛灉鏈夊緟鎶ュ伐鏁伴噺鍒欏垱寤烘姤宸ヨ褰�
- if (!(reportingOkQty > 0)) continue;
- var mesReporting = new MesReporting
- {
- CheckType = 1,
- BgDate = DateTime.Now,
- AddressCode = womdaa.AddressCode,
- MachineNo = womdaa.MachineNo,
- // BfQty = reportingOkQty,
- BfQty = 0,
- BlQty = reportingOkQty,
- OkQty = 0,
- ItemNo = womdaa.Daa002,
- BillNo = womdaa.Daa001,
- CjQty = CjQty,
- DyQty = reporting.OkQty
- };
-
- // 鎻掑叆鎶ュ伐璁板綍
- db.Insertable(mesReporting)
- .IgnoreColumns(true).ExecuteCommand();
+ break;
}
-
- break;
- }
}
--
Gitblit v1.9.3