From e366fac5f3d68e659f2b69264158b3a8c1e25731 Mon Sep 17 00:00:00 2001 From: Sai Date: Wed, 10 Jan 2024 22:59:55 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E4=BF=AE=E6=AD=A3=E9=81=8E=E7=AB=99?= =?UTF-8?q?=E5=88=A4=E6=96=B7=E5=87=BA=E8=B2=A8=E5=BA=8F=E8=99=9F=E5=95=8F?= =?UTF-8?q?=E9=A1=8C=202.=20=E8=A7=A3=E9=99=A4=E5=87=BA=E8=B2=A8=E5=BA=8F?= =?UTF-8?q?=E8=99=9F=E5=8A=A0=E5=85=A5=E5=88=A4=E6=96=B7-=E7=AE=B1?= =?UTF-8?q?=E8=99=9F=E6=9C=89=E5=9C=A8=E5=85=A5=E5=BA=AB=E5=96=AE=E6=98=AF?= =?UTF-8?q?=E5=85=81=E6=94=B6=E6=88=96=E6=9C=AA=E6=AA=A2=E9=A9=97=E7=9A=84?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E8=A7=A3=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/PCSController.cs | 48 ++++++++++++++----- AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs | 8 ++++ .../AMES/FqcInhouseDetailController.cs | 20 ++++++++ .../BLL/BarCodeCheckNewController.cs | 2 +- 4 files changed, 66 insertions(+), 12 deletions(-) diff --git a/AMESCoreStudio.Web/Controllers/PCSController.cs b/AMESCoreStudio.Web/Controllers/PCSController.cs index 02fc0ca7..3a1fdbf8 100644 --- a/AMESCoreStudio.Web/Controllers/PCSController.cs +++ b/AMESCoreStudio.Web/Controllers/PCSController.cs @@ -8436,6 +8436,7 @@ namespace AMESCoreStudio.Web.Controllers { IResultModel result; var _msg = string.Empty; + var _msgError = string.Empty; // 內部條碼 if (select == "0") { @@ -8453,9 +8454,21 @@ namespace AMESCoreStudio.Web.Controllers } BarcodeInfo barcodeInfo = q.FirstOrDefault(); + // 有箱號時判斷是有否在FQC抽驗,允收或未檢驗不能刪除 + if (!string.IsNullOrWhiteSpace(barcodeInfo.BoxNo)) + { + var CheckFqcOn = await _pcsApi.GetCheckFqcOnGoIng(barcodeInfo.BoxNo); + if (CheckFqcOn.Any()) + { + ModelState.AddModelError("error", $"無法解除綁定,內部序號【{model.BarCodeNo}】已綁定箱號【{barcodeInfo.BoxNo}】並且已開FQC"); + return View(model); + } + } + barcodeInfo.BoxNo = ""; barcodeInfo.ExtraBarcodeNo = ""; barcodeInfo.UpdateDate = DateTime.Now; + result = await _pcsApi.PutBarcodeInfoes(JsonConvert.SerializeObject(barcodeInfo)); if (result.Success) { @@ -8470,6 +8483,7 @@ namespace AMESCoreStudio.Web.Controllers // 條碼區間 if (select == "1") { + if (string.IsNullOrWhiteSpace(model.BarCodeNoStr) || string.IsNullOrWhiteSpace(model.BarCodeNoEnd)) { ModelState.AddModelError("error", "請確定都有輸入條碼區間"); @@ -8515,6 +8529,27 @@ namespace AMESCoreStudio.Web.Controllers var BarCode = model.BarCodeNoEnd.Substring(0, model.BarCodeNoEnd.Length - NoLength); + for (int i = NoStr; i <= NoEnd; i++) + { + var itemBarcodeNo = BarCode + i.ToString().PadLeft(NoLength, '0'); + var q_BarcodeInfo = await _pcsApi.GetBarcodeInfoesByNo(itemBarcodeNo); + + if (q_BarcodeInfo.Count != 0) + { + BarcodeInfo barcodeInfo = q_BarcodeInfo.FirstOrDefault(); + // 有箱號時判斷是有否在FQC抽驗,允收或未檢驗不能刪除 + if (!string.IsNullOrWhiteSpace(barcodeInfo.BoxNo)) + { + var CheckFqcOn = await _pcsApi.GetCheckFqcOnGoIng(barcodeInfo.BoxNo); + if (CheckFqcOn.Any()) + { + ModelState.AddModelError("error", $"無法解除綁定,內部序號【{barcodeInfo.BarcodeNo}】已綁定箱號【{barcodeInfo.BoxNo}】並且已開FQC"); + return View(model); + } + } + } + } + for (int i = NoStr; i <= NoEnd; i++) { var itemBarcodeNo = BarCode + i.ToString().PadLeft(NoLength, '0'); @@ -8526,18 +8561,9 @@ namespace AMESCoreStudio.Web.Controllers barcodeInfo.BoxNo = ""; barcodeInfo.ExtraBarcodeNo = ""; barcodeInfo.UpdateDate = DateTime.Now; - result = await _pcsApi.PutBarcodeInfoes(JsonConvert.SerializeObject(barcodeInfo)); - //if (result.Success) - //{ - // _msg += "解除綁定成功"; - //} - //else - //{ - // _msg += "解除綁定失敗"; - //} + await _pcsApi.PutBarcodeInfoes(JsonConvert.SerializeObject(barcodeInfo)); } } - _msg = "條碼區間【" + model.BarCodeNoStr + "】 ~ 【" + model.BarCodeNoEnd + "】解除綁定成功"; } @@ -9385,7 +9411,7 @@ namespace AMESCoreStudio.Web.Controllers if (result1.Where(w => w.ItemNo.StartsWith("OTHER")).Count() == 0) { var AllSerialRule = await _pcsApi.GetSerialRuleDetailbyPCS040(result1.Select(s => s.SerialRuleDetailID).FirstOrDefault()); - AllSerialRule = AllSerialRule.Where(w => w.YNum == model.YNum && w.MNum == model.MNum && w.WNum == model.WNum && w.LotNum == model.LotNum && w.MCode == model.MCode && w.DNum == model.DNum).ToList(); + AllSerialRule = AllSerialRule.Where(w => w.YNum == model.YNum && w.MNum == model.MNum && w.WNum == model.WNum && w.LotNum == model.LotNum && w.MCode == model.MCode && w.DNum == model.DNum).ToList(); foreach (var item in AllSerialRule) { model.SerialRuleDetailID = item.SerialRuleDetailID; diff --git a/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs b/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs index 1d508e08..54119fcd 100644 --- a/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs +++ b/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs @@ -1406,6 +1406,14 @@ namespace AMESCoreStudio.Web /// [WebApiClient.Attributes.HttpGet("api/FqcInhouseDetail/BySerialNo/{id}")] ITask> GetFqcInhouseDetailBySerialNo(string id); + + /// + /// 判斷箱號是否有在FQC允收或未檢驗 + /// + /// 箱號 + /// + [WebApiClient.Attributes.HttpGet("api/FqcInhouseDetail/GetCheckFqcOnGoIng")] + ITask> GetCheckFqcOnGoIng(string boxNo); #endregion #region 取出貨序號 diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseDetailController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseDetailController.cs index 557a2f2c..1ea62189 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseDetailController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseDetailController.cs @@ -9,6 +9,8 @@ using AMESCoreStudio.WebApi; using AMESCoreStudio.WebApi.Models.AMES; using AMESCoreStudio.CommonTools.Result; using AMESCoreStudio.WebApi.DTO.AMES; +using Dapper; +using AMESCoreStudio.WebApi.Extensions; namespace AMESCoreStudio.WebApi.Controllers.AMES { @@ -213,6 +215,24 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES return result; } + /// + /// 查詢箱號是否有在FQC抽驗中或允收 + /// + /// + [HttpGet("GetCheckFqcOnGoIng")] + public async Task> GetCheckFqcOnGoIng(string boxNo) + { + var querySql = @" SELECT * FROM JHAMES.FQC_INHOUSE_MASTER M + INNER JOIN JHAMES.FQC_INHOUSE_DETAIL D ON M.INHOUSE_NO = D.INHOUSE_NO AND M.SEQ_ID = D.SEQ_ID + WHERE D.SERIAL_NO = :SerialNo + AND STATUS IN ('P','A') "; + + DynamicParameters p = new DynamicParameters(); + p.Add("SerialNo", boxNo); + var result = await _context.Database.DapperQueryAsync(querySql, p); + return result; + } + /// /// 新增檢驗單明細資料檔 /// diff --git a/AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckNewController.cs b/AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckNewController.cs index 6225557b..4e9f8068 100644 --- a/AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckNewController.cs +++ b/AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckNewController.cs @@ -2242,7 +2242,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES } // 判斷序號為出貨條碼,並轉成內部條碼 - var BarCodeInfo = await _context.BarcodeInfoes.Where(w => w.ExtraBarcodeNo == barCodeCheckDto.barcode.Trim()).FirstOrDefaultAsync(); + var BarCodeInfo = await _context.BarcodeInfoes.Where(w => w.ExtraBarcodeNo.Trim().ToUpper() == barCodeCheckDto.barcode.Trim().ToUpper()).FirstOrDefaultAsync(); if (BarCodeInfo != null) { result.extNo = BarCodeInfo.ExtraBarcodeNo;