Browse Source

1. 修正工單錯誤Bug:保存時生產單位不見,工程負責人員刪除出錯

2. 工單查詢加入 開工日期
PTD
Ray 3 years ago
parent
commit
00f78d70f1
  1. 39
      AMESCoreStudio.Web/Controllers/PCSController.cs
  2. 33
      AMESCoreStudio.Web/ViewModels/PCS/PCS031ViewModel.cs
  3. 22
      AMESCoreStudio.Web/Views/PCS/PCS003.cshtml
  4. 4
      AMESCoreStudio.Web/Views/PCS/PCS004.cshtml
  5. 13
      AMESCoreStudio.Web/Views/PCS/PCS005.cshtml
  6. 4
      AMESCoreStudio.Web/Views/PCS/PCS006.cshtml
  7. 124
      AMESCoreStudio.Web/Views/PCS/PCS031.cshtml
  8. 55
      AMESCoreStudio.WebApi/Controllers/AMES/WipInfosController.cs
  9. 93
      AMESCoreStudio.WebApi/DTO/AMES/WipQueryDto.cs
  10. 2
      AMESCoreStudio.WebApi/Models/AMES/WipSystem.cs

39
AMESCoreStudio.Web/Controllers/PCSController.cs

@ -2063,7 +2063,7 @@ namespace AMESCoreStudio.Web.Controllers
try try
{ {
#region 選單 #region 選單
await WipDataSelectAll(model.wipAtt.WipNO, model.wipAtt.ItemNO, model.wipInfo.UnitNO); await WipDataSelectAll(model.wipInfo.WipNO, model.wipAtt.ItemNO, model.wipInfo.UnitNO);
GetCheckboxApproveLogo(model.wipLabel != null ? model.wipLabel.ApproveLogo : null); GetCheckboxApproveLogo(model.wipLabel != null ? model.wipLabel.ApproveLogo : null);
GetCheckboxCompanyLogo(model.wipLabel != null ? model.wipLabel.CompanyLogo : null); GetCheckboxCompanyLogo(model.wipLabel != null ? model.wipLabel.CompanyLogo : null);
GetCheckboxPrintMode(model.wipLabel != null ? model.wipLabel.PrintMode : null); GetCheckboxPrintMode(model.wipLabel != null ? model.wipLabel.PrintMode : null);
@ -2753,7 +2753,7 @@ namespace AMESCoreStudio.Web.Controllers
/// PCS005 Query /// PCS005 Query
/// </summary> /// </summary>
/// <param name="unitno">生產單位</param> /// <param name="unitno">生產單位</param>
/// <param name="wipno">工單號碼</param> /// <param name="wipNo">工單號碼</param>
/// <param name="itemNo">料號</param> /// <param name="itemNo">料號</param>
/// <returns></returns> /// <returns></returns>
public async Task<IActionResult> PCS005QueryAsync(string unitno, string wipNo, string itemNo, int page = 0, int limit = 10) public async Task<IActionResult> PCS005QueryAsync(string unitno, string wipNo, string itemNo, int page = 0, int limit = 10)
@ -2840,14 +2840,14 @@ namespace AMESCoreStudio.Web.Controllers
result_dy.Add(new result_dy.Add(new
{ {
item.wipID, item.wipID,
item.wipNO, item.wipNo,
item.itemNO, item.itemNo,
item.lineID, item.lineID,
item.lineDesc, item.lineDesc,
item.unitName, item.unitName,
item.planQTY, item.planQTY,
item.createDate, item.createDate,
result_StatusType.Where(w => w.StatusNo == (string)item.statusNO).FirstOrDefault().StatusDesc, result_StatusType.Where(w => w.StatusNo == (string)item.statusNo).FirstOrDefault().StatusDesc,
OnOff = result_LineInfo.Count() != 0 ? "ON" : "OFF", OnOff = result_LineInfo.Count() != 0 ? "ON" : "OFF",
ActiveStop = result_Log.StatusNO ActiveStop = result_Log.StatusNO
}); });
@ -2893,7 +2893,6 @@ namespace AMESCoreStudio.Web.Controllers
[HttpPost] [HttpPost]
public async Task<JsonResult> PCS006OnOffAsync(int LineID, int wipID) public async Task<JsonResult> PCS006OnOffAsync(int LineID, int wipID)
{ {
IResultModel result;
await _pcsApi.PutLineInfoToWipNO(LineID, wipID); await _pcsApi.PutLineInfoToWipNO(LineID, wipID);
var _msg = "修改成功!"; var _msg = "修改成功!";
return Json(_msg); return Json(_msg);
@ -4491,17 +4490,17 @@ namespace AMESCoreStudio.Web.Controllers
return View(); return View();
} }
//[HttpPost] [HttpPost]
//public async Task<IActionResult> PCS031Asnyc(PCS031ViewModel model) public async Task<IActionResult> PCS031Asnyc(string wipNo)
//{ {
//} return View();
}
[HttpPost] [HttpPost]
public async Task<IActionResult> PCS031QueryAsnyc(string wipNo) public async Task<IActionResult> PCS031Query(string wipNo)
{ {
var result = new ResultModel<string>(); var result = new ResultModel<SelectListItem>();
var result_Wip = await _pcsApi.GetWipInfoByWipNO(wipNo.Trim().ToUpper()); var result_Wip = await _pcsApi.GetWipInfoByWipNO(wipNo.Trim().ToUpper());
if (result_Wip.Count == 0) if (result_Wip.Count == 0)
@ -4517,16 +4516,18 @@ namespace AMESCoreStudio.Web.Controllers
else else
{ {
var FlowRule = result_Wip.FirstOrDefault().FlowRuleID; var FlowRule = result_Wip.FirstOrDefault().FlowRuleID;
var result_RuleStation = await _pcsApi.GetRuleStationByFlow(FlowRule); var result_RuleStation = await _basApi.GetRuleStationsByFlow(FlowRule, 0);
} result_RuleStation = result_RuleStation.Where(w => w.StationType == "M").OrderBy(o => o.Sequence).ToList();
var Stations = new List<SelectListItem>();
if (result.Data.Count() != 0) for (int i = 0; i < result_RuleStation.Count; i++)
{ {
return Json(new Table() { code = 0, msg = "", data = result.Data, count = 0 }); RuleStations.Add(new SelectListItem(result_RuleStation[i].Sequence + "-" + result_RuleStation[i].StationDesc, result_RuleStation[i].RuleStationID.ToString()));
}
result.Data = RuleStations;
} }
return Json(result); return Json(result);
} }
#endregion #endregion
[HttpPost] [HttpPost]
public JsonResult TestFunc(string number) public JsonResult TestFunc(string number)

33
AMESCoreStudio.Web/ViewModels/PCS/PCS031ViewModel.cs

@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using AMESCoreStudio.WebApi.Models.AMES;
using AMESCoreStudio.WebApi.Models.BAS;
using AMESCoreStudio.WebApi.DTO.AMES;
namespace AMESCoreStudio.Web.ViewModels.PCS
{
public class PCS031ViewModel
{
/// <summary>
/// 工單號碼
/// </summary>
public string WipNO { get; set; }
/// <summary>
/// 工單ID
/// </summary>
public int WipID { get; set; }
/// <summary>
/// 經過作業站
/// </summary>
public int GoByRuleStation { get; set; }
/// <summary>
/// 退回目的地作業站
/// </summary>
public int RetrueRuleStation { get; set; }
}
}

22
AMESCoreStudio.Web/Views/PCS/PCS003.cshtml

@ -106,14 +106,13 @@
<div class="layui-inline"> <div class="layui-inline">
<label asp-for="wipInfo.UnitNO" class="layui-form-label"></label> <label asp-for="wipInfo.UnitNO" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select disabled id="unit" lay-filter="unit" asp-for="wipInfo.UnitNO" asp-items="@ViewBag.FactoryUnitByWipNo" class=""></select> <select disabled lay-filter="unit" asp-for="wipInfo.UnitNO" asp-items="@ViewBag.FactoryUnitByWipNo" class=""></select>
</div> </div>
<input id="unitNo" type="hidden" asp-for="wipInfo.UnitNO" /> <input id="unitNo" type="hidden" asp-for="wipInfo.UnitNO" />
<label asp-for="wipInfo.LineID" class="layui-form-label"></label> <label asp-for="wipInfo.LineID" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select lay-filter="lind" asp-for="wipInfo.LineID" asp-items="@ViewBag.LineInfoList" class=""> <select lay-filter="lind" asp-for="wipInfo.LineID" asp-items="@ViewBag.LineInfoList" class="">
</select> </select>
<span asp-validation-for="wipInfo.LineID" class="layui-bg-red"></span>
</div> </div>
<input id="lindID" type="hidden" name="lindID" value="" /> <input id="lindID" type="hidden" name="lindID" value="" />
@ -121,7 +120,6 @@
<label asp-for="wipInfo.RelatedWONO" class="layui-form-label"></label> <label asp-for="wipInfo.RelatedWONO" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipInfo.RelatedWONO" class="layui-input" /> <input asp-for="wipInfo.RelatedWONO" class="layui-input" />
<span asp-validation-for="wipInfo.RelatedWONO" class="layui-bg-red"></span>
</div> </div>
<label asp-for="wipInfo.OrderNO" class="layui-form-label"></label> <label asp-for="wipInfo.OrderNO" class="layui-form-label"></label>
@ -190,12 +188,10 @@
<label asp-for="wipAtt.Boards" class="layui-form-label"></label> <label asp-for="wipAtt.Boards" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipAtt.Boards" class="layui-input" /> <input asp-for="wipAtt.Boards" class="layui-input" />
<span asp-validation-for="wipAtt.Boards" class="layui-bg-red"></span>
</div> </div>
<label asp-for="wipInfo.BoxCNT" class="layui-form-label"></label> <label asp-for="wipInfo.BoxCNT" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipInfo.BoxCNT" class="layui-input" /> <input asp-for="wipInfo.BoxCNT" class="layui-input" />
<span asp-validation-for="wipInfo.BoxCNT" class="layui-bg-red"></span>
</div> </div>
</div> </div>
</div> </div>
@ -218,12 +214,10 @@
<label asp-for="wipInfo.WipScheduleDate" class="layui-form-label"></label> <label asp-for="wipInfo.WipScheduleDate" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipInfo.WipScheduleDate" class="layui-input" readonly="" /> <input asp-for="wipInfo.WipScheduleDate" class="layui-input" readonly="" />
<span asp-validation-for="wipInfo.WipScheduleDate" class="layui-bg-red"></span>
</div> </div>
<label asp-for="wipInfo.WipDueDate" class="layui-form-label"></label> <label asp-for="wipInfo.WipDueDate" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipInfo.WipDueDate" class="layui-input" readonly="" /> <input asp-for="wipInfo.WipDueDate" class="layui-input" readonly="" />
<span asp-validation-for="wipInfo.WipDueDate" class="layui-bg-red"></span>
</div> </div>
</div> </div>
</div> </div>
@ -562,7 +556,6 @@
<label class="layui-form-label">零件烘烤時間</label> <label class="layui-form-label">零件烘烤時間</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input asp-for="wipBoard.PartsBakeTime" class="layui-input" /> <input asp-for="wipBoard.PartsBakeTime" class="layui-input" />
<span asp-validation-for="wipBoard.PartsBakeTime" class="layui-bg-red"></span>
</div> </div>
</div> </div>
</div> </div>
@ -628,21 +621,18 @@
<label asp-for="wipBoard.BiRatio" class="layui-form-label"></label> <label asp-for="wipBoard.BiRatio" class="layui-form-label"></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input asp-for="wipBoard.BiRatio" class="layui-input" /> <input asp-for="wipBoard.BiRatio" class="layui-input" />
<span asp-validation-for="wipBoard.BiRatio" class="layui-bg-red"></span>
</div> </div>
</div> </div>
<div class="layui-input-inline"> <div class="layui-input-inline">
<label asp-for="wipBoard.BiTemperature" class="layui-form-label"></label> <label asp-for="wipBoard.BiTemperature" class="layui-form-label"></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input asp-for="wipBoard.BiTemperature" class="layui-input" /> <input asp-for="wipBoard.BiTemperature" class="layui-input" />
<span asp-validation-for="wipBoard.BiTemperature" class="layui-bg-red"></span>
</div> </div>
</div> </div>
<div class="layui-input-inline"> <div class="layui-input-inline">
<label asp-for="wipBoard.BiTime" class="layui-form-label"></label> <label asp-for="wipBoard.BiTime" class="layui-form-label"></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input asp-for="wipBoard.BiTime" class="layui-input" /> <input asp-for="wipBoard.BiTime" class="layui-input" />
<span asp-validation-for="wipBoard.BiTime" class="layui-bg-red"></span>
</div> </div>
</div> </div>
</div> </div>
@ -732,7 +722,7 @@
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">PLM生產備註</label> <label class="layui-form-label">PLM生產備註</label>
<div class="layui-input-block" > <div class="layui-input-block">
<textarea class="layui-textarea" asp-for="wipSystem.PowerMode_Desc" readonly="readonly"></textarea> <textarea class="layui-textarea" asp-for="wipSystem.PowerMode_Desc" readonly="readonly"></textarea>
</div> </div>
</div> </div>
@ -1333,7 +1323,7 @@
{ {
url: "@Url.Action("GetMaterialFlowRuleJson", "PCS")", url: "@Url.Action("GetMaterialFlowRuleJson", "PCS")",
dataType: 'json', dataType: 'json',
data: { "itemno": $("#wipAtt_ItemNO").val(),"unit_no": $("#unit").val()}, data: { "itemno": $("#wipAtt_ItemNO").val(), "unit_no": $("#wipInfo_UnitNO").val()},
type: 'post', type: 'post',
success: function (result) success: function (result)
{ {
@ -1359,7 +1349,7 @@
{ {
url: "@Url.Action("GetUnitLineJson", "BAS")", url: "@Url.Action("GetUnitLineJson", "BAS")",
dataType: 'json', dataType: 'json',
data: { "unit_no": $("#unit").val()}, data: { "unit_no": $("#wipInfo_UnitNO").val()},
type: 'post', type: 'post',
success: function (result) success: function (result)
{ {
@ -1383,6 +1373,7 @@
//UserName //UserName
function getUserName(val) { function getUserName(val) {
if (val.value.length != 0) {
$.ajax( $.ajax(
{ {
url: "@Url.Action("getUserName", "SYS")", url: "@Url.Action("getUserName", "SYS")",
@ -1398,6 +1389,7 @@
alert(result); alert(result);
} }
}); });
}
}; };
// RuleStation 備註 // RuleStation 備註
@ -1406,7 +1398,7 @@
{ {
url: "@Url.Action("getMaterialFlowRuleRemark", "PCS")", url: "@Url.Action("getMaterialFlowRuleRemark", "PCS")",
dataType: 'json', dataType: 'json',
data: { "itemno": $("#wipAtt_ItemNO").val(), "unit_no": $("#unit").val(), "flowID": NewID }, data: { "itemno": $("#wipAtt_ItemNO").val(), "unit_no": $("#wipInfo_UnitNO").val(), "flowID": NewID },
type: 'post', type: 'post',
success: function (result) success: function (result)
{ {

4
AMESCoreStudio.Web/Views/PCS/PCS004.cshtml

@ -96,13 +96,13 @@
var tableCols = [[ var tableCols = [[
{ {
field: 'wipNO', field: 'wipNo',
width: 200, width: 200,
title: '工單號碼', title: '工單號碼',
sort: true sort: true
}, },
{ {
field: 'itemNO', field: 'itemNo',
title: '料號', title: '料號',
width: 200, width: 200,
sort: true sort: true

13
AMESCoreStudio.Web/Views/PCS/PCS005.cshtml

@ -2,8 +2,10 @@
ViewData["Title"] = "工單資料查詢"; ViewData["Title"] = "工單資料查詢";
Layout = "~/Views/Shared/_AMESLayout.cshtml"; Layout = "~/Views/Shared/_AMESLayout.cshtml";
} }
@using Microsoft.AspNetCore.Mvc.Localization
@inject IHtmlLocalizer<AMESCoreStudio.Web.SharedResource> sharedLocalizer
<style> <style>
/* .layui-table-col-special .layui-table-cell { /* .layui-table-col-special .layui-table-cell {
height:auto; height:auto;
overflow:visible; overflow:visible;
text-overflow:inherit; text-overflow:inherit;
@ -83,13 +85,13 @@
}); });
var tableCols = [[ var tableCols = [[
{ {
field: 'wipNO', field: 'wipNo',
width: 100, width: 100,
title: '工單號碼', title: '工單號碼',
sort: true sort: true
}, },
{ {
field: 'itemNO', field: 'itemNo',
title: '料號', title: '料號',
width: 150, width: 150,
sort: true sort: true
@ -126,8 +128,9 @@
templet: '<div>{{ layui.util.toDateString(d.wipScheduleDate, "yyyy/MM/dd") }}</div>' templet: '<div>{{ layui.util.toDateString(d.wipScheduleDate, "yyyy/MM/dd") }}</div>'
}, },
{ {
field: 'a', field: 'workDate',
title: '開工日' title: '開工日',
sort: true
}, },
{ {
field: 'wipDueDate', field: 'wipDueDate',

4
AMESCoreStudio.Web/Views/PCS/PCS006.cshtml

@ -171,13 +171,13 @@
hide: true hide: true
}, },
{ {
field: 'wipNO', field: 'wipNo',
width: 200, width: 200,
title: '工單號碼', title: '工單號碼',
sort: true sort: true
}, },
{ {
field: 'itemNO', field: 'itemNo',
title: '料號', title: '料號',
width: 200, width: 200,
sort: true sort: true

124
AMESCoreStudio.Web/Views/PCS/PCS031.cshtml

@ -0,0 +1,124 @@
@{
ViewData["Title"] = "SOP文件查詢";
Layout = "~/Views/Shared/_AMESLayout.cshtml";
}
<style type="text/css">
.layui-table-main .layui-table-cell {
/*height: auto !important;*/
white-space: normal;
}
.layui-table img {
max-width: 60px;
max-height: 28px;
}
.layui-tree-main {
cursor: pointer;
padding-right: 10px;
float: left;
border-width: 1px;
border-style: solid;
border-color: #e6e6e6;
margin: 10px 0;
}
</style>
<div class="layui-card">
<div class="layui-card-header">
<div class="layui-form">
<div class="layui-form-item">
<div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div>
</div>
</div>
</div>
<div class="layui-card-body">
<form enctype="multipart/form-data" method="post" asp-action="PCS031" class="layui-form">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">工單號碼</label>
<div class="layui-input-inline">
<input id="wipNo" name="wipNo" autocomplete="off" class="layui-input" placeholder="請輸入工單號碼" onchange="getSelect(this);">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">通過站別</label>
<div class="layui-input-inline ">
<select id="goByRuleStation" lay-filter="RuleStation" class=""></select>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">回到站別</label>
<div class="layui-input-inline ">
<select id="retureRuleStation" lay-filter="RuleStation" class=""></select>
</div>
</div>
</div>
<span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span>
<div class="layui-form-item">
<div class="layui-input-block">
<input type="submit" value="保存" class="layui-btn" />
</div>
</div>
</form>
</div>
</div>
@section Scripts {
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial");
await Html.RenderPartialAsync("_FileinputScriptsPartial"); }
<script type="text/javascript">
layui.use(['form'], function () {
form = layui.form;
});
$(document).ready(function () {
var error = '@Html.ValidationMessage("error")';
if ($(error).text() != '') {
parent.hg.msg(error);
}
});
function getSelect(val) {
$.ajax(
{
url: "@Url.Action("PCS031Query", "PCS")",
dataType: 'json',
data: { "wipNo": val.value},
type: 'post',
success: function (result)
{
if (result.success) {
$("#goByRuleStation").empty();//清空下拉框的值
$("#retureRuleStation").empty();//清空下拉框的值
$.each(result.data, function (index, item) {
$("#goByRuleStation").append($("<option>").text(item.text).val(item.value))
$("#retureRuleStation").append($("<option>").text(item.text).val(item.value))
});
//$("#wipInfo_LineID option:eq(1)").attr("selected", 'selected'); //默认选择第一个选项
layui.form.render("select");//重新渲染 固定写法
}
else {
parent.hg.msg(result.msg);
}
},
error: function (result)
{
alert(result);
}
});
};
</script>
}

55
AMESCoreStudio.WebApi/Controllers/AMES/WipInfosController.cs

@ -173,38 +173,38 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
join q3 in _context.LineInfoes on q1.LineID equals q3.LineID join q3 in _context.LineInfoes on q1.LineID equals q3.LineID
join q4 in _context.FactoryUnits on q1.UnitNO equals q4.UnitNo join q4 in _context.FactoryUnits on q1.UnitNO equals q4.UnitNo
join q5 in _context.FactoryInfos on q1.Werks equals q5.FactoryID.ToString() join q5 in _context.FactoryInfos on q1.Werks equals q5.FactoryID.ToString()
//join q6 in _context.MaterialItems on q2.ItemNO equals q6.ItemNo select new WipQueryDto
select new {
{ wipID = q1.WipID,
q1.WipID, wipNo = q1.WipNO,
q1.WipNO, planQTY = q1.PlanQTY,
q1.PlanQTY, unitNo = q1.UnitNO,
q1.UnitNO, lineID = q1.LineID,
q1.LineID, statusNo = q1.StatusNO,
q1.StatusNO, wipScheduleDate = q1.WipScheduleDate,
q1.WipScheduleDate, wipDueDate = q1.WipDueDate,
q1.WipDueDate, factoryNameCh = q5.FactoryNameCh,
q5.FactoryNameCh, description = q1.Description,
q1.Description, CreateDate = q1.CreateDate,
q1.CreateDate, itemNo = q2.ItemNO,
q2.ItemNO, lineDesc = q3.LineDesc,
q3.LineDesc, unitName = q4.UnitName
q4.UnitName
}; };
if (!string.IsNullOrWhiteSpace(value.unitno)) if (!string.IsNullOrWhiteSpace(value.unitno))
{ {
q = q.Where(w => w.UnitNO == value.unitno); q = q.Where(w => w.unitNo == value.unitno);
} }
if (!string.IsNullOrWhiteSpace(value.wipno)) if (!string.IsNullOrWhiteSpace(value.wipno))
{ {
q = q.Where(w => w.WipNO == value.wipno); q = q.Where(w => w.wipNo == value.wipno);
} }
if (value.lineid != 0) if (value.lineid != 0)
{ {
q = q.Where(w => w.LineID == value.lineid); q = q.Where(w => w.lineID == value.lineid);
} }
if (value.date_str != null) if (value.date_str != null)
@ -219,7 +219,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
if (value.itemno != null) if (value.itemno != null)
{ {
q = q.Where(w => w.ItemNO == value.itemno); q = q.Where(w => w.itemNo == value.itemno);
} }
// 紀錄筆數 // 紀錄筆數
@ -231,7 +231,18 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
q = q.Skip((page - 1) * limit).Take(limit); q = q.Skip((page - 1) * limit).Take(limit);
} }
result.Data = await q.ToListAsync(); var qq = await q.ToListAsync();
// 塞入開工日
foreach (var item in qq)
{
var workDate = _context.WipStations.Where(w => w.WipID == item.wipID)
.OrderBy(s => s.CreateDate)
.FirstOrDefault();
item.workDate = workDate == null ? "" : workDate.CreateDate.ToString("yyyy/MM/dd");
}
result.Data = qq;
if (result == null) if (result == null)
{ {

93
AMESCoreStudio.WebApi/DTO/AMES/WipQueryDto.cs

@ -0,0 +1,93 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace AMESCoreStudio.WebApi.DTO.AMES
{
/// <summary>
/// WipQuery Select Dto
/// </summary>
public class WipQueryDto
{
/// <summary>
/// 工單ID
/// </summary>
public int wipID { get; set; }
/// <summary>
/// 工單號碼
/// </summary>
public string wipNo { get; set; }
/// <summary>
/// 工單數量
/// </summary>
public int planQTY { get; set; } = 0;
/// <summary>
/// 生產單位
/// </summary>
public string unitNo { get; set; }
/// <summary>
/// 生產單位Name
/// </summary>
public string unitName { get; set; }
/// <summary>
/// 線別ID
/// </summary>
public int? lineID { get; set; } = 0;
/// <summary>
/// 線別Name
/// </summary>
public string lineDesc { get; set; }
/// <summary>
/// 料號
/// </summary>
public string itemNo { get; set; }
/// <summary>
/// 工單狀態
/// </summary>
public string statusNo { get; set; }
/// <summary>
/// 預計開工日期
/// </summary>
public DateTime wipScheduleDate { get; set; }
/// <summary>
/// 預計完工日期
/// </summary>
public DateTime wipDueDate { get; set; }
/// <summary>
/// 廠商中文廠名
/// </summary>
public string factoryNameCh { get; set; }
/// <summary>
/// 工單描述
/// </summary>
public string description { get; set; }
/// <summary>
/// 工單建立日期
/// </summary>
public DateTime CreateDate { get; set; }
/// <summary>
/// 開工日
/// </summary>
public string workDate { get; set; }
/// <summary>
/// 檢驗日
/// </summary>
public string fqcDate { get; set; }
}
}

2
AMESCoreStudio.WebApi/Models/AMES/WipSystem.cs

@ -66,7 +66,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("BI_RATIO")] [Column("BI_RATIO")]
[DataMember] [DataMember]
[Display(Name = "燒機比率")] [Display(Name = "燒機比率")]
public decimal BiRatio { get; set; } public decimal BiRatio { get; set; } = 0;
/// <summary> /// <summary>
/// 燒機溫度 /// 燒機溫度

Loading…
Cancel
Save