From 72e1525636c809249eb76d1ebbfe2d841a938047 Mon Sep 17 00:00:00 2001 From: ray Date: Wed, 6 Apr 2022 16:43:55 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E5=B7=A5=E5=96=AE=E5=9F=BA=E6=9C=AC?= =?UTF-8?q?=E8=B3=87=E6=96=99=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/PCSController.cs | 43 ++----- AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs | 7 ++ .../ViewModels/PCS/WipViewModel.cs | 4 - AMESCoreStudio.Web/Views/PCS/PCS001.cshtml | 2 +- AMESCoreStudio.Web/Views/PCS/PCS001R.cshtml | 2 +- AMESCoreStudio.Web/Views/PCS/PCS003.cshtml | 109 +++++++++++------- .../Controllers/AMES/WipBarcodeController.cs | 69 +++++++++-- .../Controllers/AMES/WipCheckController.cs | 67 +++++++---- .../Controllers/AMES/WipInfoBlobController.cs | 9 +- .../Controllers/AMES/WipLabelController.cs | 33 +++--- .../Models/AMES/WipBarcode.cs | 2 +- AMESCoreStudio.WebApi/Models/AMES/WipInfo.cs | 8 ++ 12 files changed, 222 insertions(+), 133 deletions(-) diff --git a/AMESCoreStudio.Web/Controllers/PCSController.cs b/AMESCoreStudio.Web/Controllers/PCSController.cs index 0631f2f9..51f5764d 100644 --- a/AMESCoreStudio.Web/Controllers/PCSController.cs +++ b/AMESCoreStudio.Web/Controllers/PCSController.cs @@ -1504,6 +1504,7 @@ namespace AMESCoreStudio.Web.Controllers model.wipInfo = q.FirstOrDefault(); model.wipAtt = await _pcsApi.GetWipAtt(model.wipInfo.WipNO); model.wipBarcodes = await _pcsApi.GetWipBarcode(model.wipInfo.WipNO); + model.wipBarcode = model.wipBarcodes.FirstOrDefault(); model.ruleStations = await _pcsApi.GetRuleStationByWipNo(model.wipInfo.WipNO); var q1 = await _pcsApi.GetMaterialSopQuery(itemNo: model.wipAtt.ItemNO); @@ -1546,14 +1547,6 @@ namespace AMESCoreStudio.Web.Controllers model.WipSops = await _pcsApi.GetWipSopByWipNo(model.wipInfo.WipNO); model.wipInfoBlobs = await _pcsApi.GetWipInfoBlob(model.wipInfo.WipNO); - - // 抓料號流程備註 - var q2 = await _pcsApi.GetMaterialFlowsByQuery(model.wipAtt.ItemNO, model.wipInfo.UnitNO); - - if (q2.Where(w => w.FlowRuleID == model.wipInfo.FlowRuleID).FirstOrDefault() != null) - { - model.MaterialFlowRemark = q2.Where(w => w.FlowRuleID == model.wipInfo.FlowRuleID).FirstOrDefault().MaterialFlowRemark; - } } await GetItemsList(); await GetProductType(); @@ -1602,6 +1595,7 @@ namespace AMESCoreStudio.Web.Controllers model.wipInfo = q.FirstOrDefault(); model.wipAtt = await _pcsApi.GetWipAtt(model.wipInfo.WipNO); model.wipBarcodes = await _pcsApi.GetWipBarcode(model.wipInfo.WipNO); + model.wipBarcode = model.wipBarcodes.FirstOrDefault(); model.ruleStations = await _pcsApi.GetRuleStationByWipNo(model.wipInfo.WipNO); //var q1 = await _pcsApi.GetMaterialSopQuery(itemNo: model.wipAtt.ItemNO); @@ -1641,14 +1635,6 @@ namespace AMESCoreStudio.Web.Controllers model.WipSops = await _pcsApi.GetWipSopByWipNo(model.wipInfo.WipNO); model.wipInfoBlobs = await _pcsApi.GetWipInfoBlob(model.wipInfo.WipNO); - - // 抓料號流程備註 - var q1 = await _pcsApi.GetMaterialFlowsByQuery(model.wipAtt.ItemNO, model.wipInfo.UnitNO); - - if (q1.Where(w => w.FlowRuleID == model.wipInfo.FlowRuleID).FirstOrDefault() != null) - { - model.MaterialFlowRemark = q1.Where(w => w.FlowRuleID == model.wipInfo.FlowRuleID).FirstOrDefault().MaterialFlowRemark; - } } await GetItemsList(); await GetProductType(); @@ -1814,22 +1800,15 @@ namespace AMESCoreStudio.Web.Controllers // await _pcsApi.PostWipSop(JsonConvert.SerializeObject(model.wipSop)); //} - //// 內部條碼 - //if (!string.IsNullOrWhiteSpace(model.wipBarcode.StartNO) && !string.IsNullOrWhiteSpace(model.wipBarcode.EndNO)) - //{ - // model.wipBarcode.WipID = wipID; - // model.wipBarcode.WipNO = model.wipInfo.WipNO; - // model.wipBarcode.UnitNO = model.wipInfo.UnitNO; - // 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.wipBarcode.Remarks)) + { + model.wipBarcode.WipID = model.wipInfo.WipID; + model.wipBarcode.WipNO = model.wipInfo.WipNO; + model.wipBarcode.UnitNO = model.wipInfo.UnitNO; + result = await _pcsApi.PutWipBarcode(JsonConvert.SerializeObject(model.wipBarcode)); + + } // 出貨序號 if (!string.IsNullOrWhiteSpace(model.wipBarcodeOther.StartNO) && !string.IsNullOrWhiteSpace(model.wipBarcodeOther.EndNO)) diff --git a/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs b/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs index d3c5eb96..4cf16599 100644 --- a/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs +++ b/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs @@ -231,6 +231,13 @@ namespace AMESCoreStudio.Web [WebApiClient.Attributes.HttpPost("api/WipBarcode")] ITask> PostWipBarcode([FromBody, RawJsonContent] string model); + /// + /// 更新工單條碼起迄資料檔 + /// + /// + [WebApiClient.Attributes.HttpPut("api/WipBarcode")] + ITask> PutWipBarcode([FromBody, RawJsonContent] string model); + /// /// 查詢工單條碼資料-WipNo /// diff --git a/AMESCoreStudio.Web/ViewModels/PCS/WipViewModel.cs b/AMESCoreStudio.Web/ViewModels/PCS/WipViewModel.cs index a1e8286e..e819a6aa 100644 --- a/AMESCoreStudio.Web/ViewModels/PCS/WipViewModel.cs +++ b/AMESCoreStudio.Web/ViewModels/PCS/WipViewModel.cs @@ -86,10 +86,6 @@ namespace AMESCoreStudio.Web.ViewModels.PCS /// public WipInfoBlob wipInfoBlob { get; set; } - /// - /// 流程作業備註 - /// - public string MaterialFlowRemark { get; set; } } public class WipDataViewModel : WipNoDetailViewModel diff --git a/AMESCoreStudio.Web/Views/PCS/PCS001.cshtml b/AMESCoreStudio.Web/Views/PCS/PCS001.cshtml index f582d5f6..4197bf83 100644 --- a/AMESCoreStudio.Web/Views/PCS/PCS001.cshtml +++ b/AMESCoreStudio.Web/Views/PCS/PCS001.cshtml @@ -990,7 +990,7 @@ }); $('#GetBarCode').click(function () { - var wipNO = $('#wipInfo_WipNO').val(); + var wipNO = $('#wipInfo_WipNO').val().toUpperCase(); var planQTY = $('#wipInfo_PlanQTY').val(); if (wipNO == '' || !wipNO) { parent.hg.msg("請輸入工單號碼"); diff --git a/AMESCoreStudio.Web/Views/PCS/PCS001R.cshtml b/AMESCoreStudio.Web/Views/PCS/PCS001R.cshtml index d584ece2..7b3693c1 100644 --- a/AMESCoreStudio.Web/Views/PCS/PCS001R.cshtml +++ b/AMESCoreStudio.Web/Views/PCS/PCS001R.cshtml @@ -365,7 +365,7 @@
- +
diff --git a/AMESCoreStudio.Web/Views/PCS/PCS003.cshtml b/AMESCoreStudio.Web/Views/PCS/PCS003.cshtml index b031427e..cc88cda9 100644 --- a/AMESCoreStudio.Web/Views/PCS/PCS003.cshtml +++ b/AMESCoreStudio.Web/Views/PCS/PCS003.cshtml @@ -232,7 +232,7 @@ @* 序號編碼sheet *@
- @* +
@@ -258,8 +258,8 @@ } -
*@ -
+ + @*
@@ -273,7 +273,7 @@
-
+
*@
@@ -395,7 +395,7 @@
- +
@@ -1095,19 +1095,71 @@ } if ($("#unitNo").val() == "B" || $("#unitNo").val() == "P" || $("#unitNo").val() == "T") { - $("#system").show(); - $("#board").hide(); - } - else { - $("#system").hide(); - $("#board").show(); - } + $("#system").show(); + $("#board").hide(); + } + else { + $("#system").hide(); + $("#board").show(); + } if ($('#wipMAC_StartNO').val() != "" && $('#wipMAC_EndNO').val() != "") { $("#GetMAC").hide(); } getLineInfoList($("#unitNo").val()); + + // 產生條碼 + $('#GetBarCode').click(function () { + var wipNO = $('#wipInfo_WipNO').val().toUpperCase(); + var planQTY = $('#wipInfo_PlanQTY').val(); + if (wipNO == '' || !wipNO) { + parent.hg.msg("請輸入工單號碼"); + return; + } + if (planQTY == '' || !planQTY || planQTY == 0) { + parent.hg.msg("請確認計畫數量"); + return; + } + $("#wipBarcode_StartNO").val(wipNO + PrefixInteger(1, 4)); + $("#wipBarcode_EndNO").val(wipNO + PrefixInteger(planQTY, 4)); + + }); + + // 產生MAC + $("#GetMAC").click(function (event) { + var wipNO = $('#wipAtt_ItemNO').val(); + var planQTY = $('#wipInfo_PlanQTY').val(); + if (wipNO == '' || !wipNO) { + parent.hg.msg("請輸入料號"); + return; + } + if (planQTY == '' || !planQTY || planQTY == 0) { + parent.hg.msg("請確認計畫數量"); + return; + } + $.ajax({ + url: '@Url.Action("GetMAC", "PCS")', + dataType: 'json', + data: { "itemno": $("#wipAtt_ItemNO").val(), "planQTY": $('#wipInfo_PlanQTY').val() }, + cache: false, + type: "POST", + success: function (data, textStatus, jqXHR) { + if (data._msg != undefined) { + parent.hg.msg(data._msg); + } + $("#wipMAC_StartNO").val(data.mix); + $("#wipMAC_EndNO").val(data.max); + }, + error: function (jqXHR, textStatus, errorThrown) { + alert("Found error when using Ajax!!"); + } + }); + }); + + function PrefixInteger(num, length) { + return (Array(length).join('0') + num).slice(-length); + }; }); layui.config({ @@ -1253,7 +1305,7 @@ type: 'post', success: function (result) { - $("#MaterialFlowRemark").val(result.data); + $("#wipInfo_FlowRemark").val(result.data); }, error: function (result) { @@ -1461,36 +1513,7 @@ return a; } - // 產生MAC - $("#GetMAC").click(function (event) { - var wipNO = $('#wipAtt_ItemNO').val(); - var planQTY = $('#wipInfo_PlanQTY').val(); - if (wipNO == '' || !wipNO) { - parent.hg.msg("請輸入料號"); - return; - } - if (planQTY == '' || !planQTY || planQTY == 0) { - parent.hg.msg("請確認計畫數量"); - return; - } - $.ajax({ - url: '@Url.Action("GetMAC", "PCS")', - dataType:'json', - data: { "itemno": $("#wipAtt_ItemNO").val(), "planQTY": $('#wipInfo_PlanQTY').val()}, - cache: false, - type: "POST", - success: function (data, textStatus, jqXHR) { - if (data._msg != undefined) { - parent.hg.msg(data._msg); - } - $("#wipMAC_StartNO").val(data.mix); - $("#wipMAC_EndNO").val(data.max); - }, - error: function (jqXHR, textStatus, errorThrown) { - alert("Found error when using Ajax!!"); - } - }); - }); + diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipBarcodeController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipBarcodeController.cs index 9dfb4724..d76045ef 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/WipBarcodeController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipBarcodeController.cs @@ -6,6 +6,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using AMESCoreStudio.WebApi.Models.AMES; +using AMESCoreStudio.CommonTools.Result; namespace AMESCoreStudio.WebApi.Controllers.AMES { /// @@ -90,18 +91,72 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES // 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> PostWipBarcode([FromBody] WipBarcode wipBarcode) + public async Task> PostWipBarcode([FromBody] WipBarcode wipBarcode) { - Helper helper = new Helper(_context); - wipBarcode.WipID = wipBarcode.WipID == 0 ? helper.GetIDKeyNoPost("WIP_ID").Result : wipBarcode.WipID; - wipBarcode.CreateUserID = 0; + ResultModel result = new ResultModel(); + try + { + Helper helper = new Helper(_context); + wipBarcode.WipID = wipBarcode.WipID == 0 ? helper.GetIDKeyNoPost("WIP_ID").Result : wipBarcode.WipID; + wipBarcode.CreateUserID = 0; - _context.WipBarcodes.Add(wipBarcode); - await _context.SaveChangesAsync(); + _context.WipBarcodes.Add(wipBarcode); + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException ex) + { + result.Success = false; + result.Msg = ex.InnerException.Message; + } - return CreatedAtAction("PostWipBarcode", new { id = wipBarcode.WipID }, wipBarcode); + + return result; } + + /// + /// 更新工單資料-條碼Barcode + /// + /// + /// + [HttpPut] + public async Task> PutWipBarcode([FromBody] WipBarcode wipBarcode) + { + ResultModel result = new ResultModel(); + var wipNo = wipBarcode.WipNO; + try + { + var result_old = _context.WipBarcodes.Where(w => w.WipNO == wipNo).ToList(); + if (result_old.Count != 0) + { + foreach (var item in result_old) + { + _context.Entry(item).State = EntityState.Modified; + _context.Entry(item).Property("CreateDate").IsModified = false; + _context.Entry(item).Property("CreateUserID").IsModified = false; + item.UpdateDate = DateTime.Now; + item.Remarks = wipBarcode.Remarks; + + } + } + else + { + _context.WipBarcodes.Add(wipBarcode); + } + + await _context.SaveChangesAsync(); + result.Success = true; + result.Msg = "OK"; + } + catch (Exception ex) + { + result.Success = false; + result.Msg = ex.InnerException.Message; + } + return result; + } + + /// /// 刪除工單條碼區間 /// diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipCheckController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipCheckController.cs index 89e03f4b..c35472c3 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/WipCheckController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipCheckController.cs @@ -54,18 +54,24 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES public async Task> PutWipCheckByPE(WipCheck wipCheck) { ResultModel result = new ResultModel(); - _context.Entry(wipCheck).State = EntityState.Modified; - //設置容器空間某一個模型的某一個欄位 不提交到資料庫 - //DbContent.Entry是要更新到資料庫的整個對象 - _context.Entry(wipCheck).Property("MFUserID").IsModified = false; - _context.Entry(wipCheck).Property("MFCheckdate").IsModified = false; - _context.Entry(wipCheck).Property("PMCUserID").IsModified = false; - _context.Entry(wipCheck).Property("PMCCheckdate").IsModified = false; wipCheck.PEUserID = 0; wipCheck.PECheckdate = DateTime.Now; - + var wipNo = wipCheck.WipNo; try { + if (_context.WipChecks.Any(e => e.WipNo == wipNo)) + { + _context.Entry(wipCheck).State = EntityState.Modified; + _context.Entry(wipCheck).Property("MFUserID").IsModified = false; + _context.Entry(wipCheck).Property("MFCheckdate").IsModified = false; + _context.Entry(wipCheck).Property("PMCUserID").IsModified = false; + _context.Entry(wipCheck).Property("PMCCheckdate").IsModified = false; + } + else + { + _context.WipChecks.Add(wipCheck); + } + await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; @@ -88,18 +94,25 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES public async Task> PutWipCheckByMF(WipCheck wipCheck) { ResultModel result = new ResultModel(); - _context.Entry(wipCheck).State = EntityState.Modified; - //設置容器空間某一個模型的某一個欄位 不提交到資料庫 - //DbContent.Entry是要更新到資料庫的整個對象 - _context.Entry(wipCheck).Property("PEUserID").IsModified = false; - _context.Entry(wipCheck).Property("PECheckdate").IsModified = false; - _context.Entry(wipCheck).Property("PMCUserID").IsModified = false; - _context.Entry(wipCheck).Property("PMCCheckdate").IsModified = false; + var wipNo = wipCheck.WipNo; wipCheck.MFUserID = 0; wipCheck.MFCheckdate = DateTime.Now; - try { + if (_context.WipChecks.Any(e => e.WipNo == wipNo)) + { + _context.Entry(wipCheck).State = EntityState.Modified; + _context.Entry(wipCheck).Property("PEUserID").IsModified = false; + _context.Entry(wipCheck).Property("PECheckdate").IsModified = false; + _context.Entry(wipCheck).Property("PMCUserID").IsModified = false; + _context.Entry(wipCheck).Property("PMCCheckdate").IsModified = false; + + } + else + { + _context.WipChecks.Add(wipCheck); + } + await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; @@ -122,18 +135,24 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES public async Task> PutWipCheckByPMC(WipCheck wipCheck) { ResultModel result = new ResultModel(); - _context.Entry(wipCheck).State = EntityState.Modified; - //設置容器空間某一個模型的某一個欄位 不提交到資料庫 - //DbContent.Entry是要更新到資料庫的整個對象 - _context.Entry(wipCheck).Property("PEUserID").IsModified = false; - _context.Entry(wipCheck).Property("PECheckdate").IsModified = false; - _context.Entry(wipCheck).Property("MFUserID").IsModified = false; - _context.Entry(wipCheck).Property("MFCheckdate").IsModified = false; wipCheck.PMCUserID = 0; wipCheck.PMCCheckdate = DateTime.Now; - + var wipNo = wipCheck.WipNo; try { + if (_context.WipChecks.Any(e => e.WipNo == wipNo)) + { + _context.Entry(wipCheck).State = EntityState.Modified; + _context.Entry(wipCheck).Property("PEUserID").IsModified = false; + _context.Entry(wipCheck).Property("PECheckdate").IsModified = false; + _context.Entry(wipCheck).Property("MFUserID").IsModified = false; + _context.Entry(wipCheck).Property("MFCheckdate").IsModified = false; + } + else + { + _context.WipChecks.Add(wipCheck); + } + await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipInfoBlobController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipInfoBlobController.cs index c9a28171..03527bf8 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/WipInfoBlobController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipInfoBlobController.cs @@ -97,7 +97,14 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES ResultModel result = new ResultModel(); Helper helper = new Helper(_context); wipInfoBlob.WipBlobID= helper.GetIDKey("WIP_BLOB_ID").Result; - + HttpContext.Request.Cookies.TryGetValue("UserID", out string userID); + if (userID != null) + { + if (int.Parse(userID.ToString()) >= 0) + { + wipInfoBlob.CreateUserID = int.Parse(userID.ToString()); + } + } try { _context.WipInfoBlobs.Add(wipInfoBlob); diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipLabelController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipLabelController.cs index aff081f8..e3074cbf 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/WipLabelController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipLabelController.cs @@ -143,27 +143,22 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES public async Task> PutWipLabel(WipLabel wipLabel) { ResultModel result = new ResultModel(); - - var getwipLabel = GetWipLabel(wipLabel.WipNO).Result.Value; - - if (getwipLabel != null) - { - _context.Entry(getwipLabel).State = EntityState.Modified; - getwipLabel.ApproveLogo = wipLabel.ApproveLogo; - getwipLabel.CompanyLogo = wipLabel.CompanyLogo; - getwipLabel.PrintMode = wipLabel.PrintMode; - getwipLabel.PrintPage = wipLabel.PrintPage; - getwipLabel.WipAttr = wipLabel.WipAttr; - getwipLabel.UpdateDate = DateTime.Now; - getwipLabel.UpdateUserID = 0; - } - else - { - _context.WipLabels.Add(wipLabel); - } - + var wipNo = wipLabel.WipNO; try { + if (_context.WipLabels.Any(e => e.WipNO == wipNo)) + { + _context.Entry(wipLabel).State = EntityState.Modified; + _context.Entry(wipLabel).Property("CreateDate").IsModified = false; + _context.Entry(wipLabel).Property("CreateUserID").IsModified = false; + wipLabel.UpdateDate = DateTime.Now; + wipLabel.UpdateUserID = 0; + } + else + { + _context.WipLabels.Add(wipLabel); + } + await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; diff --git a/AMESCoreStudio.WebApi/Models/AMES/WipBarcode.cs b/AMESCoreStudio.WebApi/Models/AMES/WipBarcode.cs index 54944802..fd24aa05 100644 --- a/AMESCoreStudio.WebApi/Models/AMES/WipBarcode.cs +++ b/AMESCoreStudio.WebApi/Models/AMES/WipBarcode.cs @@ -48,7 +48,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES [Column("WIP_ID")] [DataMember] [Display(Name = "工單ID")] - public decimal? WipID { get; set; } = -1; + public int? WipID { get; set; } = -1; /// /// 生產單位 diff --git a/AMESCoreStudio.WebApi/Models/AMES/WipInfo.cs b/AMESCoreStudio.WebApi/Models/AMES/WipInfo.cs index 2017a2bc..21340656 100644 --- a/AMESCoreStudio.WebApi/Models/AMES/WipInfo.cs +++ b/AMESCoreStudio.WebApi/Models/AMES/WipInfo.cs @@ -331,6 +331,14 @@ namespace AMESCoreStudio.WebApi.Models.AMES [Display(Name = "客戶料號")] public string CustomerItemNO { get; set; } + /// + /// 作業流程備註 + /// + [Column("FLOW_REMARK")] + [DataMember] + [Display(Name = "作業流程備註")] + public string FlowRemark { get; set; } + /// /// 生產單位 ///