Browse Source

1. FQC相關設定

PTD
Ray 3 years ago
parent
commit
6d4d8b48f3
  1. 172
      AMESCoreStudio.Web/Controllers/FQCController.cs
  2. 11
      AMESCoreStudio.Web/HttpApis/AMES/IFQC.cs
  3. 54
      AMESCoreStudio.Web/Views/FQC/FQC007.cshtml
  4. 22
      AMESCoreStudio.Web/Views/FQC/FQC007B.cshtml
  5. 75
      AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseDetailController.cs
  6. 13
      AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseMasterController.cs
  7. 2
      AMESCoreStudio.WebApi/Controllers/AMES/NGReasonsController.cs
  8. 33
      AMESCoreStudio.WebApi/DTO/AMES/FQC010VIiew.cs
  9. 41
      AMESCoreStudio.WebApi/DTO/AMES/FqcDto.cs
  10. 16
      AMESCoreStudio.WebApi/DTO/AMES/FqcResultDto.cs
  11. 19
      AMESCoreStudio.WebApi/Enums/EnumFQC.cs
  12. 25
      AMESCoreStudio.WebApi/Models/AMES/FqcResultMaster.cs

172
AMESCoreStudio.Web/Controllers/FQCController.cs

@ -159,9 +159,9 @@ namespace AMESCoreStudio.Web.Controllers
var item = new List<SelectListItem>(); var item = new List<SelectListItem>();
for (int i = 0; i < result.Count; i++) foreach (var items in result.Data)
{ {
item.Add(new SelectListItem(result[i].NGReasonDesc, result[i].NGReasonNo.ToString())); item.Add(new SelectListItem(items.NGReasonDesc, items.NGReasonNo.ToString()));
} }
//将数据Json化并传到前台视图 //将数据Json化并传到前台视图
return Json(new { data = item }); return Json(new { data = item });
@ -209,6 +209,27 @@ namespace AMESCoreStudio.Web.Controllers
ViewBag.GetQCItem_TypeSelect = q; ViewBag.GetQCItem_TypeSelect = q;
} }
/// <summary>
/// 抽樣計畫允收標準
/// </summary>
/// <param name="SelectedValue"></param>
private void GetInspection_TypeSelect(string SelectedValue = null)
{
List<string> values = new List<string>();
if (SelectedValue != null)
{
values = SelectedValue.Split(',').ToList();
}
var q = Enum.GetValues(typeof(EnumFQC.EnumInspection_Type)).Cast<EnumFQC.EnumInspection_Type>()
.Select(s => new SelectListItem
{
Text = EnumPCS.GetDisplayName(s).ToString(),
Value = s.ToString()
}).ToList();
ViewBag.GetInspection_TypeSelect = q;
}
#endregion #endregion
#region FQC001 檢驗類別維護 #region FQC001 檢驗類別維護
@ -703,6 +724,8 @@ namespace AMESCoreStudio.Web.Controllers
#region FQC007 FQC抽驗作業 #region FQC007 FQC抽驗作業
public async Task<IActionResult> FQC007(string inhouseNo = null, int seqID = 0) public async Task<IActionResult> FQC007(string inhouseNo = null, int seqID = 0)
{ {
GetInspection_TypeSelect();
var model = new FqcDto(); var model = new FqcDto();
if (!string.IsNullOrWhiteSpace(inhouseNo) && seqID != 0) if (!string.IsNullOrWhiteSpace(inhouseNo) && seqID != 0)
{ {
@ -731,6 +754,10 @@ namespace AMESCoreStudio.Web.Controllers
{ {
model.qcItemDtos = result_QcItem.Data.Where(w => result_WipFQC.Select(s => s.QcItemID).Contains(w.ItemID)).ToList(); model.qcItemDtos = result_QcItem.Data.Where(w => result_WipFQC.Select(s => s.QcItemID).Contains(w.ItemID)).ToList();
} }
//
var fqcDetail = await _fqcApi.FQC007InhouseDetails(inhouseNo, seqID);
model.fqcResultDetails = fqcDetail.Data.ToList();
} }
else else
{ {
@ -769,6 +796,7 @@ namespace AMESCoreStudio.Web.Controllers
result_FQCResultMaster.Supervisor = model.Supervisor; result_FQCResultMaster.Supervisor = model.Supervisor;
result_FQCResultMaster.Proved = model.Proved; result_FQCResultMaster.Proved = model.Proved;
result_FQCResultMaster.OutfitNo = model.OutfitNo; result_FQCResultMaster.OutfitNo = model.OutfitNo;
result_FQCResultMaster.InspectionType = model.InspectionType;
await _fqcApi.PutFqcResultMaster(JsonConvert.SerializeObject(result_FQCResultMaster)); await _fqcApi.PutFqcResultMaster(JsonConvert.SerializeObject(result_FQCResultMaster));
ModelState.AddModelError("error", "儲存成功!"); ModelState.AddModelError("error", "儲存成功!");
} }
@ -889,7 +917,7 @@ namespace AMESCoreStudio.Web.Controllers
if (string.IsNullOrWhiteSpace(FqcResultDetail.ExtraBarcodeNo)) if (string.IsNullOrWhiteSpace(FqcResultDetail.ExtraBarcodeNo))
{ {
ModelState.AddModelError("error", "找不到該筆資料的客戶序號"); ModelState.AddModelError("error", "找不到該筆資料的出貨序號");
return View("FQC007C", model); return View("FQC007C", model);
} }
#endregion #endregion
@ -1025,6 +1053,8 @@ namespace AMESCoreStudio.Web.Controllers
fqcResultMaster.UpdateDate = DateTime.Now; fqcResultMaster.UpdateDate = DateTime.Now;
fqcResultMaster.SpecialPo = model.SpecialPo; fqcResultMaster.SpecialPo = model.SpecialPo;
fqcResultMaster.UpdateUserID = GetLogInUserID(); fqcResultMaster.UpdateUserID = GetLogInUserID();
fqcResultMaster.MajorQty = model.MajorQty;
fqcResultMaster.MinorQty = model.MinorQty;
fqcInhouseMaster.Status = model.QaResult; fqcInhouseMaster.Status = model.QaResult;
fqcInhouseMaster.UpdateDate = DateTime.Now; fqcInhouseMaster.UpdateDate = DateTime.Now;
@ -1314,7 +1344,7 @@ namespace AMESCoreStudio.Web.Controllers
#endregion #endregion
#region FQC010 報表 #region FQC010 報表
public ActionResult FQC010() public async Task<IActionResult> FQC010()
{ {
string mimeType = ""; string mimeType = "";
int extension = 1; int extension = 1;
@ -1323,11 +1353,18 @@ namespace AMESCoreStudio.Web.Controllers
Dictionary<string, string> param = new Dictionary<string, string>(); Dictionary<string, string> param = new Dictionary<string, string>();
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
System.Text.Encoding.GetEncoding(1252); System.Text.Encoding.GetEncoding(1252);
var FQC010Master = new FQC010VIiew var FQC010Master = new FQC010VIiew();
IResultModel<FqcDto> resultFqcQuery;
resultFqcQuery = _fqcApi.GetFqcQuery("QWO0002A1001").InvokeAsync().Result;
if (resultFqcQuery.Data.Count() != 0)
{
var FqcQuery = resultFqcQuery.Data.FirstOrDefault();
FQC010Master = new FQC010VIiew()
{ {
DefectDescription = "N/A", DefectDescription = "N/A",
InspectionDate = "2022/06/30", InspectionDate = "2022/06/30",
AC = "0", AC = FqcQuery.AcQty.ToString(),
Approved = "王曉明", Approved = "王曉明",
AQL = "2.5", AQL = "2.5",
SpeciallyAdoption = "特採Specially Adoption", SpeciallyAdoption = "特採Specially Adoption",
@ -1338,84 +1375,83 @@ namespace AMESCoreStudio.Web.Controllers
FactoryRemark = "N/A", FactoryRemark = "N/A",
InspectionInstrumentNumber = "N/A", InspectionInstrumentNumber = "N/A",
InspectionItems = "OS:[Win10 IoT]CPU test:[1.10G] RAM test:[4096]", InspectionItems = "OS:[Win10 IoT]CPU test:[1.10G] RAM test:[4096]",
InspectionNumber = "Q944000114000001", InspectionNumber = FqcQuery.InhouseNo,
InspectionStatus = "廠驗", InspectionStatus = "廠驗",
InspectionType = "First Insp.", InspectionType = FqcQuery.InspectionTypeName,
Inspector = "蔡喬虎", Inspector = "蔡喬虎",
Judgment = "Defect Quantity", Judgment = "Defect Quantity",
Line = "安勤產線", Line = "安勤產線",
LotSize = "1", LotSize = "1",
Major = "0", Major = FqcQuery.MajorQty.ToString(),
MedicalModel = "N", MedicalModel = "N",
Minor = "1", Minor = FqcQuery.MinorQty.ToString(),
Model = "CAXA0-1000A1-S01R", Model = FqcQuery.ItemNo,
ModelName = "CAXA0 w/N3350/4G RAM/64G SSD/NFC", ModelName = FqcQuery.ModelNo,
NOTE = @"ACC-M2 NOTE = @"ACC-M2
E1589 E1589
ESW-075R ESW-075R
ACC-BAT", ACC-BAT",
OrderNumber = "9440001400", OrderNumber = FqcQuery.WipNo,
Product99 = "一般二級水準正常檢驗", Product99 = "一般二級水準正常檢驗",
ReMajor = "1", ReMajor = FqcQuery.ReQty.ToString(),
Sample = "5", Sample = FqcQuery.QcQty.ToString(),
SamplingInspectionPlan = "ANSI/ASQZ 1.4II", SamplingInspectionPlan = "ANSI/ASQZ 1.4II",
StorageLocation = "9000", StorageLocation = "9000",
Avalue = "AVALUE", Avalue = "AVALUE",
VIP = "N", VIP = FqcQuery.CustomerVIP,
WaiveRequisition = "XX", WaiveRequisition = "XX"
Detail1 = new List<FQC010Detail1>{
new FQC010Detail1
{
ItemID = "1",
ItemName = "AA",
ItemType = "Major"
},
new FQC010Detail1{
ItemID = "2",
ItemName = "BB",
ItemType = "Major"
},
new FQC010Detail1{
ItemID = "2",
ItemName = "BB",
ItemType = "Major"
},
new FQC010Detail1{
ItemID = "2",
ItemName = "BB",
ItemType = "Major"
},
new FQC010Detail1{
ItemID = "2",
ItemName = "BB",
ItemType = "Major"
},
new FQC010Detail1{
ItemID = "2",
ItemName = "BB",
ItemType = "Major"
},
new FQC010Detail1{
ItemID = "2",
ItemName = "BB",
ItemType = "Major"
},
new FQC010Detail1{
ItemID = "2",
ItemName = "BB",
ItemType = "Major"
}},
Detail2 = new List<FQC010Detail2>
{
new FQC010Detail2
{
ShippingSerialNumber= "AAAAAAAAAAAAAAAA",
IsSample ="Y",
ProductionSerialNumber = "DASKJDKLFJS",
InspectionResults = "1"
}}
}; };
// 抓全部檢驗工項
var result_QcItem = await _fqcApi.GetQcItemQuery(0, 0, 0);
// 取綁定工單檢驗工項資料
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)
{
// 檢驗工項
foreach (var item in result_QcItem.Data.Where(w => result_MaterialFQC.Select(s => s.QcItemID).Contains(w.ItemID)).ToList())
{
FQC010Master.Detail1.Add(new FQC010Detail1
{
ItemID = item.ItemID.ToString(),
ItemName = item.ItemNameCN,
ItemType = item.ItemTypeName
});
}
}
}
else
{
// 檢驗工項
foreach (var item in result_QcItem.Data.Where(w => result_WipFQC.Select(s => s.QcItemID).Contains(w.ItemID)).ToList())
{
FQC010Master.Detail1.Add(new FQC010Detail1
{
ItemID = item.ItemID.ToString(),
ItemName = item.ItemNameCN,
ItemType = item.ItemTypeName
});
}
}
// 條碼細項
var fqcDetail = await _fqcApi.FQC007InhouseDetails(FqcQuery.InhouseNo, Convert.ToInt32(FqcQuery.SeqID));
foreach (var item in fqcDetail.Data)
{
FQC010Master.Detail2.Add(new FQC010Detail2
{
ProductionSerialNumber = item.BarcodeNo,
ShippingSerialNumber = item.ExtraBarcodeNo,
IsSample = item.IsSample,
InspectionResults = item.StatusNo
});
}
}
var FQC010Masters = new List<FQC010VIiew>(); var FQC010Masters = new List<FQC010VIiew>();
FQC010Masters.Add(FQC010Master); FQC010Masters.Add(FQC010Master);

11
AMESCoreStudio.Web/HttpApis/AMES/IFQC.cs

@ -343,7 +343,7 @@ namespace AMESCoreStudio.Web
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/NGReasons/Class/{no}")] [WebApiClient.Attributes.HttpGet("api/NGReasons/Class/{no}")]
ITask<List<NGReason>> GetNGReasonsByClass(string no , int page = 0, int limit = 1000); ITask<ResultModel<NGReason>> GetNGReasonsByClass(string no , int page = 0, int limit = 1000);
/// <summary> /// <summary>
/// 用內部序號取BarCode資料 /// 用內部序號取BarCode資料
@ -457,6 +457,15 @@ namespace AMESCoreStudio.Web
/// <returns></returns> /// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/FqcInhouseDetail/FqcInhouseDetailByFQC007V")] [WebApiClient.Attributes.HttpGet("api/FqcInhouseDetail/FqcInhouseDetailByFQC007V")]
ITask<ResultModel<FqcResultDto>> FQC007V(string inhouseNo, int seqID, string boxNo); ITask<ResultModel<FqcResultDto>> FQC007V(string inhouseNo, int seqID, string boxNo);
/// <summary>
/// FQC 細項資料(全部)
/// </summary>
/// <param name="inhouseNo">入庫單號</param>
/// <param name="seqID">順序</param>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/FqcInhouseDetail/FqcInhouseDetailByFQC007All")]
ITask<ResultModel<FqcResultDto>> FQC007InhouseDetails(string inhouseNo, int seqID);
#endregion #endregion
#region FQC008 FQC查詢 #region FQC008 FQC查詢

54
AMESCoreStudio.Web/Views/FQC/FQC007.cshtml

@ -85,6 +85,14 @@
</div> </div>
</div> </div>
<div class="layui-row"> <div class="layui-row">
<div class="layui-col-xs1">
<label class="layui-form-label-col" style="text-align:right;">Inspection Type:</label>
</div>
<div class="layui-col-xs2">
<div class="layui-input-inline">
<select asp-for="InspectionType" asp-items="@ViewBag.GetInspection_TypeSelect" class=""></select>
</div>
</div>
<div class="layui-col-xs1"> <div class="layui-col-xs1">
<label class="layui-form-label-col" style="text-align:right;">客戶類別:</label> <label class="layui-form-label-col" style="text-align:right;">客戶類別:</label>
</div> </div>
@ -397,6 +405,52 @@
</table> </table>
</div> </div>
</div> </div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">細項資料(全部)</h2>
<div class="layui-colla-content layui-show">
<table id="MydataTable" class="layui-table">
<thead>
<tr>
<th>生產序號</th>
<th>
出貨序號
</th>
<th>
箱號
</th>
<th>
IsSample
</th>
<th>
檢驗結果
</th>
</tr>
</thead>
<tbody>
@foreach (var index in Model.fqcResultDetails)
{
<tr>
<td>
@index.BarcodeNo
</td>
<td>
@index.ExtraBarcodeNo
</td>
<td>
@index.BoxNo
</td>
<td>
@index.IsSample
</td>
<td>
@index.StatusNo
</td>
</tr>
}
</tbody>
</table>
</div>
</div>
</div> </div>
<span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> <span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span>

22
AMESCoreStudio.Web/Views/FQC/FQC007B.cshtml

@ -62,6 +62,28 @@
</div> </div>
</div> </div>
</div> </div>
<div class="layui-row">
<div class="layui-col-xs2" style="text-align:right">
<div class="layui-form-item">
<label class="layui-form-label">Major:</label>
</div>
</div>
<div class="layui-col-xs2" style="text-align:left">
<div class="layui-form-item">
<input asp-for="MajorQty" class="layui-input">
</div>
</div>
<div class="layui-col-xs2" style="text-align:right">
<div class="layui-form-item">
<label class="layui-form-label">Minor:</label>
</div>
</div>
<div class="layui-col-xs2" style="text-align:left">
<div class="layui-form-item">
<input asp-for="MinorQty" class="layui-input">
</div>
</div>
</div>
<div class="layui-row"> <div class="layui-row">
<div class="layui-col-xs2" style="text-align:right"> <div class="layui-col-xs2" style="text-align:right">
<div class="layui-form-item"> <div class="layui-form-item">

75
AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseDetailController.cs

@ -120,6 +120,81 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
return result; return result;
} }
/// <summary>
/// FQC細項資料(全部)
/// </summary>
/// <returns></returns>
[HttpGet("FqcInhouseDetailByFQC007All")]
public async Task<ResultModel<FqcResultDto>> GetFqcInhouseDetailByFQC007All(string inhouseNo, int seqID)
{
ResultModel<FqcResultDto> result = new ResultModel<FqcResultDto>();
var fqcResultDto = new List<FqcResultDto>();
var FqcInhouseDetails = await _context.FqcInhouseDetails.Where(w => w.InhouseNo == inhouseNo
&& w.SeqID == seqID).ToListAsync();
// 取FQC_ID
if (FqcInhouseDetails.Count != 0)
{
foreach (var item in FqcInhouseDetails)
{
var BarcodeInfo = new List<BarcodeInfo>();
if (item.SerialType == "B")
BarcodeInfo = await _context.BarcodeInfoes.Where(w => w.BoxNo == item.SerialNo).ToListAsync();
else
BarcodeInfo = await _context.BarcodeInfoes.Where(w => w.BarcodeNo == item.SerialNo).ToListAsync();
// 先塞入資料
foreach (var item1 in BarcodeInfo)
{
fqcResultDto.Add(new FqcResultDto
{
BarcodeNo = item1.BarcodeNo,
ExtraBarcodeNo = item1.ExtraBarcodeNo,
BoxNo = item1.BoxNo,
StatusNo = ""
});
}
var FqcResultMaster = await _context.FqcResultMasters.Where(w => w.InhouseNo == item.InhouseNo
&& w.SeqID == item.SeqID)
.FirstOrDefaultAsync();
// 取抽驗結果
if (FqcResultMaster != null)
{
var FqcResultDetail = await _context.FqcResultDetails.Where(w => w.FqcID == FqcResultMaster.FqcID).ToListAsync();
foreach (var item1 in FqcResultDetail)
{
foreach (var item2 in fqcResultDto)
{
if (item1.BarcodeNo == item2.BarcodeNo)
{
item2.StatusNo = item1.StatusNo == "P" ? "PASS" : "NG";
item2.NgReasonNo = item1.NgReasonNo;
item2.NgMemo = item1.NgMemo;
item2.IsSample = "Y";
item2.CreateName = await new Helper(_context).GetUserName(item.CreateUserID);
continue;
}
}
}
}
}
}
result.Data = fqcResultDto.ToList();
if (result == null)
{
result.Msg = "查無資料";
result.Success = false;
return result;
}
result.Success = true;
result.Msg = "OK";
return result;
}
/// <summary> /// <summary>
/// 新增檢驗單明細資料檔 /// 新增檢驗單明細資料檔
/// </summary> /// </summary>

13
AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseMasterController.cs

@ -9,6 +9,7 @@ using AMESCoreStudio.WebApi;
using AMESCoreStudio.WebApi.Models.AMES; using AMESCoreStudio.WebApi.Models.AMES;
using AMESCoreStudio.WebApi.DTO.AMES; using AMESCoreStudio.WebApi.DTO.AMES;
using AMESCoreStudio.CommonTools.Result; using AMESCoreStudio.CommonTools.Result;
using AMESCoreStudio.WebApi.Enum;
namespace AMESCoreStudio.WebApi.Controllers.AMES namespace AMESCoreStudio.WebApi.Controllers.AMES
{ {
@ -236,11 +237,21 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
Proved = q2.Proved, Proved = q2.Proved,
Proved_Name = q7.UserName, Proved_Name = q7.UserName,
UpdateUser = q8.UserNo, UpdateUser = q8.UserNo,
UpdateUser_Name = q8.UserName UpdateUser_Name = q8.UserName,
InspectionType = q2.InspectionType,
MajorQty = q2.MajorQty,
MinorQty = q2.MinorQty,
EndTime = q2.EndTime.ToString()
}; };
var query = await q.Distinct().ToListAsync(); var query = await q.Distinct().ToListAsync();
query.Select(s => s.InspectionTypeName =
System.Enum.IsDefined(typeof(EnumFQC.EnumInspection_Type), s.InspectionType ?? "") ?
EnumFQC.GetDisplayName((EnumFQC.EnumInspection_Type)System.Enum.Parse(typeof(EnumFQC.EnumInspection_Type), s.InspectionType)) : "")
.ToList();
var FqcDetail = new List<FqcDto.FqcDetailDto>(); var FqcDetail = new List<FqcDto.FqcDetailDto>();
if (query.Count() != 0) if (query.Count() != 0)
{ {

2
AMESCoreStudio.WebApi/Controllers/AMES/NGReasonsController.cs

@ -83,7 +83,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
result.Data = ngReason; result.Data = ngReason;
if (ngReason == null) if (ngReason.Count == 0)
{ {
result.Msg = "查無資料"; result.Msg = "查無資料";
result.Success = false; result.Success = false;

33
AMESCoreStudio.WebApi/DTO/AMES/FQC010VIiew.cs

@ -9,6 +9,12 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
{ {
public partial class FQC010VIiew public partial class FQC010VIiew
{ {
public FQC010VIiew()
{
Detail1 = new List<FQC010Detail1>();
Detail2 = new List<FQC010Detail2>();
}
/// <summary> /// <summary>
/// QC編號 /// QC編號
/// </summary> /// </summary>
@ -140,23 +146,50 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
public List<FQC010Detail2> Detail2 { get; set; } public List<FQC010Detail2> Detail2 { get; set; }
} }
/// <summary>
/// 檢驗工項
/// </summary>
public partial class FQC010Detail1 public partial class FQC010Detail1
{ {
/// <summary>
///
/// </summary>
public string ItemID { get; set; } public string ItemID { get; set; }
/// <summary>
/// 檢驗工項名稱
/// </summary>
public string ItemName { get; set; } public string ItemName { get; set; }
/// <summary>
/// 檢驗類型
/// </summary>
public string ItemType { get; set; } public string ItemType { get; set; }
} }
/// <summary>
/// 檢驗
/// </summary>
public partial class FQC010Detail2 public partial class FQC010Detail2
{ {
/// <summary>
/// 出貨序號
/// </summary>
public string ShippingSerialNumber { get; set; } public string ShippingSerialNumber { get; set; }
/// <summary>
/// 生產序號
/// </summary>
public string ProductionSerialNumber { get; set; } public string ProductionSerialNumber { get; set; }
/// <summary>
/// 是否抽驗
/// </summary>
public string IsSample { get; set; } public string IsSample { get; set; }
/// <summary>
/// 檢驗結果
/// </summary>
public string InspectionResults { get; set; } public string InspectionResults { get; set; }
} }
} }

41
AMESCoreStudio.WebApi/DTO/AMES/FqcDto.cs

@ -20,6 +20,7 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
fqcDetails = new List<FqcDetailDto>(); fqcDetails = new List<FqcDetailDto>();
fqcResultMasterBlobs = new List<Models.AMES.FqcResultMasterBlob>(); fqcResultMasterBlobs = new List<Models.AMES.FqcResultMasterBlob>();
qcItemDtos = new List<QcItemDto>(); qcItemDtos = new List<QcItemDto>();
fqcResultDetails = new List<FqcResultDto>();
} }
/// <summary> /// <summary>
@ -93,6 +94,13 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
public string StatusName { get; set; } public string StatusName { get; set; }
/// <summary>
/// 檢驗時間
/// </summary>
[DataMember]
[Display(Name = "檢驗時間")]
public string EndTime { get; set; }
/// <summary> /// <summary>
/// 抽驗數量 /// 抽驗數量
/// </summary> /// </summary>
@ -252,6 +260,34 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
[DataMember] [DataMember]
public string UpdateUser_Name { get; set; } public string UpdateUser_Name { get; set; }
/// <summary>
/// 抽樣允收標準
/// </summary>
[NotMapped]
[DataMember]
public string InspectionType { get; set; }
/// <summary>
/// 抽樣允收標準 名稱
/// </summary>
[NotMapped]
[DataMember]
public string InspectionTypeName { get; set; }
/// <summary>
/// Major Qty
/// </summary>
[NotMapped]
[DataMember]
public int MajorQty { get; set; }
/// <summary>
/// Minor Qty
/// </summary>
[NotMapped]
[DataMember]
public int MinorQty { get; set; }
public List<FqcDetailDto> fqcDetails { get; set; } public List<FqcDetailDto> fqcDetails { get; set; }
/// <summary> /// <summary>
@ -259,6 +295,11 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
/// </summary> /// </summary>
public List<Models.AMES.FqcResultMasterBlob> fqcResultMasterBlobs { get; set; } public List<Models.AMES.FqcResultMasterBlob> fqcResultMasterBlobs { get; set; }
/// <summary>
/// 檢驗
/// </summary>
public List<FqcResultDto> fqcResultDetails { get; set; }
/// <summary> /// <summary>
/// 檢查工項 /// 檢查工項
/// </summary> /// </summary>

16
AMESCoreStudio.WebApi/DTO/AMES/FqcResultDto.cs

@ -42,7 +42,6 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
/// </summary> /// </summary>
[Display(Name = "箱號")] [Display(Name = "箱號")]
[Column("BOX_NO")] [Column("BOX_NO")]
[StringLength(30)]
public string BoxNo { get; set; } public string BoxNo { get; set; }
/// <summary> /// <summary>
@ -50,15 +49,13 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
/// </summary> /// </summary>
[Display(Name = "生產序號")] [Display(Name = "生產序號")]
[Column("BARCODE_NO")] [Column("BARCODE_NO")]
[StringLength(30)]
public string BarcodeNo { get; set; } public string BarcodeNo { get; set; }
/// <summary> /// <summary>
/// 外部序號 /// 出貨序號
/// </summary> /// </summary>
[Display(Name = "外部序號")] [Display(Name = "出貨序號")]
[Column("EXTRA_BARCODE_NO")] [Column("EXTRA_BARCODE_NO")]
[StringLength(30)]
public string ExtraBarcodeNo { get; set; } public string ExtraBarcodeNo { get; set; }
/// <summary> /// <summary>
@ -66,15 +63,19 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
/// </summary> /// </summary>
[Display(Name = "狀態")] [Display(Name = "狀態")]
[Column("STATUS_NO")] [Column("STATUS_NO")]
[StringLength(2)]
public string StatusNo { get; set; } = "P"; public string StatusNo { get; set; } = "P";
/// <summary>
/// IsSample
/// </summary>
[Display(Name = "IsSample")]
public string IsSample { get; set; } = "N";
/// <summary> /// <summary>
/// 不良代碼 /// 不良代碼
/// </summary> /// </summary>
[Display(Name = "不良代碼")] [Display(Name = "不良代碼")]
[Column("NG_REASON_NO")] [Column("NG_REASON_NO")]
[StringLength(6)]
public string NgReasonNo { get; set; } public string NgReasonNo { get; set; }
/// <summary> /// <summary>
@ -82,7 +83,6 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
/// </summary> /// </summary>
[Display(Name = "不良備註")] [Display(Name = "不良備註")]
[Column("NG_MEMO")] [Column("NG_MEMO")]
[StringLength(100)]
public string NgMemo { get; set; } public string NgMemo { get; set; }
/// <summary> /// <summary>

19
AMESCoreStudio.WebApi/Enums/EnumFQC.cs

@ -13,6 +13,25 @@ namespace AMESCoreStudio.WebApi.Enum
/// </summary> /// </summary>
public class EnumFQC public class EnumFQC
{ {
/// <summary>
/// 抽樣計畫允收標準
/// </summary>
public enum EnumInspection_Type
{
/// <summary>
/// First Insp.
/// </summary>
[Display(Name = "First Insp.")]
A = 1,
/// <summary>
/// Minor
/// </summary>
[Display(Name = "Rework Insp.")]
B = 2
}
/// <summary> /// <summary>
/// 檢驗項目_類型 /// 檢驗項目_類型
/// </summary> /// </summary>

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

@ -281,5 +281,30 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("PROVED")] [Column("PROVED")]
[DataMember] [DataMember]
public string Proved { get; set; } public string Proved { get; set; }
/// <summary>
/// 抽樣允收標準
/// </summary>
[Column("INSPECTION_TYPE")]
[DataMember]
public string InspectionType { get; set; }
/// <summary>
/// Major
/// </summary>
[DataMember]
[Display(Name = "Major")]
[Required(ErrorMessage = "{0},不能空白")]
[Column("MAJOR_QTY")]
public int MajorQty { get; set; } = 0;
/// <summary>
/// Minor
/// </summary>
[DataMember]
[Display(Name = "Minor")]
[Required(ErrorMessage = "{0},不能空白")]
[Column("MINOR_QTY")]
public int MinorQty { get; set; } = 0;
} }
} }

Loading…
Cancel
Save