From ce68b6a1e10d7afebf39982cdea9bb06f4573faf Mon Sep 17 00:00:00 2001 From: Marvin Date: Wed, 16 Feb 2022 22:27:20 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=96=B0=E5=A2=9E=E7=BB=B4=E4=BF=AE=E8=B5=84?= =?UTF-8?q?=E6=96=99=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/REPController.cs | 151 ++++++++- AMESCoreStudio.Web/HttpApis/AMES/IREP.cs | 7 + AMESCoreStudio.Web/Views/REP/REP012.cshtml | 307 ++++++++++++++++++ .../Controllers/AMES/NgRepairsController.cs | 110 +++++++ 4 files changed, 565 insertions(+), 10 deletions(-) create mode 100644 AMESCoreStudio.Web/Views/REP/REP012.cshtml diff --git a/AMESCoreStudio.Web/Controllers/REPController.cs b/AMESCoreStudio.Web/Controllers/REPController.cs index 8d3c80bc..29fb40ea 100644 --- a/AMESCoreStudio.Web/Controllers/REPController.cs +++ b/AMESCoreStudio.Web/Controllers/REPController.cs @@ -25,7 +25,7 @@ namespace AMESCoreStudio.Web.Controllers public readonly IPCS _pcsApi; private readonly IWebHostEnvironment _env; - public REPController(ILogger logger, IREP repApi, IPPS ppsApi,IBAS basApi,IPCS pcsApi, IWebHostEnvironment env) + public REPController(ILogger logger, IREP repApi, IPPS ppsApi, IBAS basApi, IPCS pcsApi, IWebHostEnvironment env) { _logger = logger; _repApi = repApi; @@ -35,6 +35,109 @@ namespace AMESCoreStudio.Web.Controllers _env = env; } + private async Task GetProductTypeList() + { + var result = await _pcsApi.GetProductTypes(); + + var ProductTypes = new List(); + for (int i = 0; i < result.Count; i++) + { + ProductTypes.Add(new SelectListItem(result[i].ProductTypeName, result[i].ProductTypeID.ToString())); + } + + ViewBag.ProductTypeList = ProductTypes; + } + + private async Task GetTestTypeList() + { + var result = await _basApi.GetTestTypes(); + + var TestTypeItems = new List(); + for (int i = 0; i < result.Count; i++) + { + TestTypeItems.Add(new SelectListItem(result[i].TypeName, result[i].TypeNo.ToString())); + } + ViewBag.TestTypeList = TestTypeItems; + } + + + private async Task GetUnitList() + { + var result = await _basApi.GetFactoryUnits(); + + var UnitItems = new List(); + for (int i = 0; i < result.Count; i++) + { + UnitItems.Add(new SelectListItem(result[i].UnitName, result[i].UnitNo.ToString())); + } + ViewBag.UnitList = UnitItems; + } + + private async Task GetLineInfoList() + { + var result = await _basApi.GetLineInfoes(); + + var LineItems = new List(); + for (int i = 0; i < result.Count; i++) + { + LineItems.Add(new SelectListItem(result[i].LineDesc, result[i].LineID.ToString())); + } + ViewBag.LineList = LineItems; + } + + [HttpPost] + public async Task GetUnitLineJson(string unit_no) + { + var result = await _basApi.GetLineInfoByUnit(unit_no); + + var item = new List(); + + for (int i = 0; i < result.Count; i++) + { + item.Add(new SelectListItem(result[i].LineDesc, result[i].LineID.ToString())); + } + + if (item.Count == 0) + { + item.Add(new SelectListItem("全部", "*")); + } + + //将数据Json化并传到前台视图 + return Json(new { data = item }); + } + + private async Task GetStationList() + { + var result = await _basApi.GetStationses(); + + var StationItems = new List(); + for (int i = 0; i < result.Count; i++) + { + StationItems.Add(new SelectListItem(result[i].StationName, result[i].StationID.ToString())); + } + ViewBag.StationList = StationItems; + } + + [HttpPost] + public async Task GetUnitStationJson(string unit_no) + { + var result = await _basApi.GetStationsByUnit(unit_no); + + var item = new List(); + + for (int i = 0; i < result.Count; i++) + { + item.Add(new SelectListItem(result[i].StationName, result[i].StationID.ToString())); + } + + if (item.Count == 0) + { + item.Add(new SelectListItem("全部", "*")); + } + + //将数据Json化并传到前台视图 + return Json(new { data = item }); + } private async Task GetRMAReasonList() { @@ -109,7 +212,7 @@ namespace AMESCoreStudio.Web.Controllers { var result = await _repApi.GetNgInfoByBarcode(barcodeNo); - if (result.Count>0) + if (result.Count > 0) { return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); } @@ -232,7 +335,7 @@ namespace AMESCoreStudio.Web.Controllers ViewBag.Image3Url = $"\\REPImage\\" + "noimage.jfif"; } } - + return View(model); } @@ -369,11 +472,11 @@ namespace AMESCoreStudio.Web.Controllers //判斷組件是否更換 for (int i = 0; i < ng_component.Count; i++) { - if (ng_component[i].NewPartNo!="") + if (ng_component[i].NewPartNo != "") { - items.Add(new BarCodeCheckDto.inputItem - { - inputType="KP", + items.Add(new BarCodeCheckDto.inputItem + { + inputType = "KP", inputData = ng_component[i].NewPartNo, oldInputData = ng_component[i].OldPartNo }); @@ -412,7 +515,7 @@ namespace AMESCoreStudio.Web.Controllers station = repairStationID, line = lineID, unitNo = model.ngInfo.Wip.UnitNO, - inputItems = items + inputItems = items }; try @@ -472,7 +575,7 @@ namespace AMESCoreStudio.Web.Controllers public async Task REP002C(int id) { - + await GetRMAReasonList(); await GetRepairTypeList(); await GetNGReasonList(); @@ -487,7 +590,7 @@ namespace AMESCoreStudio.Web.Controllers } return View(model); - + } public async Task REP002R(int id) @@ -773,5 +876,33 @@ namespace AMESCoreStudio.Web.Controllers //return RedirectToAction("REP001V", "REP", new { id = model.ngComponent.NgID }); } #endregion + + #region 維修資料統計 + + public async Task REP012() + { + await GetProductTypeList(); + await GetTestTypeList(); + await GetUnitList(); + await GetLineInfoList(); + await GetStationList(); + + return View(); + } + + + public async Task REP012QueryAsync(string productTypeNo, string testTypeNo, string unitNo, string lineID, string stationID, string wipNO, string itemNO, string dateStart, string dateEnd, int page = 1, int limit = 10) + { + + var result = await _repApi.GetRepairData4REP012(productTypeNo, testTypeNo, unitNo, lineID, stationID, wipNO, itemNO, dateStart, dateEnd, page, limit); + + if (result.DataTotal > 0) + { + return Json(new Table() { code = 0, msg = "", data = result.Data, count = result.DataTotal }); + } + return Json(new Table() { count = 0, data = null }); + } + + #endregion } } diff --git a/AMESCoreStudio.Web/HttpApis/AMES/IREP.cs b/AMESCoreStudio.Web/HttpApis/AMES/IREP.cs index a82a2683..c12841bf 100644 --- a/AMESCoreStudio.Web/HttpApis/AMES/IREP.cs +++ b/AMESCoreStudio.Web/HttpApis/AMES/IREP.cs @@ -86,6 +86,13 @@ namespace AMESCoreStudio.Web [WebApiClient.Attributes.HttpGet("api/NgRepairs/{id}")] ITask> GetNgRepair(int id); + /// + /// 查詢維修資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/NgRepairs/GetRepairData4REP012")] + ITask> GetRepairData4REP012(string productType, string testType, string unitNo, string lineID, string stationID, string wipNo, string itemNo, string dateStart, string dateEnd, int page, int limit); + /// /// 根據COMPONENT_ID獲取指定維修過程資料 /// diff --git a/AMESCoreStudio.Web/Views/REP/REP012.cshtml b/AMESCoreStudio.Web/Views/REP/REP012.cshtml new file mode 100644 index 00000000..8dddf4c0 --- /dev/null +++ b/AMESCoreStudio.Web/Views/REP/REP012.cshtml @@ -0,0 +1,307 @@ +@{ + ViewData["Title"] = "維修資料統計"; + Layout = "~/Views/Shared/_AMESLayout.cshtml"; +} + + + + +
+
+
+
+
@ViewBag.Title
+
+
+
+
+
+
+
+
+
+ +
+ +
+ +
+
+
+
+ +
+ +
+ +
+
+
+
+ +
+ +
+ +
+
+
+
+
+
+
+
+ +
+ +
+ +
+
+
+
+ +
+ +
+ +
+
+
+
+ +
+ +
+
+
+ +
+
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +@section Scripts{ + +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/NgRepairsController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/NgRepairsController.cs index b9c2f044..efd5bbcd 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/NgRepairsController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/NgRepairsController.cs @@ -84,6 +84,116 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES return ngRepair; } + /// + /// 維修資料統計 + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + [Route("[action]")] + [HttpGet] + public async Task> GetRepairData4REP012(string productType, string testType, string unitNo, string lineID, string stationID, string wipNo, string itemNo, string dateStart, string dateEnd, int page = 1, int limit = 10) + { + ResultModel result = new ResultModel(); + var q = from q1 in _context.NgRepairs + join q2 in _context.NgInfos on q1.NgID equals q2.NgID + join q3 in _context.BarcodeInfoes on q2.BarcodeID equals q3.BarcodeID + join q4 in _context.WipInfos on q3.WipID equals q4.WipID + join q5 in _context.WipAtts on q4.WipNO equals q5.WipNO + select new + { + q4.UnitNO, + q4.WipNO, + q5.ItemNO, + q4.LineID, + q3.BarcodeNo, + q2.TypeNo, + q2.StationId, + q2.ReasonNo, + q1.RmaNo, + q1.CreateDate + }; + if (productType != "*") + { + + } + + if (testType != "*") + { + q = q.Where(w => w.TypeNo == testType); + } + + if (unitNo != "*") + { + q = q.Where(w => w.UnitNO == unitNo); + } + + if (lineID != null) + { + if (lineID != "*") + { + q = q.Where(w => w.LineID == int.Parse(lineID)); + } + } + + if (stationID != null) + { + if (stationID != "*") + { + q = q.Where(w => w.StationId == int.Parse(lineID)); + } + } + + if (wipNo != "") + { + q = q.Where(w => w.WipNO == wipNo); + } + + if (itemNo != "") + { + q = q.Where(w => w.ItemNO == itemNo); + } + + if (dateStart != null && dateEnd != null) + { + if (dateStart != "" && dateEnd != "") + { + q = q.Where(w => w.CreateDate >= DateTime.Parse(dateStart) && w.CreateDate <= DateTime.Parse(dateEnd)); + } + } + + //紀錄筆數 + result.DataTotal = q.Count(); + + //Table 頁數 + if (page > 0) + { + q = q.Skip((page - 1) * limit).Take(limit); + } + + result.Data = await q.ToListAsync(); + + if (result == null) + { + result.Msg = "查無資料"; + result.Success = false; + return result; + } + + result.Success = true; + result.Msg = "OK"; + return result; + } + /// /// ///