From 9e0e1b79d857cd3f71c47d4d8b781bccfcf31d7a Mon Sep 17 00:00:00 2001 From: Sai Date: Sun, 21 Jan 2024 22:29:37 +0800 Subject: [PATCH] =?UTF-8?q?1.=20FQC=E6=AA=A2=E9=A9=97=E9=A0=85=E7=9B=AE?= =?UTF-8?q?=E5=8A=A0=E5=85=A5=E6=99=82=E9=96=93=E9=BB=9E=E5=88=87=E6=8F=9B?= =?UTF-8?q?=E7=89=88=E6=9C=AC=202024/02/01=202.=20FQC=E9=96=8B=E6=8A=BD?= =?UTF-8?q?=E9=A9=97=E5=96=AE=E6=99=82,=E6=96=B0=E5=A2=9E=E5=8D=A1?= =?UTF-8?q?=E9=97=9C=E5=88=A4=E6=96=B7=E7=84=A1=E7=AE=B1=E8=99=9F=E6=88=96?= =?UTF-8?q?=E7=AE=B1=E8=99=9F=E5=85=A7=E6=9C=89=E6=B5=81=E7=A8=8B=E5=B0=9A?= =?UTF-8?q?=E6=9C=AA=E8=B7=91=E5=AE=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/FQCController.cs | 133 +++++++++++++----- AMESCoreStudio.Web/HttpApis/AMES/IFQC.cs | 9 +- AMESCoreStudio.Web/Views/FQC/FQC007.cshtml | 2 +- AMESCoreStudio.Web/Views/FQC/FQC007A.cshtml | 2 +- AMESCoreStudio.Web/Views/FQC/FQC008.cshtml | 17 ++- .../AMES/FqcInhouseMasterController.cs | 21 ++- .../Controllers/AMES/QcItemController.cs | 14 +- .../Controllers/AMES/WipFqcItemController.cs | 55 ++++++++ AMESCoreStudio.WebApi/DTO/AMES/FqcDto.cs | 10 +- 9 files changed, 209 insertions(+), 54 deletions(-) diff --git a/AMESCoreStudio.Web/Controllers/FQCController.cs b/AMESCoreStudio.Web/Controllers/FQCController.cs index 3c7b0f55..ef0c64a6 100644 --- a/AMESCoreStudio.Web/Controllers/FQCController.cs +++ b/AMESCoreStudio.Web/Controllers/FQCController.cs @@ -838,18 +838,24 @@ namespace AMESCoreStudio.Web.Controllers var result_WipFQC = await _fqcApi.GetWipFqcItemByWipNo(model.WipNo); if (result_WipFQC.Count == 0) { - ////工單無設定檢驗工項時 在抓料號綁定檢驗工項 - //var result_MaterialFQC = await _fqcApi.GetMaterialFqcItemsByitemNo(model.ItemNo); - //if (result_MaterialFQC.Count != 0) - //{ - // model.qcItemDtos = result_QcItem.Data.Where(w => result_MaterialFQC.Select(s => s.QcItemID).Contains(w.ItemID)).ToList(); - //} - - // 改抓FQC設定群組內綁定的料號取 FQC設定群組項目 - var result_FqcItem = await _fqcApi.GetFqcItemByItemNo(model.ItemNo); - if (result_FqcItem.Count != 0) + // 2024/02/01 切換判斷 + if (model.CreateDate < new DateTime(2024, 2, 1)) { - model.qcItemDtos = result_QcItem.Data.Where(w => result_FqcItem.Select(s => s.QcItemId).Contains(w.ItemID)).ToList(); + //工單無設定檢驗工項時 在抓料號綁定檢驗工項 + var result_MaterialFQC = await _fqcApi.GetMaterialFqcItemsByitemNo(model.ItemNo); + if (result_MaterialFQC.Count != 0) + { + model.qcItemDtos = result_QcItem.Data.Where(w => result_MaterialFQC.Select(s => s.QcItemID).Contains(w.ItemID)).ToList(); + } + } + else + { + // 改抓FQC設定群組內綁定的料號取 FQC設定群組項目 + var result_FqcItem = await _fqcApi.GetFqcItemByItemNo(model.ItemNo); + if (result_FqcItem.Count != 0) + { + model.qcItemDtos = result_QcItem.Data.Where(w => result_FqcItem.Select(s => s.QcItemId).Contains(w.ItemID)).ToList(); + } } } else @@ -962,11 +968,24 @@ namespace AMESCoreStudio.Web.Controllers var result_WipFQC = await _fqcApi.GetWipFqcItemByWipNo(model.WipNo); if (result_WipFQC.Count == 0) { - //工單無設定檢驗工項時 在抓料號綁定檢驗工項 - var result_MaterialFQC = await _fqcApi.GetMaterialFqcItemsByitemNo(model.ItemNo); - if (result_MaterialFQC.Count != 0) + // 2024/02/01 切換判斷 + if (model.CreateDate < new DateTime(2024, 2, 1)) { - model.qcItemDtos = result_QcItem.Data.Where(w => result_MaterialFQC.Select(s => s.QcItemID).Contains(w.ItemID)).ToList(); + //工單無設定檢驗工項時 在抓料號綁定檢驗工項 + var result_MaterialFQC = await _fqcApi.GetMaterialFqcItemsByitemNo(model.ItemNo); + if (result_MaterialFQC.Count != 0) + { + model.qcItemDtos = result_QcItem.Data.Where(w => result_MaterialFQC.Select(s => s.QcItemID).Contains(w.ItemID)).ToList(); + } + } + else + { + // 改抓FQC設定群組內綁定的料號取 FQC設定群組項目 + var result_FqcItem = await _fqcApi.GetFqcItemByItemNo(model.ItemNo); + if (result_FqcItem.Count != 0) + { + model.qcItemDtos = result_QcItem.Data.Where(w => result_FqcItem.Select(s => s.QcItemId).Contains(w.ItemID)).ToList(); + } } } else @@ -987,12 +1006,13 @@ namespace AMESCoreStudio.Web.Controllers /// 確認是否可以開立FQC檢驗單 /// /// 入庫單號碼 - /// 序號 + /// 工單號碼 + /// 序號 /// [HttpPost] - public async Task CheckFqcIssue(string inhouseNo, int seqID = 0) + public async Task CheckFqcIssue(string inhouseNo, string wipNo, int seqID = 0) { - var result = await _fqcApi.CheckFqcIssue(inhouseNo, seqID); + var result = await _fqcApi.CheckFqcIssue(inhouseNo, wipNo, seqID); return Json(new Result() { success = result.Success, msg = result.Msg, data = null }); } @@ -1317,11 +1337,24 @@ namespace AMESCoreStudio.Web.Controllers var qcItemDtos = new List(); if (result_WipFQC.Count == 0) { - //工單無設定檢驗工項時 在抓料號綁定檢驗工項 - var result_MaterialFQC = await _fqcApi.GetMaterialFqcItemsByitemNo(fqcItem.ItemNo); - if (result_MaterialFQC.Count != 0) + // 2024/02/01 切換判斷 + if (model.CreateDate < new DateTime(2024, 2, 1)) + { + //工單無設定檢驗工項時 在抓料號綁定檢驗工項 + var result_MaterialFQC = await _fqcApi.GetMaterialFqcItemsByitemNo(fqcItem.ItemNo); + if (result_MaterialFQC.Count != 0) + { + qcItemDtos = result_QcItem.Data.Where(w => result_MaterialFQC.Select(s => s.QcItemID).Contains(w.ItemID)).ToList(); + } + } + else { - qcItemDtos = result_QcItem.Data.Where(w => result_MaterialFQC.Select(s => s.QcItemID).Contains(w.ItemID)).ToList(); + // 改抓FQC設定群組內綁定的料號取 FQC設定群組項目 + var result_FqcItem = await _fqcApi.GetFqcItemByItemNo(fqcItem.ItemNo); + if (result_FqcItem.Count != 0) + { + qcItemDtos = result_QcItem.Data.Where(w => result_FqcItem.Select(s => s.QcItemId).Contains(w.ItemID)).ToList(); + } } } else @@ -1351,8 +1384,6 @@ namespace AMESCoreStudio.Web.Controllers if (model.QaResult == "P" && string.IsNullOrWhiteSpace(model.SpecialPo)) { return Json(new { data = "請輸入特採單號", success = false }); - //ModelState.AddModelError("error", "請輸入特採單號"); - //return View("FQC007B", model); } } @@ -1365,16 +1396,12 @@ namespace AMESCoreStudio.Web.Controllers if (fqcItem.PassQty + fqcItem.FailQty != fqcItem.InhouseQty && model.QaResult == "P") { return Json(new { data = "抽樣數量不足,不可判定允收", success = false }); - //ModelState.AddModelError("error", "抽樣數量不足,不可判定允收"); - //return View("FQC007B", model); } } //當抽驗數量 小於 抽樣數量就離開 else if (fqcItem.QcQty > fqcItem.PassQty + fqcItem.FailQty && model.QaResult == "P") { return Json(new { data = "抽樣數量不足,不可判定允收", success = false }); - //ModelState.AddModelError("error", "抽樣數量不足,不可判定允收"); - //return View("FQC007B", model); } } } @@ -1400,6 +1427,9 @@ namespace AMESCoreStudio.Web.Controllers result = await _fqcApi.PutFqcResultMaster(JsonConvert.SerializeObject(fqcResultMaster)); if (result.Success) { + // 抽驗時,判斷檢驗項目是否有建立 + await _fqcApi.PostWipFqcItemByWipNo(fqcItem.WipNo); + // 允收且不是無序號供單需要FQC過站 if (model.QaResult == "P" && fqcItem.InspectionStatus != "D") result = await _fqcApi.PassingByFQC(model.InhouseNo, model.SeqID, GetLogInUserID()); @@ -1637,9 +1667,27 @@ namespace AMESCoreStudio.Web.Controllers } [HttpGet] - public async Task FQC007AItemQuery(string wipNo, string itemNo) + public async Task FQC007AItemQuery(string wipNo, string itemNo ,DateTime createDate) { - var result = await _fqcApi.GetQcItemQuery(0, 0, 0, itemNo, wipNo); + // 2024/02/01 切換判斷 + var result = new ResultModel(); + if (createDate < new DateTime(2024, 2, 1)) + { + result = await _fqcApi.GetQcItemQuery(0, 0, 0, itemNo, wipNo); + } + else + { + var item = await _pcsApi.GetMaterialItemByItemNO(itemNo); + if (item != null) + { + var fqcGroupId = await _fqcApi.GetFqcItemGroupMaterialByItemId(item.ItemID); + if (fqcGroupId.Any()) + { + result = await _fqcApi.GetQcItemQuery(0, 0, 0, wipNo: wipNo, + fqcItemGroupId: fqcGroupId.FirstOrDefault().GroupId); + } + } + } return Json(new Table() { code = 0, data = result.Data, count = result.DataTotal }); } @@ -1918,7 +1966,7 @@ namespace AMESCoreStudio.Web.Controllers #endregion #region FQC010 報表 - public async Task FQC010_PDF(string inhouseNo, int seqID) + public IActionResult FQC010_PDF(string inhouseNo, int seqID) { string mimeType = ""; int extension = 1; @@ -1928,7 +1976,7 @@ namespace AMESCoreStudio.Web.Controllers return File(result.MainStream, "application/pdf"); } - public async Task FQC010_Excel(string inhouseNo, int seqID) + public IActionResult FQC010_Excel(string inhouseNo, int seqID) { string mimeType = ""; int extension = 1; @@ -2010,10 +2058,11 @@ namespace AMESCoreStudio.Web.Controllers var result_WipFQC = await _fqcApi.GetWipFqcItemByWipNo(FqcQuery.WipNo); if (result_WipFQC.Count == 0) { - //工單無設定檢驗工項時 在抓料號綁定檢驗工項 - var result_MaterialFQC = await _fqcApi.GetMaterialFqcItemsByitemNo(FqcQuery.ItemNo); - if (result_MaterialFQC.Count != 0) + // 2024/02/01 切換判斷 + if (FqcQuery.CreateDate < new DateTime(2024, 2, 1)) { + //工單無設定檢驗工項時 在抓料號綁定檢驗工項 + var result_MaterialFQC = await _fqcApi.GetMaterialFqcItemsByitemNo(FqcQuery.ItemNo); // 檢驗工項 foreach (var item in result_QcItem.Data.Where(w => result_MaterialFQC.Select(s => s.QcItemID).Contains(w.ItemID)).ToList()) { @@ -2025,6 +2074,20 @@ namespace AMESCoreStudio.Web.Controllers }); } } + else + { + // 改抓FQC設定群組內綁定的料號取 FQC設定群組項目 + var result_FqcItem = await _fqcApi.GetFqcItemByItemNo(FqcQuery.ItemNo); + foreach (var item in result_QcItem.Data.Where(w => result_FqcItem.Select(s => s.QcItemId).Contains(w.ItemID)).ToList()) + { + FQC010Master.Detail1.Add(new FQC010Detail1 + { + ItemID = item.ItemID.ToString(), + ItemName = item.ItemNameEN, + ItemType = item.ItemTypeName + }); + } + } } else { diff --git a/AMESCoreStudio.Web/HttpApis/AMES/IFQC.cs b/AMESCoreStudio.Web/HttpApis/AMES/IFQC.cs index 8720867e..6192f13b 100644 --- a/AMESCoreStudio.Web/HttpApis/AMES/IFQC.cs +++ b/AMESCoreStudio.Web/HttpApis/AMES/IFQC.cs @@ -412,7 +412,6 @@ namespace AMESCoreStudio.Web [WebApiClient.Attributes.HttpGet("api/FqcResultDetail/{id}")] ITask> GetFqcResultDetail(int id); - /// /// 用id取檢驗單結果 /// @@ -545,11 +544,17 @@ namespace AMESCoreStudio.Web /// 確認FQC抽驗時,箱號是否已經跑到FQC流程 /// /// 入庫單號 + /// 工單號碼 /// 順序 /// [WebApiClient.Attributes.HttpGet("api/FqcInhouseMaster/CheckFqcIssue")] - ITask> CheckFqcIssue(string inhouseNo, int seqID); + ITask> CheckFqcIssue(string inhouseNo, string wipNo , int seqID); + /// + /// WipFqcItemByWipNo 新增工單綁定檢驗工項,抽驗時判斷沒有資料就新增預設 + /// + [WebApiClient.Attributes.HttpPost("api/WipFqcItem/ByWipNo/{wipNo}")] + ITask> PostWipFqcItemByWipNo(string wipNo); #endregion #region FQC008 FQC查詢 diff --git a/AMESCoreStudio.Web/Views/FQC/FQC007.cshtml b/AMESCoreStudio.Web/Views/FQC/FQC007.cshtml index 0c8c242d..28030057 100644 --- a/AMESCoreStudio.Web/Views/FQC/FQC007.cshtml +++ b/AMESCoreStudio.Web/Views/FQC/FQC007.cshtml @@ -691,7 +691,7 @@ area: ['700px', '500px'], fixed: false, //不固定 maxmin: true, - content: '/FQC/FQC007A?wipNo=@Model.WipNo&itemNo=@Model.ItemNo', + content: '/FQC/FQC007A?wipNo=@Model.WipNo&itemNo=@Model.ItemNo&createDate=@Model.CreateDate', end: function () { window.location.reload(); } diff --git a/AMESCoreStudio.Web/Views/FQC/FQC007A.cshtml b/AMESCoreStudio.Web/Views/FQC/FQC007A.cshtml index 84ba9017..35ea46f9 100644 --- a/AMESCoreStudio.Web/Views/FQC/FQC007A.cshtml +++ b/AMESCoreStudio.Web/Views/FQC/FQC007A.cshtml @@ -48,7 +48,7 @@ defaultToolbar: ['filter', 'print', 'exports'], cols: tableCols, response: { msgName: 'msg' }, - where: { itemNo: '@Model.ItemNo', wipNo: '@Model.WipNo' }, + where: { itemNo: '@Model.ItemNo', wipNo: '@Model.WipNo', createDate:'@Model.CreateDate' }, done: function (res, curr, count) { //迴圈所有資料,找出對應關係,設定checkbox選中狀態 for (var i = 0; i < res.data.length; i++) { diff --git a/AMESCoreStudio.Web/Views/FQC/FQC008.cshtml b/AMESCoreStudio.Web/Views/FQC/FQC008.cshtml index 5247937c..e7c55bbf 100644 --- a/AMESCoreStudio.Web/Views/FQC/FQC008.cshtml +++ b/AMESCoreStudio.Web/Views/FQC/FQC008.cshtml @@ -253,8 +253,8 @@ aa = '修改' } else { - aa = '檢視\ - PDF Excel' + aa = '檢視\ + PDF Excel' } return aa; } @@ -276,7 +276,7 @@ $.ajax({ url: "@Url.Action("CheckFqcIssue", "FQC")", type: "POST", - data: { "inhouseNo": obj.data.inhouseNo, "seqID": obj.data.seqID }, + data: { "inhouseNo": obj.data.inhouseNo, "wipNo": obj.data.wipNo , "seqID": obj.data.seqID }, success: function (result) { if (result.success) { if (obj.data.inhouseNo) { @@ -300,6 +300,17 @@ } + function view(obj) { + if (obj.data.inhouseNo) { + hg.open('FQC抽驗作業', '/FQC/FQC007?inhouseNo=' + obj.data.inhouseNo + '&seqID=' + obj.data.seqID, '', '', true); + + var tempwindow = window.open('_blank'); // 先打開頁面 + tempwindow.location = 'https://sms.avalue.com.tw/SMS/SUP/SFIS_SMS001.aspx?MODEL_NO=' + obj.data.modelNo; + var tempwindow1 = window.open('_blank'); // 先打開頁面 + tempwindow1.location = 'http://qazone.avalue.com.tw/qazone/sfislinktocfqr.aspx?QF=2&QA_PRDID=' + obj.data.itemNo; + } + } + function PDF(obj) { if (obj.data.inhouseNo) { hg.open('PDF', '/FQC/FQC010_PDF?inhouseNo=' + obj.data.inhouseNo + '&seqID=' + obj.data.seqID, '', '', true); diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseMasterController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseMasterController.cs index 404df3c0..d4413d5d 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseMasterController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseMasterController.cs @@ -306,7 +306,8 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES Note = q2.Note, InspectionStatus = q2.InspectionStatus, Description = q4.Description, - LocationNo = q1.LocationNo + LocationNo = q1.LocationNo, + CreateDate = q1.CreateDate }; var query = await q.Distinct().ToListAsync(); @@ -374,14 +375,24 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES /// 確認FQC開立抽驗時,是否資料與流程都完成 /// /// 入庫單號碼 + /// 工單號碼 /// 序號 /// [HttpGet("CheckFqcIssue")] - public async Task> CheckFqcIssue(string inhouseNo, int seqid = 1) + public async Task> CheckFqcIssue(string inhouseNo, string wipNo, int seqid = 1) { - ResultModel result = new ResultModel { Success = true }; - var CheckFqcNextProcess = await GetCheckFqcNextProcess(inhouseNo , seqid); - + ResultModel result = new ResultModel { Success = true }; + var wip = await _context.WipInfos.Where(w => w.WipNO.Trim().ToUpper() == wipNo.Trim().ToUpper()).FirstOrDefaultAsync(); + + // 無序號工單不需要判斷 + if (wip != null) + { + if (wip.WipType == "N") + return result; + } + + var CheckFqcNextProcess = await GetCheckFqcNextProcess(inhouseNo, seqid); + if (CheckFqcNextProcess.Any()) { result.Success = false; diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/QcItemController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/QcItemController.cs index 5572d9c1..78b52aba 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/QcItemController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/QcItemController.cs @@ -102,6 +102,12 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES if (wipFqcItem.Where(w => w.QcItemID == item.ItemID).Any()) item.check = true; } + result.Data.Select(s => s.ItemTypeName = + System.Enum.IsDefined(typeof(EnumFQC.EnumQCItem_Type), s.ItemType ?? "") ? + EnumFQC.GetDisplayName((EnumFQC.EnumQCItem_Type)System.Enum.Parse(typeof(EnumFQC.EnumQCItem_Type), s.ItemType)) : "") + .ToList(); + + return result; } } @@ -111,14 +117,10 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES var itemID = _context.MaterialItems.Where(w => w.ItemNo == itemNo).FirstOrDefault(); if (itemID != null) { - var q1 = from q2 in _context.FqcItems - join q3 in _context.FqcItemGroupMaterials on q2.GroupId equals q3.GroupId - where q3.ItemId == itemID.ItemID - select q2; - + var marterialFQCItems = _context.MaterialFqcItems.Where(w => w.ItemID == itemID.ItemID); foreach (var item in result.Data) { - if (q1.Where(w => w.QcItemId == item.ItemID).Any()) + if (marterialFQCItems.Where(w => w.QcItemID == item.ItemID).Any()) item.check = true; } } diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipFqcItemController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipFqcItemController.cs index 3fe31a14..154d675e 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/WipFqcItemController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipFqcItemController.cs @@ -8,6 +8,8 @@ using Microsoft.EntityFrameworkCore; using AMESCoreStudio.WebApi; using AMESCoreStudio.WebApi.Models.AMES; using AMESCoreStudio.CommonTools.Result; +using Dapper; +using AMESCoreStudio.WebApi.Extensions; namespace AMESCoreStudio.WebApi.Controllers.AMES { @@ -113,6 +115,59 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES return result; } + /// + /// 判斷工單號碼是否有資料,沒有在取FQC群組建立資料 + /// + /// 工單號碼 + /// + [HttpPost("ByWipNo/{wipNo}")] + public async Task> PostWipFqcItemByWipNo(string wipNo) + { + var wipFqcItem = await _context.WipFqcItems.Where(w => w.WipNo == wipNo).AnyAsync(); + ResultModel result = new ResultModel { Success = true }; + // 沒有資料 再由FQC_ITEM新增 + if (!wipFqcItem) + { + var querySql = @" SELECT DISTINCT A.WIP_NO AS WipNo , + A.ITEM_NO AS ItemNo , + F.QC_GROUP_ID AS QcGroupID , + F.QC_ITEM_ID AS QcItemID + FROM JHAMES.WIP_ATT A + INNER JOIN JHAMES.MATERIAL_ITEM M ON A.ITEM_NO = M.ITEM_NO-- 料號對應檔 + INNER JOIN JHAMES.FQC_ITEM_GROUP_MATERIAL FM ON FM.ITEM_ID = M.ITEM_ID--料號ID對應FQC群組 + INNER JOIN JHAMES.FQC_ITEM F ON F.GROUP_ID = FM.GROUP_ID-- FQC群組對應綁定項目 + WHERE A.WIP_NO = :WipNo "; + + DynamicParameters p = new DynamicParameters(); + p.Add("WipNo", wipNo); + var query = await _context.Database.DapperQueryAsync(querySql, p); + + if (query.Any()) + { + Helper helper = new Helper(_context); + foreach (var item in query) + { + item.WipFqcitemID = helper.GetIDKey("WIP_FQCITEM_ID").Result; + _context.WipFqcItems.Add(item); + } + + try + { + await _context.SaveChangesAsync(); + result.Success = true; + result.Msg = "OK"; + } + catch (Exception ex) + { + result.Success = false; + result.Msg = ex.InnerException.Message; + } + return result; + } + } + return result; + } + // DELETE: api/WipFqcItem/5 [HttpDelete("{id}")] public async Task> DeleteWipFqcItem(int id) diff --git a/AMESCoreStudio.WebApi/DTO/AMES/FqcDto.cs b/AMESCoreStudio.WebApi/DTO/AMES/FqcDto.cs index 85777e3c..1b885659 100644 --- a/AMESCoreStudio.WebApi/DTO/AMES/FqcDto.cs +++ b/AMESCoreStudio.WebApi/DTO/AMES/FqcDto.cs @@ -375,7 +375,15 @@ namespace AMESCoreStudio.WebApi.DTO.AMES [DataMember] [StringLength(5)] public string LocationNo { get; set; } - + + /// + /// 入庫單開單時間 + /// + [NotMapped] + [DataMember] + [Display(Name = "入庫單開單時間")] + public DateTime CreateDate { get; set; } + public List fqcDetails { get; set; }