Browse Source

修改標工維護相關資料表欄位 WorkingUnitNO 改為 WorkingUnitID

修改標工維護刪除對應途程站別ID 欄位
master
yiru 2 months ago
parent
commit
fd10621b5f
  1. 182
      AMESCoreStudio.Web/Controllers/WHSController.cs
  2. 12
      AMESCoreStudio.Web/HttpApis/AMES/IWHS.cs
  3. 6
      AMESCoreStudio.Web/ViewModels/WHS/WHS025ViewModel.cs
  4. 6
      AMESCoreStudio.Web/Views/WHS/WHS023C.cshtml
  5. 6
      AMESCoreStudio.Web/Views/WHS/WHS023U.cshtml
  6. 6
      AMESCoreStudio.Web/Views/WHS/WHS024C.cshtml
  7. 6
      AMESCoreStudio.Web/Views/WHS/WHS024U.cshtml
  8. 2
      AMESCoreStudio.Web/Views/WHS/WHS025.cshtml
  9. 12
      AMESCoreStudio.Web/Views/WHS/WHS025C.cshtml
  10. 2
      AMESCoreStudio.Web/Views/WHS/WHS025L.cshtml
  11. 12
      AMESCoreStudio.Web/Views/WHS/WHS025U.cshtml
  12. 17
      AMESCoreStudio.WebApi/Controllers/AMES/WorkingLinesController.cs
  13. 35
      AMESCoreStudio.WebApi/Controllers/AMES/WorkingStandardWorkTimeController.cs
  14. 8
      AMESCoreStudio.WebApi/Controllers/AMES/WorkingStandardWorkTimeLogController.cs
  15. 17
      AMESCoreStudio.WebApi/Controllers/AMES/WorkingStationsController.cs
  16. 11
      AMESCoreStudio.WebApi/Models/AMES/WorkingLine.cs
  17. 11
      AMESCoreStudio.WebApi/Models/AMES/WorkingStandardWorkTime.cs
  18. 12
      AMESCoreStudio.WebApi/Models/AMES/WorkingStandardWorkTimeLog.cs
  19. 4
      AMESCoreStudio.WebApi/Models/AMES/WorkingStation.cs

182
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<IActionResult> GetWorkingStationsAsync(string id)
public async Task<IActionResult> GetWorkingStationsAsync(int id)
{
var result = await _whsApi.GetWorkingStationsbyMultiUnit(id);
@ -3452,7 +3452,7 @@ namespace AMESCoreStudio.Web.Controllers
[ResponseCache(Duration = 0)]
[HttpGet]
public async Task<IActionResult> GetWorkingLinesAsync(string id)
public async Task<IActionResult> 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<IActionResult> WHS025C()
{
await GetWorkingUnit(""); //報工生產單位
await GetFactoryUnitsListbyWH005(""); //途程生產單位
GetSideList();
await GetFactoryUnitsListbyWH025(""); //途程生產單位
GetSideListByWH025();
return View();
}
//修改页面
@ -3486,8 +3486,8 @@ namespace AMESCoreStudio.Web.Controllers
public async Task<IActionResult> 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<IActionResult> 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<IActionResult> WHS025USaveAsync(WorkingStandardWorkTime model)
{
@ -3610,9 +3593,9 @@ namespace AMESCoreStudio.Web.Controllers
[ResponseCache(Duration = 0)]
[HttpGet]
public async Task<IActionResult> GetWorkingUnitNobyUnitAsync(string id)
public async Task<IActionResult> GetWorkingUnitNobyUnitAsync(int id)
{
var result = await _whsApi.GetWorkingUnitbyNo(id);
var result = await _whsApi.GetWorkingUnit(id);
var data = new List<FactoryUnit>();
if (result != null && result.Count > 0)
@ -3643,7 +3626,7 @@ namespace AMESCoreStudio.Web.Controllers
[ResponseCache(Duration = 0)]
[HttpGet]
public async Task<IActionResult> GetWorkingLinesbyUnitAsync(string id)
public async Task<IActionResult> 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<IActionResult> GetWorkingStationsbyUnitAsync(string id)
public async Task<IActionResult> GetWorkingStationsbyUnitAsync(int id)
{
var result = await _whsApi.GetWorkingStationsbyUnit(id);
@ -3691,7 +3674,7 @@ namespace AMESCoreStudio.Web.Controllers
[ResponseCache(Duration = 0)]
[HttpGet]
public async Task<IActionResult> GetWorkingStandardWorkTimes2Async(string u, int l, string i, int page = 0, int limit = 10)
public async Task<IActionResult> 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<SelectListItem>();
SideItems.Add(new SelectListItem("N/A", "N/A"));
SideItems.Add(new SelectListItem("A", "A"));
SideItems.Add(new SelectListItem("B", "B"));
ViewBag.SideList = SideItems;
}
/// <summary>
/// 標準工時批次Excel匯入
@ -3777,6 +3770,16 @@ namespace AMESCoreStudio.Web.Controllers
var columnCount = data.ColumnCount();
var ErrorMsg = "";
var recordKeys = new HashSet<string>(); // 用於檢查組合是否重複
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<string> validSides = new List<string> { "正面", "背面" };
List<string> validSides = new List<string> { "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 });
}

12
AMESCoreStudio.Web/HttpApis/AMES/IWHS.cs

@ -771,7 +771,7 @@ namespace AMESCoreStudio.Web
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/WorkingLines/Unit/{id}")]
ITask<List<WorkingLine>> GetWorkingLinesbyUnit(string id);
ITask<List<WorkingLine>> GetWorkingLinesbyUnit(int id);
@ -780,7 +780,7 @@ namespace AMESCoreStudio.Web
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/WorkingLines/MultiUnit/{id}")]
ITask<List<dynamic>> GetWorkingLinesbyMultiUnit(string id);
ITask<List<dynamic>> GetWorkingLinesbyMultiUnit(int id);
#endregion
@ -826,7 +826,7 @@ namespace AMESCoreStudio.Web
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/WorkingStations/Unit/{id}")]
ITask<List<WorkingStation>> GetWorkingStationsbyUnit(string id);
ITask<List<WorkingStation>> GetWorkingStationsbyUnit(int id);
@ -836,7 +836,7 @@ namespace AMESCoreStudio.Web
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/WorkingStations/MultiUnit/{id}")]
ITask<List<dynamic>> GetWorkingStationsbyMultiUnit(string id);
ITask<List<dynamic>> GetWorkingStationsbyMultiUnit(int id);
@ -921,7 +921,7 @@ namespace AMESCoreStudio.Web
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/WorkingStandardWorkTimes/WHS025/{u}/{l}/{i}")]
ITask<ResultModel<WorkingStandardWorkTime>> GetWorkingStandardWorkTimesbyQuery(string u, int l, string i,int page = 0, int limit = 10);
ITask<ResultModel<WorkingStandardWorkTime>> GetWorkingStandardWorkTimesbyQuery(int u, int l, string i,int page = 0, int limit = 10);
@ -930,7 +930,7 @@ namespace AMESCoreStudio.Web
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/WorkingStandardWorkTimes/WHS025Multi/{u}/{l}/{i}")]
ITask<ResultModel<dynamic>> GetWorkingStandardWorkTimesbyMultiQuery(string u, int l, string i, int page = 0, int limit = 10);
ITask<ResultModel<dynamic>> GetWorkingStandardWorkTimesbyMultiQuery(int u, int l, string i, int page = 0, int limit = 10);
/// <summary>

6
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<int> 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; }

6
AMESCoreStudio.Web/Views/WHS/WHS023C.cshtml

@ -16,9 +16,9 @@
<form enctype="multipart/form-data" method="post" asp-action="WHS023CSave">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group form-inline my-sm-1">
<label asp-for="WorkingUnitNo" class="control-label col-sm-3"></label>
<select asp-for="WorkingUnitNo" asp-items="@ViewBag.WorkingUnitNo" class="custom-select col-sm-9"></select>
<span asp-validation-for="WorkingUnitNo" class="text-danger offset-sm-3 my-sm-1"></span>
<label asp-for="WorkingUnitID" class="control-label col-sm-3"></label>
<select asp-for="WorkingUnitID" asp-items="@ViewBag.WorkingUnitNo" class="custom-select col-sm-9"></select>
<span asp-validation-for="WorkingUnitID" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="WorkingLineName" class="control-label col-sm-3"></label>

6
AMESCoreStudio.Web/Views/WHS/WHS023U.cshtml

@ -21,9 +21,9 @@
<input type="hidden" asp-for="CreateUserID" />
<div class="form-group form-inline my-sm-1">
<label asp-for="WorkingUnitNo" class="control-label col-sm-3"></label>
<select asp-for="WorkingUnitNo" asp-items="@ViewBag.WorkingUnitNo" class="custom-select col-sm-9"></select>
<span asp-validation-for="WorkingUnitNo" class="text-danger offset-sm-3 my-sm-1"></span>
<label asp-for="WorkingUnitID" class="control-label col-sm-3"></label>
<select asp-for="WorkingUnitID" asp-items="@ViewBag.WorkingUnitNo" class="custom-select col-sm-9"></select>
<span asp-validation-for="WorkingUnitID" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="WorkingLineName" class="control-label col-sm-3"></label>

6
AMESCoreStudio.Web/Views/WHS/WHS024C.cshtml

@ -36,9 +36,9 @@
<span asp-validation-for="TypeNo" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="WorkingUnitNo" class="control-label col-sm-3"></label>
<select asp-for="WorkingUnitNo" asp-items="@ViewBag.WorkingUnitNo" class="custom-select col-sm-9"></select>
<span asp-validation-for="WorkingUnitNo" class="text-danger offset-sm-3 my-sm-1"></span>
<label asp-for="WorkingUnitID" class="control-label col-sm-3"></label>
<select asp-for="WorkingUnitID" asp-items="@ViewBag.WorkingUnitNo" class="custom-select col-sm-9"></select>
<span asp-validation-for="WorkingUnitID" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span>
<div class="form-group">

6
AMESCoreStudio.Web/Views/WHS/WHS024U.cshtml

@ -40,9 +40,9 @@
<span asp-validation-for="TypeNo" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="WorkingUnitNo" class="control-label col-sm-3"></label>
<select asp-for="WorkingUnitNo" asp-items="@ViewBag.WorkingUnitNo" class="custom-select col-sm-9"></select>
<span asp-validation-for="WorkingUnitNo" class="text-danger offset-sm-3 my-sm-1"></span>
<label asp-for="WorkingUnitID" class="control-label col-sm-3"></label>
<select asp-for="WorkingUnitID" asp-items="@ViewBag.WorkingUnitNo" class="custom-select col-sm-9"></select>
<span asp-validation-for="WorkingUnitID" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span>

2
AMESCoreStudio.Web/Views/WHS/WHS025.cshtml

@ -90,7 +90,7 @@
title: '標準工時(分)',
},
{
field: 'unitNo',
field: 'unitName',
title: '對應途程站別'
},
{

12
AMESCoreStudio.Web/Views/WHS/WHS025C.cshtml

@ -27,11 +27,11 @@
<span asp-validation-for="ItemNo" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="WorkingUnitNo" class="control-label col-sm-3"></label>
<select id="WorkingUnitNo" asp-for="WorkingUnitNo" asp-items="@ViewBag.WorkingUnitNo" class="custom-select col-sm-7">
<label asp-for="WorkingUnitID" class="control-label col-sm-3"></label>
<select id="WorkingUnitNo" asp-for="WorkingUnitID" asp-items="@ViewBag.WorkingUnitNo" class="custom-select col-sm-7">
<option value="">請選擇</option>
</select>
<span asp-validation-for="WorkingUnitNo" class="text-danger offset-sm-3 my-sm-1"></span>
<span asp-validation-for="WorkingUnitID" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label class="control-label col-sm-3">途程生產單位</label>
@ -69,12 +69,6 @@
<input asp-for="Ct" class="form-control col-sm-7" placeholder="請輸入CT" />
<span asp-validation-for="Ct" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="StationID" class="control-label col-sm-3"></label>
<input asp-for="StationID" class="form-control col-sm-7" />
<span asp-validation-for="StationID" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="MachineCnt" class="control-label col-sm-3"></label>
<input asp-for="MachineCnt" class="form-control col-sm-7" value="1" />

2
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: '修改人' },

12
AMESCoreStudio.Web/Views/WHS/WHS025U.cshtml

@ -26,10 +26,10 @@
<span asp-validation-for="ItemNo" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="WorkingUnitNo" class="control-label col-sm-3"></label>
<select id="WorkingUnitNo" asp-for="WorkingUnitNo" asp-items="@ViewBag.WorkingUnitNo" class="custom-select col-sm-7">
<label asp-for="WorkingUnitID" class="control-label col-sm-3"></label>
<select id="WorkingUnitNo" asp-for="WorkingUnitID" asp-items="@ViewBag.WorkingUnitNo" class="custom-select col-sm-7">
</select>
<span asp-validation-for="WorkingUnitNo" class="text-danger offset-sm-3 my-sm-1"></span>
<span asp-validation-for="WorkingUnitID" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label class="control-label col-sm-3">途程生產單位</label>
@ -66,12 +66,6 @@
<input asp-for="Ct" class="form-control col-sm-7" placeholder="請輸入CT" />
<span asp-validation-for="Ct" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="StationID" class="control-label col-sm-3"></label>
<input asp-for="StationID" class="form-control col-sm-7" />
<span asp-validation-for="StationID" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="MachineCnt" class="control-label col-sm-3"></label>
<input asp-for="MachineCnt" class="form-control col-sm-7" value="1" />

17
AMESCoreStudio.WebApi/Controllers/AMES/WorkingLinesController.cs

@ -103,7 +103,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
/// <param name="id">報工生產單位</param>
/// <returns></returns>
[HttpGet("Unit/{id}")]
public async Task<ActionResult<IEnumerable<WorkingLine>>> GetWorkingLinesbyUnit(string id)
public async Task<ActionResult<IEnumerable<WorkingLine>>> GetWorkingLinesbyUnit(int id)
{
IQueryable<WorkingLine> 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
/// <param name="id">報工生產單位</param>
/// <returns></returns>
[HttpGet("MultiUnit/{id}")]
public async Task<ActionResult<IEnumerable<dynamic>>> GetWorkingLinesMulti(string id)
public async Task<ActionResult<IEnumerable<dynamic>>> GetWorkingLinesMulti(int id)
{
// IQueryable<WorkingLine> 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();

35
AMESCoreStudio.WebApi/Controllers/AMES/WorkingStandardWorkTimeController.cs

@ -95,15 +95,15 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
/// <returns></returns>
// GET: api/StandardWorkTimes/5
[HttpGet("WHS025/{u}/{l}/{i}")]
public async Task<ResultModel<WorkingStandardWorkTime>> GetWorkingStandardWorkTimebyQuery(string u, int l, string i, int page = 0, int limit = 10)
public async Task<ResultModel<WorkingStandardWorkTime>> GetWorkingStandardWorkTimebyQuery(int u, int l, string i, int page = 0, int limit = 10)
{
IQueryable<WorkingStandardWorkTime> q = _context.WorkingStandardWorkTimes;
ResultModel<WorkingStandardWorkTime> result = new ResultModel<WorkingStandardWorkTime>();
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
/// <returns></returns>
// GET: api/StandardWorkTimes/5
[HttpGet("WHS025Multi/{u}/{l}/{i}")]
public async Task<ResultModel<dynamic>> GetWorkingStandardWorkTimebyMultiQuery(string u, int l, string i, int page = 0, int limit = 10)
public async Task<ResultModel<dynamic>> GetWorkingStandardWorkTimebyMultiQuery(int u, int l, string i, int page = 0, int limit = 10)
{
ResultModel<dynamic> result = new ResultModel<dynamic>();
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,

8
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 例外

17
AMESCoreStudio.WebApi/Controllers/AMES/WorkingStationsController.cs

@ -114,14 +114,14 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
/// <param name="id">報工生產單位</param>
/// <returns></returns>
[HttpGet("Unit/{id}")]
public async Task<ActionResult<IEnumerable<WorkingStation>>> GetWorkingStations(string id)
public async Task<ActionResult<IEnumerable<WorkingStation>>> GetWorkingStations(int id)
{
try
{
IQueryable<WorkingStation> 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
/// <param name="id">報工生產單位</param>
/// <returns></returns>
[HttpGet("MultiUnit/{id}")]
public async Task<ActionResult<IEnumerable<dynamic>>> GetWorkingStationsMulti(string id)
public async Task<ActionResult<IEnumerable<dynamic>>> GetWorkingStationsMulti(int id)
{
// IQueryable<WorkingLine> 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();

11
AMESCoreStudio.WebApi/Models/AMES/WorkingLine.cs

@ -32,11 +32,11 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary>
/// 報工生產單位代碼
/// </summary>
[Column("WORKING_UNIT_NO")]
[Column("WORKING_UNIT_ID")]
[DataMember]
[Required(ErrorMessage = "{0} 不能空白")]
[Display(Name = "報工生產單位代碼")]
public string WorkingUnitNo { get; set; }
public int WorkingUnitID { get; set; }
/// <summary>
/// 狀態
/// </summary>
@ -67,12 +67,5 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Display(Name = "修改日期")]
public DateTime UpdateDate { get; set; }
///// <summary>
///// 生產制程單位
///// </summary>
//[ForeignKey("WorkingUnitNo")]
//[DataMember]
//public virtual WorkingUnit GetWorkingUnit { get; set; }
}
}

11
AMESCoreStudio.WebApi/Models/AMES/WorkingStandardWorkTime.cs

@ -23,11 +23,11 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary>
/// 報工生產單位
/// </summary>
[Column("WORKING_UNIT_NO")]
[Column("WORKING_UNIT_ID")]
[DataMember]
[Required(ErrorMessage = "{0} 不能空白")]
[Display(Name = "報工生產單位")]
public string WorkingUnitNo { get; set; }
public int WorkingUnitID { get; set; }
/// <summary>
/// 報工線別ID
@ -89,13 +89,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Display(Name = "標準工時(分)")]
public int Ct { get; set; } = 0;
/// <summary>
/// 對應途程站別ID
/// </summary>
[Column("STATION_ID")]
[DataMember]
[Display(Name = "對應途程站別ID")]
public string StationID { get; set; } = "N/A";
/// <summary>
/// 作業機台數

12
AMESCoreStudio.WebApi/Models/AMES/WorkingStandardWorkTimeLog.cs

@ -31,11 +31,11 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary>
/// 報工生產單位
/// </summary>
[Column("WORKING_UNIT_NO")]
[Column("WORKING_UNIT_ID")]
[DataMember]
[Required(ErrorMessage = "{0} 不能空白")]
[Display(Name = "報工生產單位")]
public string WorkingUnitNo { get; set; }
public int WorkingUnitID { get; set; }
/// <summary>
/// 報工線別ID
@ -97,14 +97,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Display(Name = "標準工時(分)")]
public int Ct { get; set; } = 0;
/// <summary>
/// 對應途程站別ID
/// </summary>
[Column("STATION_ID")]
[DataMember]
[Display(Name = "對應途程站別ID")]
public string StationID { get; set; } = "N/A";
/// <summary>
/// 作業機台數
/// </summary>

4
AMESCoreStudio.WebApi/Models/AMES/WorkingStation.cs

@ -38,11 +38,11 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary>
/// 報工生產單位代碼
/// </summary>
[Column("WORKING_UNIT_NO")]
[Column("WORKING_UNIT_ID")]
[DataMember]
[Required(ErrorMessage = "{0} 不能空白")]
[Display(Name = "報工生產單位代碼")]
public string WorkingUnitNo { get; set; }
public int WorkingUnitID { get; set; }
/// <summary>
/// SAP工時類別
/// </summary>

Loading…
Cancel
Save