Browse Source

1. FQC修正 抽驗結果 數量問題,抽驗跟檢驗結果儲存當前頁面資料

PTD
Ray 3 years ago
parent
commit
7d9df043be
  1. 57
      AMESCoreStudio.Web/Controllers/FQCController.cs
  2. 228
      AMESCoreStudio.Web/Views/FQC/FQC007.cshtml
  3. 70
      AMESCoreStudio.Web/Views/PCS/PCS004C.cshtml
  4. 1035
      AMES規格書(for 安勤科技及昶亨科技) - 追加客製 v4.pdf
  5. BIN
      安勤AMES流程盤點客製程式彙整(第2次規格會議).xlsx

57
AMESCoreStudio.Web/Controllers/FQCController.cs

@ -894,6 +894,61 @@ namespace AMESCoreStudio.Web.Controllers
return View(model); return View(model);
} }
[HttpPost]
public async Task FQC007AjaxJson(FqcDto model)
{
IResultModel<FqcDto> result;
result = await _fqcApi.GetFqcQuery(model.InhouseNo, model.SeqID);
var result_FQCResultMaster = await _fqcApi.GetFqcResultMaster(model.FqcID);
if (result_FQCResultMaster != null)
{
result_FQCResultMaster.OS = model.OS;
result_FQCResultMaster.CPU = model.CPU;
result_FQCResultMaster.RAM = model.RAM;
result_FQCResultMaster.BIOS = model.BIOS;
result_FQCResultMaster.Supervisor = model.Supervisor;
result_FQCResultMaster.Proved = model.Proved;
result_FQCResultMaster.OutfitNo = model.OutfitNo;
result_FQCResultMaster.InspectionType = model.InspectionType;
result_FQCResultMaster.Note = model.Note;
result_FQCResultMaster.ECN_Memo = model.ECN_Memo;
result_FQCResultMaster.InspectionStatus = model.InspectionStatus;
result_FQCResultMaster.PLM_ECN = model.PLMECN;
await _fqcApi.PutFqcResultMaster(JsonConvert.SerializeObject(result_FQCResultMaster));
ModelState.AddModelError("error", "儲存成功!");
}
else
{
var fqcResultMaster = new FqcResultMaster();
fqcResultMaster.InhouseNo = model.InhouseNo;
fqcResultMaster.SeqID = Convert.ToInt16(model.SeqID);
fqcResultMaster.LotQty = model.InhouseQty;
fqcResultMaster.WipNo = model.WipNo;
fqcResultMaster.QaQty = 1;
fqcResultMaster.ItemNo = model.ItemNo;
fqcResultMaster.ModelNo = model.ModelNo;
fqcResultMaster.StartTime = DateTime.Now;
fqcResultMaster.EndTime = DateTime.Now;
fqcResultMaster.CreateUserID = GetLogInUserID();
fqcResultMaster.OS = model.OS;
fqcResultMaster.CPU = model.CPU;
fqcResultMaster.RAM = model.RAM;
fqcResultMaster.BIOS = model.BIOS;
fqcResultMaster.Supervisor = model.Supervisor;
fqcResultMaster.Proved = model.Proved;
fqcResultMaster.OutfitNo = model.OutfitNo;
fqcResultMaster.InspectionType = model.InspectionType;
fqcResultMaster.Note = model.Note;
fqcResultMaster.ECN_Memo = model.ECN_Memo;
fqcResultMaster.InspectionStatus = model.InspectionStatus;
fqcResultMaster.PLM_ECN = model.PLMECN;
await _fqcApi.PostFqcResultMaster(JsonConvert.SerializeObject(fqcResultMaster));
}
}
#region 抽驗 #region 抽驗
[HttpGet] [HttpGet]
public async Task<IActionResult> FQC007C(string inhouseNo, string seq) public async Task<IActionResult> FQC007C(string inhouseNo, string seq)
@ -1072,7 +1127,7 @@ namespace AMESCoreStudio.Web.Controllers
// 抽驗數量 大於 本批次送驗量 // 抽驗數量 大於 本批次送驗量
if (fqcItem.QcQty > fqcItem.InhouseQty) if (fqcItem.QcQty > fqcItem.InhouseQty)
{ {
if (fqcItem.PassQty + fqcItem.FailQty != fqcItem.FailQty) if (fqcItem.PassQty + fqcItem.FailQty != fqcItem.InhouseQty)
{ {
var _msg = "抽樣數量不足,無法判定"; var _msg = "抽樣數量不足,無法判定";
return RedirectToAction("Refresh", "Home", new { msg = _msg }); return RedirectToAction("Refresh", "Home", new { msg = _msg });

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

@ -25,8 +25,8 @@
</div> </div>
<div class="layui-inline layui-show-xs-block"> <div class="layui-inline layui-show-xs-block">
@*<button class="layui-btn layui-btn-sm layui-btn-normal" type="submit" lay-submit lay-filter="querysubmit"> @*<button class="layui-btn layui-btn-sm layui-btn-normal" type="submit" lay-submit lay-filter="querysubmit">
<i class="layui-icon layui-icon-sm">&#xe615;</i> <i class="layui-icon layui-icon-sm">&#xe615;</i>
</button>*@ </button>*@
<a class="layui-btn layui-btn-sm layui-btn-normal" id="attachment" title="文件上傳" lay-submit lay-filter="attachment" onclick="upload()"> <a class="layui-btn layui-btn-sm layui-btn-normal" id="attachment" title="文件上傳" lay-submit lay-filter="attachment" onclick="upload()">
<i class="layui-icon layui-icon-sm">&#xe62f;</i> <i class="layui-icon layui-icon-sm">&#xe62f;</i>
</a> </a>
@ -110,8 +110,8 @@
<div class="layui-col-xs2"> <div class="layui-col-xs2">
<div class="layui-form-item"> <div class="layui-form-item">
@*<div class="layui-input-block" style="margin-left:auto;"> @*<div class="layui-input-block" style="margin-left:auto;">
<label class="layui-form-label" style="text-align: left; width: 150px;">@Model.CustomerNo</label> <label class="layui-form-label" style="text-align: left; width: 150px;">@Model.CustomerNo</label>
</div>*@ </div>*@
</div> </div>
</div> </div>
<div class="layui-col-xs1"> <div class="layui-col-xs1">
@ -132,8 +132,8 @@
<div class="layui-col-xs1" style="text-align:center;display:none;" id="critIDDIV"> <div class="layui-col-xs1" style="text-align:center;display:none;" id="critIDDIV">
<input type="hidden" asp-action="CritID" value="@Model.CritID" /> <input type="hidden" asp-action="CritID" value="@Model.CritID" />
@*<a class="layui-btn layui-btn-sm layui-btn-normal" id="attachment" title="抽驗係數" lay-submit lay-filter="attachment" onclick="openQC()"> @*<a class="layui-btn layui-btn-sm layui-btn-normal" id="attachment" title="抽驗係數" lay-submit lay-filter="attachment" onclick="openQC()">
<i class="layui-icon layui-icon-sm" style="font-size: 30px; color: #1E9FFF;">&#xe60a;</i> <i class="layui-icon layui-icon-sm" style="font-size: 30px; color: #1E9FFF;">&#xe60a;</i>
</a>*@ </a>*@
<a title="抽驗係數" lay-submit lay-filter="attachment" onclick="openQC()"><i class="layui-icon layui-icon-form" style="font-size: 30px; color: #ff0000;"></i></a> <a title="抽驗係數" lay-submit lay-filter="attachment" onclick="openQC()"><i class="layui-icon layui-icon-form" style="font-size: 30px; color: #ff0000;"></i></a>
</div> </div>
<div class="layui-col-xs3"> <div class="layui-col-xs3">
@ -359,7 +359,9 @@
<h2 class="layui-colla-title">細項資料</h2> <h2 class="layui-colla-title">細項資料</h2>
<div class="layui-colla-content layui-show"> <div class="layui-colla-content layui-show">
<table id="MydataTable" class="layui-table"> <table id="MydataTable" class="layui-table">
@{ int i = 0;} @{
int i = 0;
}
<thead> <thead>
<tr> <tr>
<th>箱號</th> <th>箱號</th>
@ -508,11 +510,13 @@
</div> </div>
@section Scripts{ @section Scripts{
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); @{
await Html.RenderPartialAsync("_FileinputScriptsPartial"); } await Html.RenderPartialAsync("_ValidationScriptsPartial");
await Html.RenderPartialAsync("_FileinputScriptsPartial");
}
<script type="text/javascript" src="~/js/grids.min.js"></script> <script type="text/javascript" src="~/js/grids.min.js"></script>
<script type="text/javascript"> <script type="text/javascript">
layui.use(['form' ,'layer','laydate'], function () { layui.use(['form', 'layer', 'laydate'], function () {
var form = layui.form; var form = layui.form;
}); });
@ -520,75 +524,98 @@
function detail(obj) { function detail(obj) {
let InhouseNo = $("#hInhouseNo").val().trim(); let InhouseNo = $("#hInhouseNo").val().trim();
let SeqID = $("#hSeqID").val().trim(); let SeqID = $("#hSeqID").val().trim();
hg.open('FQC細項資料', '/FQC/FQC007V?inhouseNo=' + InhouseNo + '&seqID=' + SeqID+ '&boxNo=' + obj, '900', '500'); hg.open('FQC細項資料', '/FQC/FQC007V?inhouseNo=' + InhouseNo + '&seqID=' + SeqID + '&boxNo=' + obj, '900', '500');
} }
//UserName //UserName
function getUserName(val) { function getUserName(val) {
if (val.value.length != 0) { if (val.value.length != 0) {
$.ajax( $.ajax(
{
url: "@Url.Action("getUserName", "SYS")",
dataType: 'json',
data: { "userNo": val.value},
type: 'post',
success: function (result)
{ {
$(val).closest('div.layui-col-xs2').find('label[id*=' + val.id + '_Name]').text(result.data); url: "@Url.Action("getUserName", "SYS")",
}, dataType: 'json',
error: function (result) data: { "userNo": val.value },
{ type: 'post',
alert(result); success: function (result) {
} $(val).closest('div.layui-col-xs2').find('label[id*=' + val.id + '_Name]').text(result.data);
}); },
error: function (result) {
alert(result);
}
});
} }
}; };
function edit() { function edit() {
layui.use('layer', function () { var data = $("#FQC007Form").serialize();
var layer = layui.layer; $.ajax({
layer.open({ url: "@Url.Action("FQC007AjaxJson", "FQC")",
title: '抽驗', type: "POST",
type: 2, data: data,
area: ['600px', '550px'], success: function (result) {
fixed: false, //不固定 layui.use('layer', function () {
maxmin: false, var layer = layui.layer;
scrollbar: true, layer.open({
moveOut:true, title: '抽驗',
content: '/FQC/FQC007C?inhouseNo=@Model.h_InhouseNo&seq=@Model.h_SeqID', type: 2,
end: function () { area: ['600px', '550px'],
window.location.reload(); fixed: false, //不固定
} maxmin: false,
}); scrollbar: true,
moveOut: true,
content: '/FQC/FQC007C?inhouseNo=@Model.h_InhouseNo&seq=@Model.h_SeqID',
end: function () {
window.location.reload();
}
});
});
},
error: function (result) {
alert(`呼叫API失敗`);
}
}); });
//hg.open('抽驗', '/FQC/FQC007C?inhouseNo=@Model.h_InhouseNo&seq=@Model.h_SeqID', 600, 600); //hg.open('抽驗', '/FQC/FQC007C?inhouseNo=@Model.h_InhouseNo&seq=@Model.h_SeqID', 600, 600);
}; };
function result() { function result() {
//hg.open('判定結果', '/FQC/FQC007B/', 600, 400); //hg.open('判定結果', '/FQC/FQC007B/', 600, 400);
layui.use('layer', function () { var data = $("#FQC007Form").serialize();
var layer = layui.layer; $.ajax({
layer.open({ url: "@Url.Action("FQC007AjaxJson", "FQC")",
title: '結果判定', type: "POST",
type: 2, data: data,
area: ['600px', '400px'], success: function (result) {
fixed: false, //不固定 layui.use('layer', function () {
maxmin: true, var layer = layui.layer;
content: '/FQC/FQC007B?inhouseNo=@Model.h_InhouseNo&seq=@Model.h_SeqID&fqc=@Model.FqcID' layer.open({
}); title: '結果判定',
type: 2,
area: ['600px', '400px'],
fixed: false, //不固定
maxmin: true,
content: '/FQC/FQC007B?inhouseNo=@Model.h_InhouseNo&seq=@Model.h_SeqID&fqc=@Model.FqcID'
});
});
},
error: function (result) {
alert(`呼叫API失敗`);
}
}); });
}; };
// 文件上傳 // 文件上傳
function upload() { function upload() {
if (@Model.FqcID == 0) {parent.hg.msg('請先抽驗一筆紀錄!'); if (@Model.FqcID == 0) {
parent.hg.msg('請先抽驗一筆紀錄!');
return; return;
}; };
layui.use('layer', function () { layui.use('layer', function () {
var layer = layui.layer; var layer = layui.layer;
layer.open({ layer.open({
title: '文件上傳', title: '文件上傳',
type: 2, type: 2,
area: ['600px', '400px'], area: ['600px', '400px'],
fixed: false, //不固定 fixed: false, //不固定
@ -600,58 +627,59 @@
// QCITEM // QCITEM
function addQcItem() { function addQcItem() {
if ('@Model.WipNo' == '' ) {parent.hg.msg('請搜尋入庫單號!'); if ('@Model.WipNo' == '') {
parent.hg.msg('請搜尋入庫單號!');
return; return;
} }
layui.use('layer', function () { layui.use('layer', function () {
var layer = layui.layer; var layer = layui.layer;
layer.open({ layer.open({
title: '檢驗工項維護', title: '檢驗工項維護',
type: 2, type: 2,
area: ['700px', '500px'], area: ['700px', '500px'],
fixed: false, //不固定 fixed: false, //不固定
maxmin: true, maxmin: true,
content: '/FQC/FQC007A?wipNo=@Model.WipNo&itemNo=@Model.ItemNo', content: '/FQC/FQC007A?wipNo=@Model.WipNo&itemNo=@Model.ItemNo',
end: function () { end: function () {
window.location.reload(); window.location.reload();
} }
}); });
}); });
} }
// OpenQC // OpenQC
function openQC() { function openQC() {
layui.use('layer', function () { layui.use('layer', function () {
var layer = layui.layer; var layer = layui.layer;
layer.open({ layer.open({
title: 'QC', title: 'QC',
type: 2, type: 2,
area: ['700px', '500px'], area: ['700px', '500px'],
btn:['確定','取消'], btn: ['確定', '取消'],
fixed: false, //不固定 fixed: false, //不固定
maxmin: false, maxmin: false,
content: '/FQC/FQC007E?AQLType=@Model.AQLType&QCQty=@Model.InhouseQty', content: '/FQC/FQC007E?AQLType=@Model.AQLType&QCQty=@Model.InhouseQty',
yes: function (index, layero) { yes: function (index, layero) {
//var body = layer.getChildFrame('body', index); //var body = layer.getChildFrame('body', index);
var obj = layero.find("iframe")[0].contentWindow; var obj = layero.find("iframe")[0].contentWindow;
$('#CritID').val(obj.$("#critID").val()); $('#CritID').val(obj.$("#critID").val());
$('#QuotDescription').val(obj.$("#quotDescription").val()); $('#QuotDescription').val(obj.$("#quotDescription").val());
$('#AQL').text(obj.$("#aql").val()); $('#AQL').text(obj.$("#aql").val());
$('#QcQty').text(obj.$("#qcQty").val()); $('#QcQty').text(obj.$("#qcQty").val());
$('#ReQty').text(obj.$("#reQty").val()); $('#ReQty').text(obj.$("#reQty").val());
$('#AcQty').text(obj.$("#acQty").val()); $('#AcQty').text(obj.$("#acQty").val());
layer.close(index); layer.close(index);
var data = $("#FQC007Form").serialize(); var data = $("#FQC007Form").serialize();
data += "&CritID=" + obj.$("#critID").val(); data += "&CritID=" + obj.$("#critID").val();
$.ajax({ $.ajax({
url: "@Url.Action("FQC007ByCritID", "FQC")", url: "@Url.Action("FQC007ByCritID", "FQC")",
type: "POST", type: "POST",
data: data, data: data,
success: function (result) { success: function (result) {
} }
});
}
}); });
}
});
}); });
} }
@ -677,7 +705,7 @@
$("#CustomerVIP").attr("disabled", "disabled"); $("#CustomerVIP").attr("disabled", "disabled");
if ($(error).text() != '') { if ($(error).text() != '') {
parent.hg.msg(error); parent.hg.msg(error);
}; };
let InhouseNo = $("#hInhouseNo").val().trim(); let InhouseNo = $("#hInhouseNo").val().trim();
@ -689,7 +717,7 @@
$("#critID").show(); $("#critID").show();
} }
setupEnterToNext(); setupEnterToNext();
}); });
function setupEnterToNext() { function setupEnterToNext() {
// add keydown event for all inputs // add keydown event for all inputs

70
AMESCoreStudio.Web/Views/PCS/PCS004C.cshtml

@ -2,7 +2,8 @@
@{ @{
Layout = "~/Views/Shared/_AMESLayout.cshtml"; } Layout = "~/Views/Shared/_AMESLayout.cshtml";
}
<style> <style>
.control-label { .control-label {
@ -107,7 +108,7 @@
</div> </div>
<label asp-for="WipInfo.WipType" class="layui-form-label"></label> <label asp-for="WipInfo.WipType" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="WipInfo.WipType" class="layui-input" readonly="readonly" /> <input asp-for="WipInfo.WipType" class="layui-input" readonly="readonly" />
</div> </div>
</div> </div>
</div> </div>
@ -116,7 +117,9 @@
<fieldset class="layui-elem-field layui-field-title"> <fieldset class="layui-elem-field layui-field-title">
<legend>內部條碼資料</legend> <legend>內部條碼資料</legend>
<table id="MydataTable" class="layui-table" style="width:50%"> <table id="MydataTable" class="layui-table" style="width:50%">
@{ int i = 0;} @{
int i = 0;
}
<thead> <thead>
<tr> <tr>
<th> <th>
@ -132,6 +135,8 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@if (Model.WipBarcodes != null)
{
@foreach (var index in Model.WipBarcodes) @foreach (var index in Model.WipBarcodes)
{ {
<tr> <tr>
@ -149,6 +154,7 @@
</tr> </tr>
i++; i++;
} }
}
</tbody> </tbody>
</table> </table>
</fieldset> </fieldset>
@ -198,42 +204,42 @@
}); });
// Table 刪除 // Table 刪除
function Remove(button,StrNo,EndNo) { function Remove(button, StrNo, EndNo) {
hg.confirm("起始生產條碼:" + StrNo + ",結束生產條碼:" + EndNo + ",确定要删除嗎?", function () { hg.confirm("起始生產條碼:" + StrNo + ",結束生產條碼:" + EndNo + ",确定要删除嗎?", function () {
$.ajax({ $.ajax({
url: '@Url.Action("PCS004D", "PCS")', url: '@Url.Action("PCS004D", "PCS")',
dataType:'json', dataType: 'json',
data: { "WipNo": $("#WipInfo_WipNO").val(), "StrNo": StrNo, "EndNo": EndNo}, data: { "WipNo": $("#WipInfo_WipNO").val(), "StrNo": StrNo, "EndNo": EndNo },
cache: false, cache: false,
type: "POST", type: "POST",
success: function (data) { success: function (data) {
if (data.success) { if (data.success) {
hg.msg("删除成功!"); hg.msg("删除成功!");
var row = $(button).closest("TR"); var row = $(button).closest("TR");
var table = $("#MydataTable")[0]; var table = $("#MydataTable")[0];
table.deleteRow(row[0].rowIndex); table.deleteRow(row[0].rowIndex);
}
},
error: function (jqXHR, textStatus, errorThrown) {
hg.msg("Found error when using Ajax!!");
} }
});
},
error: function (jqXHR, textStatus, errorThrown) {
hg.msg("Found error when using Ajax!!");
}
});
}); });
}; };
$(document).ready(function () { $(document).ready(function () {
var error = '@Html.ValidationMessage("error")'; var error = '@Html.ValidationMessage("error")';
if ($(error).text() != '') { if ($(error).text() != '') {
parent.hg.msg(error); parent.hg.msg(error);
} }
//关闭弹出层 //关闭弹出层
if ('@ViewBag.Msg' != '') { if ('@ViewBag.Msg' != '') {
//hg.close(); //hg.close();
hg.msg('@ViewBag.Msg'); hg.msg('@ViewBag.Msg');
} }
}); });
</script> </script>

1035
AMES規格書(for 安勤科技及昶亨科技) - 追加客製 v4.pdf

File diff suppressed because it is too large

BIN
安勤AMES流程盤點客製程式彙整(第2次規格會議).xlsx

Binary file not shown.
Loading…
Cancel
Save