From fd10621b5f9980f8e9e87489195c7d957add7f53 Mon Sep 17 00:00:00 2001 From: yiru Date: Fri, 27 Jun 2025 10:34:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A8=99=E5=B7=A5=E7=B6=AD?= =?UTF-8?q?=E8=AD=B7=E7=9B=B8=E9=97=9C=E8=B3=87=E6=96=99=E8=A1=A8=E6=AC=84?= =?UTF-8?q?=E4=BD=8D=20WorkingUnitNO=20=E6=94=B9=E7=82=BA=20WorkingUnitID?= =?UTF-8?q?=20=E4=BF=AE=E6=94=B9=E6=A8=99=E5=B7=A5=E7=B6=AD=E8=AD=B7?= =?UTF-8?q?=E5=88=AA=E9=99=A4=E5=B0=8D=E6=87=89=E9=80=94=E7=A8=8B=E7=AB=99?= =?UTF-8?q?=E5=88=A5ID=20=E6=AC=84=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/WHSController.cs | 182 ++++++++---------- AMESCoreStudio.Web/HttpApis/AMES/IWHS.cs | 12 +- .../ViewModels/WHS/WHS025ViewModel.cs | 6 +- AMESCoreStudio.Web/Views/WHS/WHS023C.cshtml | 6 +- AMESCoreStudio.Web/Views/WHS/WHS023U.cshtml | 6 +- AMESCoreStudio.Web/Views/WHS/WHS024C.cshtml | 6 +- AMESCoreStudio.Web/Views/WHS/WHS024U.cshtml | 6 +- AMESCoreStudio.Web/Views/WHS/WHS025.cshtml | 2 +- AMESCoreStudio.Web/Views/WHS/WHS025C.cshtml | 12 +- AMESCoreStudio.Web/Views/WHS/WHS025L.cshtml | 2 +- AMESCoreStudio.Web/Views/WHS/WHS025U.cshtml | 12 +- .../AMES/WorkingLinesController.cs | 17 +- .../AMES/WorkingStandardWorkTimeController.cs | 35 ++-- .../WorkingStandardWorkTimeLogController.cs | 8 +- .../AMES/WorkingStationsController.cs | 17 +- .../Models/AMES/WorkingLine.cs | 11 +- .../Models/AMES/WorkingStandardWorkTime.cs | 11 +- .../Models/AMES/WorkingStandardWorkTimeLog.cs | 12 +- .../Models/AMES/WorkingStation.cs | 4 +- 19 files changed, 159 insertions(+), 208 deletions(-) diff --git a/AMESCoreStudio.Web/Controllers/WHSController.cs b/AMESCoreStudio.Web/Controllers/WHSController.cs index 05da5f7..a03ee4a 100644 --- a/AMESCoreStudio.Web/Controllers/WHSController.cs +++ b/AMESCoreStudio.Web/Controllers/WHSController.cs @@ -3231,12 +3231,12 @@ namespace AMESCoreStudio.Web.Controllers if (Type == "all") { - UnitItems.Add(new SelectListItem("全部", "all")); + UnitItems.Add(new SelectListItem("全部", "-99")); } for (int i = 0; i < result.Count; i++) if (result[i].StatusNo == "A") { - UnitItems.Add(new SelectListItem(result[i].WorkingUnitName, result[i].WorkingUnitNo.ToString())); + UnitItems.Add(new SelectListItem(result[i].WorkingUnitName, result[i].WorkingUnitID.ToString())); } ViewBag.WorkingUnitNo = UnitItems; @@ -3437,7 +3437,7 @@ namespace AMESCoreStudio.Web.Controllers [ResponseCache(Duration = 0)] [HttpGet] - public async Task GetWorkingStationsAsync(string id) + public async Task GetWorkingStationsAsync(int id) { var result = await _whsApi.GetWorkingStationsbyMultiUnit(id); @@ -3452,7 +3452,7 @@ namespace AMESCoreStudio.Web.Controllers [ResponseCache(Duration = 0)] [HttpGet] - public async Task GetWorkingLinesAsync(string id) + public async Task GetWorkingLinesAsync(int id) { // var result = await _whsApi.GetWorkingLinesbyUnit(id); var result = await _whsApi.GetWorkingLinesbyMultiUnit(id); @@ -3477,8 +3477,8 @@ namespace AMESCoreStudio.Web.Controllers public async Task WHS025C() { await GetWorkingUnit(""); //報工生產單位 - await GetFactoryUnitsListbyWH005(""); //途程生產單位 - GetSideList(); + await GetFactoryUnitsListbyWH025(""); //途程生產單位 + GetSideListByWH025(); return View(); } //修改页面 @@ -3486,8 +3486,8 @@ namespace AMESCoreStudio.Web.Controllers public async Task WHS025UAsync(int id) { await GetWorkingUnit(""); //報工生產單位 - - GetSideList(); + + GetSideListByWH025(); var result = await _whsApi.GetWorkingStandardWorkTime(id); @@ -3507,73 +3507,56 @@ namespace AMESCoreStudio.Web.Controllers [HttpPost] public async Task WHS025CSaveAsync(WHS025ViewModel model) { - if (!ModelState.IsValid) - return View("WHS025C", model); - - // 若 WorkingLineIDs 為空,直接回傳錯誤 - if (model.WorkingLineIDs == null) + if (ModelState.IsValid) { - ModelState.AddModelError("error", "請至少選擇一個線別"); - return View("WHS025C", model); - } - // 複製 model 中的其他欄位,產生新的物件 - var item = new WorkingStandardWorkTime - { - WorkingStandardID = model.WorkingStandardID, - ItemNo = model.ItemNo, - WorkingUnitNo = model.WorkingUnitNo, - UnitNo = model.UnitNo, - WorkingStationID = model.WorkingStationID, - Side = model.Side, - OpCnt = model.OpCnt, - Ct = model.Ct, - StationID = model.StationID, - MachineCnt = model.MachineCnt, - Remark = model.Remark, - CreateUserID = model.CreateUserID, - UpdateUserID = model.UpdateUserID, - CreateDate = model.CreateDate, - UpdateDate = model.UpdateDate - }; - - foreach (var lineId in model.WorkingLineIDs) - { - item.WorkingLineID = lineId; // ⭐ 關鍵:取代為迴圈內的 lineId - - var json = JsonConvert.SerializeObject(item); - var result = await _whsApi.PostWorkingStandardWorkTime(json); - if (!result.Success) - { - // 其中一筆失敗就回傳錯誤 - ModelState.AddModelError("error", $"線別ID {lineId} 錯誤:{result.Msg}"); + + // 若 WorkingLineIDs 為空,直接回傳錯誤 + if (model.WorkingLineIDs == null) + { + ModelState.AddModelError("error", "請至少選擇一個線別"); return View("WHS025C", model); } - - } - - return RedirectToAction("Refresh", "Home", new { msg = "添加成功!" }); - - - //if (ModelState.IsValid) - //{ - // IResultModel result; + // 複製 model 中的其他欄位,產生新的物件 + var item = new WorkingStandardWorkTime + { + WorkingStandardID = model.WorkingStandardID, + ItemNo = model.ItemNo, + WorkingUnitID = model.WorkingUnitID, + UnitNo = model.UnitNo, + WorkingStationID = model.WorkingStationID, + Side = model.Side, + OpCnt = model.OpCnt, + Ct = model.Ct, + MachineCnt = model.MachineCnt, + Remark = model.Remark, + CreateUserID = model.CreateUserID, + UpdateUserID = model.UpdateUserID, + CreateDate = model.CreateDate, + UpdateDate = model.UpdateDate + }; + foreach (var lineId in model.WorkingLineIDs) + { + item.WorkingLineID = lineId; // ⭐ 關鍵:取代為迴圈內的 lineId - // result = await _whsApi.PostWorkingStandardWorkTime(JsonConvert.SerializeObject(model)); + var json = JsonConvert.SerializeObject(item); + var result = await _whsApi.PostWorkingStandardWorkTime(json); + if (!result.Success) + { + // 其中一筆失敗就回傳錯誤 + ModelState.AddModelError("error", $"線別ID {lineId} 錯誤:{result.Msg}"); + return View("WHS025C", model); + } - // if (result.Success) - // { - // var _msg = "添加成功!"; - // return RedirectToAction("Refresh", "Home", new { msg = _msg }); - // } - // else - // { + } - // ModelState.AddModelError("error", result.Msg); + return RedirectToAction("Refresh", "Home", new { msg = "添加成功!" }); - // } - //} - //return View("WHS025C", model); + } + else + { + return View("WHS025C", model); + } } public async Task WHS025USaveAsync(WorkingStandardWorkTime model) { @@ -3610,9 +3593,9 @@ namespace AMESCoreStudio.Web.Controllers [ResponseCache(Duration = 0)] [HttpGet] - public async Task GetWorkingUnitNobyUnitAsync(string id) + public async Task GetWorkingUnitNobyUnitAsync(int id) { - var result = await _whsApi.GetWorkingUnitbyNo(id); + var result = await _whsApi.GetWorkingUnit(id); var data = new List(); if (result != null && result.Count > 0) @@ -3643,7 +3626,7 @@ namespace AMESCoreStudio.Web.Controllers [ResponseCache(Duration = 0)] [HttpGet] - public async Task GetWorkingLinesbyUnitAsync(string id) + public async Task GetWorkingLinesbyUnitAsync(int id) { // var result = await _whsApi.GetWorkingLinesbyUnit(id); var result = await _whsApi.GetWorkingLinesbyMultiUnit(id); @@ -3661,7 +3644,7 @@ namespace AMESCoreStudio.Web.Controllers [ResponseCache(Duration = 0)] [HttpGet] - public async Task GetWorkingStationsbyUnitAsync(string id) + public async Task GetWorkingStationsbyUnitAsync(int id) { var result = await _whsApi.GetWorkingStationsbyUnit(id); @@ -3691,7 +3674,7 @@ namespace AMESCoreStudio.Web.Controllers [ResponseCache(Duration = 0)] [HttpGet] - public async Task GetWorkingStandardWorkTimes2Async(string u, int l, string i, int page = 0, int limit = 10) + public async Task GetWorkingStandardWorkTimes2Async(int u, int l, string i, int page = 0, int limit = 10) { if (l == 0) { @@ -3703,9 +3686,9 @@ namespace AMESCoreStudio.Web.Controllers i = "Null"; } - if (string.IsNullOrEmpty(u)) + if (u == 0) { - u = "Null"; + u = -99; } @@ -3718,7 +3701,7 @@ namespace AMESCoreStudio.Web.Controllers return Json(new Table() { count = 0, data = null }); } - private async Task GetFactoryUnitsListbyWH005(string Types) + private async Task GetFactoryUnitsListbyWH025(string Types) { var result = await _basApi.GetFactoryUnits(); @@ -3748,6 +3731,16 @@ namespace AMESCoreStudio.Web.Controllers return Json(new Table() { count = 0, data = null }); } + private void GetSideListByWH025() + { + + var SideItems = new List(); + SideItems.Add(new SelectListItem("N/A", "N/A")); + SideItems.Add(new SelectListItem("A", "A")); + SideItems.Add(new SelectListItem("B", "B")); + + ViewBag.SideList = SideItems; + } /// /// 標準工時批次Excel匯入 @@ -3777,6 +3770,16 @@ namespace AMESCoreStudio.Web.Controllers var columnCount = data.ColumnCount(); var ErrorMsg = ""; var recordKeys = new HashSet(); // 用於檢查組合是否重複 + var result = await _whsApi.GetWorkingStandardWorkTimesbyMultiQuery(-99, -99, "Null", 0, 99); //將已存在的資料加入組合 + if (result.DataTotal > 0) + { + foreach (var item in result.Data) + { + var rowKey = $"{item.itemNo}|{item.workingUnitName}|{item.workingLineName}|{item.workingStationName}|{item.side}"; + recordKeys.Add(rowKey); + } + } + for (int i = 2; i <= rowCount; i++) { var rowMsg = $"[第{i}列] "; @@ -3786,13 +3789,11 @@ namespace AMESCoreStudio.Web.Controllers var WorkingUnitName = data.Cell(i, 2).GetString().Trim(); var WorkingLineName = data.Cell(i, 3).GetString().Trim(); var WorkingStationName = data.Cell(i, 4).GetString().Trim(); - // var UnitName = data.Cell(i, 5).GetString().Trim(); var Side = data.Cell(i, 5).GetString().Trim(); var OpCntStr = data.Cell(i, 6).GetString().Trim(); var CtStr = data.Cell(i, 7).GetString().Trim(); - var StationID = data.Cell(i, 8).GetString().Trim(); - var MachineCntStr = data.Cell(i, 9).GetString().Trim(); - var Remark = data.Cell(i, 10).GetString().Trim(); + var MachineCntStr = data.Cell(i, 8).GetString().Trim(); + var Remark = data.Cell(i, 9).GetString().Trim(); // 組合唯一鍵 var rowKey = $"{ItemNo}|{WorkingUnitName}|{WorkingLineName}|{WorkingStationName}|{Side}"; @@ -3808,12 +3809,11 @@ namespace AMESCoreStudio.Web.Controllers if (string.IsNullOrWhiteSpace(WorkingUnitName)) { ErrorMsg += $"{rowMsg}報工生產單位不得為空\n"; continue; } if (string.IsNullOrWhiteSpace(WorkingLineName)) { ErrorMsg += $"{rowMsg}報工線別不得為空\n"; continue; } if (string.IsNullOrWhiteSpace(WorkingStationName)) { ErrorMsg += $"{rowMsg}報工站別不得為空\n"; continue; } - // if (string.IsNullOrWhiteSpace(UnitName)) { ErrorMsg += $"{rowMsg}途程單位不得為空\n"; continue; } - List validSides = new List { "正面", "背面" }; + List validSides = new List { "A", "B", "N/A" }; if (string.IsNullOrWhiteSpace(Side)) { ErrorMsg += $"{rowMsg}面別不得為空\n"; continue; } else if (!validSides.Contains(Side)) { - ErrorMsg += $"{rowMsg}面別資料錯誤,請使用 N/A、正面、背面\n"; + ErrorMsg += $"{rowMsg}面別資料錯誤,請使用A、B、N/A\n"; continue; } @@ -3835,11 +3835,6 @@ namespace AMESCoreStudio.Web.Controllers ErrorMsg += $"{rowMsg}CT 必須大於 0\n"; continue; } - if (string.IsNullOrWhiteSpace(StationID)) - { - ErrorMsg += $"{rowMsg}工站ID不得為空\n"; continue; - } - if (!int.TryParse(MachineCntStr, out int MachineCnt)) { ErrorMsg += $"{rowMsg}機台數格式錯誤\n"; continue; @@ -3857,26 +3852,24 @@ namespace AMESCoreStudio.Web.Controllers var WU = await _whsApi.GetWorkingUnitbyName(WorkingUnitName); var WL = await _whsApi.GetWorkingLinebyName(WorkingLineName); var WS = await _whsApi.GetWorkingStationbyName(WorkingStationName); - // var UN = await _whsApi.GetFactoryUnitbyName(UnitName); + if (WU.Count == 0) { ErrorMsg += $"{rowMsg}查無 報工生產單位「{WorkingUnitName}」\n"; continue; } if (WL.Count == 0) { ErrorMsg += $"{rowMsg}查無 報工線別「{WorkingLineName}」\n"; continue; } if (WS.Count == 0) { ErrorMsg += $"{rowMsg}查無 報工站別「{WorkingStationName}」\n"; continue; } - // if (UN.Count == 0) { ErrorMsg += $"{rowMsg}查無 途程生產單位「{UnitName}」\n"; continue; } + // 加入清單 workingST.Add(new WorkingStandardWorkTime { - WorkingUnitNo = WU[0].WorkingUnitNo, + WorkingUnitID = WU[0].WorkingUnitID, WorkingLineID = WL[0].WorkingLineID, WorkingStationID = WS[0].WorkingStationID, - // UnitNo = UN[0].UnitNo, UnitNo = WU[0].UnitNo, ItemNo = ItemNo, Side = Side, OpCnt = OpCnt, Ct = Ct, - StationID = StationID, MachineCnt = MachineCnt, Remark = Remark, CreateDate = System.DateTime.Now, @@ -3910,11 +3903,6 @@ namespace AMESCoreStudio.Web.Controllers } } - - - //将資料Json化并传到前台视图 - return Json(new { data = "", success = true }); - } diff --git a/AMESCoreStudio.Web/HttpApis/AMES/IWHS.cs b/AMESCoreStudio.Web/HttpApis/AMES/IWHS.cs index e2ac6f4..62aa4e3 100644 --- a/AMESCoreStudio.Web/HttpApis/AMES/IWHS.cs +++ b/AMESCoreStudio.Web/HttpApis/AMES/IWHS.cs @@ -771,7 +771,7 @@ namespace AMESCoreStudio.Web /// /// [WebApiClient.Attributes.HttpGet("api/WorkingLines/Unit/{id}")] - ITask> GetWorkingLinesbyUnit(string id); + ITask> GetWorkingLinesbyUnit(int id); @@ -780,7 +780,7 @@ namespace AMESCoreStudio.Web /// /// [WebApiClient.Attributes.HttpGet("api/WorkingLines/MultiUnit/{id}")] - ITask> GetWorkingLinesbyMultiUnit(string id); + ITask> GetWorkingLinesbyMultiUnit(int id); #endregion @@ -826,7 +826,7 @@ namespace AMESCoreStudio.Web /// /// [WebApiClient.Attributes.HttpGet("api/WorkingStations/Unit/{id}")] - ITask> GetWorkingStationsbyUnit(string id); + ITask> GetWorkingStationsbyUnit(int id); @@ -836,7 +836,7 @@ namespace AMESCoreStudio.Web /// /// [WebApiClient.Attributes.HttpGet("api/WorkingStations/MultiUnit/{id}")] - ITask> GetWorkingStationsbyMultiUnit(string id); + ITask> GetWorkingStationsbyMultiUnit(int id); @@ -921,7 +921,7 @@ namespace AMESCoreStudio.Web /// /// [WebApiClient.Attributes.HttpGet("api/WorkingStandardWorkTimes/WHS025/{u}/{l}/{i}")] - ITask> GetWorkingStandardWorkTimesbyQuery(string u, int l, string i,int page = 0, int limit = 10); + ITask> GetWorkingStandardWorkTimesbyQuery(int u, int l, string i,int page = 0, int limit = 10); @@ -930,7 +930,7 @@ namespace AMESCoreStudio.Web /// /// [WebApiClient.Attributes.HttpGet("api/WorkingStandardWorkTimes/WHS025Multi/{u}/{l}/{i}")] - ITask> GetWorkingStandardWorkTimesbyMultiQuery(string u, int l, string i, int page = 0, int limit = 10); + ITask> GetWorkingStandardWorkTimesbyMultiQuery(int u, int l, string i, int page = 0, int limit = 10); /// diff --git a/AMESCoreStudio.Web/ViewModels/WHS/WHS025ViewModel.cs b/AMESCoreStudio.Web/ViewModels/WHS/WHS025ViewModel.cs index bba9c97..f35107d 100644 --- a/AMESCoreStudio.Web/ViewModels/WHS/WHS025ViewModel.cs +++ b/AMESCoreStudio.Web/ViewModels/WHS/WHS025ViewModel.cs @@ -16,7 +16,7 @@ namespace AMESCoreStudio.Web.ViewModels.WHS [Required(ErrorMessage = "{0},不能空白")] [Display(Name = "報工生產單位")] - public string WorkingUnitNo { get; set; } + public int WorkingUnitID { get; set; } public List WorkingLineIDs { get; set; } @@ -45,10 +45,6 @@ namespace AMESCoreStudio.Web.ViewModels.WHS [Display(Name = "標準工時(分)")] public int Ct { get; set; } - [Required(ErrorMessage = "{0},不能空白")] - [Display(Name = "對應途程站別ID")] - public string StationID { get; set; } - [Required(ErrorMessage = "{0},不能空白")] [Display(Name = "作業機台數")] public int MachineCnt { get; set; } diff --git a/AMESCoreStudio.Web/Views/WHS/WHS023C.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS023C.cshtml index a110828..516db29 100644 --- a/AMESCoreStudio.Web/Views/WHS/WHS023C.cshtml +++ b/AMESCoreStudio.Web/Views/WHS/WHS023C.cshtml @@ -16,9 +16,9 @@
- - - + + +
diff --git a/AMESCoreStudio.Web/Views/WHS/WHS023U.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS023U.cshtml index bb074cb..793252f 100644 --- a/AMESCoreStudio.Web/Views/WHS/WHS023U.cshtml +++ b/AMESCoreStudio.Web/Views/WHS/WHS023U.cshtml @@ -21,9 +21,9 @@
- - - + + +
diff --git a/AMESCoreStudio.Web/Views/WHS/WHS024C.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS024C.cshtml index 91460c2..a908311 100644 --- a/AMESCoreStudio.Web/Views/WHS/WHS024C.cshtml +++ b/AMESCoreStudio.Web/Views/WHS/WHS024C.cshtml @@ -36,9 +36,9 @@
- - - + + +
@Html.ValidationMessage("error")
diff --git a/AMESCoreStudio.Web/Views/WHS/WHS024U.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS024U.cshtml index 79dd19e..a5377d3 100644 --- a/AMESCoreStudio.Web/Views/WHS/WHS024U.cshtml +++ b/AMESCoreStudio.Web/Views/WHS/WHS024U.cshtml @@ -40,9 +40,9 @@
- - - + + +
@Html.ValidationMessage("error") diff --git a/AMESCoreStudio.Web/Views/WHS/WHS025.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS025.cshtml index de5df56..b465e67 100644 --- a/AMESCoreStudio.Web/Views/WHS/WHS025.cshtml +++ b/AMESCoreStudio.Web/Views/WHS/WHS025.cshtml @@ -90,7 +90,7 @@ title: '標準工時(分)', }, { - field: 'unitNo', + field: 'unitName', title: '對應途程站別' }, { diff --git a/AMESCoreStudio.Web/Views/WHS/WHS025C.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS025C.cshtml index 9159957..37c5994 100644 --- a/AMESCoreStudio.Web/Views/WHS/WHS025C.cshtml +++ b/AMESCoreStudio.Web/Views/WHS/WHS025C.cshtml @@ -27,11 +27,11 @@
- - - +
@@ -69,12 +69,6 @@
- -
- - - -
diff --git a/AMESCoreStudio.Web/Views/WHS/WHS025L.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS025L.cshtml index 33b94cb..e3c9a77 100644 --- a/AMESCoreStudio.Web/Views/WHS/WHS025L.cshtml +++ b/AMESCoreStudio.Web/Views/WHS/WHS025L.cshtml @@ -25,7 +25,7 @@ { field: 'side', title: '面別' }, { field: 'opCnt', title: '標準人力' }, { field: 'ct', title: '標準工時(分)' }, - { field: 'unitNo', title: '對應途程站別' }, + { field: 'unitName', title: '對應途程站別' }, { field: 'machineCnt', title: '作業機台數' }, { field: 'createDate', title: '修改日' }, { field: 'createUserName', title: '修改人' }, diff --git a/AMESCoreStudio.Web/Views/WHS/WHS025U.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS025U.cshtml index 464ca11..5918755 100644 --- a/AMESCoreStudio.Web/Views/WHS/WHS025U.cshtml +++ b/AMESCoreStudio.Web/Views/WHS/WHS025U.cshtml @@ -26,10 +26,10 @@
- - - +
@@ -66,12 +66,6 @@
- -
- - - -
diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WorkingLinesController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WorkingLinesController.cs index c7419d0..6b65e26 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/WorkingLinesController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WorkingLinesController.cs @@ -103,7 +103,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES /// 報工生產單位 /// [HttpGet("Unit/{id}")] - public async Task>> GetWorkingLinesbyUnit(string id) + public async Task>> GetWorkingLinesbyUnit(int id) { IQueryable q = _context.WorkingLines; @@ -121,9 +121,9 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES // GetWorkingUnit = q2 // }; - if (id != "all") + if (id != -99) { - q = q.Where(p => p.WorkingUnitNo.Equals(id)); + q = q.Where(p => p.WorkingUnitID.Equals(id)); } var WorkingLine = await q.ToListAsync(); @@ -143,17 +143,18 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES /// 報工生產單位 /// [HttpGet("MultiUnit/{id}")] - public async Task>> GetWorkingLinesMulti(string id) + public async Task>> GetWorkingLinesMulti(int id) { // IQueryable q = _context.WorkingLines; var q = from q1 in _context.WorkingLines - join q2 in _context.WorkingUnits on q1.WorkingUnitNo equals q2.WorkingUnitNo + join q2 in _context.WorkingUnits on q1.WorkingUnitID equals q2.WorkingUnitID select new { WorkingLineID = q1.WorkingLineID, WorkingLineName = q1.WorkingLineName, - WorkingUnitNo = q1.WorkingUnitNo, + WorkingUnitID = q1.WorkingUnitID, + WorkingUnitNo = q2.WorkingUnitNo, StatusNo = q1.StatusNo, CreateUserID = q1.CreateUserID, CreateDate = q1.CreateDate, @@ -161,9 +162,9 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES WorkingUnitName = q2.WorkingUnitName }; - if (id != "all") + if (id != -99) { - q = q.Where(p => p.WorkingUnitNo.Equals(id)); + q = q.Where(p => p.WorkingUnitID.Equals(id)); } var WorkingLine = await q.ToListAsync(); diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WorkingStandardWorkTimeController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WorkingStandardWorkTimeController.cs index b672249..2c70d50 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/WorkingStandardWorkTimeController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WorkingStandardWorkTimeController.cs @@ -95,15 +95,15 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES /// // GET: api/StandardWorkTimes/5 [HttpGet("WHS025/{u}/{l}/{i}")] - public async Task> GetWorkingStandardWorkTimebyQuery(string u, int l, string i, int page = 0, int limit = 10) + public async Task> GetWorkingStandardWorkTimebyQuery(int u, int l, string i, int page = 0, int limit = 10) { IQueryable q = _context.WorkingStandardWorkTimes; ResultModel result = new ResultModel(); - if (u != "all") + if (u > 0) { - q = q.Where(p => p.WorkingUnitNo.Equals(l)); + q = q.Where(p => p.WorkingUnitID.Equals(u)); } if (l > 0) { @@ -141,29 +141,31 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES /// // GET: api/StandardWorkTimes/5 [HttpGet("WHS025Multi/{u}/{l}/{i}")] - public async Task> GetWorkingStandardWorkTimebyMultiQuery(string u, int l, string i, int page = 0, int limit = 10) + public async Task> GetWorkingStandardWorkTimebyMultiQuery(int u, int l, string i, int page = 0, int limit = 10) { ResultModel result = new ResultModel(); var q = from q1 in _context.WorkingStandardWorkTimes - join q2 in _context.WorkingUnits on q1.WorkingUnitNo equals q2.WorkingUnitNo + join q2 in _context.WorkingUnits on q1.WorkingUnitID equals q2.WorkingUnitID join q3 in _context.WorkingLines on q1.WorkingLineID equals q3.WorkingLineID join q4 in _context.WorkingStations on q1.WorkingStationID equals q4.WorkingStationID join q5 in _context.UserInfoes on q1.UpdateUserID equals q5.UserID + join q6 in _context.FactoryUnits on q1.UnitNo equals q6.UnitNo select new { q1.WorkingStandardID, q1.ItemNo, - q1.WorkingUnitNo, + q1.WorkingUnitID, + q2.WorkingUnitNo, q1.UnitNo, + q6.UnitName, q1.WorkingLineID, q1.WorkingStationID, q1.Side, q1.OpCnt, q1.Ct, - q1.StationID, q1.MachineCnt, q1.Remark, q1.CreateUserID, @@ -178,9 +180,9 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES }; - if (u != "all") + if (u > 0) { - q = q.Where(p => p.WorkingUnitNo.Equals(l)); + q = q.Where(p => p.WorkingUnitID.Equals(u)); } if (l > 0) { @@ -244,14 +246,13 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES WorkingStandardLogID = WorkingSTLog_ID, WorkingStandardID = oldData.WorkingStandardID, ItemNo = oldData.ItemNo, - WorkingUnitNo = oldData.WorkingUnitNo, + WorkingUnitID = oldData.WorkingUnitID, WorkingLineID = oldData.WorkingLineID, UnitNo = oldData.UnitNo, WorkingStationID = oldData.WorkingStationID, Side = oldData.Side, OpCnt = oldData.OpCnt, Ct = oldData.Ct, - StationID = oldData.StationID, MachineCnt = oldData.MachineCnt, Remark = oldData.Remark, CreateUserID = model.UpdateUserID, @@ -262,14 +263,13 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES // 更新 oldData 的欄位 oldData.ItemNo = model.ItemNo; - oldData.WorkingUnitNo = model.WorkingUnitNo; + oldData.WorkingUnitID = model.WorkingUnitID; oldData.WorkingLineID = model.WorkingLineID; oldData.UnitNo = model.UnitNo; oldData.WorkingStationID = model.WorkingStationID; oldData.Side = model.Side; oldData.OpCnt = model.OpCnt; oldData.Ct = model.Ct; - oldData.StationID = model.StationID; oldData.MachineCnt = model.MachineCnt; oldData.Remark = model.Remark; oldData.UpdateUserID = model.UpdateUserID; @@ -313,14 +313,13 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES WorkingStandardLogID = await helper.GetIDKey("WorkingSTLog_ID"), WorkingStandardID = model.WorkingStandardID, ItemNo = model.ItemNo, - WorkingUnitNo = model.WorkingUnitNo, + WorkingUnitID = model.WorkingUnitID, WorkingLineID = model.WorkingLineID, UnitNo = model.UnitNo, WorkingStationID = model.WorkingStationID, Side = model.Side, OpCnt = model.OpCnt, Ct = model.Ct, - StationID = model.StationID, MachineCnt = model.MachineCnt, Remark = model.Remark, CreateUserID = model.CreateUserID, @@ -379,14 +378,13 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES WorkingStandardLogID = await helper.GetIDKey("WorkingSTLog_ID"), WorkingStandardID = item.WorkingStandardID, ItemNo = item.ItemNo, - WorkingUnitNo = item.WorkingUnitNo, + WorkingUnitID = item.WorkingUnitID, WorkingLineID = item.WorkingLineID, UnitNo = item.UnitNo, WorkingStationID = item.WorkingStationID, Side = item.Side, OpCnt = item.OpCnt, Ct = item.Ct, - StationID = item.StationID, MachineCnt = item.MachineCnt, Remark = item.Remark, CreateUserID = item.CreateUserID, @@ -451,13 +449,12 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES WorkingLineID =entity.WorkingLineID, WorkingStandardID = entity.WorkingStandardID, ItemNo = entity.ItemNo, - WorkingUnitNo = entity.WorkingUnitNo, + WorkingUnitID = entity.WorkingUnitID, UnitNo = entity.UnitNo, WorkingStationID = entity.WorkingStationID, Side = entity.Side, OpCnt = entity.OpCnt, Ct = entity.Ct, - StationID = entity.StationID, MachineCnt = entity.MachineCnt, Remark = entity.Remark, CreateUserID = deleteUserID, diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WorkingStandardWorkTimeLogController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WorkingStandardWorkTimeLogController.cs index 153fe05..9540385 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/WorkingStandardWorkTimeLogController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WorkingStandardWorkTimeLogController.cs @@ -100,7 +100,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES var q = from q1 in _context.WorkingStandardWorkTimeLogs.Where(w => w.WorkingStandardID == id) - join q2 in _context.WorkingUnits on q1.WorkingUnitNo equals q2.WorkingUnitNo into wuJoin + join q2 in _context.WorkingUnits on q1.WorkingUnitID equals q2.WorkingUnitID into wuJoin from q2 in wuJoin.DefaultIfEmpty() join q3 in _context.WorkingLines on q1.WorkingLineID equals q3.WorkingLineID into wlJoin @@ -111,19 +111,21 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES join q5 in _context.UserInfoes on q1.CreateUserID equals q5.UserID into uJoin from q5 in uJoin.DefaultIfEmpty() + join q6 in _context.FactoryUnits on q1.UnitNo equals q6.UnitNo select new { q1.WorkingStandardLogID, q1.WorkingStandardID, q1.ItemNo, - q1.WorkingUnitNo, + q2.WorkingUnitNo, + q1.WorkingUnitID, q1.UnitNo, + q6.UnitName, q1.WorkingLineID, q1.WorkingStationID, q1.Side, q1.OpCnt, q1.Ct, - q1.StationID, q1.MachineCnt, q1.Remark, CreateUserName = q5 != null ? q5.UserName : "", // 防止 null 例外 diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WorkingStationsController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WorkingStationsController.cs index c219d0f..96c5a0d 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/WorkingStationsController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WorkingStationsController.cs @@ -114,14 +114,14 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES /// 報工生產單位 /// [HttpGet("Unit/{id}")] - public async Task>> GetWorkingStations(string id) + public async Task>> GetWorkingStations(int id) { try { IQueryable q = _context.WorkingStations; - if (id != "all") + if (id != -99) { - q = q.Where(p => p.WorkingUnitNo.Equals(id)); + q = q.Where(p => p.WorkingUnitID.Equals(id)); } var WorkingStation = await q.ToListAsync(); @@ -150,18 +150,19 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES /// 報工生產單位 /// [HttpGet("MultiUnit/{id}")] - public async Task>> GetWorkingStationsMulti(string id) + public async Task>> GetWorkingStationsMulti(int id) { // IQueryable q = _context.WorkingLines; var q = from q1 in _context.WorkingStations - join q2 in _context.WorkingUnits on q1.WorkingUnitNo equals q2.WorkingUnitNo + join q2 in _context.WorkingUnits on q1.WorkingUnitID equals q2.WorkingUnitID select new { WorkingStationID = q1.WorkingStationID, WorkingStationName = q1.WorkingStationName, WorkingStationDesc = q1.WorkingStationDesc, - WorkingUnitNo = q1.WorkingUnitNo, + WorkingUnitID = q1.WorkingUnitID, + WorkingUnitNo = q2.WorkingUnitNo, TypeNo = q1.TypeNo, StatusNo = q1.StatusNo, CreateUserID = q1.CreateUserID, @@ -170,9 +171,9 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES WorkingUnitName = q2.WorkingUnitName }; - if (id != "all") + if (id != -99) { - q = q.Where(p => p.WorkingUnitNo.Equals(id)); + q = q.Where(p => p.WorkingUnitID.Equals(id)); } var WorkingLine = await q.ToListAsync(); diff --git a/AMESCoreStudio.WebApi/Models/AMES/WorkingLine.cs b/AMESCoreStudio.WebApi/Models/AMES/WorkingLine.cs index 53e1dad..ae35a69 100644 --- a/AMESCoreStudio.WebApi/Models/AMES/WorkingLine.cs +++ b/AMESCoreStudio.WebApi/Models/AMES/WorkingLine.cs @@ -32,11 +32,11 @@ namespace AMESCoreStudio.WebApi.Models.AMES /// /// 報工生產單位代碼 /// - [Column("WORKING_UNIT_NO")] + [Column("WORKING_UNIT_ID")] [DataMember] [Required(ErrorMessage = "{0} 不能空白")] [Display(Name = "報工生產單位代碼")] - public string WorkingUnitNo { get; set; } + public int WorkingUnitID { get; set; } /// /// 狀態 /// @@ -67,12 +67,5 @@ namespace AMESCoreStudio.WebApi.Models.AMES [Display(Name = "修改日期")] public DateTime UpdateDate { get; set; } - ///// - ///// 生產制程單位 - ///// - //[ForeignKey("WorkingUnitNo")] - //[DataMember] - //public virtual WorkingUnit GetWorkingUnit { get; set; } - } } \ No newline at end of file diff --git a/AMESCoreStudio.WebApi/Models/AMES/WorkingStandardWorkTime.cs b/AMESCoreStudio.WebApi/Models/AMES/WorkingStandardWorkTime.cs index f8f8209..2665377 100644 --- a/AMESCoreStudio.WebApi/Models/AMES/WorkingStandardWorkTime.cs +++ b/AMESCoreStudio.WebApi/Models/AMES/WorkingStandardWorkTime.cs @@ -23,11 +23,11 @@ namespace AMESCoreStudio.WebApi.Models.AMES /// /// 報工生產單位 /// - [Column("WORKING_UNIT_NO")] + [Column("WORKING_UNIT_ID")] [DataMember] [Required(ErrorMessage = "{0} 不能空白")] [Display(Name = "報工生產單位")] - public string WorkingUnitNo { get; set; } + public int WorkingUnitID { get; set; } /// /// 報工線別ID @@ -89,13 +89,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES [Display(Name = "標準工時(分)")] public int Ct { get; set; } = 0; - /// - /// 對應途程站別ID - /// - [Column("STATION_ID")] - [DataMember] - [Display(Name = "對應途程站別ID")] - public string StationID { get; set; } = "N/A"; /// /// 作業機台數 diff --git a/AMESCoreStudio.WebApi/Models/AMES/WorkingStandardWorkTimeLog.cs b/AMESCoreStudio.WebApi/Models/AMES/WorkingStandardWorkTimeLog.cs index c51e138..a539e1d 100644 --- a/AMESCoreStudio.WebApi/Models/AMES/WorkingStandardWorkTimeLog.cs +++ b/AMESCoreStudio.WebApi/Models/AMES/WorkingStandardWorkTimeLog.cs @@ -31,11 +31,11 @@ namespace AMESCoreStudio.WebApi.Models.AMES /// /// 報工生產單位 /// - [Column("WORKING_UNIT_NO")] + [Column("WORKING_UNIT_ID")] [DataMember] [Required(ErrorMessage = "{0} 不能空白")] [Display(Name = "報工生產單位")] - public string WorkingUnitNo { get; set; } + public int WorkingUnitID { get; set; } /// /// 報工線別ID @@ -97,14 +97,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES [Display(Name = "標準工時(分)")] public int Ct { get; set; } = 0; - /// - /// 對應途程站別ID - /// - [Column("STATION_ID")] - [DataMember] - [Display(Name = "對應途程站別ID")] - public string StationID { get; set; } = "N/A"; - /// /// 作業機台數 /// diff --git a/AMESCoreStudio.WebApi/Models/AMES/WorkingStation.cs b/AMESCoreStudio.WebApi/Models/AMES/WorkingStation.cs index 4b3c0a9..9132c33 100644 --- a/AMESCoreStudio.WebApi/Models/AMES/WorkingStation.cs +++ b/AMESCoreStudio.WebApi/Models/AMES/WorkingStation.cs @@ -38,11 +38,11 @@ namespace AMESCoreStudio.WebApi.Models.AMES /// /// 報工生產單位代碼 /// - [Column("WORKING_UNIT_NO")] + [Column("WORKING_UNIT_ID")] [DataMember] [Required(ErrorMessage = "{0} 不能空白")] [Display(Name = "報工生產單位代碼")] - public string WorkingUnitNo { get; set; } + public int WorkingUnitID { get; set; } /// /// SAP工時類別 ///