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);
}
[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 抽驗
[HttpGet]
public async Task<IActionResult> FQC007C(string inhouseNo, string seq)
@ -1072,7 +1127,7 @@ namespace AMESCoreStudio.Web.Controllers
// 抽驗數量 大於 本批次送驗量
if (fqcItem.QcQty > fqcItem.InhouseQty)
{
if (fqcItem.PassQty + fqcItem.FailQty != fqcItem.FailQty)
if (fqcItem.PassQty + fqcItem.FailQty != fqcItem.InhouseQty)
{
var _msg = "抽樣數量不足,無法判定";
return RedirectToAction("Refresh", "Home", new { msg = _msg });

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

@ -25,8 +25,8 @@
</div>
<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">
<i class="layui-icon layui-icon-sm">&#xe615;</i>
</button>*@
<i class="layui-icon layui-icon-sm">&#xe615;</i>
</button>*@
<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>
</a>
@ -110,8 +110,8 @@
<div class="layui-col-xs2">
<div class="layui-form-item">
@*<div class="layui-input-block" style="margin-left:auto;">
<label class="layui-form-label" style="text-align: left; width: 150px;">@Model.CustomerNo</label>
</div>*@
<label class="layui-form-label" style="text-align: left; width: 150px;">@Model.CustomerNo</label>
</div>*@
</div>
</div>
<div class="layui-col-xs1">
@ -132,8 +132,8 @@
<div class="layui-col-xs1" style="text-align:center;display:none;" id="critIDDIV">
<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()">
<i class="layui-icon layui-icon-sm" style="font-size: 30px; color: #1E9FFF;">&#xe60a;</i>
</a>*@
<i class="layui-icon layui-icon-sm" style="font-size: 30px; color: #1E9FFF;">&#xe60a;</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 class="layui-col-xs3">
@ -359,7 +359,9 @@
<h2 class="layui-colla-title">細項資料</h2>
<div class="layui-colla-content layui-show">
<table id="MydataTable" class="layui-table">
@{ int i = 0;}
@{
int i = 0;
}
<thead>
<tr>
<th>箱號</th>
@ -508,11 +510,13 @@
</div>
@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">
layui.use(['form' ,'layer','laydate'], function () {
layui.use(['form', 'layer', 'laydate'], function () {
var form = layui.form;
});
@ -520,75 +524,98 @@
function detail(obj) {
let InhouseNo = $("#hInhouseNo").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
function getUserName(val) {
if (val.value.length != 0) {
$.ajax(
{
url: "@Url.Action("getUserName", "SYS")",
dataType: 'json',
data: { "userNo": val.value},
type: 'post',
success: function (result)
$.ajax(
{
$(val).closest('div.layui-col-xs2').find('label[id*=' + val.id + '_Name]').text(result.data);
},
error: function (result)
{
alert(result);
}
});
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);
},
error: function (result) {
alert(result);
}
});
}
};
function edit() {
layui.use('layer', function () {
var layer = layui.layer;
layer.open({
title: '抽驗',
type: 2,
area: ['600px', '550px'],
fixed: false, //不固定
maxmin: false,
scrollbar: true,
moveOut:true,
content: '/FQC/FQC007C?inhouseNo=@Model.h_InhouseNo&seq=@Model.h_SeqID',
end: function () {
window.location.reload();
}
});
var data = $("#FQC007Form").serialize();
$.ajax({
url: "@Url.Action("FQC007AjaxJson", "FQC")",
type: "POST",
data: data,
success: function (result) {
layui.use('layer', function () {
var layer = layui.layer;
layer.open({
title: '抽驗',
type: 2,
area: ['600px', '550px'],
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);
};
function result() {
//hg.open('判定結果', '/FQC/FQC007B/', 600, 400);
layui.use('layer', function () {
var layer = layui.layer;
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'
});
var data = $("#FQC007Form").serialize();
$.ajax({
url: "@Url.Action("FQC007AjaxJson", "FQC")",
type: "POST",
data: data,
success: function (result) {
layui.use('layer', function () {
var layer = layui.layer;
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() {
if (@Model.FqcID == 0) {parent.hg.msg('請先抽驗一筆紀錄!');
if (@Model.FqcID == 0) {
parent.hg.msg('請先抽驗一筆紀錄!');
return;
};
layui.use('layer', function () {
var layer = layui.layer;
layer.open({
title: '文件上傳',
layui.use('layer', function () {
var layer = layui.layer;
layer.open({
title: '文件上傳',
type: 2,
area: ['600px', '400px'],
fixed: false, //不固定
@ -600,58 +627,59 @@
// QCITEM
function addQcItem() {
if ('@Model.WipNo' == '' ) {parent.hg.msg('請搜尋入庫單號!');
if ('@Model.WipNo' == '') {
parent.hg.msg('請搜尋入庫單號!');
return;
}
layui.use('layer', function () {
var layer = layui.layer;
layer.open({
title: '檢驗工項維護',
type: 2,
area: ['700px', '500px'],
fixed: false, //不固定
maxmin: true,
content: '/FQC/FQC007A?wipNo=@Model.WipNo&itemNo=@Model.ItemNo',
end: function () {
window.location.reload();
}
}
layui.use('layer', function () {
var layer = layui.layer;
layer.open({
title: '檢驗工項維護',
type: 2,
area: ['700px', '500px'],
fixed: false, //不固定
maxmin: true,
content: '/FQC/FQC007A?wipNo=@Model.WipNo&itemNo=@Model.ItemNo',
end: function () {
window.location.reload();
}
});
});
}
// OpenQC
function openQC() {
layui.use('layer', function () {
var layer = layui.layer;
layer.open({
title: 'QC',
type: 2,
area: ['700px', '500px'],
btn:['確定','取消'],
fixed: false, //不固定
maxmin: false,
content: '/FQC/FQC007E?AQLType=@Model.AQLType&QCQty=@Model.InhouseQty',
yes: function (index, layero) {
//var body = layer.getChildFrame('body', index);
var obj = layero.find("iframe")[0].contentWindow;
$('#CritID').val(obj.$("#critID").val());
$('#QuotDescription').val(obj.$("#quotDescription").val());
$('#AQL').text(obj.$("#aql").val());
$('#QcQty').text(obj.$("#qcQty").val());
$('#ReQty').text(obj.$("#reQty").val());
$('#AcQty').text(obj.$("#acQty").val());
layer.close(index);
var data = $("#FQC007Form").serialize();
data += "&CritID=" + obj.$("#critID").val();
layui.use('layer', function () {
var layer = layui.layer;
layer.open({
title: 'QC',
type: 2,
area: ['700px', '500px'],
btn: ['確定', '取消'],
fixed: false, //不固定
maxmin: false,
content: '/FQC/FQC007E?AQLType=@Model.AQLType&QCQty=@Model.InhouseQty',
yes: function (index, layero) {
//var body = layer.getChildFrame('body', index);
var obj = layero.find("iframe")[0].contentWindow;
$('#CritID').val(obj.$("#critID").val());
$('#QuotDescription').val(obj.$("#quotDescription").val());
$('#AQL').text(obj.$("#aql").val());
$('#QcQty').text(obj.$("#qcQty").val());
$('#ReQty').text(obj.$("#reQty").val());
$('#AcQty').text(obj.$("#acQty").val());
layer.close(index);
var data = $("#FQC007Form").serialize();
data += "&CritID=" + obj.$("#critID").val();
$.ajax({
url: "@Url.Action("FQC007ByCritID", "FQC")",
type: "POST",
data: data,
success: function (result) {
}
url: "@Url.Action("FQC007ByCritID", "FQC")",
type: "POST",
data: data,
success: function (result) {
}
});
}
});
}
});
});
}
@ -677,7 +705,7 @@
$("#CustomerVIP").attr("disabled", "disabled");
if ($(error).text() != '') {
parent.hg.msg(error);
parent.hg.msg(error);
};
let InhouseNo = $("#hInhouseNo").val().trim();
@ -689,7 +717,7 @@
$("#critID").show();
}
setupEnterToNext();
});
});
function setupEnterToNext() {
// 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>
.control-label {
@ -107,7 +108,7 @@
</div>
<label asp-for="WipInfo.WipType" class="layui-form-label"></label>
<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>
@ -116,7 +117,9 @@
<fieldset class="layui-elem-field layui-field-title">
<legend>內部條碼資料</legend>
<table id="MydataTable" class="layui-table" style="width:50%">
@{ int i = 0;}
@{
int i = 0;
}
<thead>
<tr>
<th>
@ -132,6 +135,8 @@
</tr>
</thead>
<tbody>
@if (Model.WipBarcodes != null)
{
@foreach (var index in Model.WipBarcodes)
{
<tr>
@ -149,6 +154,7 @@
</tr>
i++;
}
}
</tbody>
</table>
</fieldset>
@ -198,42 +204,42 @@
});
// Table 刪除
function Remove(button,StrNo,EndNo) {
function Remove(button, StrNo, EndNo) {
hg.confirm("起始生產條碼:" + StrNo + ",結束生產條碼:" + EndNo + ",确定要删除嗎?", function () {
$.ajax({
url: '@Url.Action("PCS004D", "PCS")',
dataType:'json',
data: { "WipNo": $("#WipInfo_WipNO").val(), "StrNo": StrNo, "EndNo": EndNo},
cache: false,
type: "POST",
success: function (data) {
if (data.success) {
hg.msg("删除成功!");
var row = $(button).closest("TR");
var table = $("#MydataTable")[0];
table.deleteRow(row[0].rowIndex);
}
},
error: function (jqXHR, textStatus, errorThrown) {
hg.msg("Found error when using Ajax!!");
$.ajax({
url: '@Url.Action("PCS004D", "PCS")',
dataType: 'json',
data: { "WipNo": $("#WipInfo_WipNO").val(), "StrNo": StrNo, "EndNo": EndNo },
cache: false,
type: "POST",
success: function (data) {
if (data.success) {
hg.msg("删除成功!");
var row = $(button).closest("TR");
var table = $("#MydataTable")[0];
table.deleteRow(row[0].rowIndex);
}
});
},
error: function (jqXHR, textStatus, errorThrown) {
hg.msg("Found error when using Ajax!!");
}
});
});
};
$(document).ready(function () {
var error = '@Html.ValidationMessage("error")';
if ($(error).text() != '') {
parent.hg.msg(error);
}
$(document).ready(function () {
var error = '@Html.ValidationMessage("error")';
if ($(error).text() != '') {
parent.hg.msg(error);
}
//关闭弹出层
if ('@ViewBag.Msg' != '') {
//hg.close();
hg.msg('@ViewBag.Msg');
}
});
if ('@ViewBag.Msg' != '') {
//hg.close();
hg.msg('@ViewBag.Msg');
}
});
</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