From 54cb85dfaaad04085c6a95796943b4b143e29d25 Mon Sep 17 00:00:00 2001 From: Sai Date: Thu, 21 Sep 2023 05:23:15 +0800 Subject: [PATCH] =?UTF-8?q?1.=20TestLog=20=E7=9B=B8=E9=97=9C=E7=A8=8B?= =?UTF-8?q?=E5=BC=8F=E4=B8=8A=E5=82=B3=20"TestLogConnection":=20"Data=20So?= =?UTF-8?q?urce=3DGPMDBN;Initial=20Catalog=3DTestAutomate;user=20id=3Dipro?= =?UTF-8?q?=5Fmis;password=3Dmmii@2019;Encrypt=3DFalse;"=20Dapper=20Versio?= =?UTF-8?q?n=3D"2.0.151?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/PCSController.cs | 239 ++++++++++-------- AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs | 7 + .../ViewModels/PCS/PCS009RViewModel.cs | 42 ++- AMESCoreStudio.Web/Views/PCS/PCS009R.cshtml | 65 ++++- AMESCoreStudio.Web/Views/PCS/PCS009T.cshtml | 28 -- .../Models/AMES/OutfitInfo.cs | 4 +- 6 files changed, 236 insertions(+), 149 deletions(-) diff --git a/AMESCoreStudio.Web/Controllers/PCSController.cs b/AMESCoreStudio.Web/Controllers/PCSController.cs index ff7c7ad8..4be4ec4f 100644 --- a/AMESCoreStudio.Web/Controllers/PCSController.cs +++ b/AMESCoreStudio.Web/Controllers/PCSController.cs @@ -26,6 +26,7 @@ using ClosedXML.Excel; using Microsoft.VisualBasic; using AMESCoreStudio.WebApi.Models.SYS; + namespace AMESCoreStudio.Web.Controllers { @@ -1427,7 +1428,7 @@ namespace AMESCoreStudio.Web.Controllers if (type_no != null) { var wipBarcodeOther = await _pcsApi.GetWipBarcodeOther(wipNo); - if (wipBarcodeOther == null) + if (wipBarcodeOther == null) { wipBarcodeOther = new WipBarcodeOther(); wipBarcodeOther.WipNO = wipNo; @@ -1439,11 +1440,11 @@ namespace AMESCoreStudio.Web.Controllers wipBarcodeOther.SerialRuleDetailID = serialruledetailid; await _pcsApi.PostWipBarcodeOther(JsonConvert.SerializeObject(wipBarcodeOther)); } - else + else { //OTHER 允許多個區間(不連續) var RuleItem = await _pcsApi.GetSerialRuleDetail(wipBarcodeOther.SerialRuleDetailID); - if (RuleItem.Where(s => s.ItemNo.StartsWith("OTHER")).Count() > 0 && wipBarcodeOther.StartNO.Trim().Length >0) + if (RuleItem.Where(s => s.ItemNo.StartsWith("OTHER")).Count() > 0 && wipBarcodeOther.StartNO.Trim().Length > 0) { wipBarcodeOther = new WipBarcodeOther(); @@ -4637,18 +4638,40 @@ namespace AMESCoreStudio.Web.Controllers }); } + // TestLog + var testLogResult = await _pcsApi.GetTestLogByMSSql(result.BarCodeNo); + foreach (var item in testLogResult) + { + var FileName = (string)item.filename; + var RecordTime = FileName.Split('-')[1]; + if (DateTime.TryParseExact(RecordTime, "yyyyMMddHHmmss", null, System.Globalization.DateTimeStyles.None, out DateTime resultDate)) + { + RecordTime = resultDate.ToString("yyyy/MM/dd HH:mm:ss"); + } + + result.testLogs.Add(new TestLog + { + TestId = item.id, + Result = FileName.Contains("PASS") ? "PASS" : "FAIL", + Record_Time = RecordTime, + FileName = FileName, + //FilePath = $@"/TestLog/{(string)item.workOrder}/{FileName}" + }); + //SopPath = $@"/DocEsop/{Esop.FirstOrDefault().file_path}" + } return View(result); } - public async Task PCS009T(string id) + public async Task PCS009T(string sn ,string id) { - var query = await _pcsApi.GetTestLog("99300023400030"); + var query = await _pcsApi.GetTestLogByMSSql(sn); var result = new List(); if (query.Any()) { + var item = query.Where(w => w.id == id).FirstOrDefault(); // 使用反射獲取属性信息並創建列 - foreach (var property in query.FirstOrDefault().Children()) + foreach (var property in item.Children()) { var columnName = ((string)property.Name).ToUpper(); var columnValue = property.Value.ToString(); @@ -7506,7 +7529,7 @@ namespace AMESCoreStudio.Web.Controllers { var wipresult = await _pcsApi.GetWipInfoByWipNO_EVER(wipno: item.WipNo); //查對應安勤工單&料號 - item.WipNo = wipresult.Where(w=>w.RelatedWONO !=null).Select(s => s.RelatedWONO).FirstOrDefault(); + item.WipNo = wipresult.Where(w => w.RelatedWONO != null).Select(s => s.RelatedWONO).FirstOrDefault(); if (!string.IsNullOrWhiteSpace(item.WipNo)) { @@ -7580,7 +7603,7 @@ namespace AMESCoreStudio.Web.Controllers string recordDate = ids[i].Split(',')[5]; string Factority_ID = ids[i].Split(',')[6]; string ItemNO = ids[i].Split(',')[7]; - var result = await PCS0311inhouse(InhouseNo, boxNo, Convert.ToInt16(seq), recordNumber, locationNo, recordDate,Factority_ID,ItemNO); + var result = await PCS0311inhouse(InhouseNo, boxNo, Convert.ToInt16(seq), recordNumber, locationNo, recordDate, Factority_ID, ItemNO); if (!result.success) { @@ -7597,9 +7620,9 @@ namespace AMESCoreStudio.Web.Controllers } } - public async Task PCS031inhouseAsync(string InhouseNo, string boxNo, int seq, string recordNumber, string locationNo, string recordDate, string factorityID,string ItemNO) + public async Task PCS031inhouseAsync(string InhouseNo, string boxNo, int seq, string recordNumber, string locationNo, string recordDate, string factorityID, string ItemNO) { - var result = await PCS0311inhouse(InhouseNo, boxNo, seq, recordNumber, locationNo, recordDate, factorityID,ItemNO); + var result = await PCS0311inhouse(InhouseNo, boxNo, seq, recordNumber, locationNo, recordDate, factorityID, ItemNO); return Json(new Result() { success = result.success, msg = result.msg }); @@ -7607,7 +7630,7 @@ namespace AMESCoreStudio.Web.Controllers } - private async Task PCS0311inhouse(string InhouseNo, string boxNo, int seq, string recordNumber, string locationNo, string recordDate, string factorityID,string ItemNO) + private async Task PCS0311inhouse(string InhouseNo, string boxNo, int seq, string recordNumber, string locationNo, string recordDate, string factorityID, string ItemNO) { /* 1.先查詢是否已入庫過 * 2.依barcodeinfo 查詢 該箱號所屬序號 @@ -7736,16 +7759,16 @@ namespace AMESCoreStudio.Web.Controllers } var Wipinfo_LineID = Wipinfo_result.Select(s => s.LineID).First(); //lineid - // var WipAtt_result = new WipAtt(); - //string ItemNO = string.Empty; - //if (factorityID == "1") - //{ - // WipAtt_result = await _pcsApi.GetWipAtt(Wipinfo_result.Select(s => s.WipNO).FirstOrDefault()); //料號 - // ItemNO = WipAtt_result.ItemNO; - //} - //else - //{//這裡需要對應到安勤的料號 - // // WipAtt_result = await _pcsApi.GetWipAtt(Wipinfo_result.Select(s => s.RelatedWONO).FirstOrDefault()); //料號 + // var WipAtt_result = new WipAtt(); + //string ItemNO = string.Empty; + //if (factorityID == "1") + //{ + // WipAtt_result = await _pcsApi.GetWipAtt(Wipinfo_result.Select(s => s.WipNO).FirstOrDefault()); //料號 + // ItemNO = WipAtt_result.ItemNO; + //} + //else + //{//這裡需要對應到安勤的料號 + // // WipAtt_result = await _pcsApi.GetWipAtt(Wipinfo_result.Select(s => s.RelatedWONO).FirstOrDefault()); //料號 // var wipresult = await _pcsApi.GetWipInfoByWipNO_EVER(wipno: Wipinfo_result.Select(s => s.WipNO).FirstOrDefault()); //查對應安勤工單&料號 @@ -7770,10 +7793,10 @@ namespace AMESCoreStudio.Web.Controllers else { int UserID = GetLogInUserID(); //需用安勤帳號查昶亨的帳號 再轉換成ID - var Userinfo = await _sysApi.GetUserInfo(UserID); - var Userinfo_EVER = await _pcsApi.GetUserInfoByUserNo_EVER(Userinfo.Select(s => s.UserNo).FirstOrDefault()); - if (Userinfo_EVER.UserNo != null ) - Userinfo_result = await _pcsApi.GetUserInfo_EVER(Userinfo_EVER.UserID); + var Userinfo = await _sysApi.GetUserInfo(UserID); + var Userinfo_EVER = await _pcsApi.GetUserInfoByUserNo_EVER(Userinfo.Select(s => s.UserNo).FirstOrDefault()); + if (Userinfo_EVER.UserNo != null) + Userinfo_result = await _pcsApi.GetUserInfo_EVER(Userinfo_EVER.UserID); } @@ -7834,8 +7857,8 @@ namespace AMESCoreStudio.Web.Controllers CreateUserID = item.CreateUserID, CreateDate = item.CreateDate, UpdateDate = System.DateTime.Now - - + + }; @@ -7887,7 +7910,7 @@ namespace AMESCoreStudio.Web.Controllers } else { - + resultPoutBStation = await _pcsApi.PostBarcodeStation_EVER(JsonConvert.SerializeObject(barcodeStations)); } if (!resultPoutBStation.Success) @@ -8121,7 +8144,7 @@ namespace AMESCoreStudio.Web.Controllers item.WipNO = wipresult.Select(s => s.RelatedWONO).FirstOrDefault(); } - + } if (result.Data.Count() != 0) { @@ -9178,7 +9201,7 @@ namespace AMESCoreStudio.Web.Controllers /// /// 工單號碼 /// - public async Task PCS040DAsync(string wipNo,int otherID) + public async Task PCS040DAsync(string wipNo, int otherID) { //// 判斷工單號碼是否已經投入 //if (await _pcsApi.GetWipInfoCheckStart(id) == "Y") @@ -9193,19 +9216,19 @@ namespace AMESCoreStudio.Web.Controllers // var _msg = "工單號碼【" + id + "】,工單已開線,不可刪除!"; // return Json(new Result() { success = false, msg = _msg }); //} - // var result = await _pcsApi.GetWipBarcodeOther(id); + // var result = await _pcsApi.GetWipBarcodeOther(id); var result_Barcode = await _pcsApi.GetWipBarcodeOthers(wipNo); var result = result_Barcode.Where(w => w.OtherID == otherID).FirstOrDefault(); var result1 = await _pcsApi.GetSerialRuleDetail(result.SerialRuleDetailID); //判斷工單結束序號流水號號碼 - string GetCoderesult = await GetSerialCode_SerialLen(result1.Select(s => s.Rule).FirstOrDefault()); + string GetCoderesult = await GetSerialCode_SerialLen(result1.Select(s => s.Rule).FirstOrDefault()); int SNStart = int.Parse(GetCoderesult.Split('-')[0]); //流水號開始 int SNLen = int.Parse(GetCoderesult.Split('-')[1]); //流水號長度 int EndNO = int.Parse(result.EndNO.Substring(SNStart, SNLen)); int StartNO = int.Parse(result.StartNO.Substring(SNStart, SNLen)); //判斷是否有比此工單流水號更大的號碼 - if (result1.Select(s => s.SnNum).FirstOrDefault() > EndNO && result1.Where(w=>w.ItemNo.StartsWith("OTHER")).Count() == 0) //標準品以外要判斷最大號 + if (result1.Select(s => s.SnNum).FirstOrDefault() > EndNO && result1.Where(w => w.ItemNo.StartsWith("OTHER")).Count() == 0) //標準品以外要判斷最大號 { return Json(new Result() { success = false, msg = "工單號碼【" + wipNo + "】出貨序號不為目前最大號,請先刪除最大號工單 !" }); } @@ -9224,7 +9247,7 @@ namespace AMESCoreStudio.Web.Controllers model.LotNum = result1.Select(s => s.LotNum).FirstOrDefault(); model.SnNum = StartNO - 1; model.UpdateDate = System.DateTime.Now; - + var resultPut = await _pcsApi.PutSerialRuleDetail(result1.Select(s => s.SerialRuleDetailID).FirstOrDefault(), JsonConvert.SerializeObject(model)); #region 修改oem其他相同規則 @@ -9269,7 +9292,7 @@ namespace AMESCoreStudio.Web.Controllers } - + } [HttpPost] @@ -9335,7 +9358,7 @@ namespace AMESCoreStudio.Web.Controllers { NewRule = NewRule.Replace("[SN6]", "&&&&&&"); } - + int SNStart = NewRule.IndexOf('&'); //流水號開始 int SNLen = NewRule.Count(c => c == '&'); //流水號長度 @@ -9390,7 +9413,7 @@ namespace AMESCoreStudio.Web.Controllers ModelState.AddModelError("error", _msg); return View(model); } - + #region 判斷加或減後迄小於起 int sum = 0; @@ -9416,47 +9439,47 @@ namespace AMESCoreStudio.Web.Controllers #endregion - - string EndNO = model.WipBarcodeOther.EndNO.Substring(0, SNStart) + InputEndNoQty.ToString().PadLeft(SNLen, '0') + model.WipBarcodeOther.EndNO.Substring(SNStart + SNLen); + + string EndNO = model.WipBarcodeOther.EndNO.Substring(0, SNStart) + InputEndNoQty.ToString().PadLeft(SNLen, '0') + model.WipBarcodeOther.EndNO.Substring(SNStart + SNLen); //判斷結束序號是否有重覆在其他區間 - //var CheckRepeat = await CheckWipBarcodeOtherRepeat(model.WipInfo.WipNO,model.SerialRuleItem,model.WipBarcodeOther.StartNO,EndNO, SNStart , SNLen); - // if (!CheckRepeat.Success) - // { - // _msg = CheckRepeat.Msg; - // // ModelState.AddModelError("error", CheckRepeat.Msg); - - // } - // else - // { - //取相同Rule 年、月、周 的所有料號 - var result1 = await _pcsApi.GetSerialRuleDetail(model.WipBarcodeOther.SerialRuleDetailID); - var q_Detail = await _pcsApi.GetSerialRuleDetailbyPCS040(model.WipBarcodeOther.SerialRuleDetailID); - var SerialRuleDetail_All = q_Detail.Where(w => w.Rule == result1.Select(s=>s.Rule).FirstOrDefault() - && w.YNum == result1.Select(s => s.YNum).FirstOrDefault() && w.MNum == result1.Select(s => s.MNum).FirstOrDefault() - && w.WNum == result1.Select(s => s.WNum).FirstOrDefault() && w.LotNum == result1.Select(s => s.LotNum).FirstOrDefault()); - int Max_SnNum = 0; - - if (!model.SerialRuleItem.StartsWith("OTHER")) - { - //抓取所有相同參數的值 - Max_SnNum = SerialRuleDetail_All.Max(s => s.SnNum); //抓取相同參數的SN_Num 最大數值取值,避免有不一致一情況 - } - else - { - Max_SnNum = result1.Select(s => s.SnNum).FirstOrDefault(); - } + //var CheckRepeat = await CheckWipBarcodeOtherRepeat(model.WipInfo.WipNO,model.SerialRuleItem,model.WipBarcodeOther.StartNO,EndNO, SNStart , SNLen); + // if (!CheckRepeat.Success) + // { + // _msg = CheckRepeat.Msg; + // // ModelState.AddModelError("error", CheckRepeat.Msg); + + // } + // else + // { + //取相同Rule 年、月、周 的所有料號 + var result1 = await _pcsApi.GetSerialRuleDetail(model.WipBarcodeOther.SerialRuleDetailID); + var q_Detail = await _pcsApi.GetSerialRuleDetailbyPCS040(model.WipBarcodeOther.SerialRuleDetailID); + var SerialRuleDetail_All = q_Detail.Where(w => w.Rule == result1.Select(s => s.Rule).FirstOrDefault() + && w.YNum == result1.Select(s => s.YNum).FirstOrDefault() && w.MNum == result1.Select(s => s.MNum).FirstOrDefault() + && w.WNum == result1.Select(s => s.WNum).FirstOrDefault() && w.LotNum == result1.Select(s => s.LotNum).FirstOrDefault()); + int Max_SnNum = 0; + + if (!model.SerialRuleItem.StartsWith("OTHER")) + { + //抓取所有相同參數的值 + Max_SnNum = SerialRuleDetail_All.Max(s => s.SnNum); //抓取相同參數的SN_Num 最大數值取值,避免有不一致一情況 + } + else + { + Max_SnNum = result1.Select(s => s.SnNum).FirstOrDefault(); + } - //判斷工單結束序號流水號號碼 - int modelEndNO = int.Parse(model.WipBarcodeOther.EndNO.Substring(SNStart, SNLen)); + //判斷工單結束序號流水號號碼 + int modelEndNO = int.Parse(model.WipBarcodeOther.EndNO.Substring(SNStart, SNLen)); #region 判斷是否有比此工單流水號更大的號碼 if (Max_SnNum > modelEndNO && !model.SerialRuleItem.StartsWith("OTHER")) { - _msg += "工單號碼【" + model.WipInfo.WipNO + "】出貨序號不為目前最大號,請先刪除最大號工單 !"; + _msg += "工單號碼【" + model.WipInfo.WipNO + "】出貨序號不為目前最大號,請先刪除最大號工單 !"; ModelState.AddModelError("error", _msg); return View(model); } @@ -9551,37 +9574,37 @@ namespace AMESCoreStudio.Web.Controllers await GetBarcodeOther(model.WipAtt.ItemNO, model.LotNo, QTY, model.WipInfo.WipNO, model.WipInfo.WipScheduleDate.ToString("yyyy-MM-dd")); _msg = "產生成功!"; - - return RedirectToAction("Refresh", "Home", new { msg = _msg }); + + return RedirectToAction("Refresh", "Home", new { msg = _msg }); } - IResultModel result; - model.WipBarcodeOther.WipNO = model.WipInfo.WipNO; - model.WipBarcodeOther.CreateUserID = GetLogInUserID(); - model.WipBarcodeOther.EndNO = EndNO; + IResultModel result; + model.WipBarcodeOther.WipNO = model.WipInfo.WipNO; + model.WipBarcodeOther.CreateUserID = GetLogInUserID(); + model.WipBarcodeOther.EndNO = EndNO; - result = await _pcsApi.PutWipBarcodeOther(JsonConvert.SerializeObject(model.WipBarcodeOther)); + result = await _pcsApi.PutWipBarcodeOther(JsonConvert.SerializeObject(model.WipBarcodeOther)); - if (result.Success) - { - _msg = "修改成功!"; - - return RedirectToAction("Refresh", "Home", new { msg = _msg }); + if (result.Success) + { + _msg = "修改成功!"; + + return RedirectToAction("Refresh", "Home", new { msg = _msg }); } else - { - _msg = result.Msg; - ModelState.AddModelError("error", result.Msg); - } + { + _msg = result.Msg; + ModelState.AddModelError("error", result.Msg); + } - return RedirectToAction("Refresh", "Home", new { msg = _msg }); + return RedirectToAction("Refresh", "Home", new { msg = _msg }); } - public async Task PCS040R(string id, string rule,string serialRuleitem, int otherID, string msg = null) + public async Task PCS040R(string id, string rule, string serialRuleitem, int otherID, string msg = null) { ViewBag.Msg = msg; @@ -9608,12 +9631,12 @@ namespace AMESCoreStudio.Web.Controllers model.LotNo = model.WipInfo.WerksNO.Substring(2, 2).ToUpper(); } - var result = await GetBarcodeOther(model.WipAtt.ItemNO, model.LotNo, model.WipInfo.PlanQTY, model.WipInfo.WipNO, model.WipInfo.WipScheduleDate.ToString("yyyy-MM-dd")); + var result = await GetBarcodeOther(model.WipAtt.ItemNO, model.LotNo, model.WipInfo.PlanQTY, model.WipInfo.WipNO, model.WipInfo.WipScheduleDate.ToString("yyyy-MM-dd")); - - //if (result.Success) - //{ - _msg = "產生成功!"; + + //if (result.Success) + //{ + _msg = "產生成功!"; // return RedirectToAction("PCS040R", "PCS", new { id = model.WipInfo.WipID, msg = _msg }); //} //else @@ -9638,7 +9661,7 @@ namespace AMESCoreStudio.Web.Controllers { model.WipInfo = q.FirstOrDefault(); model.WipAtt = await _pcsApi.GetWipAtt(model.WipInfo.WipNO); - // model.WipBarcodeOther = await _pcsApi.GetWipBarcodeOther(model.WipInfo.WipNO); + // model.WipBarcodeOther = await _pcsApi.GetWipBarcodeOther(model.WipInfo.WipNO); model.WipAtt.ModelNO = rule; model.SerialRuleItem = serialRuleitem; @@ -9647,16 +9670,16 @@ namespace AMESCoreStudio.Web.Controllers return View(model); } - public async Task> CheckWipBarcodeOtherRepeat(string Wip_NO,string ItemNO,string WipStartNO,string WipEndNO, int StartSN, int SNLen) + public async Task> CheckWipBarcodeOtherRepeat(string Wip_NO, string ItemNO, string WipStartNO, string WipEndNO, int StartSN, int SNLen) { - var resultGetWipBarcode = await _pcsApi.GetWipBarcodeOtherByItemNo(WipNo: Wip_NO, ItemNo: ItemNO); - // var result_Wip_NO = resultGetWipBarcode.Data.Where(w => w.WipNo == Wip_NO).FirstOrDefault(); + var resultGetWipBarcode = await _pcsApi.GetWipBarcodeOtherByItemNo(WipNo: Wip_NO, ItemNo: ItemNO); + // var result_Wip_NO = resultGetWipBarcode.Data.Where(w => w.WipNo == Wip_NO).FirstOrDefault(); ResultModel result = new ResultModel(); if (resultGetWipBarcode.DataTotal > 0) { - + foreach (var item in resultGetWipBarcode.Data) { if (item.WipNo != Wip_NO && item.StartNo.Length > 4) @@ -9668,15 +9691,15 @@ namespace AMESCoreStudio.Web.Controllers { // 判斷兩個序號區間是否有重疊 bool isNotOverlapping = ( - // range1.EndNumber >= range2.StartNumber || - // range2.EndNumber >= range1.StartNumber + // range1.EndNumber >= range2.StartNumber || + // range2.EndNumber >= range1.StartNumber range1.EndNumber < range2.StartNumber || range2.EndNumber < range1.StartNumber ); if (isNotOverlapping) { - // MessageBox.Show("兩個區間沒有重疊。"); + // MessageBox.Show("兩個區間沒有重疊。"); } else { @@ -9701,21 +9724,21 @@ namespace AMESCoreStudio.Web.Controllers return result; } } - public SerialRange ParseSerialRange(string startSerial, string endSerial, int StartSN, int SNLen) + public SerialRange ParseSerialRange(string startSerial, string endSerial, int StartSN, int SNLen) { // StartSN 流水號起始位置 // EndSN 流水號結束位置 - // string[] parts = SN.Split('~'); - // string startSerial = parts[0]; - // string endSerial = parts[1]; + // string[] parts = SN.Split('~'); + // string startSerial = parts[0]; + // string endSerial = parts[1]; - string prefix = startSerial.Substring(0, startSerial.Length - StartSN +1); - int startNumber = int.Parse(startSerial.Substring(startSerial.Length - StartSN +1, SNLen)); - int endNumber = int.Parse(endSerial.Substring(endSerial.Length - StartSN +1, SNLen)); + string prefix = startSerial.Substring(0, startSerial.Length - StartSN + 1); + int startNumber = int.Parse(startSerial.Substring(startSerial.Length - StartSN + 1, SNLen)); + int endNumber = int.Parse(endSerial.Substring(endSerial.Length - StartSN + 1, SNLen)); string serial = ""; if (startSerial.Length != StartSN + SNLen) - startSerial.Substring(StartSN + SNLen ,startSerial.Length - StartSN - SNLen); + startSerial.Substring(StartSN + SNLen, startSerial.Length - StartSN - SNLen); return new SerialRange { @@ -9740,7 +9763,7 @@ namespace AMESCoreStudio.Web.Controllers public async Task GetSerialCode_SerialLen(string Rule) { - + //計算流水號位置 if (Rule.Contains("[YYYY]")) { diff --git a/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs b/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs index 74e13590..b82318b5 100644 --- a/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs +++ b/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs @@ -1829,6 +1829,13 @@ namespace AMESCoreStudio.Web [WebApiClient.Attributes.HttpGet("api/TestLog/{id}")] ITask> GetTestLog(string id); + /// + /// Test Log 查詢 + /// + /// + [WebApiClient.Attributes.HttpGet("api/TestLog/ByMSSql/{id}")] + ITask> GetTestLogByMSSql(string id); + #endregion } } diff --git a/AMESCoreStudio.Web/ViewModels/PCS/PCS009RViewModel.cs b/AMESCoreStudio.Web/ViewModels/PCS/PCS009RViewModel.cs index 1d06a4d0..d206db3c 100644 --- a/AMESCoreStudio.Web/ViewModels/PCS/PCS009RViewModel.cs +++ b/AMESCoreStudio.Web/ViewModels/PCS/PCS009RViewModel.cs @@ -20,6 +20,7 @@ namespace AMESCoreStudio.Web.ViewModels.PCS KPChanges = new List(); Outfits = new List(); nGInfoDtos = new List(); + testLogs = new List(); } /// @@ -55,7 +56,7 @@ namespace AMESCoreStudio.Web.ViewModels.PCS /// public string Wight { get; set; } - + /// /// 工單歷程 @@ -92,6 +93,14 @@ namespace AMESCoreStudio.Web.ViewModels.PCS /// public List nGInfoDtos { get; set; } + /// + /// TestLog + /// + public List testLogs + { + get; set; + } + } /// @@ -279,4 +288,35 @@ namespace AMESCoreStudio.Web.ViewModels.PCS /// public string Date { get; set; } } + + /// + /// TestLog + /// + public class TestLog + { + /// + /// TestId + /// + public int TestId { get; set; } + + /// + /// 結果 + /// + public string Result { get; set; } + + /// + /// 測試時間 RECORD_TIME + /// + public string Record_Time { get; set; } + + /// + /// 檔案名稱 + /// + public string FileName { get; set; } + + /// + /// 檔案路徑 + /// + public string FilePath { get; set; } + } } diff --git a/AMESCoreStudio.Web/Views/PCS/PCS009R.cshtml b/AMESCoreStudio.Web/Views/PCS/PCS009R.cshtml index a877d29c..6fb89800 100644 --- a/AMESCoreStudio.Web/Views/PCS/PCS009R.cshtml +++ b/AMESCoreStudio.Web/Views/PCS/PCS009R.cshtml @@ -189,8 +189,6 @@ 過站時間 - - @@ -220,17 +218,64 @@ @DateTime.Parse(index.InputDate).ToString("yyyy/MM/dd HH:mm:ss") - - @if (index.Station == "PK1") - { - 測試Log - } - } + + @if (Model.testLogs.Count != 0) + { +
+
+ TestLog +
+ + + + + + + + + + + @foreach (var index in Model.testLogs) + { + + + + + + + } + +
+ 結果 + + 測試時間 + + 檔案路徑 +
+ @if (index.Result == "FAIL") + { + @index.Result + } + else + { + @index.Result + } + + @index.Record_Time + + @index.FileName + @*@index.FileName*@ + + 測試Log +
+
+ } +
組件清單 @@ -500,7 +545,7 @@