From 9ca82eb4d34cc4b2c9d8ff70611d43132a829691 Mon Sep 17 00:00:00 2001 From: Ray <raylin@aten.com> Date: Fri, 17 Feb 2023 16:51:38 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E7=94=9F=E7=94=A2=E9=80=B2=E5=BA=A6?= =?UTF-8?q?=E6=9F=A5=E8=A9=A2=E5=8A=A0=E5=85=A5=20=E5=B7=A5=E5=96=AE?= =?UTF-8?q?=E7=8B=80=E6=85=8B=E6=9F=A5=E8=A9=A2=E5=8F=8A=E5=AE=8C=E5=B7=A5?= =?UTF-8?q?=E6=95=B8=E9=87=8F=E9=A1=AF=E7=A4=BA=202.=20=E9=81=8E=E7=AB=99?= =?UTF-8?q?=E5=8F=96=E6=B6=88MAC=E5=8D=80=E9=96=93=E5=88=A4=E6=96=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/QRSController.cs | 35 +++++- AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs | 2 +- AMESCoreStudio.Web/Views/QRS/QRS011.cshtml | 29 ++++- .../Controllers/AMES/WipInfosController.cs | 8 +- .../Controllers/BLL/BarCodeCheckController.cs | 118 +++++++++--------- 5 files changed, 122 insertions(+), 70 deletions(-) diff --git a/AMESCoreStudio.Web/Controllers/QRSController.cs b/AMESCoreStudio.Web/Controllers/QRSController.cs index dd2b2c38..8dcf5944 100644 --- a/AMESCoreStudio.Web/Controllers/QRSController.cs +++ b/AMESCoreStudio.Web/Controllers/QRSController.cs @@ -405,11 +405,19 @@ namespace AMESCoreStudio.Web.Controllers return View(); } - public async Task<IActionResult> QRS011AAsync(string unitNo, string itemNO, string wipNO) + /// <summary> + /// 生產進度查詢 + /// </summary> + /// <param name="unitNo">生產製程</param> + /// <param name="itemNO">料號</param> + /// <param name="wipNO">工單號碼</param> + /// <param name="wipStatus">工單狀態:N(未完工) E(已完工)</param> + /// <returns></returns> + public async Task<IActionResult> QRS011AAsync(string unitNo, string itemNO, string wipNO, string wipStatus) { ViewData["Title"] = "查詢條件 - 製程代碼 : " + unitNo + "; 料號 : " + itemNO + "; 工單號碼 : " + wipNO; - IResultModel<dynamic> result = await _pcsApi.GetWipInfo4QRS011(unitNo, itemNO, wipNO); + IResultModel<dynamic> result = await _pcsApi.GetWipInfo4QRS011(unitNo, itemNO, wipNO, wipStatus); string wipDataList = "<font size='3'>"; if (result.DataTotal > 0) @@ -474,6 +482,23 @@ namespace AMESCoreStudio.Web.Controllers } } + // 完工站(1000)PASS資料 抓上一站PASS數 + if (rule_sation[j].StationID == 1000) + { + wip_station = await _pcsApi.GetWipStation4QRS009Group(wip_id, rule_sation[j - 1].StationID); + if (wip_station.DataTotal > 0) + { + foreach (var data in wip_station.Data) + { + JObject j0 = JObject.Parse(data.ToString()); + if (j0["ruleStatus"].ToString() == "P") + { + okQty = int.Parse(j0["firstCnt"].ToString()); + } + } + } + } + //stationQty = stationQty + "<td width='150' style='text-align:left'><a href=\"javascript:hg.open('過站PASS條碼資料','/QRS/QRS009P/" + wip_id + "_" + rule_sation[j].RuleStationID + "','','',true);\">" + okQty + "</a>/<a href=\"javascript:hg.open('過站FAIL條碼資料','/QRS/QRS009F','','',true);\">" + ngQty + "</a></td>"; stationQty = stationQty + "<td width='150' style='text-align:left'><a href=\"javascript:hg.open('過站PASS條碼資料','/QRS/QRS009P/" + wip_id + "_" + rule_sation[j].StationID + "',800,600);\">" + okQty + "</a>/<a href=\"javascript:hg.open('過站FAIL條碼資料','/QRS/QRS009F/" + wip_id + "_" + rule_sation[j].StationID + "',800,600);\">" + ngQty + "</a></td>"; @@ -994,7 +1019,7 @@ namespace AMESCoreStudio.Web.Controllers var result = await _pcsApi.GetWipInfo4QRS013(wipNO, factoryNo, page, limit); - string cols= @""; + string cols = @""; ViewBag.ColList = cols; @@ -1503,7 +1528,7 @@ namespace AMESCoreStudio.Web.Controllers { if (kp_name.StartsWith("MB") && kp_name.IndexOf("MAC") > 0) { - + kpDataList = kpDataList + "<td width = '160' style = 'text-align:left'> " + kp_name + "</td>"; } else @@ -1643,7 +1668,7 @@ namespace AMESCoreStudio.Web.Controllers return View(); } - public async Task<IActionResult> QRS018D(string wipNO,string stationID,string partNO) + public async Task<IActionResult> QRS018D(string wipNO, string stationID, string partNO) { var station = await _basApi.GetStations(int.Parse(stationID)); diff --git a/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs b/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs index 6bcd6270..c5d59a6d 100644 --- a/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs +++ b/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs @@ -1042,7 +1042,7 @@ namespace AMESCoreStudio.Web /// </summary> /// <returns></returns> [WebApiClient.Attributes.HttpGet("api/WipInfos/GetWipInfo4QRS011")] - ITask<ResultModel<dynamic>> GetWipInfo4QRS011(string unitNo, string itemNO, string wipNO); + ITask<ResultModel<dynamic>> GetWipInfo4QRS011(string unitNo, string itemNO, string wipNO , string wipStatus); #endregion diff --git a/AMESCoreStudio.Web/Views/QRS/QRS011.cshtml b/AMESCoreStudio.Web/Views/QRS/QRS011.cshtml index 19e564f1..39abd670 100644 --- a/AMESCoreStudio.Web/Views/QRS/QRS011.cshtml +++ b/AMESCoreStudio.Web/Views/QRS/QRS011.cshtml @@ -15,10 +15,21 @@ <div class="layui-form"> <div class="layui-row"> <div class="layui-form-item"> + <div class="layui-col-sm2"> + <div class="layui-inline"> + <label class="layui-form-label">工單狀態:</label> + <div class="layui-input-inline" style="width:100px"> + <select id="wipStatus" lay-filter="wipStatus" lay-verify="required" lay-submit> + <option value="A">未完工</option> + <option value="E">已完工</option> + </select> + </div> + </div> + </div> <div class="layui-col-sm3"> <div class="layui-inline"> <label class="layui-form-label">生產單位:</label> - <div class="layui-input-inline"> + <div class="layui-input-inline" > <select id="unit" lay-filter="unit" lay-verify="required" lay-submit asp-items="@ViewBag.UnitList"> <option value="*">全部</option> </select> @@ -54,8 +65,10 @@ </div> </div> @section Scripts{ - @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); - await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + @{ + await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); + } <script type="text/javascript"> layui.use(['form', 'layer', 'laydate'], function () { var form = layui.form; @@ -65,9 +78,17 @@ var unitNo = $("#unit").val(); var itemNO = $("#itemNO").val(); var wipNO = $("#wipNO").val(); + var wipStatus = $("#wipStatus").val(); + console.log(wipNO); + // 工單狀態選已完工 必須要有工單號碼 + if (wipStatus == "E" && wipNO == '') + { + layer.alert('要查詢工單狀態已完工,必須要輸入工單號碼'); + return; + } - var query = "?unitNo=" + unitNo + "&itemNO=" + itemNO + "&wipNO=" + wipNO; + var query = `?unitNo=${unitNo}&itemNO=${itemNO}&wipNO=${wipNO}&wipStatus=${wipStatus}`; hg.open('生產進度查詢', '/QRS/QRS011A' + query, '', '', true); }; diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipInfosController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipInfosController.cs index 6d20ff26..f9785462 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/WipInfosController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipInfosController.cs @@ -172,10 +172,14 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES /// <summary> /// 查詢工單資料QRS011 /// </summary> + /// <param name="unitNo">生產製程</param> + /// <param name="itemNO">料號</param> + /// <param name="wipNO">工單號碼</param> + /// <param name="wipStatus">工單狀態:N(未完工) E(已完工)</param> /// <returns></returns> [Route("[action]")] [HttpGet] - public async Task<ResultModel<dynamic>> GetWipInfo4QRS011(string unitNo, string itemNO, string wipNO) + public async Task<ResultModel<dynamic>> GetWipInfo4QRS011(string unitNo, string itemNO, string wipNO , string wipStatus = "A") { ResultModel<dynamic> result = new ResultModel<dynamic>(); var q = from q1 in _context.WipInfos @@ -198,7 +202,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES q4.UnitName }; - q = q.Where(w => w.StatusNO == "A"); + q = q.Where(w => w.StatusNO == wipStatus); if (unitNo != "*") { q = q.Where(w => w.UnitNO == unitNo); diff --git a/AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs b/AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs index 232417ce..66bf4b54 100644 --- a/AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs +++ b/AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs @@ -281,35 +281,36 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES #endregion #region 判斷MAC區間 - if (q_Kp.KpNo.ToUpper() == "MAC") - { - - var wipMAC = await wipMACController.GetWipMAC(barCodeCheckDto.wipNo); - if (wipMAC.Value == null) - { - resultModel.Msg += "工單號碼【" + barCodeCheckDto.wipNo + "】 找不到綁定MAC區間</br>"; - } - else - { - // 判斷MAC前置碼是否一樣 - if (!KPs.inputData.StartsWith(wipMAC.Value.Title)) - { - resultModel.Msg += "組件序號【" + KPs.inputData + "】 與MAC【" + wipMAC.Value.Title + "】前置碼不符合 </br>"; - } - else - { - // 判斷是否符合區間 - if (KPs.inputData.Length == 12) - { - if (!(Convert.ToInt32(wipMAC.Value.StartNO, 16) <= Convert.ToInt32(KPs.inputData.Substring(6, 6), 16) - && Convert.ToInt32(KPs.inputData.Substring(6, 6), 16) <= Convert.ToInt32(wipMAC.Value.EndNO, 16))) - { - resultModel.Msg += "組件序號【" + KPs.inputData + "】 與工單設定MAC區間不符合 </br>"; - } - } - } - } - } + // 安勤不需要判斷MAC區間 + //if (q_Kp.KpNo.ToUpper() == "MAC") + //{ + + // var wipMAC = await wipMACController.GetWipMAC(barCodeCheckDto.wipNo); + // if (wipMAC.Value == null) + // { + // resultModel.Msg += "工單號碼【" + barCodeCheckDto.wipNo + "】 找不到綁定MAC區間</br>"; + // } + // else + // { + // // 判斷MAC前置碼是否一樣 + // if (!KPs.inputData.StartsWith(wipMAC.Value.Title)) + // { + // resultModel.Msg += "組件序號【" + KPs.inputData + "】 與MAC【" + wipMAC.Value.Title + "】前置碼不符合 </br>"; + // } + // else + // { + // // 判斷是否符合區間 + // if (KPs.inputData.Length == 12) + // { + // if (!(Convert.ToInt32(wipMAC.Value.StartNO, 16) <= Convert.ToInt32(KPs.inputData.Substring(6, 6), 16) + // && Convert.ToInt32(KPs.inputData.Substring(6, 6), 16) <= Convert.ToInt32(wipMAC.Value.EndNO, 16))) + // { + // resultModel.Msg += "組件序號【" + KPs.inputData + "】 與工單設定MAC區間不符合 </br>"; + // } + // } + // } + // } + //} #endregion #region 判斷出貨序號 @@ -1929,35 +1930,36 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES #endregion #region 判斷MAC區間 - if (wipKpsItem.KpNo.ToUpper() == "MAC") - { - WipMACController wipMACController = new WipMACController(_context); - var wipMAC = await wipMACController.GetWipMAC(barcodeItemKPDto.WipNo); - if (wipMAC.Value == null) - { - CheckMsg += "工單號碼【" + barcodeItemKPDto.WipNo + "】 找不到綁定MAC區間</br>"; - } - else - { - // 判斷MAC前置碼是否一樣 - if (!barcodeKPDtoItem.inputData.StartsWith(wipMAC.Value.Title)) - { - CheckMsg += "組件序號【" + barcodeKPDtoItem.inputData + "】 與MAC【" + wipMAC.Value.Title + "】前置碼不符合 </br>"; - } - else - { - // 判斷是否符合區間 - if (barcodeKPDtoItem.inputData.Length == 12) - { - if (!(Convert.ToInt32(wipMAC.Value.StartNO, 16) <= Convert.ToInt32(barcodeKPDtoItem.inputData.Substring(6, 6), 16) - && Convert.ToInt32(barcodeKPDtoItem.inputData.Substring(6, 6), 16) <= Convert.ToInt32(wipMAC.Value.EndNO, 16))) - { - CheckMsg += "組件序號【" + barcodeKPDtoItem.inputData + "】 與工單設定MAC區間不符合 </br>"; - } - } - } - } - } + // 安勤不需要判斷MAC區間 + //if (wipKpsItem.KpNo.ToUpper() == "MAC") + //{ + // WipMACController wipMACController = new WipMACController(_context); + // var wipMAC = await wipMACController.GetWipMAC(barcodeItemKPDto.WipNo); + // if (wipMAC.Value == null) + // { + // CheckMsg += "工單號碼【" + barcodeItemKPDto.WipNo + "】 找不到綁定MAC區間</br>"; + // } + // else + // { + // // 判斷MAC前置碼是否一樣 + // if (!barcodeKPDtoItem.inputData.StartsWith(wipMAC.Value.Title)) + // { + // CheckMsg += "組件序號【" + barcodeKPDtoItem.inputData + "】 與MAC【" + wipMAC.Value.Title + "】前置碼不符合 </br>"; + // } + // else + // { + // // 判斷是否符合區間 + // if (barcodeKPDtoItem.inputData.Length == 12) + // { + // if (!(Convert.ToInt32(wipMAC.Value.StartNO, 16) <= Convert.ToInt32(barcodeKPDtoItem.inputData.Substring(6, 6), 16) + // && Convert.ToInt32(barcodeKPDtoItem.inputData.Substring(6, 6), 16) <= Convert.ToInt32(wipMAC.Value.EndNO, 16))) + // { + // CheckMsg += "組件序號【" + barcodeKPDtoItem.inputData + "】 與工單設定MAC區間不符合 </br>"; + // } + // } + // } + // } + //} #endregion #region 判斷出貨序號