Ray 3 years ago
parent
commit
bf9ba45998
  1. 153
      AMESCoreStudio.Web/Controllers/FQCController.cs
  2. 40
      AMESCoreStudio.Web/Views/FQC/FQC008.cshtml
  3. 564
      AMESCoreStudio.Web/wwwroot/Reports/FQC010View.rdlc
  4. 2
      AMESCoreStudio.WebApi/Controllers/AMES/BarcodeItemsController.cs
  5. 3
      AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseMasterController.cs
  6. 60
      AMESCoreStudio.WebApi/DTO/AMES/FQC010VIiew.cs
  7. 5
      AMESCoreStudio.WebApi/DTO/AMES/FqcDto.cs

153
AMESCoreStudio.Web/Controllers/FQCController.cs

@ -1344,46 +1344,46 @@ namespace AMESCoreStudio.Web.Controllers
#endregion
#region FQC010 報表
public async Task<IActionResult> FQC010()
public async Task<IActionResult> FQC010_PDF(string inhouseNo, int seqID)
{
string mimeType = "";
int extension = 1;
var path = $"{this._env.WebRootPath}\\Reports\\View.rdlc";
var path = $"{this._env.WebRootPath}\\Reports\\FQC010View.rdlc";
LocalReport localReport = new LocalReport(path);
Dictionary<string, string> param = new Dictionary<string, string>();
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
System.Text.Encoding.GetEncoding(1252);
var FQC010Master = new FQC010VIiew();
IResultModel<FqcDto> resultFqcQuery;
resultFqcQuery = _fqcApi.GetFqcQuery("QWO0002A1001").InvokeAsync().Result;
resultFqcQuery = _fqcApi.GetFqcQuery(inhouseNo, seqID).InvokeAsync().Result;
if (resultFqcQuery.Data.Count() != 0)
{
var FqcQuery = resultFqcQuery.Data.FirstOrDefault();
FQC010Master = new FQC010VIiew()
{
DefectDescription = "N/A",
InspectionDate = "2022/06/30",
DefectDescription = FqcQuery.QaMeno,
InspectionDate = FqcQuery.EndTime,
AC = FqcQuery.AcQty.ToString(),
Approved = "王曉明",
AQL = "2.5",
SpeciallyAdoption = "特採Specially Adoption",
BIOSVer = "2.04A CS:7672H",
SpeciallyAdoption = FqcQuery.SpecialPo,
BIOSVer = FqcQuery.BIOS,
ECN = "22N0202",
ECNMemo = "工單生產已是最新ECN",
Factory = "YS00",
FactoryRemark = "N/A",
InspectionInstrumentNumber = "N/A",
Factory = FqcQuery.Werk.Split('-')[0],
FactoryRemark = FqcQuery.Werk.Split('-')[1],
InspectionInstrumentNumber = FqcQuery.OutfitNo,
InspectionItems = "OS:[Win10 IoT]CPU test:[1.10G] RAM test:[4096]",
InspectionNumber = FqcQuery.InhouseNo,
InspectionStatus = "廠驗",
InspectionType = FqcQuery.InspectionTypeName,
Inspector = "蔡喬虎",
Judgment = "Defect Quantity",
Line = "安勤產線",
LotSize = "1",
Line = FqcQuery.InhouseMemo,
LotSize = FqcQuery.InhouseQty.ToString(),
Major = FqcQuery.MajorQty.ToString(),
MedicalModel = "N",
MedicalModel = FqcQuery.CustomerMedical,
Minor = FqcQuery.MinorQty.ToString(),
Model = FqcQuery.ItemNo,
ModelName = FqcQuery.ModelNo,
@ -1399,7 +1399,7 @@ namespace AMESCoreStudio.Web.Controllers
StorageLocation = "9000",
Avalue = "AVALUE",
VIP = FqcQuery.CustomerVIP,
WaiveRequisition = "XX"
WaiveRequisition = FqcQuery.StatusName
};
// 抓全部檢驗工項
@ -1461,6 +1461,131 @@ namespace AMESCoreStudio.Web.Controllers
var result = localReport.Execute(RenderType.Pdf, extension, param, mimeType);
return File(result.MainStream, "application/pdf");
//var result = localReport.Execute(RenderType.Excel, extension, param, mimeType);
//return File(result.MainStream, "application/msexcel", "Export.xls");
}
public async Task<IActionResult> FQC010_Excel(string inhouseNo, int seqID)
{
string mimeType = "";
int extension = 1;
var path = $"{this._env.WebRootPath}\\Reports\\FQC010View.rdlc";
LocalReport localReport = new LocalReport(path);
Dictionary<string, string> param = new Dictionary<string, string>();
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
System.Text.Encoding.GetEncoding(1252);
var FQC010Master = new FQC010VIiew();
IResultModel<FqcDto> resultFqcQuery;
resultFqcQuery = _fqcApi.GetFqcQuery(inhouseNo, seqID).InvokeAsync().Result;
if (resultFqcQuery.Data.Count() != 0)
{
var FqcQuery = resultFqcQuery.Data.FirstOrDefault();
FQC010Master = new FQC010VIiew()
{
DefectDescription = FqcQuery.QaMeno,
InspectionDate = FqcQuery.EndTime,
AC = FqcQuery.AcQty.ToString(),
Approved = "王曉明",
AQL = "2.5",
SpeciallyAdoption = FqcQuery.SpecialPo,
BIOSVer = FqcQuery.BIOS,
ECN = "22N0202",
ECNMemo = "工單生產已是最新ECN",
Factory = FqcQuery.Werk.Split('-')[0],
FactoryRemark = FqcQuery.Werk.Split('-')[1],
InspectionInstrumentNumber = FqcQuery.OutfitNo,
InspectionItems = "OS:[Win10 IoT]CPU test:[1.10G] RAM test:[4096]",
InspectionNumber = FqcQuery.InhouseNo,
InspectionStatus = "廠驗",
InspectionType = FqcQuery.InspectionTypeName,
Inspector = "蔡喬虎",
Judgment = "Defect Quantity",
Line = FqcQuery.InhouseMemo,
LotSize = FqcQuery.InhouseQty.ToString(),
Major = FqcQuery.MajorQty.ToString(),
MedicalModel = FqcQuery.CustomerMedical,
Minor = FqcQuery.MinorQty.ToString(),
Model = FqcQuery.ItemNo,
ModelName = FqcQuery.ModelNo,
NOTE = @"ACC-M2
E1589
ESW-075R
ACC-BAT",
OrderNumber = FqcQuery.WipNo,
Product99 = "一般二級水準正常檢驗",
ReMajor = FqcQuery.ReQty.ToString(),
Sample = FqcQuery.QcQty.ToString(),
SamplingInspectionPlan = "ANSI/ASQZ 1.4II",
StorageLocation = "9000",
Avalue = "AVALUE",
VIP = FqcQuery.CustomerVIP,
WaiveRequisition = FqcQuery.StatusName
};
// 抓全部檢驗工項
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>();
FQC010Masters.Add(FQC010Master);
localReport.AddDataSource("DataSet1", FQC010Masters);
localReport.AddDataSource("DataSet2", FQC010Master.Detail1);
localReport.AddDataSource("DataSet3", FQC010Master.Detail2);
//var result = localReport.Execute(RenderType.Pdf, extension, param, mimeType);
//return File(result.MainStream, "application/pdf");
var result = localReport.Execute(RenderType.Excel, extension, param, mimeType);
return File(result.MainStream, "application/msexcel", "Export.xls");
}
#endregion

40
AMESCoreStudio.Web/Views/FQC/FQC008.cshtml

@ -5,8 +5,8 @@
<style type="text/css">
/*.layui-table-main .layui-table-cell {*/
/*height: auto !important;*/
/*white-space: normal;
/*height: auto !important;*/
/*white-space: normal;
}
.layui-table img {
@ -119,9 +119,8 @@
@section Scripts{
<script type="text/javascript">
//var roleId = 0;
//var roleName = "";
layui.use(['form', 'layer', 'laydate'], function () {
layui.use(['form', 'layer', 'laydate', 'table'], function () {
var table1 = layui.table;
form = layui.form;
laydate = layui.laydate;
laydate.render({
@ -147,9 +146,9 @@
//hg.msghide("刷新数据!");
//table && table.reload();
});
});
});
//监听表单提交事件
hg.form.onsubmit('querysubmit', function (data) {
@ -220,9 +219,16 @@
{
title: '操作',
align: 'center',
width: 80,
width: 200,
templet: function (d) {
return '<a class="layui-btn layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">修改</a>'
var aa;
if (d.statusName == '未驗收完成') {
aa = '<a class="layui-btn layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">修改</a>'
}
else {
aa = '<a class="layui-btn layui-btn-warm layui-icon layui-icon-list layui-btn-xs" lay-event="edit">檢視</a>'
}
return aa + '<a class="layui-btn layui-btn-xs " lay-event="PDF">PDF</a><a class="layui-btn layui-btn-xs " lay-event="Excel">Excel</a>'
}
}
]];
@ -233,9 +239,24 @@
}
}
function PDF(obj) {
if (obj.data.inhouseNo) {
hg.open('PDF', '/FQC/FQC010_PDF?inhouseNo=' + obj.data.inhouseNo + '&seqID=' + obj.data.seqID, '', '', true);
}
}
function Excel(obj) {
if (obj.data.inhouseNo) {
window.open('/FQC/FQC010_Excel?inhouseNo=' + obj.data.inhouseNo + '&seqID=' + obj.data.seqID);
return;
//hg.open('Excel', '/FQC/FQC010_Excel?inhouseNo=' + obj.data.inhouseNo + '&seqID=' + obj.data.seqID, '', '', true);
}
}
//基本数据表格
var table = hg.table.datatable('query', 'FQC查詢', '/FQC/FQC008Query', {}, tableCols, '', true, 'full-100', ['filter', 'print', 'exports']);
// var table = hg.table.datatable('test', '條碼狀態維護', '/PCS/GetWipInfo', {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']);
// var table = hg.table.datatable('test', '條碼狀態維護', '/PCS/GetWipInfo', {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']);
</script>
<script type="text/html" id="statusName">
@ -248,4 +269,3 @@
{{# } }}
</script>
}
}

564
AMESCoreStudio.Web/wwwroot/Reports/View.rdlc → AMESCoreStudio.Web/wwwroot/Reports/FQC010View.rdlc

File diff suppressed because it is too large

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

@ -507,7 +507,9 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
try
{
_context.Entry(barcodeItem.B).State = EntityState.Detached;
_context.BarcodeItems.Add(barcodeItem);
await _context.SaveChangesAsync();
result.Success = true;
result.Msg = "OK";

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

@ -215,10 +215,11 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
ItemNo = q1.ItemNo,
ModelNo = q1.ModelNo,
InhouseQty = q1.InhouseQty,
SpecialPo = q2.SpecialPo,
QcQty = q3.QcQty,
AcQty = q3.AcQty,
ReQty = q3.ReQty,
StatusName = q1.Status,
StatusName = q1.Status == "P" ? "允收Pass" : q1.Status == "R" ? "批退Reject" : "",
FqcID = q2.WipNo == null ? 0 : q2.FqcID,
InhouseMemo = q2.InhouseMemo,
ManualQaMeno = q2.ManualQaMeno,

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

@ -46,12 +46,12 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
public string OrderNumber { get; set; }
/// <summary>
///
/// 批量
/// </summary>
public string LotSize { get; set; }
/// <summary>
///
/// 醫療機種
/// </summary>
public string MedicalModel { get; set; }
@ -61,9 +61,8 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
public string VIP { get; set; }
/// <summary>
///
/// 抽樣
/// </summary>
public string InspectionType { get; set; }
/// <summary>
@ -85,12 +84,12 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
public string Factory { get; set; }
/// <summary>
/// 產線
/// 產線備註
/// </summary>
public string Line { get; set; }
/// <summary>
///
/// 入庫庫別
/// </summary>
public string StorageLocation { get; set; }
@ -106,39 +105,78 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
public string AQL { get; set; }
/// <summary>
/// 抽驗數
/// </summary>
public string Sample { get; set; }
/// <summary>
/// 允收數
/// </summary>
public string AC { get; set; }
/// <summary>
/// 不良數
/// </summary>
public string ReMajor { get; set; }
/// <summary>
/// 檢驗結果Judgment Quantity
/// </summary>
public string Judgment { get; set; }
/// <summary>
/// Major
/// </summary>
public string Major { get; set; }
/// <summary>
/// Minor
/// </summary>
public string Minor { get; set; }
/// <summary>
/// 特採單
/// </summary>
public string SpeciallyAdoption { get; set; }
public string SpeciallyAdoption { get; set; } = "N/A";
/// <summary>
/// 判斷結果
/// </summary>
public string WaiveRequisition { get; set; }
/// <summary>
/// 缺點描述
/// </summary>
public string DefectDescription { get; set; }
public string NOTE { get; set; }
public string NOTE { get; set; } = "N/A";
public string FactoryRemark { get; set; }
/// <summary>
/// 委外廠 Name
/// </summary>
public string FactoryRemark { get; set; } = "N/A";
public string ECNMemo { get; set; }
public string ECNMemo { get; set; } = "N/A";
/// <summary>
/// 檢驗儀器編號
/// </summary>
public string InspectionInstrumentNumber { get; set; }
public string InspectionItems { get; set; }
/// <summary>
/// 檢驗項目 OS CPU RAM
/// </summary>
public string InspectionItems { get; set; } = "N/A";
/// <summary>
/// 抽驗人員
/// </summary>
public string Approved { get; set; }
/// <summary>
/// 主管
/// </summary>
public string Inspector { get; set; }
public List<FQC010Detail1> Detail1 { get; set; }

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

@ -137,6 +137,11 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
[Display(Name = "拒收數量")]
public int ReQty { get; set; } = 0;
/// <summary>
/// 特採單
/// </summary>
public string SpecialPo { get; set; }
/// <summary>
/// 判定備註
/// </summary>

Loading…
Cancel
Save