Browse Source

1. 修正工單基本資料

PTD
Ray 3 years ago
parent
commit
77429d215b
  1. 82
      AMESCoreStudio.Web/Controllers/PCSController.cs
  2. 18
      AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs
  3. 3
      AMESCoreStudio.Web/ViewModels/PCS/PCS001RViewModel.cs
  4. 18
      AMESCoreStudio.Web/Views/PCS/PCS001.cshtml
  5. 106
      AMESCoreStudio.Web/Views/PCS/PCS001R.cshtml
  6. 182
      AMESCoreStudio.WebApi/Controllers/AMES/BarcodeTypeController.cs
  7. 14
      AMESCoreStudio.WebApi/Controllers/AMES/WipBarcodeOthersController.cs
  8. 9
      AMESCoreStudio.WebApi/Controllers/AMES/WipBoardController.cs
  9. 18
      AMESCoreStudio.WebApi/Controllers/AMES/WipLabelController.cs
  10. 8
      AMESCoreStudio.WebApi/Controllers/AMES/WipSystemController.cs
  11. 82
      AMESCoreStudio.WebApi/Models/AMES/BarcodeType.cs
  12. 25
      AMESCoreStudio.WebApi/Models/AMES/WipLabel.cs
  13. 3
      AMESCoreStudio.WebApi/Models/AMES/WipMAC.cs
  14. 84
      AMESCoreStudio.WebApi/Models/AMESContext.cs
  15. 12
      開發文件/Table(wip_label).docx

82
AMESCoreStudio.Web/Controllers/PCSController.cs

@ -760,14 +760,13 @@ namespace AMESCoreStudio.Web.Controllers
await _pcsApi.PostWipAtt(JsonConvert.SerializeObject(model.wipAtt)); await _pcsApi.PostWipAtt(JsonConvert.SerializeObject(model.wipAtt));
// 標籤 // 標籤
model.wipLabel.ApproveLogo = model.wipLabel.ApproveLogos.Count==0 ? null : string.Join(',', model.wipLabel.ApproveLogos); model.wipLabel.ApproveLogo = model.wipLabel.ApproveLogos.Count == 0 ? null : string.Join(',', model.wipLabel.ApproveLogos);
model.wipLabel.WipAttr = model.wipLabel.WipAttrs.Count == 0 ? null : string.Join(',', model.wipLabel.WipAttrs); model.wipLabel.WipNO = model.wipInfo.WipNO;
model.wipLabel.WipID = wipID;
await _pcsApi.PostWipLabel(JsonConvert.SerializeObject(model.wipLabel)); await _pcsApi.PostWipLabel(JsonConvert.SerializeObject(model.wipLabel));
// 新增工單Log // 新增工單Log
WipLog wiplog = new WipLog(); WipLog wiplog = new WipLog();
wiplog.WipID= wipID; wiplog.WipID = wipID;
wiplog.StatusNO = "N"; wiplog.StatusNO = "N";
wiplog.WipDesc = "."; wiplog.WipDesc = ".";
await _pcsApi.PostWipLog(JsonConvert.SerializeObject(wiplog)); await _pcsApi.PostWipLog(JsonConvert.SerializeObject(wiplog));
@ -805,6 +804,26 @@ namespace AMESCoreStudio.Web.Controllers
model.wipBarcode.WipNO = model.wipInfo.WipNO; model.wipBarcode.WipNO = model.wipInfo.WipNO;
model.wipBarcode.UnitNO = model.wipInfo.UnitNO; model.wipBarcode.UnitNO = model.wipInfo.UnitNO;
result = await _pcsApi.PostWipBarcode(JsonConvert.SerializeObject(model.wipBarcode)); result = await _pcsApi.PostWipBarcode(JsonConvert.SerializeObject(model.wipBarcode));
// 工單條碼規則設定文件檔
WipRule wipRule = new WipRule();
wipRule.WipNO = model.wipInfo.WipNO;
wipRule.KeyNo = "00";
wipRule.BarcodeLen = 14;
wipRule.BarcodeFormat = model.wipInfo.UnitNO;
result = await _pcsApi.PostWipRule(JsonConvert.SerializeObject(wipRule));
}
// 出貨序號
if (!string.IsNullOrWhiteSpace(model.wipBarcodeOther.StartNO))
{
var type_no = await _pcsApi.GetBarcodeTypeByTypeName("客戶條碼區間");
if (type_no.Any())
{
model.wipBarcodeOther.WipNO = model.wipInfo.WipNO;
model.wipBarcodeOther.TypeNO = type_no.FirstOrDefault().TypeNO;
result = await _pcsApi.PostWipBarcodeOther(JsonConvert.SerializeObject(model.wipBarcodeOther));
}
} }
// MAC // MAC
@ -841,6 +860,33 @@ namespace AMESCoreStudio.Web.Controllers
public async Task<IActionResult> PCS001R(int id) public async Task<IActionResult> PCS001R(int id)
{ {
PCS001RViewModel model = new PCS001RViewModel();
var q = await _pcsApi.GetWipInfo(id);
if (q.Count != 0)
{
model.wipInfo = q.FirstOrDefault();
model.wipAtt = await _pcsApi.GetWipAtt(model.wipInfo.WipNO);
model.wipBarcode = await _pcsApi.GetWipBarcode(model.wipInfo.WipNO);
model.ruleStation = await _basApi.GetRuleStationsByFlow(model.wipInfo.FlowRuleID);
model.ruleStation = model.ruleStation.OrderBy(o => o.Sequence);
var q1 = await _pcsApi.GetWipSopQuery(itemNo: model.wipAtt.ItemNO);
model.wipSop = q1.Data;
var q2 = await _pcsApi.GetMaterialKpQuery(itemno: model.wipAtt.ItemNO);
model.materialKp = q2.Data;
model.wipBoard = await _pcsApi.GetWipBoard(model.wipInfo.WipNO);
model.wipSystem = await _pcsApi.GetWipSystem(model.wipInfo.WipNO);
model.wipMAC = await _pcsApi.GetWipMAC(model.wipInfo.WipNO);
model.wipLabel = await _pcsApi.GetWipLabel(model.wipInfo.WipNO);
model.wipBarcodeOther = await _pcsApi.GetWipBarcodeOther(model.wipInfo.WipNO);
}
await GetProductType(); await GetProductType();
await GetFactoryInfo(); await GetFactoryInfo();
await GetFactoryUnit(); await GetFactoryUnit();
@ -860,30 +906,10 @@ namespace AMESCoreStudio.Web.Controllers
GetCustomerType(); GetCustomerType();
GetPCSList1(); GetPCSList1();
GetPCSOPList(); GetPCSOPList();
PCS001RViewModel model = new PCS001RViewModel(); GetCheckboxApproveLogo(model.wipLabel != null ? model.wipLabel.ApproveLogo : null);
var q = await _pcsApi.GetWipInfo(id); GetCheckboxCompanyLogo(model.wipLabel != null ? model.wipLabel.CompanyLogo : null);
if (q.Count != 0) GetCheckboxPrintMode(model.wipLabel != null ? model.wipLabel.PrintMode : null);
{ GetCheckboxWipAttr(model.wipLabel != null ? model.wipLabel.WipAttr :null);
model.wipInfo = q.FirstOrDefault();
model.wipAtt = await _pcsApi.GetWipAtt(model.wipInfo.WipNO);
model.wipBarcode = await _pcsApi.GetWipBarcode(model.wipInfo.WipNO);
model.ruleStation = await _basApi.GetRuleStationsByFlow(model.wipInfo.FlowRuleID);
model.ruleStation = model.ruleStation.OrderBy(o => o.Sequence);
var q1 = await _pcsApi.GetWipSopQuery(itemNo: model.wipAtt.ItemNO);
model.wipSop = q1.Data;
var q2 = await _pcsApi.GetMaterialKpQuery(itemno: model.wipAtt.ItemNO);
model.materialKp = q2.Data;
var q3 = await _pcsApi.GetWipBoard(model.wipInfo.WipNO);
model.wipBoard = q3.FirstOrDefault();
var q4 = await _pcsApi.GetWipSystem(model.wipInfo.WipNO);
model.wipSystem = q4.FirstOrDefault();
}
if (model.wipInfo != null)
{
}
return View(model); return View(model);
} }

18
AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs

@ -122,7 +122,7 @@ namespace AMESCoreStudio.Web
#region WipBoard 工單基本資料-板卡資訊 PCS001 #region WipBoard 工單基本資料-板卡資訊 PCS001
[WebApiClient.Attributes.HttpGet("api/WipBoard/{id}")] [WebApiClient.Attributes.HttpGet("api/WipBoard/{id}")]
ITask<IEnumerable<WipBoard>> GetWipBoard(string id); ITask<WipBoard> GetWipBoard(string id);
[WebApiClient.Attributes.HttpPost("api/WipBoard")] [WebApiClient.Attributes.HttpPost("api/WipBoard")]
ITask<ResultModel<WipBoard>> PostWipBoard([FromBody, RawJsonContent] string model); ITask<ResultModel<WipBoard>> PostWipBoard([FromBody, RawJsonContent] string model);
@ -130,7 +130,7 @@ namespace AMESCoreStudio.Web
#region WipSystem 工單基本資料-系統組裝資訊 PCS001 #region WipSystem 工單基本資料-系統組裝資訊 PCS001
[WebApiClient.Attributes.HttpGet("api/WipSystem/{id}")] [WebApiClient.Attributes.HttpGet("api/WipSystem/{id}")]
ITask<IEnumerable<WipSystem>> GetWipSystem(string id); ITask<WipSystem> GetWipSystem(string id);
[WebApiClient.Attributes.HttpPost("api/WipSystem")] [WebApiClient.Attributes.HttpPost("api/WipSystem")]
ITask<ResultModel<WipSystem>> PostWipSystem([FromBody, RawJsonContent] string model); ITask<ResultModel<WipSystem>> PostWipSystem([FromBody, RawJsonContent] string model);
@ -138,15 +138,15 @@ namespace AMESCoreStudio.Web
#region WipLabel 工單基本資料-標籤 PCS001 #region WipLabel 工單基本資料-標籤 PCS001
[WebApiClient.Attributes.HttpGet("api/WipLabel/{id}")] [WebApiClient.Attributes.HttpGet("api/WipLabel/{id}")]
ITask<IEnumerable<WipLabel>> GetWipLabel(string id); ITask<WipLabel> GetWipLabel(string id);
[WebApiClient.Attributes.HttpPost("api/WipSystem")] [WebApiClient.Attributes.HttpPost("api/WipLabel")]
ITask<ResultModel<WipLabel>> PostWipLabel([FromBody, RawJsonContent] string model); ITask<ResultModel<WipLabel>> PostWipLabel([FromBody, RawJsonContent] string model);
#endregion #endregion
#region WipMAC 工單MAC資料檔 PCS001 #region WipMAC 工單MAC資料檔 PCS001
[WebApiClient.Attributes.HttpGet("api/WipMAC/{id}")] [WebApiClient.Attributes.HttpGet("api/WipMAC/{id}")]
ITask<IEnumerable<WipMAC>> GetWipMAC(string id); ITask<WipMAC> GetWipMAC(string id);
[WebApiClient.Attributes.HttpPost("api/WipMAC")] [WebApiClient.Attributes.HttpPost("api/WipMAC")]
ITask<ResultModel<WipMAC>> PostWipMAC([FromBody, RawJsonContent] string model); ITask<ResultModel<WipMAC>> PostWipMAC([FromBody, RawJsonContent] string model);
@ -178,12 +178,18 @@ namespace AMESCoreStudio.Web
#region WipBarcodeOthers 工單條碼區間設定檔(除内部SN) PCS001 #region WipBarcodeOthers 工單條碼區間設定檔(除内部SN) PCS001
[WebApiClient.Attributes.HttpGet("api/WipBarcodeOther/WipNo/{id}")] [WebApiClient.Attributes.HttpGet("api/WipBarcodeOther/WipNo/{id}")]
ITask<List<WipBarcodeOther>> GetWipBarcodeOther(string id); ITask<WipBarcodeOther> GetWipBarcodeOther(string id);
[WebApiClient.Attributes.HttpPost("api/WipBarcodeOther")] [WebApiClient.Attributes.HttpPost("api/WipBarcodeOther")]
ITask<ResultModel<WipBarcodeOther>> PostWipBarcodeOther([FromBody, RawJsonContent] string model); ITask<ResultModel<WipBarcodeOther>> PostWipBarcodeOther([FromBody, RawJsonContent] string model);
#endregion #endregion
#region BarcodeType 條碼類別資料檔 PCS001
[WebApiClient.Attributes.HttpGet("api/BarcodeType/TypeName/{id}")]
ITask<IEnumerable<WipBarcodeOther>> GetBarcodeTypeByTypeName(string id);
#endregion
#region WipLog 工單投產纪錄資料文件 PCS006 #region WipLog 工單投產纪錄資料文件 PCS006
[WebApiClient.Attributes.HttpGet("api/WipLog")] [WebApiClient.Attributes.HttpGet("api/WipLog")]
ITask<IEnumerable<WipLog>> GetWipLog(); ITask<IEnumerable<WipLog>> GetWipLog();

3
AMESCoreStudio.Web/ViewModels/PCS/PCS001RViewModel.cs

@ -26,7 +26,10 @@ namespace AMESCoreStudio.Web.ViewModels.PCS
public IEnumerable<MaterialKpDto> materialKp { get; set; } public IEnumerable<MaterialKpDto> materialKp { get; set; }
public WipLabel wipLabel { get; set; }
public WipMAC wipMAC { get; set; }
public WipBarcodeOther wipBarcodeOther { get; set; }
} }
} }

18
AMESCoreStudio.Web/Views/PCS/PCS001.cshtml

@ -260,7 +260,11 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">出貨序號</label> <label class="layui-form-label">出貨序號</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" placeholder="請輸入出貨序號" /> <input asp-for="wipBarcodeOther.StartNO" class="layui-input" />
</div>
<div class="layui-form-mid">-</div>
<div class="layui-input-inline">
<input asp-for="wipBarcodeOther.EndNO" class="layui-input" />
</div> </div>
</div> </div>
</div> </div>
@ -807,7 +811,7 @@
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">工單屬性</label> <label class="layui-form-label">工單屬性</label>
<div class="layui-input-block"> <div class="layui-input-block">
<cl-checkbox asp-items="@ViewBag.GetCheckboxWipAttr" asp-for="wipLabel.WipAttrs" asp-skin="defult"></cl-checkbox> <cl-radio asp-items="@ViewBag.GetCheckboxWipAttr" asp-for="wipLabel.WipAttr"></cl-radio>
</div> </div>
</div> </div>
</div> </div>
@ -835,9 +839,9 @@
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function () { $(document).ready(function () {
getFlowRuleList(("#unit").value); getFlowRuleList($("#unit").val());
getLineInfoList(("#unit").value); getLineInfoList($("#unit").val());
if (("#unit").value == "B" || ("#unit").value == "P" || ("#unit").value == "T") { if ($("#unit").val() == "B" || $("#unit").val() == "P" || $("#unit").val() == "T") {
$("#system").show(); $("#system").show();
$("#board").hide(); $("#board").hide();
} }
@ -853,7 +857,7 @@
{ {
url: "@Url.Action("GetFlowRuleJson", "BAS")", url: "@Url.Action("GetFlowRuleJson", "BAS")",
dataType: 'json', dataType: 'json',
data: { "unit_no": $("#unitNo").val()}, data: { "unit_no": $("#unit").val()},
type: 'post', type: 'post',
success: function (result) success: function (result)
{ {
@ -880,7 +884,7 @@
{ {
url: "@Url.Action("GetUnitLineJson", "BAS")", url: "@Url.Action("GetUnitLineJson", "BAS")",
dataType: 'json', dataType: 'json',
data: { "unit_no": $("#unitNo").val()}, data: { "unit_no": $("#unit").val()},
type: 'post', type: 'post',
success: function (result) success: function (result)
{ {

106
AMESCoreStudio.Web/Views/PCS/PCS001R.cshtml

@ -30,7 +30,7 @@
<div class="layui-inline"> <div class="layui-inline">
<label asp-for="wipInfo.WipNO" class="layui-form-label"></label> <label asp-for="wipInfo.WipNO" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipInfo.WipNO" class="layui-input" autocomplete="off" placeholder="請輸入工單號碼" /> <input asp-for="wipInfo.WipNO" class="layui-input" autocomplete="off" />
<span asp-validation-for="wipInfo.WipNO" class="layui-bg-red"></span> <span asp-validation-for="wipInfo.WipNO" class="layui-bg-red"></span>
</div> </div>
<label asp-for="wipInfo.WipSEQ" class="layui-form-label"></label> <label asp-for="wipInfo.WipSEQ" class="layui-form-label"></label>
@ -39,12 +39,12 @@
</div> </div>
<label asp-for="wipAtt.ItemNO" class="layui-form-label"></label> <label asp-for="wipAtt.ItemNO" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipAtt.ItemNO" class="layui-input" autocomplete="off" placeholder="請輸入料號" /> <input asp-for="wipAtt.ItemNO" class="layui-input" autocomplete="off" />
<span asp-validation-for="wipAtt.ItemNO" class="layui-bg-red"></span> <span asp-validation-for="wipAtt.ItemNO" class="layui-bg-red"></span>
</div> </div>
<label asp-for="wipInfo.PlanQTY" class="layui-form-label"></label> <label asp-for="wipInfo.PlanQTY" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipInfo.PlanQTY" class="layui-input" autocomplete="off" placeholder="請輸入計劃數量" /> <input asp-for="wipInfo.PlanQTY" class="layui-input" autocomplete="off" />
<span asp-validation-for="wipInfo.PlanQTY" class="layui-bg-red"></span> <span asp-validation-for="wipInfo.PlanQTY" class="layui-bg-red"></span>
</div> </div>
</div> </div>
@ -66,7 +66,7 @@
</div> </div>
<label asp-for="wipInfo.WerksNO" class="layui-form-label"></label> <label asp-for="wipInfo.WerksNO" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipInfo.WerksNO" class="layui-input" autocomplete="off" placeholder="請輸入委外廠編號" /> <input asp-for="wipInfo.WerksNO" class="layui-input" autocomplete="off" />
<span asp-validation-for="wipInfo.WerksNO" class="layui-bg-red"></span> <span asp-validation-for="wipInfo.WerksNO" class="layui-bg-red"></span>
</div> </div>
@ -81,16 +81,16 @@
</div> </div>
<label asp-for="wipInfo.CustomerNO" class="layui-form-label"></label> <label asp-for="wipInfo.CustomerNO" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipInfo.CustomerNO" class="layui-input" autocomplete="off" placeholder="請輸入客戶名稱" /> <input asp-for="wipInfo.CustomerNO" class="layui-input" autocomplete="off" />
<span asp-validation-for="wipInfo.CustomerNO" class="layui-bg-red"></span> <span asp-validation-for="wipInfo.CustomerNO" class="layui-bg-red"></span>
</div> </div>
<label asp-for="wipInfo.CustomerItemNO" class="layui-form-label"></label> <label asp-for="wipInfo.CustomerItemNO" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipInfo.CustomerItemNO" class="layui-input" autocomplete="off" placeholder="請輸入客戶料號" /> <input asp-for="wipInfo.CustomerItemNO" class="layui-input" autocomplete="off" />
</div> </div>
<label asp-for="wipInfo.Sales" class="layui-form-label"></label> <label asp-for="wipInfo.Sales" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipInfo.Sales" class="layui-input" autocomplete="off" placeholder="請輸入業務" /> <input asp-for="wipInfo.Sales" class="layui-input" autocomplete="off" />
</div> </div>
</div> </div>
</div> </div>
@ -113,13 +113,13 @@
<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" placeholder="請輸入關聯工單/客戶工單" /> <input asp-for="wipInfo.RelatedWONO" class="layui-input" />
<span asp-validation-for="wipInfo.RelatedWONO" class="layui-bg-red"></span> <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>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipInfo.OrderNO" class="layui-input" placeholder="請輸入訂單號碼" /> <input asp-for="wipInfo.OrderNO" class="layui-input" />
</div> </div>
</div> </div>
</div> </div>
@ -162,7 +162,7 @@
<div class="layui-inline"> <div class="layui-inline">
<label asp-for="wipAtt.ModelNO" class="layui-form-label"></label> <label asp-for="wipAtt.ModelNO" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipAtt.ModelNO" class="layui-input" placeholder="請輸入機種" /> <input asp-for="wipAtt.ModelNO" class="layui-input" />
</div> </div>
<label asp-for="wipAtt.WipProcess" class="layui-form-label"></label> <label asp-for="wipAtt.WipProcess" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
@ -180,12 +180,12 @@
<div class="layui-inline"> <div class="layui-inline">
<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" placeholder="請輸入聯板數" /> <input asp-for="wipAtt.Boards" class="layui-input" />
<span asp-validation-for="wipAtt.Boards" class="layui-bg-red"></span> <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" placeholder="請輸入包裝單箱數量" /> <input asp-for="wipInfo.BoxCNT" class="layui-input" />
<span asp-validation-for="wipInfo.BoxCNT" class="layui-bg-red"></span> <span asp-validation-for="wipInfo.BoxCNT" class="layui-bg-red"></span>
</div> </div>
</div> </div>
@ -195,11 +195,11 @@
<div class="layui-inline"> <div class="layui-inline">
<label asp-for="wipAtt.ECN" class="layui-form-label"></label> <label asp-for="wipAtt.ECN" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipAtt.ECN" class="layui-input" placeholder="請輸入ECN版本" /> <input asp-for="wipAtt.ECN" class="layui-input" />
</div> </div>
<label asp-for="wipAtt.EAN" class="layui-form-label"></label> <label asp-for="wipAtt.EAN" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipAtt.EAN" class="layui-input" placeholder="請輸入EAN" /> <input asp-for="wipAtt.EAN" class="layui-input" />
</div> </div>
</div> </div>
</div> </div>
@ -208,12 +208,12 @@
<div class="layui-inline"> <div class="layui-inline">
<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="" placeholder="yyyy/MM/dd" /> <input asp-for="wipInfo.WipScheduleDate" class="layui-input" readonly="" />
<span asp-validation-for="wipInfo.WipScheduleDate" class="layui-bg-red"></span> <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="" placeholder="yyyy/MM/dd" /> <input asp-for="wipInfo.WipDueDate" class="layui-input" readonly="" />
<span asp-validation-for="wipInfo.WipDueDate" class="layui-bg-red"></span> <span asp-validation-for="wipInfo.WipDueDate" class="layui-bg-red"></span>
</div> </div>
</div> </div>
@ -297,21 +297,29 @@
} }
</tbody> </tbody>
</table> </table>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">出貨序號</label> <label class="layui-form-label">出貨序號</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" placeholder="請輸入出貨序號" /> <input asp-for="wipBarcodeOther.StartNO" class="layui-input" />
</div>
<div class="layui-form-mid">-</div>
<div class="layui-input-inline">
<input asp-for="wipBarcodeOther.EndNO" class="layui-input" />
</div> </div>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">LAN ID</label> <label class="layui-form-label">MAC</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" placeholder="請輸入LAN ID" /> <input asp-for="wipMAC.StartNO" class="layui-input" />
<span class="text-danger"></span> </div>
<div class="layui-form-mid">-</div>
<div class="layui-input-inline">
<input asp-for="wipMAC.EndNO" class="layui-input" />
</div> </div>
</div> </div>
</div> </div>
@ -383,13 +391,13 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">工程負責人員</label> <label class="layui-form-label">工程負責人員</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" autocomplete="off" placeholder="請輸入工號" /> <input class="layui-input" autocomplete="off" />
<span style="color: #dc3545 !important;"></span> <span style="color: #dc3545 !important;"></span>
</div> </div>
<label class="layui-form-label">姓名</label> <label class="layui-form-label">姓名</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" autocomplete="off" placeholder="" /> <input class="layui-input" autocomplete="off" />
<span style="color: #dc3545 !important;"></span> <span style="color: #dc3545 !important;"></span>
</div> </div>
</div> </div>
@ -428,8 +436,8 @@
<div class="layui-input-inline"> <div class="layui-input-inline">
<select disabled asp-items="@ViewBag.GetDIPTypeList" asp-for="wipBoard.DipSide" class=""></select> <select disabled asp-items="@ViewBag.GetDIPTypeList" asp-for="wipBoard.DipSide" class=""></select>
</div> </div>
<input type="checkbox" title="CARRIER" @if (Model.wipBoard != null) { @(Model.wipBoard.DipTape == "Y" ? "checked" : "")}/> <input type="checkbox" title="CARRIER" @if (Model.wipBoard != null) { @(Model.wipBoard.DipTape == "Y" ? "checked" : "") } />
<input type="checkbox" title="貼付膠帶"@if (Model.wipBoard != null) { @(Model.wipBoard.DipTape == "Y" ? "checked" : "")} /> <input type="checkbox" title="貼付膠帶" @if (Model.wipBoard != null) { @(Model.wipBoard.DipTape == "Y" ? "checked" : "") } />
</div> </div>
</div> </div>
@ -437,7 +445,7 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">燒錄</label> <label class="layui-form-label">燒錄</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="checkbox" title="是否燒入"@if (Model.wipBoard != null) { @(Model.wipBoard.Burn == "Y" ? "checked" : "") }/> <input type="checkbox" title="是否燒入" @if (Model.wipBoard != null) { @(Model.wipBoard.Burn == "Y" ? "checked" : "") } />
</div> </div>
<div class="layui-input-inline"> <div class="layui-input-inline">
<label asp-for="wipBoard.BurnLocation" class="layui-form-label"></label> <label asp-for="wipBoard.BurnLocation" class="layui-form-label"></label>
@ -515,12 +523,12 @@
<div class="layui-inline"> <div class="layui-inline">
<label asp-for="wipBoard.BiosVer" class="layui-form-label"></label> <label asp-for="wipBoard.BiosVer" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipBoard.BiosVer" class="layui-input" placeholder="請輸入BIOS" /> <input asp-for="wipBoard.BiosVer" class="layui-input" />
<span class="text-danger"></span> <span class="text-danger"></span>
</div> </div>
<label asp-for="wipBoard.Checksum" class="layui-form-label"></label> <label asp-for="wipBoard.Checksum" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipBoard.Checksum" class="layui-input" placeholder="請輸入Checksum" /> <input asp-for="wipBoard.Checksum" class="layui-input" />
<span class="text-danger"></span> <span class="text-danger"></span>
</div> </div>
</div> </div>
@ -581,13 +589,13 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">工程負責人員</label> <label class="layui-form-label">工程負責人員</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" autocomplete="off" placeholder="請輸入工號" /> <input class="layui-input" autocomplete="off" />
<span style="color: #dc3545 !important;"></span> <span style="color: #dc3545 !important;"></span>
</div> </div>
<label class="layui-form-label">姓名</label> <label class="layui-form-label">姓名</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" autocomplete="off" placeholder="" /> <input class="layui-input" autocomplete="off" />
<span style="color: #dc3545 !important;"></span> <span style="color: #dc3545 !important;"></span>
</div> </div>
</div> </div>
@ -597,7 +605,7 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">Power Mode</label> <label class="layui-form-label">Power Mode</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" autocomplete="off" placeholder="" /> <input class="layui-input" autocomplete="off" />
<span style="color: #dc3545 !important;"></span> <span style="color: #dc3545 !important;"></span>
</div> </div>
</div> </div>
@ -606,7 +614,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">
<input class="layui-input" placeholder="請輸入工單號碼" /> <input class="layui-input" />
</div> </div>
</div> </div>
@ -655,15 +663,15 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label" asp-for="wipSystem.Cpu"></label> <label class="layui-form-label" asp-for="wipSystem.Cpu"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Cpu" autocomplete="off" placeholder="CPU" /> <input class="layui-input" asp-for="wipSystem.Cpu" autocomplete="off" />
</div> </div>
<label class="layui-form-label" asp-for="wipSystem.Ram"></label> <label class="layui-form-label" asp-for="wipSystem.Ram"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Ram" autocomplete="off" placeholder="RAM" /> <input class="layui-input" asp-for="wipSystem.Ram" autocomplete="off" />
</div> </div>
<label class="layui-form-label" asp-for="wipSystem.OsVer"></label> <label class="layui-form-label" asp-for="wipSystem.OsVer"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.OsVer" autocomplete="off" placeholder="OS版本" /> <input class="layui-input" asp-for="wipSystem.OsVer" autocomplete="off" />
</div> </div>
</div> </div>
</div> </div>
@ -672,7 +680,7 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">EC</label> <label class="layui-form-label">EC</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Ec" autocomplete="off" placeholder="請輸入EC" /> <input class="layui-input" asp-for="wipSystem.Ec" autocomplete="off" />
</div> </div>
</div> </div>
</div> </div>
@ -681,7 +689,7 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">FW</label> <label class="layui-form-label">FW</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Fw" autocomplete="off" placeholder="請輸入FW" /> <input class="layui-input" asp-for="wipSystem.Fw" autocomplete="off" />
</div> </div>
</div> </div>
</div> </div>
@ -690,7 +698,7 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">FW1</label> <label class="layui-form-label">FW1</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Fw1" autocomplete="off" placeholder="請輸入FW1" /> <input class="layui-input" asp-for="wipSystem.Fw1" autocomplete="off" />
</div> </div>
</div> </div>
</div> </div>
@ -699,7 +707,7 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">FW2</label> <label class="layui-form-label">FW2</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Fw2" autocomplete="off" placeholder="請輸入FW2" /> <input class="layui-input" asp-for="wipSystem.Fw2" autocomplete="off" />
</div> </div>
</div> </div>
</div> </div>
@ -852,7 +860,7 @@
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">備註</label> <label class="layui-form-label">備註</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input class="layui-input" placeholder="請輸入備註" /> <input class="layui-input"/>
</div> </div>
</div> </div>
</div> </div>
@ -861,16 +869,13 @@
<div class="layui-tab-item"> <div class="layui-tab-item">
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">列印方式</label> <label class="layui-form-label">列印方式</label>
<div class="layui-input-block"> <cl-radio asp-items="@ViewBag.GetCheckboxPrintMode" asp-for="wipLabel.PrintMode"></cl-radio>
<input type="checkbox" name="like[write]" title="ON Line列印">
<input type="checkbox" name="like[read]" title="OFF Line列印" checked="">
</div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">列印張數</label> <label class="layui-form-label">列印張數</label>
<div class="layui-input-inline" style="width: 100px;"> <div class="layui-input-inline" style="width: 100px;">
<input class="layui-input" /> <input class="layui-input" asp-for="wipLabel.PrintPage" />
</div> </div>
<div class="layui-form-mid layui-word-aux">張</div> <div class="layui-form-mid layui-word-aux">張</div>
</div> </div>
@ -878,25 +883,20 @@
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">認證LOGO</label> <label class="layui-form-label">認證LOGO</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="checkbox" name="like[write]" title="CE"> <cl-checkbox asp-items="@ViewBag.GetCheckboxApproveLogo" asp-for="wipLabel.ApproveLogos" asp-skin="defult"></cl-checkbox>
<input type="checkbox" name="like[write]" title="FCC">
<input type="checkbox" name="like[write]" title="ROHS">
<input type="checkbox" name="like[write]" title="UL">
<input type="checkbox" name="like[write]" title="皆無">
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">公司LOGO</label> <label class="layui-form-label">公司LOGO</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="checkbox" name="like[write]" title="A VALUE"> <cl-radio asp-items="@ViewBag.GetCheckboxCompanyLogo" asp-for="wipLabel.CompanyLogo"></cl-radio>
<input type="checkbox" name="like[write]" title="無">
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">工單屬性</label> <label class="layui-form-label">工單屬性</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="checkbox" name="like[write]" title="正常工單"> <cl-radio asp-items="@ViewBag.GetCheckboxWipAttr" asp-for="wipLabel.WipAttr"></cl-radio>
<input type="checkbox" name="like[write]" title="非標96工單-非標單據;人員輸入">
</div> </div>
</div> </div>
</div> </div>

182
AMESCoreStudio.WebApi/Controllers/AMES/BarcodeTypeController.cs

@ -0,0 +1,182 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using AMESCoreStudio.WebApi.Models.AMES;
namespace AMESCoreStudio.WebApi.Controllers.AMES
{
/// <summary>
/// 條碼狀態維護
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class BarcodeTypeController : ControllerBase
{
private readonly AMESContext _context;
/// <summary>
///
/// </summary>
/// <param name="context"></param>
public BarcodeTypeController(AMESContext context)
{
_context = context;
}
/// <summary>
///
/// </summary>
/// <returns></returns>
// GET: api/BarcodeType
[HttpGet]
public async Task<ActionResult<IEnumerable<BarcodeType>>> GetBarcodeType()
{
IQueryable<BarcodeType> q = _context.BarcodeTypes;
q = q.OrderBy(p => p.BarcodeTypeID);
var BarcodeType = await q.ToListAsync();
return BarcodeType;
}
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
// GET: api/BarcodeType/5
[HttpGet("{id}")]
public async Task<ActionResult<IEnumerable<BarcodeType>>> GetBarcodeType(string id)
{
IQueryable<BarcodeType> q = _context.BarcodeTypes;
q = q.Where(p => p.BarcodeTypeID.Equals(id));
var BarcodeType = await q.ToListAsync();
if (BarcodeType == null)
{
return NotFound();
}
return BarcodeType;
}
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
// GET: api/BarcodeType/5
[HttpGet("TypeName/{id}")]
public async Task<ActionResult<IEnumerable<BarcodeType>>> GetBarcodeTypeByTypeName(string id)
{
IQueryable<BarcodeType> q = _context.BarcodeTypes;
q = q.Where(p => p.TypeName.Equals(id));
var BarcodeType = await q.ToListAsync();
if (BarcodeType == null)
{
return NotFound();
}
return BarcodeType;
}
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <param name="BarcodeType"></param>
/// <returns></returns>
// PUT: api/BarcodeType/5
// To protect from overposting attacks, enable the specific properties you want to bind to, for
// more details, see https://go.microsoft.com/fwlink/?linkid=2123754.
[HttpPut("{id}")]
public async Task<ActionResult<BarcodeType>> PutBarcodeType(int id, [FromBody] BarcodeType BarcodeType)
{
if (id != BarcodeType.BarcodeTypeID)
{
return BadRequest();
}
_context.Entry(BarcodeType).State = EntityState.Modified;
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!BarcodeTypeExists(id))
{
return NotFound();
}
else
{
throw;
}
}
return BarcodeType;
}
/// <summary>
///
/// </summary>
/// <param name="BarcodeType"></param>
/// <returns></returns>
// POST: api/BarcodeType
// To protect from overposting attacks, enable the specific properties you want to bind to, for
// more details, see https://go.microsoft.com/fwlink/?linkid=2123754.
[HttpPost]
public async Task<ActionResult<BarcodeType>> PostBarcodeType([FromBody] BarcodeType BarcodeType)
{
_context.BarcodeTypes.Add(BarcodeType);
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateException)
{
if (BarcodeTypeExists(BarcodeType.BarcodeTypeID))
{
return Conflict();
}
else
{
throw;
}
}
return CreatedAtAction("GetBarcodeType", new { id = BarcodeType.BarcodeTypeID }, BarcodeType);
}
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
// DELETE: api/BarcodeType/5
[HttpDelete("{id}")]
public async Task<ActionResult<BarcodeType>> DeleteBarcodeType(int id)
{
var BarcodeType = await _context.BarcodeTypes.Where(p => p.BarcodeTypeID == id).FirstOrDefaultAsync();
if (BarcodeType == null)
{
return NotFound();
}
_context.BarcodeTypes.Remove(BarcodeType);
await _context.SaveChangesAsync();
return BarcodeType;
}
private bool BarcodeTypeExists(int id)
{
return _context.BarcodeTypes.Any(e => e.BarcodeTypeID == id);
}
}
}

14
AMESCoreStudio.WebApi/Controllers/AMES/WipBarcodeOthersController.cs

@ -16,7 +16,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
/// </summary> /// </summary>
[Route("api/[controller]")] [Route("api/[controller]")]
[ApiController] [ApiController]
public class WipBarcodeOthersController : Controller public class WipBarcodeOtherController : Controller
{ {
private readonly AMESContext _context; private readonly AMESContext _context;
@ -24,7 +24,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
/// ///
/// </summary> /// </summary>
/// <param name="context"></param> /// <param name="context"></param>
public WipBarcodeOthersController(AMESContext context) public WipBarcodeOtherController(AMESContext context)
{ {
_context = context; _context = context;
} }
@ -51,16 +51,16 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
} }
[HttpGet("WipNo/{id}")] [HttpGet("WipNo/{id}")]
public async Task<ActionResult<WipBarcodeOther>> GetWipMACByWipNo(string id) public async Task<ActionResult<WipBarcodeOther>> GetWipBarcodeOtherByWipNo(string id)
{ {
IQueryable<WipBarcodeOther> q = _context.WipBarcodeOthers; IQueryable<WipBarcodeOther> q = _context.WipBarcodeOthers;
var wipBarcodeOther = await q.Where(p => p.WipNO == id).FirstOrDefaultAsync(); var wipBarcodeOther = await q.Where(p => p.WipNO == id).FirstOrDefaultAsync();
if (wipBarcodeOther == null) //if (wipBarcodeOther == null)
{ //{
return NotFound(); // return NotFound();
} //}
return wipBarcodeOther; return wipBarcodeOther;
} }

9
AMESCoreStudio.WebApi/Controllers/AMES/WipBoardController.cs

@ -37,19 +37,18 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
/// <param name="id">WipNo</param> /// <param name="id">WipNo</param>
/// <returns></returns> /// <returns></returns>
[HttpGet("{id}")] [HttpGet("{id}")]
public async Task<ResultModel<WipBoard>> GetWipBoard(string id) public async Task<ActionResult<WipBoard>> GetWipBoard(string id)
{ {
IQueryable<WipBoard> q = _context.WipBoards; IQueryable<WipBoard> q = _context.WipBoards;
ResultModel<WipBoard> result = new ResultModel<WipBoard>(); var wipBoard = await q.Where(p => p.WipNo == id).FirstOrDefaultAsync();
result.Data = await q.Where(p => p.WipNo == id).ToListAsync();
//if (result.Data.Count() == 0) //if (wipBoard == null)
//{ //{
// return NotFound(); // return NotFound();
//} //}
return result; return wipBoard;
} }
/// <summary> /// <summary>

18
AMESCoreStudio.WebApi/Controllers/AMES/WipLabelController.cs

@ -35,22 +35,22 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
public async Task<ActionResult<IEnumerable<WipLabel>>> GetWipLabel() public async Task<ActionResult<IEnumerable<WipLabel>>> GetWipLabel()
{ {
IQueryable<WipLabel> q = _context.WipLabels; IQueryable<WipLabel> q = _context.WipLabels;
q = q.OrderBy(p => p.WipID); q = q.OrderBy(p => p.WipNO);
var WipLabel = await q.ToListAsync(); var WipLabel = await q.ToListAsync();
return WipLabel; return WipLabel;
} }
[HttpGet("{id}")] [HttpGet("{id}")]
public async Task<ActionResult<WipLabel>> GetWipLabel(int id) public async Task<ActionResult<WipLabel>> GetWipLabel(string id)
{ {
IQueryable<WipLabel> q = _context.WipLabels; IQueryable<WipLabel> q = _context.WipLabels;
var WipLabel = await q.Where(p => p.WipID == id).FirstOrDefaultAsync(); var WipLabel = await q.Where(p => p.WipNO == id).FirstOrDefaultAsync();
if (WipLabel == null) //if (WipLabel == null)
{ //{
return NotFound(); // return NotFound();
} //}
return WipLabel; return WipLabel;
} }
@ -136,11 +136,11 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
// PUT api/<WipLabelController>/5 // PUT api/<WipLabelController>/5
[HttpPut("{id}")] [HttpPut("{id}")]
public async Task<ResultModel<WipLabel>> PutWipLabel(int id) public async Task<ResultModel<WipLabel>> PutWipLabel(string id)
{ {
ResultModel<WipLabel> result = new ResultModel<WipLabel>(); ResultModel<WipLabel> result = new ResultModel<WipLabel>();
var WipLabel = new WipLabel { var WipLabel = new WipLabel {
WipID = id, WipNO = id,
UpdateUserID = 1, UpdateUserID = 1,
UpdateDate = System.DateTime.Now UpdateDate = System.DateTime.Now

8
AMESCoreStudio.WebApi/Controllers/AMES/WipSystemController.cs

@ -34,19 +34,17 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
/// <param name="id">WipNo</param> /// <param name="id">WipNo</param>
/// <returns></returns> /// <returns></returns>
[HttpGet("{id}")] [HttpGet("{id}")]
public async Task<ResultModel<WipSystem>> GetWipSystem(string id) public async Task<ActionResult<WipSystem>> GetWipSystem(string id)
{ {
IQueryable<WipSystem> q = _context.WipSystems; IQueryable<WipSystem> q = _context.WipSystems;
var wipSystem = await q.Where(p => p.WipNo == id).FirstOrDefaultAsync();
ResultModel<WipSystem> result = new ResultModel<WipSystem>();
result.Data = await q.Where(p => p.WipNo == id).ToListAsync();
//if (result.Data.Count() == 0) //if (result.Data.Count() == 0)
//{ //{
// return NotFound(); // return NotFound();
//} //}
return result; return wipSystem;
} }
/// <summary> /// <summary>

82
AMESCoreStudio.WebApi/Models/AMES/BarcodeType.cs

@ -0,0 +1,82 @@
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Runtime.Serialization;
#nullable disable
namespace AMESCoreStudio.WebApi.Models.AMES
{
/// <summary>
/// 條碼類別資料檔
/// </summary>
[Table("BARCODE_TYPE", Schema = "JHAMES")]
public partial class BarcodeType
{
/// <summary>
/// 條碼類別ID
/// </summary>
[Key]
[Column("BARCODE_TYPE_ID", TypeName = "NUMBER")]
[DataMember]
public int BarcodeTypeID { get; set; }
/// <summary>
/// 類別代碼
/// </summary>
[Column("TYPE_NO")]
[StringLength(4)]
[Display(Name = "類別代碼")]
[DataMember]
public string TypeNo { get; set; }
/// <summary>
/// 類別描述
/// </summary>
[Column("TYPE_NAME")]
[StringLength(50)]
[Required(ErrorMessage = "{0},不能空白")]
[Display(Name = "類別描述")]
[DataMember]
public string TypeName { get; set; }
/// <summary>
/// 當前值
/// </summary>
[Column("BARCODE_QTY")]
[StringLength(10)]
[Required(ErrorMessage = "{0},不能空白")]
[Display(Name = "當前值")]
[DataMember]
public string BarcodeQty { get; set; }
/// <summary>
/// 創建者ID
/// </summary>
[Column("CREATE_USERID")]
[DataMember]
public int CreateUserID { get; set; } = 0;
/// <summary>
/// 創建日期
/// </summary>
[Column("CREATE_DATE")]
[DataMember]
public DateTime CreateDate { get; set; } = System.DateTime.Now;
/// <summary>
/// 更新者ID
/// </summary>
[Column("UPDATE_USERID")]
[DataMember]
public int UpdateUserID { get; set; } = 0;
/// <summary>
/// 更新日期
/// </summary>
[Column("UPDATE_DATE", TypeName = "DATE")]
[DataMember]
public DateTime UpdateDate { get; set; } = System.DateTime.Now;
}
}

25
AMESCoreStudio.WebApi/Models/AMES/WipLabel.cs

@ -17,12 +17,12 @@ namespace AMESCoreStudio.WebApi.Models.AMES
public partial class WipLabel public partial class WipLabel
{ {
/// <summary> /// <summary>
/// WIP_ID /// WIP_NO
/// </summary> /// </summary>
[Key] [Key]
[Column("WIP_ID", Order = 0)] [Column("WIP_NO", Order = 0)]
[DataMember] [DataMember]
public int WipID { get; set; } public string WipNO { get; set; }
/// <summary> /// <summary>
/// 列印方式 /// 列印方式
@ -49,15 +49,13 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// 公司LOGO /// 公司LOGO
/// </summary> /// </summary>
[Column("COMPANY_LOGO")] [Column("COMPANY_LOGO")]
[Required]
[DataMember] [DataMember]
public string CompanyLogo { get; set; } public string CompanyLogo { get; set; }
/// <summary> /// <summary>
/// 工單屬性 /// 工單屬性
/// </summary> /// </summary>
[Column(" WIP_ATTR")] [Column("WIP_ATTR")]
[Required]
[DataMember] [DataMember]
public string WipAttr { get; set; } public string WipAttr { get; set; }
@ -90,21 +88,8 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[DataMember] [DataMember]
public DateTime? UpdateDate { get; set; } public DateTime? UpdateDate { get; set; }
/// <summary>
/// 工單資料
/// </summary>
[ForeignKey("WipID")]
public virtual WipInfo GetWipInfo { get; set; }
/// <summary>
/// SOP資料
/// </summary>
[ForeignKey("WipSopID")]
public virtual WipSop GetWipSop { get; set; }
[NotMapped] [NotMapped]
public virtual List<string> ApproveLogos { get; set; } public virtual List<string> ApproveLogos { get; set; }
[NotMapped]
public virtual List<string> WipAttrs { get; set; }
} }
} }

3
AMESCoreStudio.WebApi/Models/AMES/WipMAC.cs

@ -15,6 +15,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary> /// <summary>
/// 工單號碼 /// 工單號碼
/// </summary> /// </summary>
[Key]
[Column("WIP_NO")] [Column("WIP_NO")]
[Required(ErrorMessage = "{0},不能空白")] [Required(ErrorMessage = "{0},不能空白")]
[DataMember] [DataMember]
@ -23,6 +24,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary> /// <summary>
/// MAC起 /// MAC起
/// </summary> /// </summary>
[Key]
[Column("START_NO")] [Column("START_NO")]
[DataMember] [DataMember]
[Required(ErrorMessage = "{0},不能空白")] [Required(ErrorMessage = "{0},不能空白")]
@ -33,6 +35,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary> /// <summary>
/// MAC迄 /// MAC迄
/// </summary> /// </summary>
[Key]
[Column("END_NO")] [Column("END_NO")]
[DataMember] [DataMember]
[StringLength(6)] [StringLength(6)]

84
AMESCoreStudio.WebApi/Models/AMESContext.cs

@ -25,6 +25,46 @@ namespace AMESCoreStudio.WebApi
//Configuration.ProxyCreationEnabled = false; //Configuration.ProxyCreationEnabled = false;
} }
/// <summary>
///
/// </summary>
/// <param name="modelBuilder"></param>
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
/*
modelBuilder.Entity<RoleModule>()
.HasOne(m => m.Module);
*/
modelBuilder.Entity<Rules>().HasKey(c => new { c.RuleStationID, c.RuleStatus });
modelBuilder.Entity<WipBarcode>().HasKey(c => new { c.WipNO, c.StartNO, c.EndNO });
modelBuilder.Entity<WipLog>().HasKey(c => new { c.WipID, c.CreateDate });
modelBuilder.Entity<PartMap>().HasKey(c => new { c.CorpSN });
modelBuilder.Entity<WipSopLog>().HasKey(c => new { c.WipID, c.WipSopID });
modelBuilder.Entity<WipRule>().HasKey(c => new { c.WipNO, c.RuleStationID, c.KeyNo });
modelBuilder.Entity<WipMAC>().HasKey(c => new { c.WipNO, c.StartNO, c.EndNO });
modelBuilder.Entity<BarcodeItem>().HasOne(r => r.B).WithMany().HasForeignKey(r => r.BarcodeID).IsRequired();
modelBuilder.Entity<BarcodeItem>().HasOne(r => r.I).WithMany().HasForeignKey(r => r.ItemNo).IsRequired();
modelBuilder.Entity<BarcodeItem>().HasOne(r => r.S).WithMany().HasForeignKey(r => r.RuleStationID).IsRequired();
modelBuilder.Entity<WorkClass>().HasOne(r => r.Group).WithMany().HasForeignKey(r => r.GroupID).IsRequired();
modelBuilder.Entity<ListObj>().HasKey(c => new { c.value, c.name });
modelBuilder.Entity<CycleTime>().HasKey(c => new { c.ItemNo, c.LineID });
modelBuilder.Entity<CycleTime>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.SectionNo).IsRequired();
modelBuilder.Entity<CycleTime>().HasOne(r => r.Line).WithMany().HasForeignKey(r => r.LineID).IsRequired();
modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.ClassInfo>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.UnitNo).IsRequired();
modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.LineInfo>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.UnitNo).IsRequired();
modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.LineInfo>().HasOne(r => r.Dept).WithMany().HasForeignKey(r => r.DeptID).IsRequired();
modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.Stations>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.UnitNo).IsRequired();
modelBuilder.Entity<MACInfo>().HasKey(c => new { c.Class, c.ClassGroup });
}
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
@ -70,45 +110,6 @@ namespace AMESCoreStudio.WebApi
/// </summary> /// </summary>
public DbSet<RoleModule> RoleModules { get; set; } public DbSet<RoleModule> RoleModules { get; set; }
/// <summary>
///
/// </summary>
/// <param name="modelBuilder"></param>
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
/*
modelBuilder.Entity<RoleModule>()
.HasOne(m => m.Module);
*/
modelBuilder.Entity<Rules>().HasKey(c => new { c.RuleStationID, c.RuleStatus });
modelBuilder.Entity<WipBarcode>().HasKey(c => new { c.WipNO, c.StartNO, c.EndNO });
modelBuilder.Entity<WipLog>().HasKey(c => new { c.WipID, c.CreateDate});
modelBuilder.Entity<PartMap>().HasKey(c => new { c.CorpSN });
modelBuilder.Entity<WipSopLog>().HasKey(c => new { c.WipID, c.WipSopID });
modelBuilder.Entity<WipRule>().HasKey(c => new { c.WipNO, c.RuleStationID,c.KeyNo });
modelBuilder.Entity<WipMAC>().HasNoKey();
modelBuilder.Entity<BarcodeItem>().HasOne(r => r.B).WithMany().HasForeignKey(r => r.BarcodeID).IsRequired();
modelBuilder.Entity<BarcodeItem>().HasOne(r => r.I).WithMany().HasForeignKey(r => r.ItemNo).IsRequired();
modelBuilder.Entity<BarcodeItem>().HasOne(r => r.S).WithMany().HasForeignKey(r => r.RuleStationID).IsRequired();
modelBuilder.Entity<WorkClass>().HasOne(r => r.Group).WithMany().HasForeignKey(r => r.GroupID).IsRequired();
modelBuilder.Entity<ListObj>().HasKey(c => new { c.value, c.name });
modelBuilder.Entity<CycleTime>().HasKey(c => new { c.ItemNo, c.LineID });
modelBuilder.Entity<CycleTime>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.SectionNo).IsRequired();
modelBuilder.Entity<CycleTime>().HasOne(r => r.Line).WithMany().HasForeignKey(r => r.LineID).IsRequired();
modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.ClassInfo>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.UnitNo).IsRequired();
modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.LineInfo>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.UnitNo).IsRequired();
modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.LineInfo>().HasOne(r => r.Dept).WithMany().HasForeignKey(r => r.DeptID).IsRequired();
modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.Stations>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.UnitNo).IsRequired();
modelBuilder.Entity<MACInfo>().HasKey(c => new { c.Class, c.ClassGroup });
}
/// <summary> /// <summary>
/// ///
@ -436,6 +437,11 @@ namespace AMESCoreStudio.WebApi
///無效工時在線收集資料 ///無效工時在線收集資料
/// </summary> /// </summary>
public DbSet<ExceptionWorktimeOline> ExceptionWorktimeOlines { get; set; } public DbSet<ExceptionWorktimeOline> ExceptionWorktimeOlines { get; set; }
/// <summary>
/// 條碼類別資料檔
/// </summary>
public virtual DbSet<BarcodeType> BarcodeTypes { get; set; }
} }
} }

12
開發文件/Table(wip_label).docx

@ -5,8 +5,8 @@ WIP_LABEL
工單基本資料-標籤 工單基本資料-標籤
主鍵(PK) 主鍵(PK)
TABLE1_PK:WIP_ID TABLE1_PK:WIP_ID
附鍵(FK)
WIP_LABEL_FK1:WIP_ID
序號 序號
欄位名稱 欄位名稱
欄位說明 欄位說明
@ -15,10 +15,10 @@ WIP_LABEL_FK1:WIP_ID
Null Null
Default Default
01 01
WIP_ID WIP_NO
工單ID 工單號碼
NUMBER VARCHAR2
30
X X
02 02

Loading…
Cancel
Save