24 changed files with 2032 additions and 232 deletions
@ -0,0 +1,154 @@ |
|||||
|
@{ |
||||
|
ViewData["Title"] = "FQC檢驗項目群組名稱維護"; |
||||
|
Layout = "~/Views/Shared/_AMESLayout.cshtml"; |
||||
|
} |
||||
|
|
||||
|
<div class="layui-card"> |
||||
|
<div class="layui-card-header"> |
||||
|
<div class="layui-form"> |
||||
|
<div class="layui-form-item "> |
||||
|
<div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="layui-card-body"> |
||||
|
<div class="layui-form"> |
||||
|
<div class="layui-row"> |
||||
|
<div class="layui-form-item"> |
||||
|
<div class="layui-col-sm3"> |
||||
|
<div class="layui-inline"> |
||||
|
<label class="layui-form-label">群組代號</label> |
||||
|
<div class="layui-input-inline" style="width:140px"> |
||||
|
<input id="no" name="no" autocomplete="off" class="layui-input"> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="layui-col-sm3"> |
||||
|
<div class="layui-inline"> |
||||
|
<label class="layui-form-label">群組名稱</label> |
||||
|
<div class="layui-input-inline" style="width:140px"> |
||||
|
<input id="name" name="name" autocomplete="off" class="layui-input"> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="layui-col-sm3"> |
||||
|
<div class="layui-inline"> |
||||
|
<label class="layui-form-label">料號</label> |
||||
|
<div class="layui-input-inline" style="width:140px"> |
||||
|
<input id="itemNo" name="itemNo" autocomplete="off" class="layui-input"> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="layui-col-sm1"> |
||||
|
<div class="layui-inline layui-show-xs-block"> |
||||
|
<button class="layui-btn layui-btn-sm layui-btn-normal" lay-submit lay-filter="querysubmit"> |
||||
|
<i class="layui-icon layui-icon-sm"></i> |
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<table class="layui-hide" id="test" lay-filter="test"></table> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts{ |
||||
|
<script type="text/javascript"> |
||||
|
layui.use(['form', 'layer', 'table'], function () { |
||||
|
form = layui.form; |
||||
|
}); |
||||
|
|
||||
|
//监听表单提交事件 |
||||
|
hg.form.onsubmit('querysubmit', function (data) { |
||||
|
table && table.reload(data); |
||||
|
}); |
||||
|
var tableCols = [[ |
||||
|
{ |
||||
|
field: 'itemGroupNo', |
||||
|
title: '群組代號', |
||||
|
sort: true |
||||
|
}, |
||||
|
{ |
||||
|
field: 'itemGroupName', |
||||
|
title: '群組名稱', |
||||
|
sort: true |
||||
|
}, |
||||
|
{ |
||||
|
field: 'itemGroupDesc', |
||||
|
title: '群組描述', |
||||
|
sort: true |
||||
|
}, |
||||
|
{ |
||||
|
field: 'right', |
||||
|
width: 260, |
||||
|
title: '操作', |
||||
|
fixed: 'right', |
||||
|
templet: function (d) { |
||||
|
return `<a class="layui-btn layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">修改</a> |
||||
|
<a class="layui-btn layui-bg-blue layui-btn-xs layui-icon layui-icon-form" lay-event="settingItem">設定項目</a> |
||||
|
<a class="layui-btn layui-bg-orange layui-btn-xs layui-icon layui-icon-list" lay-event="settingMaterial">綁定料號</a>` |
||||
|
// <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" lay-event="del">删除</a>` |
||||
|
} |
||||
|
}] |
||||
|
]; |
||||
|
|
||||
|
//修改 |
||||
|
function edit(obj) { |
||||
|
if (obj.data.fqcItemGroupId) { |
||||
|
hg.open('修改檢驗項目群組名稱', '/FQC/FQC013U/' + obj.data.fqcItemGroupId, 400, 400); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//設定項目 |
||||
|
function settingItem(obj) { |
||||
|
if (obj.data.fqcItemGroupId) { |
||||
|
hg.open(`檢驗群組設定項目:${obj.data.itemGroupNo}`, '/FQC/FQC013A?fqcItemGroupId= ' + obj.data.fqcItemGroupId, 800, 550); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//綁定料號 |
||||
|
function settingMaterial(obj) { |
||||
|
if (obj.data.fqcItemGroupId) { |
||||
|
hg.open(`檢驗群組綁定料號:${obj.data.itemGroupNo}`, '/FQC/FQC013B?groupId= ' + obj.data.fqcItemGroupId, 800, 550); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//删除 |
||||
|
function del(obj) { |
||||
|
if (obj.data.fqcItemGroupId) { |
||||
|
hg.confirm("群組代碼:" + obj.data.itemGroupNo + "【" + obj.data.itemGroupName + "】,確定相關資料全部刪除嗎?", function () { |
||||
|
$.ajax({ |
||||
|
url: '/FQC/FQC013D', |
||||
|
data: { id: obj.data.fqcItemGroupId }, |
||||
|
type: 'POST', |
||||
|
success: function (data) { |
||||
|
if (data.success) { |
||||
|
obj.del(); //只删本地数据 |
||||
|
hg.msghide("删除成功!"); |
||||
|
} |
||||
|
else { |
||||
|
hg.msg(data.msg); |
||||
|
} |
||||
|
}, |
||||
|
error: function () { |
||||
|
hg.msg("網路請求失敗!"); |
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
var toolbar = [{ |
||||
|
text: '新增', |
||||
|
layuiicon: '', |
||||
|
class: 'layui-btn-normal', |
||||
|
handler: function () { |
||||
|
hg.open('新增檢驗項目群組名稱', '/FQC/FQC013C', 400, 400); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
]; |
||||
|
//基本数据表格 |
||||
|
var table = hg.table.datatable('test', '檢驗項目群組名稱', '/FQC/FQC013Query', {}, tableCols, toolbar, false, 'full-100', ['filter', 'print', 'exports']); |
||||
|
</script> |
||||
|
} |
@ -0,0 +1,153 @@ |
|||||
|
@{ |
||||
|
ViewData["Title"] = "FQC項目群組檢驗工項維護"; |
||||
|
Layout = "~/Views/Shared/_AMESLayout.cshtml"; |
||||
|
} |
||||
|
|
||||
|
<style> |
||||
|
.control-label { |
||||
|
justify-content: flex-end !important; |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
|
<div class="layui-card"> |
||||
|
<div class="layui-card-body"> |
||||
|
<input type="hidden" value=@ViewBag.GroupId id="groupId" /> |
||||
|
<input type="hidden" value=@ViewBag.GroupNo id="groupNo" /> |
||||
|
<input type="hidden" value=@ViewBag.GroupName id="groupName" /> |
||||
|
<span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3" id="error"></span> |
||||
|
<table class="layui-hide" id="tableQuery" name="tableQuery" lay-filter="tableQuery"></table> |
||||
|
</div> |
||||
|
</div> |
||||
|
<script type="text/html" id="toolbarDemo"> |
||||
|
<div class="layui-btn-container"> |
||||
|
<button class="layui-btn layui-btn-sm layui-btn" lay-event="add">儲存</button> |
||||
|
</div> |
||||
|
</script> |
||||
|
|
||||
|
@section Scripts { |
||||
|
@{ |
||||
|
await Html.RenderPartialAsync("_ValidationScriptsPartial"); |
||||
|
await Html.RenderPartialAsync("_FileinputScriptsPartial"); |
||||
|
} |
||||
|
|
||||
|
<script type="text/javascript"> |
||||
|
function initQuery(data) { |
||||
|
layui.use(['form', 'table'], function () { |
||||
|
var itemGroupId = $('#groupId').val(); |
||||
|
var itemgroupNo = $('#groupNo').val(); |
||||
|
var itemgroupName = $('#groupName').val(); |
||||
|
table = layui.table; |
||||
|
form = layui.form; |
||||
|
|
||||
|
//方法級渲染 |
||||
|
table.render({ //其它参数在此省略 |
||||
|
elem: '#tableQuery', |
||||
|
url: "@Url.Action("FQC013A_Query", "FQC")", |
||||
|
title: `${itemgroupNo}-${itemgroupName} 檢驗工項`, |
||||
|
id: 'itemID', |
||||
|
page: false, //开启分页 |
||||
|
toolbar: '#toolbarDemo', |
||||
|
limits: [20, 50, 100], |
||||
|
defaultToolbar: ['filter', 'print', 'exports'], |
||||
|
cols: tableCols, |
||||
|
response: { msgName: 'msg' }, |
||||
|
where: { fqcItemGroupId: itemGroupId }, |
||||
|
done: function (res, curr, count) { |
||||
|
// |
||||
|
if (res.msg != '') { |
||||
|
hg.msg(res.msg); |
||||
|
$('#error').text(res.msg); |
||||
|
} |
||||
|
|
||||
|
//迴圈所有資料,找出對應關係,設定checkbox選中狀態 |
||||
|
for (var i = 0; i < res.data.length; i++) { |
||||
|
if (res.data[i].check) { |
||||
|
//這裡才是真正的有效勾選 |
||||
|
res.data[i]["LAY_CHECKED"] = 'true'; |
||||
|
//找到對應資料改變勾選樣式,呈現出選中效果 |
||||
|
var index = res.data[i]['LAY_TABLE_INDEX']; |
||||
|
$('.layui-table tr[data-index=' + index + '] input[type="checkbox"]').prop('checked', true); |
||||
|
$('.layui-table tr[data-index=' + index + '] input[type="checkbox"]').next().addClass('layui-form-checked'); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
//触发事件 |
||||
|
table.on('toolbar(tableQuery)', function (obj) { |
||||
|
var checkStatus = table.checkStatus(obj.config.id); |
||||
|
if (obj.event == 'add') { |
||||
|
if (checkStatus && checkStatus.data.length > 0) { |
||||
|
console.log(checkStatus.data.map(function (x) { return x.itemID }).join(',')) |
||||
|
var itemID = checkStatus.data.map(function (x) { return x.itemID }).join(','); |
||||
|
var groupID = checkStatus.data.map(function (x) { return x.groupID }).join(','); |
||||
|
hg.confirm("確定要綁定有勾選的檢驗工項嗎?", function () { |
||||
|
$.ajax({ |
||||
|
url: '/FQC/FQC013A_Submit', |
||||
|
data: { 'itemID': itemID, 'groupID': groupID, 'fqcItemGroupId': itemGroupId }, |
||||
|
type: 'POST', |
||||
|
success: function (data) { |
||||
|
if (data.success) { |
||||
|
hg.msg('儲存成功!'); |
||||
|
//重载表格数据 |
||||
|
//initQuery(data); |
||||
|
} |
||||
|
else { |
||||
|
//hg.msg(data.msg); |
||||
|
hg.msg(data.msg); |
||||
|
} |
||||
|
}, |
||||
|
error: function () { |
||||
|
hg.msg("網路請求失敗!"); |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
}); |
||||
|
} else { |
||||
|
hg.msg('请勾選要綁定的檢驗工項,再執行!'); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
else if (obj.event === 'LAYTABLE_EXPORT') { |
||||
|
// 获取被勾选的数据行 |
||||
|
var selectedRows = checkStatus.data; |
||||
|
// 导出 Excel |
||||
|
table.exportFile(obj.config.id, selectedRows, 'xls'); |
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
$(document).ready(function () { |
||||
|
initQuery(); |
||||
|
}); |
||||
|
|
||||
|
|
||||
|
var tableCols = [[ |
||||
|
{ type: 'checkbox', title: '全選' }, |
||||
|
{ |
||||
|
field: 'groupNameCN', |
||||
|
title: '類別中文', |
||||
|
sort: true |
||||
|
}, |
||||
|
{ |
||||
|
field: 'groupNameEN', |
||||
|
title: '類別英文', |
||||
|
}, |
||||
|
{ |
||||
|
field: 'itemNameCN', |
||||
|
title: '項目中文', |
||||
|
sort: true |
||||
|
}, |
||||
|
{ |
||||
|
field: 'itemNameEN', |
||||
|
title: '項目英文', |
||||
|
}, |
||||
|
{ |
||||
|
field: 'itemTypeName', |
||||
|
title: '類型', |
||||
|
}, |
||||
|
]]; |
||||
|
|
||||
|
</script> |
||||
|
} |
@ -0,0 +1,167 @@ |
|||||
|
@{ |
||||
|
ViewData["Title"] = "檢驗群組綁定料號"; |
||||
|
Layout = "~/Views/Shared/_AMESLayout.cshtml"; |
||||
|
} |
||||
|
|
||||
|
<div class="layui-card"> |
||||
|
<div class="layui-card-body"> |
||||
|
<div class="layui-row"> |
||||
|
<div class="layui-col-sm10"> |
||||
|
<div class="layui-inline"> |
||||
|
<label class="layui-form-label">料號</label> |
||||
|
<div class="layui-input-inline"> |
||||
|
<input id="material" placeholder="請輸入要加入的料號" name="material" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" autocomplete="off" class="layui-input autocomplete"> |
||||
|
</div> |
||||
|
<div class="layui-input-inline" style="width:300px;"> |
||||
|
<input id="materialDesc" name="materialDesc" readonly autocomplete="off" class="layui-input"> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="layui-col-sm1"> |
||||
|
<div class="layui-inline layui-show-xs-block"> |
||||
|
<button id="addMaterial" class="layui-btn layui-btn-sm layui-btn-normal" lay-submit lay-filter="querysubmit" title="料號加入"> |
||||
|
<i class="layui-icon layui-icon-sm"></i> |
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<input type="hidden" value=@ViewBag.GroupId id="groupId" name="groupId" /> |
||||
|
<input type="hidden" value=@ViewBag.GroupNo id="groupNo" name="groupNo" /> |
||||
|
<input type="hidden" value=@ViewBag.GroupName id="groupName" name="groupName" /> |
||||
|
<table class="layui-hide" id="test" lay-filter="test"></table> |
||||
|
<button class="layui-btn layui-btn-sm layui-btn-normal" style="display:none;" lay-submit lay-filter="querysubmit"> |
||||
|
<i class="layui-icon layui-icon-sm"></i> |
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts{ |
||||
|
<script type="text/javascript"> |
||||
|
var groupId = $("#groupId").val(); |
||||
|
var itemgroupNo = $('#groupNo').val(); |
||||
|
var itemgroupName = $('#groupName').val(); |
||||
|
var title = `${itemgroupNo}-${itemgroupName} 綁定料號明細`; |
||||
|
|
||||
|
layui.config({ |
||||
|
base: '/js/' //假设这是test.js所在的目录 |
||||
|
}).extend({ //设定模块别名 |
||||
|
autocomplete: 'layAutoComplete' |
||||
|
}); |
||||
|
|
||||
|
layui.use(['form', 'layer', 'table', 'autocomplete'], function () { |
||||
|
form = layui.form; |
||||
|
|
||||
|
// PLM料號關鍵字 |
||||
|
$(".autocomplete").each(function () { |
||||
|
layui.autocomplete({ |
||||
|
element: this, |
||||
|
display: 'itemNo', |
||||
|
shortcut: 'modelName', |
||||
|
num: 2, |
||||
|
count: 10, |
||||
|
url: '/FQC/GetMeterialItemAutoComplete', |
||||
|
query: {}, |
||||
|
resArray: 'data', |
||||
|
done: function (item) { |
||||
|
$(this.element).closest('div.layui-inline').find('input[id*=' + this.element.id + 'Desc]').val(item.itemDesc); |
||||
|
} |
||||
|
}); |
||||
|
$(this).change(function () { |
||||
|
var txt = $(this).val(); |
||||
|
if (txt.length == 0) { |
||||
|
$(this).closest('div.layui-inline').find('input[id*=' + this.id + 'Desc]').val(''); |
||||
|
} |
||||
|
}); |
||||
|
}) |
||||
|
}); |
||||
|
|
||||
|
// 料號加入 |
||||
|
$("#addMaterial").click(function (event) { |
||||
|
if ($("#material").val() == '') { |
||||
|
parent.hg.msg("請輸入料號"); |
||||
|
return false; |
||||
|
} |
||||
|
|
||||
|
$.ajax({ |
||||
|
url: '@Url.Action("FQC013B_addMaterial", "FQC")', |
||||
|
dataType: 'json', |
||||
|
data: { "groupId": groupId, "materialNo": $("#material").val() }, |
||||
|
cache: false, |
||||
|
type: "POST", |
||||
|
success: function (result) { |
||||
|
// 錯誤訊息 |
||||
|
if (!result.success) { |
||||
|
parent.hg.msg(result.msg); |
||||
|
|
||||
|
} |
||||
|
else { |
||||
|
parent.hg.msg(result.msg); |
||||
|
} |
||||
|
tableReload(); |
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
|
||||
|
|
||||
|
|
||||
|
//监听表单提交事件 |
||||
|
hg.form.onsubmit('querysubmit', function (data) { |
||||
|
table && table.reload(data); |
||||
|
}); |
||||
|
|
||||
|
var tableCols = [[ |
||||
|
{ |
||||
|
field: 'itemNo', |
||||
|
title: '料號名稱', |
||||
|
sort: true |
||||
|
}, |
||||
|
{ |
||||
|
field: 'itemDesc', |
||||
|
title: '料號描述', |
||||
|
sort: true |
||||
|
}, |
||||
|
{ |
||||
|
field: 'right', |
||||
|
width: 100, |
||||
|
title: '操作', |
||||
|
fixed: 'right', |
||||
|
templet: function (d) { |
||||
|
return '<a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" lay-event="del">删除</a>' |
||||
|
} |
||||
|
}] |
||||
|
]; |
||||
|
|
||||
|
//通过行tool删除,lay-event="del" |
||||
|
function del(obj) { |
||||
|
if (obj.data.groupId) { |
||||
|
hg.confirm("綁定料號:" + "【" + obj.data.itemNo + "】,確定要刪除嗎?", function () { |
||||
|
$.ajax({ |
||||
|
url: '/FQC/FQC013B_Delete', |
||||
|
data: { groupId: obj.data.groupId, itemId: obj.data.itemId }, |
||||
|
type: 'POST', |
||||
|
success: function (data) { |
||||
|
if (data.success) { |
||||
|
obj.del(); //只删本地数据 |
||||
|
hg.msghide("删除成功!"); |
||||
|
} |
||||
|
else { |
||||
|
hg.msg("删除失敗!"); |
||||
|
} |
||||
|
}, |
||||
|
error: function () { |
||||
|
hg.msg("網路請求失敗!"); |
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//基本数据表格 |
||||
|
var table = hg.table.datatable('test', title, '/FQC/FQC013B_Query', { groupId: groupId }, tableCols, {}, false, 'full-100', ['filter', 'print', 'exports']); |
||||
|
|
||||
|
function tableReload() { |
||||
|
//基本数据表格 |
||||
|
var table = hg.table.datatable('test', title, '/FQC/FQC013B_Query', { groupId: groupId }, tableCols, {}, false, 'full-100', ['filter', 'print', 'exports']); |
||||
|
} |
||||
|
</script> |
||||
|
} |
@ -0,0 +1,70 @@ |
|||||
|
@model AMESCoreStudio.WebApi.Models.AMES.FqcItemGroup |
||||
|
|
||||
|
|
||||
|
@{ ViewData["Title"] = "FQC013C"; |
||||
|
Layout = "~/Views/Shared/_AMESLayout.cshtml"; } |
||||
|
|
||||
|
<style> |
||||
|
.control-label { |
||||
|
justify-content: flex-end !important; |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
|
<div class="layui-card"> |
||||
|
<div class="row"> |
||||
|
<div class="col-sm-12"> |
||||
|
<form enctype="multipart/form-data" method="post" asp-action="FQC013" class="layui-form"> |
||||
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div> |
||||
|
|
||||
|
<div class="layui-form-item"> |
||||
|
<label class="layui-form-label">群組代號</label> |
||||
|
<div class="layui-input-block"> |
||||
|
<input asp-for="ItemGroupNo" class="layui-input" autocomplete="off" placeholder="請輸入群組代號" /> |
||||
|
<span asp-validation-for="ItemGroupNo" class="layui-bg-red"></span> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="layui-form-item"> |
||||
|
<label class="layui-form-label">群組名稱</label> |
||||
|
<div class="layui-input-block"> |
||||
|
<input asp-for="ItemGroupName" class="layui-input" autocomplete="off" placeholder="請輸入群組名稱" /> |
||||
|
<span asp-validation-for="ItemGroupName" class="layui-bg-red"></span> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="layui-form-item"> |
||||
|
<label class="layui-form-label">群組描述</label> |
||||
|
<div class="layui-input-block"> |
||||
|
<input asp-for="ItemGroupDesc" class="layui-input" autocomplete="off" placeholder="群組描述"/> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> |
||||
|
<div class="layui-row" style="text-align:center"> |
||||
|
<div class="layui-col-md12"> |
||||
|
<input type="submit" value="儲存" class="layui-btn" /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts { |
||||
|
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); |
||||
|
await Html.RenderPartialAsync("_FileinputScriptsPartial"); } |
||||
|
|
||||
|
<script type="text/javascript"> |
||||
|
layui.use(['form'], function () { |
||||
|
form = layui.form; |
||||
|
}); |
||||
|
$(document).ready(function () { |
||||
|
var error = '@Html.ValidationMessage("error")'; |
||||
|
if ($(error).text() != '') { |
||||
|
parent.hg.msg(error); |
||||
|
} |
||||
|
}); |
||||
|
</script> |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,75 @@ |
|||||
|
@model AMESCoreStudio.WebApi.Models.AMES.FqcItemGroup |
||||
|
|
||||
|
|
||||
|
@{ |
||||
|
ViewData["Title"] = "FQC013U"; |
||||
|
Layout = "~/Views/Shared/_AMESLayout.cshtml"; |
||||
|
} |
||||
|
|
||||
|
<style> |
||||
|
.control-label { |
||||
|
justify-content: flex-end !important; |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
|
<div class="layui-card"> |
||||
|
<div class="row"> |
||||
|
<div class="col-sm-12"> |
||||
|
<form enctype="multipart/form-data" method="post" asp-action="FQC013" class="layui-form"> |
||||
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div> |
||||
|
<input type="hidden" asp-for="FqcItemGroupId" value="@Model.FqcItemGroupId" /> |
||||
|
<input type="hidden" asp-for="ItemGroupNo" value="@Model.ItemGroupNo" /> |
||||
|
|
||||
|
<div class="layui-form-item"> |
||||
|
<label class="layui-form-label">群組代號</label> |
||||
|
<div class="layui-input-block"> |
||||
|
<input asp-for="ItemGroupNo" class="layui-input" readonly autocomplete="off" placeholder="請輸入群組代號" /> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="layui-form-item"> |
||||
|
<label class="layui-form-label">群組名稱</label> |
||||
|
<div class="layui-input-block"> |
||||
|
<input asp-for="ItemGroupName" class="layui-input" autocomplete="off" placeholder="請輸入群組名稱" /> |
||||
|
<span asp-validation-for="ItemGroupName" class="layui-bg-red"></span> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="layui-form-item"> |
||||
|
<label class="layui-form-label">群組描述</label> |
||||
|
<div class="layui-input-block"> |
||||
|
<input asp-for="ItemGroupDesc" class="layui-input" autocomplete="off" placeholder="群組描述" /> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> |
||||
|
<div class="layui-row" style="text-align:center"> |
||||
|
<div class="layui-col-md12"> |
||||
|
<input type="submit" value="儲存" class="layui-btn" /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts { |
||||
|
@{ |
||||
|
await Html.RenderPartialAsync("_ValidationScriptsPartial"); |
||||
|
await Html.RenderPartialAsync("_FileinputScriptsPartial"); |
||||
|
} |
||||
|
|
||||
|
<script type="text/javascript"> |
||||
|
layui.use(['form'], function () { |
||||
|
form = layui.form; |
||||
|
}); |
||||
|
$(document).ready(function () { |
||||
|
var error = '@Html.ValidationMessage("error")'; |
||||
|
if ($(error).text() != '') { |
||||
|
parent.hg.msg(error); |
||||
|
} |
||||
|
}); |
||||
|
</script> |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,196 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using System.Threading.Tasks; |
||||
|
using Microsoft.AspNetCore.Http; |
||||
|
using Microsoft.AspNetCore.Mvc; |
||||
|
using Microsoft.EntityFrameworkCore; |
||||
|
using AMESCoreStudio.WebApi; |
||||
|
using AMESCoreStudio.WebApi.Models.AMES; |
||||
|
using AMESCoreStudio.CommonTools.Result; |
||||
|
using System.Text.RegularExpressions; |
||||
|
using Dapper; |
||||
|
using AMESCoreStudio.WebApi.Extensions; |
||||
|
using System.Data; |
||||
|
|
||||
|
namespace AMESCoreStudio.WebApi.Controllers.AMES |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// FQC檢驗項目群組名稱設定檔
|
||||
|
/// </summary>
|
||||
|
[Route("api/[controller]")]
|
||||
|
[ApiController] |
||||
|
public class FqcItemGroupController : ControllerBase |
||||
|
{ |
||||
|
private readonly AMESContext _context; |
||||
|
|
||||
|
public FqcItemGroupController(AMESContext context) |
||||
|
{ |
||||
|
_context = context; |
||||
|
} |
||||
|
|
||||
|
[HttpGet] |
||||
|
public async Task<ActionResult<IEnumerable<FqcItemGroup>>> GetFqcItemGroups() |
||||
|
{ |
||||
|
return await _context.FqcItemGroups.ToListAsync(); |
||||
|
} |
||||
|
|
||||
|
[HttpGet("{id}")] |
||||
|
public async Task<ActionResult<FqcItemGroup>> GetFqcItemGroup(int id) |
||||
|
{ |
||||
|
var fqcItemGroup = await _context.FqcItemGroups.FindAsync(id); |
||||
|
return fqcItemGroup; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// FQC檢驗項目群組名稱設定檔 By Query
|
||||
|
/// </summary>
|
||||
|
/// <param name="no">群組代號</param>
|
||||
|
/// <param name="name">群組名稱</param>
|
||||
|
/// <param name="desc">群組描述</param>
|
||||
|
/// <param name="itemNo">料號</param>
|
||||
|
/// <param name="page">頁數</param>
|
||||
|
/// <param name="limit">筆數</param>
|
||||
|
/// <returns></returns>
|
||||
|
[HttpGet("FqcItemGroupQuery")] |
||||
|
public async Task<ResultModel<FqcItemGroup>> GetFqcItemGroupQuery(string no, string name, string desc, string itemNo, int page = 0, int limit = 10) |
||||
|
{ |
||||
|
ResultModel<FqcItemGroup> result = new ResultModel<FqcItemGroup>(); |
||||
|
|
||||
|
var query = @$" SELECT DISTINCT
|
||||
|
G.FQC_ITEM_GROUP_ID AS fqcItemGroupId , |
||||
|
G.ITEM_GROUP_NO AS itemGroupNo , |
||||
|
G.ITEM_GROUP_NAME AS itemGroupName , |
||||
|
G.ITEM_GROUP_DESC AS itemGroupDesc |
||||
|
FROM JHAMES.FQC_ITEM_GROUP G |
||||
|
LEFT JOIN JHAMES.FQC_ITEM_GROUP_MATERIAL GM ON G.FQC_ITEM_GROUP_ID = GM.GROUP_ID |
||||
|
LEFT JOIN JHAMES.MATERIAL_ITEM M ON GM.ITEM_ID = M.ITEM_ID |
||||
|
WHERE 1 = 1 ";
|
||||
|
|
||||
|
DynamicParameters p = new DynamicParameters(); |
||||
|
if (!string.IsNullOrWhiteSpace(no)) |
||||
|
{ |
||||
|
query += " AND UPPER(G.ITEM_GROUP_NO) LIKE :No "; |
||||
|
p.Add("No", $"%{no.Trim().ToUpper()}%", DbType.String); |
||||
|
} |
||||
|
|
||||
|
if (!string.IsNullOrWhiteSpace(name)) |
||||
|
{ |
||||
|
query += " AND G.ITEM_GROUP_NAME LIKE :Name "; |
||||
|
p.Add("Name", $"%{name.Trim().ToUpper()}%", DbType.String); |
||||
|
} |
||||
|
|
||||
|
if (!string.IsNullOrWhiteSpace(desc)) |
||||
|
{ |
||||
|
query += " AND G.ITEM_GROUP_DESC LIKE :GroupDesc "; |
||||
|
p.Add("GroupDesc", $"%{desc.Trim().ToUpper()}%", DbType.String); |
||||
|
} |
||||
|
|
||||
|
if (!string.IsNullOrWhiteSpace(itemNo)) |
||||
|
{ |
||||
|
query += " AND UPPER(M.ITEM_NO) LIKE :ItemNo "; |
||||
|
p.Add("ItemNo", $"%{itemNo.Trim().ToUpper()}%", DbType.String); |
||||
|
} |
||||
|
|
||||
|
var q = await _context.Database.DapperQueryAsync<FqcItemGroup>(query, p); |
||||
|
|
||||
|
// 紀錄筆數
|
||||
|
result.DataTotal = q.Count(); |
||||
|
|
||||
|
// Table 頁數
|
||||
|
if (page > 0) |
||||
|
{ |
||||
|
q = q.Skip((page - 1) * limit).Take(limit); |
||||
|
} |
||||
|
result.Data = q; |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 更新FQC檢驗項目群組名稱設定檔
|
||||
|
/// </summary>
|
||||
|
/// <param name="fqcItemGroup"></param>
|
||||
|
/// <returns></returns>
|
||||
|
[HttpPut] |
||||
|
public async Task<ResultModel<FqcItemGroup>> PutFqcItemGroup(FqcItemGroup fqcItemGroup) |
||||
|
{ |
||||
|
ResultModel<FqcItemGroup> result = new ResultModel<FqcItemGroup>(); |
||||
|
_context.Entry(fqcItemGroup).State = EntityState.Modified; |
||||
|
_context.Entry<FqcItemGroup>(fqcItemGroup).Property("CreateDate").IsModified = false; |
||||
|
_context.Entry<FqcItemGroup>(fqcItemGroup).Property("CreateUserID").IsModified = false; |
||||
|
fqcItemGroup.UpdateDate = DateTime.Now; |
||||
|
|
||||
|
try |
||||
|
{ |
||||
|
await _context.SaveChangesAsync(); |
||||
|
result.Success = true; |
||||
|
result.Msg = "OK"; |
||||
|
} |
||||
|
catch (Exception ex) |
||||
|
{ |
||||
|
result.Success = false; |
||||
|
result.Msg = ex.InnerException.Message; |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 新增FQC檢驗項目群組名稱設定檔
|
||||
|
/// </summary>
|
||||
|
/// <param name="fqcItemGroup"></param>
|
||||
|
/// <returns></returns>
|
||||
|
[HttpPost] |
||||
|
public async Task<ResultModel<FqcItemGroup>> PostFqcItemGroup(FqcItemGroup fqcItemGroup) |
||||
|
{ |
||||
|
ResultModel<FqcItemGroup> result = new ResultModel<FqcItemGroup>(); |
||||
|
Helper helper = new Helper(_context); |
||||
|
fqcItemGroup.FqcItemGroupId = helper.GetIDKey("FQC_ITEM_GROUP_ID").Result; |
||||
|
_context.FqcItemGroups.Add(fqcItemGroup); |
||||
|
try |
||||
|
{ |
||||
|
await _context.SaveChangesAsync(); |
||||
|
result.Success = true; |
||||
|
result.Msg = "OK"; |
||||
|
} |
||||
|
catch (Exception ex) |
||||
|
{ |
||||
|
result.Success = false; |
||||
|
result.Msg = ex.InnerException.Message; |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
[HttpDelete("{id}")] |
||||
|
public async Task<ResultModel<string>> DeleteFqcItemGroup(int id) |
||||
|
{ |
||||
|
ResultModel<string> result = new ResultModel<string>(); |
||||
|
var fqcItemGroup = await _context.FqcItemGroups.FindAsync(id); |
||||
|
var fqcItem = await _context.FqcItems.Where(w => w.GroupId == id).ToListAsync(); |
||||
|
var fqcItemGroupMaterial = await _context.FqcItemGroupMaterials |
||||
|
.Where(w => w.GroupId == id).ToListAsync(); |
||||
|
try |
||||
|
{ |
||||
|
if (fqcItemGroup == null) |
||||
|
{ |
||||
|
result.Success = false; |
||||
|
result.Msg = "找不到要刪除資料"; |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
_context.FqcItemGroups.Remove(fqcItemGroup); |
||||
|
_context.FqcItems.RemoveRange(fqcItem); |
||||
|
_context.FqcItemGroupMaterials.RemoveRange(fqcItemGroupMaterial); |
||||
|
await _context.SaveChangesAsync(); |
||||
|
result.Success = true; |
||||
|
result.Msg = "OK"; |
||||
|
} |
||||
|
} |
||||
|
catch (Exception ex) |
||||
|
{ |
||||
|
result.Success = false; |
||||
|
result.Msg = ex.InnerException.Message; |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,159 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using System.Threading.Tasks; |
||||
|
using Microsoft.AspNetCore.Http; |
||||
|
using Microsoft.AspNetCore.Mvc; |
||||
|
using Microsoft.EntityFrameworkCore; |
||||
|
using AMESCoreStudio.WebApi; |
||||
|
using AMESCoreStudio.WebApi.Models.AMES; |
||||
|
using AMESCoreStudio.CommonTools.Result; |
||||
|
using System.Text.RegularExpressions; |
||||
|
using Dapper; |
||||
|
using AMESCoreStudio.WebApi.Extensions; |
||||
|
|
||||
|
namespace AMESCoreStudio.WebApi.Controllers.AMES |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// FQC檢驗項目群組指定料號設定檔
|
||||
|
/// </summary>
|
||||
|
[Route("api/[controller]")]
|
||||
|
[ApiController] |
||||
|
public class FqcItemGroupMaterialController : ControllerBase |
||||
|
{ |
||||
|
private readonly AMESContext _context; |
||||
|
|
||||
|
public FqcItemGroupMaterialController(AMESContext context) |
||||
|
{ |
||||
|
_context = context; |
||||
|
} |
||||
|
|
||||
|
[HttpGet] |
||||
|
public async Task<ActionResult<IEnumerable<FqcItemGroupMaterial>>> GetFqcItemGroupMaterials() |
||||
|
{ |
||||
|
return await _context.FqcItemGroupMaterials.ToListAsync(); |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// By GroupId 查詢
|
||||
|
/// </summary>
|
||||
|
/// <param name="id">GroupId</param>
|
||||
|
/// <returns></returns>
|
||||
|
[HttpGet("ByGroupId/{id}")] |
||||
|
public async Task<ActionResult<IEnumerable<FqcItemGroupMaterial>>> GetFqcItemGroupMaterialByGroupId(int id) |
||||
|
{ |
||||
|
var query = @" SELECT
|
||||
|
F.GROUP_ID AS groupId , |
||||
|
M.ITEM_ID AS itemId , |
||||
|
M.ITEM_NO AS itemNo , |
||||
|
M.ITEM_DESC AS itemDesc , |
||||
|
F.CREATE_USERID AS createUserID , |
||||
|
F.CREATE_DATE AS createDate , |
||||
|
F.UPDATE_USERID AS updateUserID , |
||||
|
F.UPDATE_DATE AS updateDate |
||||
|
FROM JHAMES.FQC_ITEM_GROUP_MATERIAL F |
||||
|
INNER JOIN JHAMES.MATERIAL_ITEM M ON F.ITEM_ID = M.ITEM_ID |
||||
|
WHERE F.GROUP_ID = :GroupId";
|
||||
|
DynamicParameters p = new DynamicParameters(); |
||||
|
p.Add("GroupId", id); |
||||
|
var result = await _context.Database.DapperQueryAsync<FqcItemGroupMaterial>(query, p); |
||||
|
return result.ToList(); |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// By ItemId 查詢
|
||||
|
/// </summary>
|
||||
|
/// <param name="id">ItemId</param>
|
||||
|
/// <returns></returns>
|
||||
|
[HttpGet("ByItemId/{id}")] |
||||
|
public async Task<ActionResult<IEnumerable<FqcItemGroupMaterial>>> GetFqcItemGroupMaterialByItemId(int id) |
||||
|
{ |
||||
|
var query = @" SELECT
|
||||
|
F.GROUP_ID AS groupId , |
||||
|
M.ITEM_ID AS itemId , |
||||
|
M.ITEM_NO AS itemNo , |
||||
|
M.ITEM_DESC AS itemDesc , |
||||
|
F.CREATE_USERID AS createUserID , |
||||
|
F.CREATE_DATE AS createDate , |
||||
|
F.UPDATE_USERID AS updateUserID , |
||||
|
F.UPDATE_DATE AS updateDate |
||||
|
FROM JHAMES.FQC_ITEM_GROUP_MATERIAL F |
||||
|
INNER JOIN JHAMES.MATERIAL_ITEM M ON F.ITEM_ID = M.ITEM_ID |
||||
|
WHERE F.ITEM_ID = :ItemId";
|
||||
|
DynamicParameters p = new DynamicParameters(); |
||||
|
p.Add("ItemId", id); |
||||
|
var result = await _context.Database.DapperQueryAsync<FqcItemGroupMaterial>(query, p); |
||||
|
return result.ToList(); |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 更新檢驗群組指定料號設定檔
|
||||
|
/// </summary>
|
||||
|
/// <param name="fqcItemGroupMaterial"></param>
|
||||
|
/// <returns></returns>
|
||||
|
[HttpPut] |
||||
|
public async Task<ResultModel<FqcItemGroupMaterial>> PutFqcItemGroupMaterial(FqcItemGroupMaterial fqcItemGroupMaterial) |
||||
|
{ |
||||
|
ResultModel<FqcItemGroupMaterial> result = new ResultModel<FqcItemGroupMaterial>(); |
||||
|
_context.Entry(fqcItemGroupMaterial).State = EntityState.Modified; |
||||
|
_context.Entry<FqcItemGroupMaterial>(fqcItemGroupMaterial).Property("CreateDate").IsModified = false; |
||||
|
_context.Entry<FqcItemGroupMaterial>(fqcItemGroupMaterial).Property("CreateUserID").IsModified = false; |
||||
|
fqcItemGroupMaterial.UpdateDate = DateTime.Now; |
||||
|
|
||||
|
try |
||||
|
{ |
||||
|
await _context.SaveChangesAsync(); |
||||
|
result.Success = true; |
||||
|
result.Msg = "OK"; |
||||
|
} |
||||
|
catch (Exception ex) |
||||
|
{ |
||||
|
result.Success = false; |
||||
|
result.Msg = ex.InnerException.Message; |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 新增檢驗群組指定料號設定檔
|
||||
|
/// </summary>
|
||||
|
/// <param name="fqcItemGroupMaterial"></param>
|
||||
|
/// <returns></returns>
|
||||
|
[HttpPost] |
||||
|
public async Task<ResultModel<FqcItemGroupMaterial>> PostFqcItemGroupMaterial(FqcItemGroupMaterial fqcItemGroupMaterial) |
||||
|
{ |
||||
|
ResultModel<FqcItemGroupMaterial> result = new ResultModel<FqcItemGroupMaterial>(); |
||||
|
_context.FqcItemGroupMaterials.Add(fqcItemGroupMaterial); |
||||
|
try |
||||
|
{ |
||||
|
await _context.SaveChangesAsync(); |
||||
|
result.Success = true; |
||||
|
result.Msg = "OK"; |
||||
|
} |
||||
|
catch (Exception ex) |
||||
|
{ |
||||
|
result.Success = false; |
||||
|
result.Msg = ex.InnerException.Message; |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 刪除 檢驗群組指定料號設定檔
|
||||
|
/// </summary>
|
||||
|
/// <param name="id">GroupId</param>
|
||||
|
/// <param name="id1">itemId</param>
|
||||
|
/// <returns></returns>
|
||||
|
[HttpDelete("{id}/{id1}")] |
||||
|
public async Task<ActionResult<int>> DeleteFqcItemGroupMaterial(int id, int id1) |
||||
|
{ |
||||
|
var query = @" DELETE JHAMES.FQC_ITEM_GROUP_MATERIAL WHERE GROUP_ID =:id
|
||||
|
AND ITEM_ID = :id1";
|
||||
|
DynamicParameters p = new DynamicParameters(); |
||||
|
p.Add("id", id); |
||||
|
p.Add("id1", id1); |
||||
|
var result = await _context.Database.DapperExecuteAsync(query, p); |
||||
|
return result; |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,84 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.ComponentModel.DataAnnotations; |
||||
|
using System.ComponentModel.DataAnnotations.Schema; |
||||
|
using System.Runtime.Serialization; |
||||
|
using Microsoft.EntityFrameworkCore; |
||||
|
|
||||
|
#nullable disable |
||||
|
|
||||
|
namespace AMESCoreStudio.WebApi.Models.AMES |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// FQC檢驗項目群組名稱
|
||||
|
/// </summary>
|
||||
|
[Table("FQC_ITEM_GROUP", Schema = "JHAMES")] |
||||
|
public partial class FqcItemGroup |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// ID
|
||||
|
/// </summary>
|
||||
|
[Key] |
||||
|
[DataMember] |
||||
|
[Column("FQC_ITEM_GROUP_ID")] |
||||
|
public int FqcItemGroupId { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 群組代號
|
||||
|
/// </summary>
|
||||
|
[DataMember] |
||||
|
[Required(ErrorMessage = "{0},不能空白")] |
||||
|
[Column("ITEM_GROUP_NO")] |
||||
|
[StringLength(60)] |
||||
|
[Display(Name = "群組代號")] |
||||
|
public string ItemGroupNo { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 群組名稱
|
||||
|
/// </summary>
|
||||
|
[DataMember] |
||||
|
[Required(ErrorMessage = "{0},不能空白")] |
||||
|
[Column("ITEM_GROUP_NAME")] |
||||
|
[StringLength(200)] |
||||
|
[Display(Name = "群組名稱")] |
||||
|
public string ItemGroupName { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 群組描敘
|
||||
|
/// </summary>
|
||||
|
[DataMember] |
||||
|
[Column("ITEM_GROUP_DESC")] |
||||
|
[StringLength(300)] |
||||
|
public string ItemGroupDesc { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 建立UserID
|
||||
|
/// </summary>
|
||||
|
[Column("CREATE_USERID")] |
||||
|
[Required] |
||||
|
[DataMember] |
||||
|
public int CreateUserID { get; set; } = 0; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 建立日期
|
||||
|
/// </summary>
|
||||
|
[Required] |
||||
|
[Column("CREATE_DATE")] |
||||
|
[DataMember] |
||||
|
public DateTime CreateDate { get; set; } = DateTime.Now; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 更新UserID
|
||||
|
/// </summary>
|
||||
|
[Column("UPDATE_USERID")] |
||||
|
[DataMember] |
||||
|
public int UpdateUserID { get; set; } = 0; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 更新日期
|
||||
|
/// </summary>
|
||||
|
[Column("UPDATE_DATE")] |
||||
|
[DataMember] |
||||
|
public DateTime? UpdateDate { get; set; } = DateTime.Now; |
||||
|
} |
||||
|
} |
@ -0,0 +1,78 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.ComponentModel.DataAnnotations; |
||||
|
using System.ComponentModel.DataAnnotations.Schema; |
||||
|
using System.Runtime.Serialization; |
||||
|
using Microsoft.EntityFrameworkCore; |
||||
|
using Microsoft.Identity.Client; |
||||
|
|
||||
|
#nullable disable |
||||
|
|
||||
|
namespace AMESCoreStudio.WebApi.Models.AMES |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// FQC檢驗項目群組指定料號設定檔
|
||||
|
/// </summary>
|
||||
|
[Keyless] |
||||
|
[Table("FQC_ITEM_GROUP_MATERIAL", Schema = "JHAMES")] |
||||
|
public partial class FqcItemGroupMaterial |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// FQC檢驗項目群組ID
|
||||
|
/// </summary>
|
||||
|
[Column("GROUP_ID")] |
||||
|
[DataMember] |
||||
|
public int GroupId { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 料號ID
|
||||
|
/// </summary>
|
||||
|
[Column("ITEM_ID")] |
||||
|
[DataMember] |
||||
|
public int ItemId { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 建立UserID
|
||||
|
/// </summary>
|
||||
|
[Column("CREATE_USERID")] |
||||
|
[Required] |
||||
|
[DataMember] |
||||
|
public int CreateUserID { get; set; } = 0; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 建立日期
|
||||
|
/// </summary>
|
||||
|
[Required] |
||||
|
[Column("CREATE_DATE")] |
||||
|
[DataMember] |
||||
|
public DateTime CreateDate { get; set; } = DateTime.Now; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 更新UserID
|
||||
|
/// </summary>
|
||||
|
[Column("UPDATE_USERID")] |
||||
|
[DataMember] |
||||
|
public int UpdateUserID { get; set; } = 0; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 更新日期
|
||||
|
/// </summary>
|
||||
|
[Column("UPDATE_DATE")] |
||||
|
[DataMember] |
||||
|
public DateTime? UpdateDate { get; set; } = DateTime.Now; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 料號
|
||||
|
/// </summary>
|
||||
|
[NotMapped] |
||||
|
[DataMember] |
||||
|
public string ItemNo { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 料號描述
|
||||
|
/// </summary>
|
||||
|
[NotMapped] |
||||
|
[DataMember] |
||||
|
public string ItemDesc { get; set; } |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue