diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseMasterController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseMasterController.cs index 174ae7b6..70f7349e 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseMasterController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseMasterController.cs @@ -110,10 +110,10 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES /// [HttpGet("FqcInhouseMasterQuery")] public async Task> GetFqcInhouseMasterQuery(string barcodeNo, string wipNo, string boxNo - , string inhouseNo, string date_str, string date_end, string status, string factoryID,string factoryNo, int page = 0, int limit = 10) + , string inhouseNo, string date_str, string date_end, string status, string factoryID, string factoryNo, int page = 0, int limit = 10) { var q = from q1 in _context.FqcInhouseMasters - //join q2 in _context.FqcInhouseDetails on new { q1.InhouseNo, q1.SeqID } equals new { q2.InhouseNo, q2.SeqID } + join q2 in _context.FqcInhouseDetails on new { q1.InhouseNo, q1.SeqID } equals new { q2.InhouseNo, q2.SeqID } join q3 in _context.FqcResultMasters on q1.InhouseNo equals q3.InhouseNo into j1 from q3 in j1.DefaultIfEmpty() join q4 in _context.WipInfos on q1.WipNo equals q4.WipNO into s @@ -123,6 +123,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES select new FqcInhouseMasterDto { Werks = q4.Werks, + SerialNo = q2.SerialNo, FactoryNo = q5.FactoryNo, InhouseNo = q1.InhouseNo, SeqID = q1.SeqID, @@ -189,15 +190,33 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES ResultModel result = new ResultModel(); + var resultQuery = await q.Select(s => new FqcInhouseMasterDto + { + Werks = s.Werks, + FactoryNo = s.FactoryNo, + InhouseNo = s.InhouseNo, + SeqID = s.SeqID, + WipNo = s.WipNo, + ItemNo = s.ItemNo, + InhouseQty = s.InhouseQty, + ModelNo = s.ModelNo, + StatusName = s.StatusName, + ProTypeName = s.ProTypeName, + CreateDate = s.CreateDate, + EndTime = s.EndTime, + SpecialNo = s.SpecialNo + }).Distinct().ToListAsync(); + // 紀錄筆數 - result.DataTotal = q.Count(); + result.DataTotal = resultQuery.Count(); // Table 頁數 if (page > 0) { - q = q.Skip((page - 1) * limit).Take(limit); + resultQuery = resultQuery.Skip((page - 1) * limit).Take(limit).ToList(); } - result.Data = await q.Distinct().ToListAsync(); + + result.Data = resultQuery; // 判斷結束時間 result.Data = result.Data.Select(s => { s.EndTime = s.StatusName == "A" ? null : s.EndTime; return s; }) @@ -207,8 +226,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES result.Data = result.Data.Select(s => { s.StatusName = s.StatusName == "P" ? string.IsNullOrWhiteSpace(s.SpecialNo) ? "允收" : "特採允收" : s.StatusName == "R" ? "批退" : "未驗收完成"; return s; }) .ToList(); - - return result; } @@ -317,11 +334,14 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES // 特殊判斷 // 檢查儀器編號 空白時預設帶N/A - query = query.Select(s => { s.OutfitNo = String.IsNullOrEmpty(s.OutfitNo) ? "N/A" : s.OutfitNo ; - return s; }).ToList(); + query = query.Select(s => + { + s.OutfitNo = String.IsNullOrEmpty(s.OutfitNo) ? "N/A" : s.OutfitNo; + return s; + }).ToList(); // Proved 空白時 抓開立入庫單人員 - foreach(var item in query.Where(w => string.IsNullOrWhiteSpace(w.Proved))) + foreach (var item in query.Where(w => string.IsNullOrWhiteSpace(w.Proved))) { var ByQuery = await _context.FqcInhouseMasters.Where(w => w.InhouseNo == item.InhouseNo && w.SeqID == item.SeqID).FirstOrDefaultAsync(); var UserInfo = await _context.UserInfoes.Where(w => w.UserID == ByQuery.CreateUserID).FirstOrDefaultAsync();