From 28c19dd422ab7190f2ddfd73376bbb105f44d2a2 Mon Sep 17 00:00:00 2001 From: ray Date: Sat, 19 Nov 2022 11:18:06 +0800 Subject: [PATCH] =?UTF-8?q?1.=20FQC=E6=8A=BD=E9=A9=97=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E7=AE=B1=E8=99=9F=E6=8A=BD=E9=A9=97=E5=95=8F=E9=A1=8C=202.=20?= =?UTF-8?q?=E9=81=8E=E7=AB=99=E8=A8=8A=E6=81=AF=E5=88=A4=E6=96=B7=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/FQCController.cs | 69 ++++++++++++------- .../Controllers/BLL/BarCodeCheckController.cs | 4 +- 2 files changed, 47 insertions(+), 26 deletions(-) diff --git a/AMESCoreStudio.Web/Controllers/FQCController.cs b/AMESCoreStudio.Web/Controllers/FQCController.cs index fb05b520..01c09fe1 100644 --- a/AMESCoreStudio.Web/Controllers/FQCController.cs +++ b/AMESCoreStudio.Web/Controllers/FQCController.cs @@ -1036,21 +1036,29 @@ namespace AMESCoreStudio.Web.Controllers return View("FQC007C", model); }; - var FqcResultDetail = new FqcResultDetail - { - BarcodeNo = result_BarCodeInfo.FirstOrDefault().BarcodeNo, - ExtraBarcodeNo = result_BarCodeInfo.FirstOrDefault().ExtraBarcodeNo, - BoxNo = result_BarCodeInfo.FirstOrDefault().BoxNo, - StatusNo = model.StatusNo, - NgMemo = model.NgMemo, - NgReasonNo = model.NgReasonNo, - CreateUserID = GetLogInUserID(), - UpdateUserID = GetLogInUserID() + var FqcResultDetails = new List(); + foreach (var item in result_BarCodeInfo) + { + FqcResultDetails.Add(new FqcResultDetail + { + BarcodeNo = item.BarcodeNo, + ExtraBarcodeNo = item.ExtraBarcodeNo, + BoxNo = item.BoxNo, + StatusNo = model.StatusNo, + NgMemo = model.NgMemo, + NgReasonNo = model.NgReasonNo, + CreateUserID = GetLogInUserID(), + UpdateUserID = GetLogInUserID() + }); }; + // 要抽驗的內部條碼 + var AddBarCodeNo = FqcResultDetails.Select(s => s.BarcodeNo).ToList(); - if (string.IsNullOrWhiteSpace(FqcResultDetail.ExtraBarcodeNo)) + if (FqcResultDetails.Where(w => string.IsNullOrWhiteSpace(w.ExtraBarcodeNo)).Any()) { - ModelState.AddModelError("error", "找不到該筆資料的出貨序號"); + var NoExtraBarcodeNo = FqcResultDetails.Where(w => string.IsNullOrWhiteSpace(w.ExtraBarcodeNo)) + .Select(s => s.BarcodeNo).ToList(); + ModelState.AddModelError("error", string.Join(',', NoExtraBarcodeNo) + "找不到出貨序號"); return View("FQC007C", model); } #endregion @@ -1060,9 +1068,12 @@ namespace AMESCoreStudio.Web.Controllers if (result_FqcResultMaster.Count() != 0) { var result_ResultDetail = await _fqcApi.GetFqcResultDetail(result_FqcResultMaster.FirstOrDefault().FqcID); - if (result_ResultDetail.Where(w => w.BarcodeNo == FqcResultDetail.BarcodeNo).Any()) + if (result_ResultDetail.Where(w => AddBarCodeNo.Contains(w.BarcodeNo)).Any()) { - ModelState.AddModelError("error", "內部序號【" + FqcResultDetail.BarcodeNo + "】已抽驗過"); + var errorMag = result_ResultDetail.Where(w => AddBarCodeNo.Contains(w.BarcodeNo)) + .Select(s => s.BarcodeNo).ToList(); + ModelState.AddModelError("error", "內部序號【" + string.Join(",", errorMag) + "】已抽驗過"); + return View("FQC007C", model); } } @@ -1073,7 +1084,7 @@ namespace AMESCoreStudio.Web.Controllers if (result_FqcResultMaster.Count != 0) { FqcResultMaster = result_FqcResultMaster.FirstOrDefault(); - FqcResultMaster.QaQty += 1; + FqcResultMaster.QaQty += AddBarCodeNo.Count(); FqcResultMaster.UpdateDate = DateTime.Now; FqcResultMaster.UpdateUserID = GetLogInUserID(); } @@ -1086,7 +1097,7 @@ namespace AMESCoreStudio.Web.Controllers FqcResultMaster.SeqID = model.SeqID; FqcResultMaster.LotQty = FirstFqc.InhouseQty; FqcResultMaster.WipNo = FirstFqc.WipNo; - FqcResultMaster.QaQty = 1; + FqcResultMaster.QaQty = AddBarCodeNo.Count(); FqcResultMaster.ItemNo = FirstFqc.ItemNo; FqcResultMaster.ModelNo = FirstFqc.ModelNo; FqcResultMaster.StartTime = DateTime.Now; @@ -1096,28 +1107,38 @@ namespace AMESCoreStudio.Web.Controllers // 判斷是PASS || FAIL if (model.StatusNo == "F") - FqcResultMaster.FailQty += 1; + FqcResultMaster.FailQty += AddBarCodeNo.Count(); else { - FqcResultMaster.PassQty += 1; - FqcResultDetail.NgReasonNo = ""; - FqcResultDetail.NgMemo = ""; + FqcResultMaster.PassQty += AddBarCodeNo.Count(); } #endregion IResultModel result; + var FqcID = 0; if (result_FqcResultMaster.Count == 0) { result = await _fqcApi.PostFqcResultMaster(JsonConvert.SerializeObject(FqcResultMaster)); - FqcResultDetail.FqcID = result.Data.FirstOrDefault().FqcID; + FqcID = result.Data.FirstOrDefault().FqcID; } else { result = await _fqcApi.PutFqcResultMaster(JsonConvert.SerializeObject(FqcResultMaster)); - FqcResultDetail.FqcID = result_FqcResultMaster.FirstOrDefault().FqcID; + FqcID = result_FqcResultMaster.FirstOrDefault().FqcID; } - IResultModel result_detail; - result_detail = await _fqcApi.PostFqcResultDetail(JsonConvert.SerializeObject(FqcResultDetail)); + + IResultModel result_detail = new ResultModel(); + foreach (var item in FqcResultDetails) + { + item.FqcID = FqcID; + if (model.StatusNo == "P") + { + item.NgMemo = ""; + item.NgReasonNo = ""; + } + result_detail = await _fqcApi.PostFqcResultDetail(JsonConvert.SerializeObject(item)); + } + if (result_detail.Success) { diff --git a/AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs b/AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs index 78d22dc5..529755ad 100644 --- a/AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs +++ b/AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs @@ -2114,9 +2114,9 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES // 目前BarCodeInfo StationID 取得相對應下個流程StationID var rulesByBarCodeInfoStationID = rules.Value.Where(w => w.StationID == barcodeInfo.StationID).ToList(); // 當下個流程 != 目前過站流程 - if (rulesByBarCodeInfoStationID.Where(w => w.RuleStatus == "P" && w.NextStationID == stationID).Count() == 0) + if (rulesByBarCodeInfoStationID.Where(w => w.NextStationID == stationID && w.RuleStatus == barcodeInfo.RuleStatus).Count() == 0) { - var Nextstation = rulesByBarCodeInfoStationID.Where(w => w.RuleStatus == "P").ToList(); + var Nextstation = rulesByBarCodeInfoStationID.Where(w => w.RuleStatus == barcodeInfo.RuleStatus).ToList(); var StationName = Nextstation.Select(s => s.NextStation.StationName).ToArray(); resultModel.Msg = "該內部序號下一個作業站應該是:" + String.Join('、', StationName) + " ,請確認"; return resultModel;