Browse Source

Yiru 修正

1. IPQC巡檢回覆,修正查詢方式(展二層)
2. 完工入庫呼叫API後不接值
3. IPQC檢驗,有上傳檔案,出現圖示
PTD
BB.Wang 2 years ago
parent
commit
bedab45c3c
  1. 19
      AMESCoreStudio.Web/Controllers/PCSController.cs
  2. 32
      AMESCoreStudio.Web/Controllers/SPCController.cs
  3. 2
      AMESCoreStudio.Web/HttpApis/AMES/ISPC.cs
  4. 406
      AMESCoreStudio.Web/Views/SPC/SPC004.cshtml
  5. 259
      AMESCoreStudio.Web/Views/SPC/SPC004V.cshtml
  6. 2
      AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseMasterController.cs
  7. 5
      AMESCoreStudio.WebApi/Controllers/AMES/InspectionResultDetailsController.cs
  8. 70
      AMESCoreStudio.WebApi/Controllers/AMES/InspectionResultMastersController.cs
  9. 136
      AMESCoreStudio.WebApi/Controllers/AMES/WarehouseingController.cs
  10. 30
      AMESCoreStudio.WebApi/DTO/AMES/InspectionResultMasterDto.cs
  11. 4
      AMESCoreStudio.WebApi/Models/AMES/InspectionResultMaster.cs

19
AMESCoreStudio.Web/Controllers/PCSController.cs

@ -6425,6 +6425,7 @@ namespace AMESCoreStudio.Web.Controllers
public async Task<IActionResult> PCS024C(string id)
{
var result = await _pcsApi.GetBarcodeInfoesByNo(id);
var tt = result[0];
ViewBag.BarcodeID = tt.BarcodeID;
ViewBag.WipID = tt.WipID;
@ -6465,6 +6466,7 @@ namespace AMESCoreStudio.Web.Controllers
if (ModelState.IsValid)
{
IResultModel result;
model.CreateUserID = GetLogInUserID();
result = await _pcsApi.PostBarcodeItemAddnew(JsonConvert.SerializeObject(model));
@ -7070,11 +7072,13 @@ namespace AMESCoreStudio.Web.Controllers
barcodeItemChange.StationID = barcodeItemOld.StationID;
barcodeItemChange.WipID = barcodeItemOld.WipID;
barcodeItemChange.KpItemNo = barcodeItemOld.KpItemNo;
barcodeItemChange.CreateUserID = barcodeItemOld.CreateUserID;
// barcodeItemChange.CreateUserID = barcodeItemOld.CreateUserID; YIRU
barcodeItemChange.CreateUserID = GetLogInUserID();
barcodeItemChange.CreateDate = System.DateTime.Now;
barcodeItemChange.UpdateDate = System.DateTime.Now;
model.CreateUserID = GetLogInUserID();
result = await _pcsApi.PutBarcodeItem(model.BarcodeItemID, JsonConvert.SerializeObject(model));
result2 = await _pcsApi.PostBarcodeItemChange(JsonConvert.SerializeObject(barcodeItemChange));
//result = await _pcsApi.PostBarcodeItem(JsonConvert.SerializeObject(model));
@ -7117,7 +7121,8 @@ namespace AMESCoreStudio.Web.Controllers
barcodeItemChange.StationID = barcodeItemOld.StationID;
barcodeItemChange.WipID = barcodeItemOld.WipID;
barcodeItemChange.KpItemNo = barcodeItemOld.KpItemNo;
barcodeItemChange.CreateUserID = barcodeItemOld.CreateUserID;
// barcodeItemChange.CreateUserID = barcodeItemOld.CreateUserID; yiru
barcodeItemChange.CreateUserID = GetLogInUserID();
barcodeItemChange.CreateDate = System.DateTime.Now;
barcodeItemChange.UpdateDate = System.DateTime.Now;
@ -7160,7 +7165,10 @@ namespace AMESCoreStudio.Web.Controllers
, status: status, page: page, limit: limit);
if (result.Data.Count() != 0)
{
var Data = result.Data.Where(w => w.StatusName == "允收");
// var Data = result.Data.Where(w => w.StatusName == "允收");
var Data = result.Data;
return Json(new Table() { code = 0, msg = "", data = Data, count = Data.Count() });
}
return Json(new Table() { count = 0, data = null });
@ -7289,6 +7297,7 @@ namespace AMESCoreStudio.Web.Controllers
BarcodeID = item.BarcodeID,
BarcodeNo = item.BarcodeNo,
StatusNo = item.StatusNo,
ExtraBarcodeNo = item.ExtraBarcodeNo,
StationID = StationID,
RuleStatus = "P",//F 不良
BoxNo = item.BoxNo,
@ -7375,7 +7384,7 @@ namespace AMESCoreStudio.Web.Controllers
return new Result() { success = false, msg = _msg };
}
var resultPTD101AMES = await _pcsApi.PostPTD101AMES(JsonConvert.SerializeObject(PTD101AMESModels));
await _pcsApi.PostPTD101AMES(JsonConvert.SerializeObject(PTD101AMESModels));
}

32
AMESCoreStudio.Web/Controllers/SPCController.cs

@ -665,14 +665,38 @@ namespace AMESCoreStudio.Web.Controllers
#endregion
#region SPC004巡檢結果維護相關
// public IActionResult SPC004()
public async Task<IActionResult> SPC004()
{
await GetStationList1();
await GetLineList1();
await GetInspectionTypesList();
await GetInspectionFormsList();
return View();
}
public async Task<IActionResult> SPC004VAsync(int id)
{
//await GetStationList1();
//await GetLineList1();
//return View();
await GetStationList();
await GetLineList();
await GetFactoryUnitsList();
await GetUserInfo();
var result = await _spcApi.GetInspectionResultMaster(id);
if (result.Count == 0)
{
return View();
}
var user = await _sysApi.GetUserInfo(result[0].CreateUserID);
var userName = user[0].UserName;
ViewBag.UserName = userName;
ViewBag.WipNo = result[0].WipNo;
ViewBag.ItemNo = result[0].ItemNo;
ViewBag.BarcodeNo = result[0].BarcodeNo;
ViewBag.InspectionID = result[0].InspectionID;
return View(result[0]);
}
//修改页面
[HttpGet]
public async Task<IActionResult> SPC004UAsync(int id, int Iid)

2
AMESCoreStudio.Web/HttpApis/AMES/ISPC.cs

@ -226,7 +226,7 @@ namespace AMESCoreStudio.Web
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/InspectionResultMasters/QueryAll/{id}/{WipNo}/{ItemNo}/{BarcodeNo}/{StatusNo}/{sdate}/{edate}")]
ITask<ResultModel<InspectionResultMaster>> GetInspectionResultMastersByQueryAll(int id, string WipNo, string ItemNo, string BarcodeNo, string StatusNo, string sdate, string edate, int page = 0, int limit = 10);
ITask<ResultModel<InspectionResultMasterDto>> GetInspectionResultMastersByQueryAll(int id, string WipNo, string ItemNo, string BarcodeNo, string StatusNo, string sdate, string edate, int page = 0, int limit = 10);
/// <summary>

406
AMESCoreStudio.Web/Views/SPC/SPC004.cshtml

@ -13,61 +13,62 @@
</div>
<div class="layui-card-body">
<div class="layui-form">
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline" style="margin-right: 5px; margin-left: 5px;">
<div class="layui-col-sm12">
<div class="layui-inline">
<label class="layui-form-label">工單:</label>
<input id="WipNo" type="text" style="width: 250px;" class="layui-input">
<label class="layui-form-label">巡檢類型:</label>
<div class="layui-input-inline" style="width:100px">
<select style="width:100px;" lay-filter="Type" lay-submit id="Type" name="Type" asp-items="@ViewBag.TypesList">
<option value="">請選擇</option>
</select>
</div>
</div>
<div class="layui-inline" style="margin-right:5px;">
<div class="layui-inline">
<label class="layui-form-label">料號:</label>
<input id="ItemNo" style="width: 250px;" class="layui-input">
<label class="layui-form-label">巡檢表單:</label>
<div class="layui-input-inline" style="width:100px">
<select style="width:100px;" lay-filter="Form" lay-submit id="Form" name="Form" asp-items="@ViewBag.FromsList">
<option value="-99">請選擇</option>
</select>
</div>
</div>
<div class="layui-inline" style="margin-right:0px;">
<div class="layui-inline">
<label class="layui-form-label">生產序號:</label>
<input id="BarcodeNo" style="width: 250px;" class="layui-input">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline" style="margin-right:0px;">
<div class="layui-inline">
<label class="layui-form-label">線別:</label>
<div class="layui-input-inline" style="width:100px">
<select id="Line" lay-filter="Line" lay-verify="required" asp-items="@ViewBag.LineList">
</select>
</div>
<div class="layui-inline">
<label class="layui-form-label">工單:</label>
<input id="WipNo" style="width: 250px;" class="layui-input">
</div>
</div>
<div class="layui-inline" style="margin-right:0px;">
<div class="layui-inline">
<label class="layui-form-label">作業站:</label>
<div class="layui-input-inline" style="width:100px">
<select id="RuleStation" lay-filter="RuleStation" lay-verify="required" asp-items="@ViewBag.StationList" lay-submit>
</select>
<div class="layui-inline">
<label class="layui-form-label">料號:</label>
<input id="ItemNo" style="width: 250px;" class="layui-input">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline" style="margin-right:0px;">
<label class="layui-form-label">稽核結果:</label>
<div class="layui-input-inline" width:400px;">
<select id="InspectionResult" class="custom-select col-sm-9" lay-filter="InspectionResult">
<option value="0">請選擇</option>
<option value="NA">N/A</option>
<option value="P">PASS</option>
<option value="F">FAIL </option>
</select>
<div class="layui-inline">
<div class="layui-inline">
<label class="layui-form-label">抽驗編號:</label>
<input id="BarcodeNo" style="width: 250px;" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">日期:</label>
<div class="layui-input-inline">
<input id="dateStr" name="dateStr" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid">~</div>
<div class="layui-input-inline">
<input id="dateEnd" name="dateEnd" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<div class="layui-inline" style="margin-left: 0px;">
<div class="layui-inline layui-show-xs-block">
<button class="layui-btn layui-btn-sm layui-btn-normal" id="querysubmit" lay-filter="querysubmit">
@ -75,154 +76,303 @@
</button>
</div>
</div>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
</div>
</div>
</div>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
</div>
@section Scripts{
<script type="text/javascript">
//监听表单提交事件
//hg.form.onsubmit('querysubmit', function (data) {
// table && table.reload(data);
//});
////搜索
$('#querysubmit').click(function () {
// console.log('#btnSearch');
var WipNo = "";
var ItemNo = "";
var BarcodeNo = "";
var Line = "";
var RuleStation = "";
WipNo = $("#WipNo").val();
ItemNo = $("#ItemNo").val();
BarcodeNo = $("#BarcodeNo").val();
@section Scripts{
<!-- input输入 -->
<script type="text/html" id="purchaseTotal">
<input type="number" min="0" class="layui-input" lay-vertype="tips" name="purchase_total" value="" lay-event="purchaseTotal" lay-filter="purchaseTotal">
</script>
<script type="text/html" id="inputTest">
<input type="text" class="layui-input" lay-vertype="tips" name="input_Test" value="" lay-event="inputTest" lay-filter="inputTest">
</script>
if (WipNo != "" || ItemNo != "" || BarcodeNo != "") {
hg.msghide("刷新数据!");
$.ajax({
url: "/SPC/GetInspectionResultMastersByQuery?WipNo=" + WipNo + "&ItemNo=" + ItemNo + "&BarcodeNo=" + BarcodeNo ,
dataType: 'json',
//data: { WipNo: WipNo },
contentType: "application/json",
type: 'get',
success: function (result) {
if (result.data) {
//console.log(result.data[0].inspectionID);//確認itemNO/modelNO
$("#WipNo").val(result.data[0].wipNo);
$("#ItemNo").val(result.data[0].itemNo);
$("#BarcodeNo").val(result.data[0].barcodeNo);
tt(result.data[0].inspectionID);
<script type="text/javascript">
layui.use(['form', 'layer', 'laydate'], function () {
form = layui.form;
laydate = layui.laydate;
laydate.render({
elem: '#dateStr'
, trigger: 'click'
, format: 'yyyy-MM-dd'
, theme: 'grid'
, isInitValue: true
, ready: function (date) {
// $("#dateStrh").val($("#dateStrh").val());
}
else {
alert("查無資料,請確認資料是否正確!");
, change: function (value, date, endDate) {
$("#dateStrh").val(value);
}
},
error: function () {
alert("查無資料,請確認資料是否正確!");
, done: function (value, date, endDate) {
$("#dateStrh").val(value);
}
});
laydate.render({
elem: '#dateEnd'
, trigger: 'click'
, format: 'yyyy-MM-dd'
, theme: 'grid'
, isInitValue: true
, ready: function (date) {
//$("#dateEndh").val(value);
//console.log(date.y);// 得到初始化的日期时间对象
}
else {
alert("請填寫欲查詢資料!!!!");
, change: function (value, date, endDate) {
$("#dateEndh").val(value);
}
, done: function (value, date, endDate) {
$("#dateEndh").val(value);
}
return false;
});
$("#WipNo").change(function () {
var data = $("#WipNo").val();
form.on('select(Type)', function (data) {
var data = $("#Type").val();
console.info(data);
if (data) {
getInspectionForms(data); }
else {
$("#Form").empty();
$('#Form').append(new Option("請選擇", "-99"));
layui.form.render("select");
}
});
});
function getInspectionForms(data) {
$.ajax({
url: "/WHS/GetWipAtt",
url: "/SPC/GetInspectionForms",
dataType: 'json',
data: { id: data },
//data: { id: data },
contentType: "application/json",
type: 'get',
success: function (result) {
if (result.data) {
$("#ModelNo").val(result.data.itemNO);
$("#Form").empty();
$('#Form').append(new Option("請選擇", ""));
var count = 0;
$.each(result.data, function (index, item) {
if (item.inspectionTypeID == data) {
$('#Form').append(new Option(item.inspectionName, item.inspectionFormID));
count = count + 1;
}
else {
});
if (count == 0) {
$("#Form").empty();
$('#Form').append(new Option("無選項", ""));
alert("查無資料,請確認工單是否正確!");
}
}
else {
$("#Form").empty();
$('#Form').append(new Option("無選項", ""));
}
layui.form.render("select");
}
});
} else {
alert("請填寫工單!");
};
$("#BarcodeNo").change(function () {
var BarcodeNo = $("#BarcodeNo").val();
var WipNo = $("#WipNo").val();
if (BarcodeNo != "" && WipNo != "") {
CheckBarcodeNo(BarcodeNo, WipNo);
}
});
////搜索
$('#querysubmit').click(function () {
console.log('#btnSearch');
var form = $("#Form").val();
if (form) {
hg.msghide("刷新数据!");
tt();
}
else {
alert("請選擇巡檢表單!!!!");
}
return false;
});
var tableCols = [[
{
field: 'inspectionItemName',
sort: true,
title: '巡檢項目'
},
{
field: 'result',
title: '稽核結果'
field: 'inspectionID',
title: '#',
sort: true
},
{
field: 'missingUnitNo',
title: '缺失單位'
field: 'wipNo',
title: '工單號碼',
sort: true
},
{
field: 'missingUserID',
title: '缺失人員'
field: 'barcodeNo',
title: '抽驗編號',
sort: true
},
{
field: 'missingRemark',
title: '備註'
field: 'itemNo',
title: '料號'
},
{
field: 'location',
title: '位置'
field: 'statusNo',
width: 100,
title: '狀態'
},
{
field: 'createDate',
title: '建立時間',
title: '建立日期',
sort: true,
templet: '<div>{{ layui.util.toDateString(d.createDate, "yyyy/MM/dd") }}</div>'
},
{
field: 'inspectionResult',
title: '回覆結果',
field: 'detailItem',
title: '檢驗狀態',
templet: function (d) { // yiru modify 22-12-09
if (d.detailFail != "0")
return "F";
else
return "P";
// return "Total:" + d.detailItem + " Pass:" + d.detailPass + " Fail:" + d.detailFail + " N/A:" + d.detailNA;
}
},
//{
// field: 'detailItem1',
// title: '明細狀態1',
// width: 200,
// templet: function (d) { // yiru modify 22-12-09
// var Tmp = GetdetailQuery(d.inspectionID);
// return Tmp;
// }
//},
{
field: 'right',
width: 85,
title: '操作',
fixed: 'right',
templet: function (d) {
return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">回復</a>'
}
}]
];
//通过行tool编辑,lay-event="edit"
function edit(obj) {
align: 'center', title: '操作', width: 100, fixed: 'right',
sort: true,
templet: function (item) {
var btns = '';
//btns = btns + '<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>';
// if (item.statusNo == "暫存")
// btns = btns + '<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>';
// else if (item.statusNo == "保存")
btns = btns + '<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">檢視</a>';
return btns;
}
}
]];
//通过行tool编辑,lay-event="view"
function view(obj) {
if (obj.data.inspectionID) {
hg.open('回復巡檢結果', '/SPC/SPC004U?id=' + obj.data.inspectionID+'&Iid=' + obj.data.inspectionItemID, 360, 480);
hg.open('檢視巡檢結果', '/SPC/SPC004V/' + obj.data.inspectionID, '', '', true);
}
}
//通过行tool删除,lay-event="del"
//基本数据表格
var table;
function tt(id) {
Line = $("#Line").val();
RuleStation = $("#RuleStation").val();
InspectionResult = $("#InspectionResult").val();
//$(function () {
// tt();
//});
function tt() {
//基本数据表格
//console.log('id:' + id);
table = hg.table.datatable('test', '巡檢表單回覆維護', '/SPC/GetInspectionResultDetailQuery?id=' + id + "&Line=" + Line + "&RuleStation=" + RuleStation + '&InspectionResult=' + InspectionResult
var form = "";
var WipNo = "";
var ItemNo = "";
var BarcodeNo = "";
var StatusNo = "";
var sdate = "";
var edate = "";
form = $("#Form").val();
WipNo = $("#WipNo").val();
ItemNo = $("#ItemNo").val();
StatusNo = "";
BarcodeNo = $("#BarcodeNo").val();
sdate = $("#dateStr").val();
edate = $("#dateEnd").val();
table = hg.table.datatable('test', '巡檢結果維護', '/SPC/GetInspectionResultMastersByQueryAll?'
+ 'id=' + form
+ '&WipNo=' + WipNo
+ '&ItemNo=' + ItemNo
+ '&BarcodeNo=' + BarcodeNo
+ '&StatusNo=' + StatusNo
+ '&sdate=' + sdate
+ '&edate=' + edate
, {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']);
};
</script>
function CheckBarcodeNo(BarcodeNo, WipNo) {
$.ajax({
url: '/SPC/CheckBarcodeNO?BarcodeNo=' + BarcodeNo + '&WipNo=' + WipNo,
dataType: 'json',
contentType: "application/json",
type: 'get',
success: function (result) {
if (!result.data) {
alert("抽驗編號不在工單區間內");
}
}
});
};
function GetdetailQuery(id) {
var str = "";
$.ajax({
url: '/SPC/GetInspectionResultDetails?id=' + id,
dataType: 'json',
contentType: "application/json",
type: 'get',
success: function (result) {
if (result.data) {
var P = 0;
var F = 0;
var NA = 0;
var Total = 0;
// $.each(result.data, (index, item) {
$.each(result.data, function () {
Total += 1;
if (result.data.result == "P") {
P += 1;
}
if (result.data.result == "F") {
F += 1;
}
if (result.data.result == "NA") {
NA += 1;
}
});
if (F != "0")
str = "F"
else
str = "P"
// str = "Total:" + Total.toString + " P:" + P.toString() + " F:" + F.toString + " NA:" + NA.toString;
return str;
}
}
});
};
</script>
}

259
AMESCoreStudio.Web/Views/SPC/SPC004V.cshtml

@ -0,0 +1,259 @@
@{
ViewData["Title"] = "巡檢結果回覆";
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-form-item">
<input type="hidden" id="InspectionID" value="@ViewBag.InspectionID" />
<div class="layui-inline" style="margin-right: 5px; margin-left: 5px;">
<div class="layui-inline">
<label class="layui-form-label">工單:</label>
<input id="WipNo" value="@ViewBag.WipNo" type="text" style="width: 250px;" class="layui-input" readonly>
</div>
</div>
<div class="layui-inline" style="margin-right:5px;">
<div class="layui-inline">
<label class="layui-form-label">料號:</label>
<input id="ItemNo" value="@ViewBag.ItemNo" style="width: 250px;" class="layui-input" readonly>
</div>
</div>
<div class="layui-inline" style="margin-right:0px;">
<div class="layui-inline">
<label class="layui-form-label">抽驗編號:</label>
<input id="BarcodeNo" value="@ViewBag.BarcodeNo" style="width: 250px;" class="layui-input" readonly>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline" style="margin-right:0px;">
<div class="layui-inline">
<label class="layui-form-label">線別:</label>
<div class="layui-input-inline" style="width:100px">
<select id="Line" lay-filter="Line" lay-verify="required" asp-items="@ViewBag.LineList">
</select>
</div>
</div>
</div>
<div class="layui-inline" style="margin-right:0px;">
<div class="layui-inline">
<label class="layui-form-label">作業站:</label>
<div class="layui-input-inline" style="width:100px">
<select id="RuleStation" lay-filter="RuleStation" lay-verify="required" asp-items="@ViewBag.StationList" lay-submit>
</select>
</div>
</div>
</div>
<div class="layui-inline" style="margin-right:0px;">
<label class="layui-form-label">稽核結果:</label>
<div class="layui-input-inline" width:400px;">
<select id="InspectionResult" class="custom-select col-sm-9" lay-filter="InspectionResult">
<option value="0">請選擇</option>
<option value="NA">N/A</option>
<option value="P">PASS</option>
<option value="F">FAIL </option>
</select>
</div>
</div>
<div class="layui-inline" style="margin-left: 0px;">
<div class="layui-inline layui-show-xs-block">
<button class="layui-btn layui-btn-sm layui-btn-normal" id="querysubmit" lay-filter="querysubmit">
<i class="layui-icon layui-icon-sm">&#xe615;</i>
</button>
</div>
</div>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
</div>
@section Scripts{
<script type="text/javascript">
//监听表单提交事件
//hg.form.onsubmit('querysubmit', function (data) {
// table && table.reload(data);
//});
////搜索
$('#querysubmit').click(function () {
var inspectionID = $("#InspectionID").val();
tt(inspectionID);
});
//$('#querysubmit').click(function () {
// // inspectionID = $("#inspectionID").val();
// alert(inspectionID);
// // tt(result.data[0].inspectionID);
//});
//$('#querysubmit').click(function () {
// // console.log('#btnSearch');
// var WipNo = "";
// var ItemNo = "";
// var BarcodeNo = "";
// var Line = "";
// var RuleStation = "";
// WipNo = $("#WipNo").val();
// ItemNo = $("#ItemNo").val();
// BarcodeNo = $("#BarcodeNo").val();
// if (WipNo != "" || ItemNo != "" || BarcodeNo != "") {
// hg.msghide("刷新数据!");
// $.ajax({
// url: "/SPC/GetInspectionResultMastersByQuery?WipNo=" + WipNo + "&ItemNo=" + ItemNo + "&BarcodeNo=" + BarcodeNo ,
// dataType: 'json',
// //data: { WipNo: WipNo },
// contentType: "application/json",
// type: 'get',
// success: function (result) {
// if (result.data) {
// //console.log(result.data[0].inspectionID);//確認itemNO/modelNO
// $("#WipNo").val(result.data[0].wipNo);
// $("#ItemNo").val(result.data[0].itemNo);
// $("#BarcodeNo").val(result.data[0].barcodeNo);
// alert(result.data[0].inspectionID);
// tt(result.data[0].inspectionID);
// }
// else {
// alert("查無資料,請確認資料是否正確!");
// }
// },
// error: function () {
// alert("查無資料,請確認資料是否正確!");
// }
// });
// }
// else {
// alert("請填寫欲查詢資料!!!!");
// }
// return false;
//});
$("#WipNo").change(function () {
var data = $("#WipNo").val();
if (data) {
$.ajax({
url: "/WHS/GetWipAtt",
dataType: 'json',
data: { id: data },
contentType: "application/json",
type: 'get',
success: function (result) {
if (result.data) {
$("#ModelNo").val(result.data.itemNO);
}
else {
alert("查無資料,請確認工單是否正確!");
}
}
});
} else {
alert("請填寫工單!");
}
});
var tableCols = [[
{
field: 'inspectionItemName',
sort: true,
title: '巡檢項目'
},
{
field: 'result',
title: '稽核結果'
},
{
field: 'missingUnitNo',
title: '缺失單位'
},
{
field: 'missingUserID',
title: '缺失人員'
},
{
field: 'missingRemark',
title: '備註'
},
{
field: 'location',
title: '位置'
},
{
field: 'createDate',
title: '建立時間',
templet: '<div>{{ layui.util.toDateString(d.createDate, "yyyy/MM/dd") }}</div>'
},
{
field: 'peplyReason',
title: '回覆原因',
},
{
field: 'peplyMethod',
title: '回覆對策',
},
{
field: 'right',
width: 85,
title: '操作',
fixed: 'right',
templet: function (d) {
return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">回復</a>'
}
}]
];
//通过行tool编辑,lay-event="edit"
function edit(obj) {
if (obj.data.inspectionID) {
hg.open('回復巡檢結果', '/SPC/SPC004U?id=' + obj.data.inspectionID+'&Iid=' + obj.data.inspectionItemID, 360, 480);
}
}
//基本数据表格
var table;
$(function () {
var inspectionID = $("#InspectionID").val();
tt(inspectionID);
});
function tt(id) {
Line = $("#Line").val();
RuleStation = $("#RuleStation").val();
InspectionResult = $("#InspectionResult").val();
//基本数据表格
//console.log('id:' + id);
table = hg.table.datatable('test', '巡檢表單回覆維護', '/SPC/GetInspectionResultDetailQuery?id=' + id + "&Line=" + Line + "&RuleStation=" + RuleStation + '&InspectionResult=' + InspectionResult
, {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']);
};
</script>
}

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

@ -502,7 +502,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
{
q = q.Where(w => w.RecordDate <= DateTime.Parse(date_end));
}
q= q.Where(w => w.StatusName == "P");
ResultModel<FqcInhouseMaster_WareDto> result = new ResultModel<FqcInhouseMaster_WareDto>();
// 紀錄筆數

5
AMESCoreStudio.WebApi/Controllers/AMES/InspectionResultDetailsController.cs

@ -113,6 +113,8 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
CreateDate = q1.CreateDate,
UpdateDate = q1.UpdateDate,
InspectionResult =q1.Result,
PeplyReason = q1.ReplyReason,
PeplyMethod = q1.ReplyMethod,
@ -149,6 +151,9 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
return InspectionResultDetail;
}
/// <summary>
/// 更新巡檢類別資料
/// </summary>

70
AMESCoreStudio.WebApi/Controllers/AMES/InspectionResultMastersController.cs

@ -8,7 +8,7 @@ using Microsoft.EntityFrameworkCore;
using AMESCoreStudio.WebApi;
using AMESCoreStudio.WebApi.Models.AMES;
using AMESCoreStudio.CommonTools.Result;
using AMESCoreStudio.WebApi.DTO.AMES;
namespace AMESCoreStudio.WebApi.Controllers.AMES
{
@ -141,11 +141,40 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
/// <returns></returns>
// GET: api/InspectionItems/5
[HttpGet("QueryAll/{id}/{WipNo}/{ItemNo}/{BarcodeNo}/{StatusNo}/{sdate}/{edate}")]
public async Task<ResultModel<InspectionResultMaster>> GetInspectionResultMastersByQueryAll(int id, string WipNo, string ItemNo, string BarcodeNo, string StatusNo, string sdate, string edate, int page = 0, int limit = 10)
public async Task<ResultModel<InspectionResultMasterDto>> GetInspectionResultMastersByQueryAll(int id, string WipNo, string ItemNo, string BarcodeNo, string StatusNo, string sdate, string edate, int page = 0, int limit = 10)
{
ResultModel<InspectionResultMasterDto> result = new ResultModel<InspectionResultMasterDto>();
var q = from q1 in _context.InspectionResultMasters
join q3 in _context.InspectionResultDetails on q1.InspectionID equals q3.InspectionID
// from q3 in j1.DefaultIfEmpty()
select new InspectionResultMasterDto
{
InspectionID = q1.InspectionID,
InspectionFormID = q1.InspectionFormID,
BarcodeNo = q1.BarcodeNo,
WipNo = q1.WipNo,
ItemNo = q1.ItemNo,
StatusNo = q1.StatusNo,
CreateUserID = q1.CreateUserID,
CreateDate = q1.CreateDate,
UpdateUserID = q1.UpdateUserID,
UpdateDate = q1.UpdateDate,
DetailItem = q3.Result != "" ? "1":"0",
DetailPass = q3.Result == "P" ? "1":"0",
DetailFail = q3.Result == "F" ? "1" : "0",
DetailNA = q3.Result == "NA" ? "1" : "0",
};
//yiru 2022-11-17
ResultModel<InspectionResultMaster> result = new ResultModel<InspectionResultMaster>();
IQueryable<InspectionResultMaster> q = _context.InspectionResultMasters;
// ResultModel<InspectionResultMaster> result = new ResultModel<InspectionResultMaster>();
// IQueryable<InspectionResultMaster> q = _context.InspectionResultMasters;
if (id.ToString()!="-99"&&id.ToString()!="0")
q = q.Where(p => p.InspectionFormID.Equals(id));
@ -163,8 +192,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
q = q.Where(w => w.StatusNo == StatusNo);
DateTime dateValue;
if (sdate != "*")
{
@ -183,15 +210,40 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
}
// 紀錄筆數
result.DataTotal = q.Count();
var q0 = q.GroupBy(q => q.InspectionID).Select(cl => new InspectionResultMasterDto
{
InspectionID = cl.Max(m => m.InspectionID),
InspectionFormID = cl.Max(m => m.InspectionFormID),
BarcodeNo = cl.Max(m => m.BarcodeNo),
WipNo = cl.Max(m => m.WipNo),
ItemNo = cl.Max(m => m.ItemNo),
StatusNo = cl.Max(m => m.StatusNo),
CreateUserID = cl.Max(m => m.CreateUserID),
CreateDate = cl.Max(m => m.CreateDate),
UpdateUserID = cl.Max(m => m.UpdateUserID),
UpdateDate = cl.Max(m => m.UpdateDate),
DetailItem = cl.Count(c => c.DetailItem == "1").ToString(),
DetailPass = cl.Count(c => c.DetailPass == "1").ToString(),
DetailFail = cl.Count(c => c.DetailFail == "1").ToString(),
DetailNA = cl.Count(c => c.DetailNA == "1").ToString()
});
result.DataTotal = q0.Count();
// Table 頁數
if (page > 0)
{
q = q.Skip((page - 1) * limit).Take(limit);
q0 = q0.Skip((page - 1) * limit).Take(limit);
}
result.Data = await q.ToListAsync();
result.Data = await q0.ToListAsync();
result.Data = result.Data.Select(s =>
{
s.StatusNo = s.StatusNo == "C" ? "保存" : "暫存";

136
AMESCoreStudio.WebApi/Controllers/AMES/WarehouseingController.cs

@ -0,0 +1,136 @@
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;
namespace AMESCoreStudio.WebApi.Controllers.AMES
{
///yiru add
/// <summary>
/// 檢驗單明細資料檔
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class WarehouseingController : ControllerBase
{
private readonly AMESContext _context;
/// <summary>
/// 完工入庫資料
/// </summary>
/// <param name="context"></param>
public WarehouseingController(AMESContext context)
{
_context = context;
}
// GET: api/Warehouseing
/// <summary>
/// 查詢所有已入庫資料
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<ActionResult<IEnumerable<WareHouseing>>> GetWareHouseings()
{
return await _context.WareHouseings.ToListAsync();
}
/// <summary>
/// 查詢完工入庫資料 By 送驗單號、序號
/// </summary>
/// <param name="inhouseNo">入庫單號</param>
/// <param name="seq">序號</param>
/// <returns></returns>
[HttpGet("{inhouseNo}/{seq}")]
public async Task<ActionResult<IEnumerable<WareHouseing>>> GetWareHouseing(string inhouseNo, int seq)
{
var WareHouseing = await _context.WareHouseings
.Where(w => w.InhouseNo == inhouseNo && w.SeqID == seq)
.ToListAsync();
return WareHouseing;
}
/// <summary>
/// 修改完工入庫資料
/// </summary>
/// <param name="WareHouseing"></param>
/// <returns></returns>
[HttpPut]
public async Task<ResultModel<WareHouseing>> PutWareHouseing(WareHouseing WareHouseing)
{
ResultModel<WareHouseing> result = new ResultModel<WareHouseing>();
_context.Entry(WareHouseing).State = EntityState.Modified;
//設置容器空間某一個模型的某一個欄位 不提交到資料庫
_context.Entry<WareHouseing>(WareHouseing).Property("Create_Date").IsModified = false;
_context.Entry<WareHouseing>(WareHouseing).Property("Create_UserID").IsModified = false;
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="WareHouseing"></param>
/// <returns></returns>
[HttpPost]
public async Task<ResultModel<WareHouseing>> PostWareHouseing(WareHouseing WareHouseing)
{
ResultModel<WareHouseing> result = new ResultModel<WareHouseing>();
try
{
_context.WareHouseings.Add(WareHouseing);
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"></param>
/// <returns></returns>
//[HttpDelete("{id}")]
//public async Task<ActionResult<WareHouseing>> DeleteWareHouseing(string id)
//{
// var WareHouseing = await _context.WareHouseings.FindAsync(id);
// if (WareHouseing == null)
// {
// return NotFound();
// }
// _context.WareHouseings.Remove(WareHouseing);
// await _context.SaveChangesAsync();
// return WareHouseing;
//}
}
}

30
AMESCoreStudio.WebApi/DTO/AMES/InspectionResultMasterDto.cs

@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace AMESCoreStudio.WebApi.DTO.AMES
{
/// <summary>
/// 檢驗表頭資料檔DTO
/// </summary>
public class InspectionResultMasterDto
{
public int InspectionID { get; set; }
public int InspectionFormID { get; set; }
public string BarcodeNo { get; set; }
public string WipNo { get; set; }
public string ItemNo { get; set; }
public string StatusNo { get; set; }
public int CreateUserID { get; set; }
public DateTime CreateDate { get; set; }
public int UpdateUserID { get; set; }
public DateTime UpdateDate { get; set; }
public string DetailItem { get; set; }
public string DetailPass { get; set; }
public string DetailFail { get; set; }
public string DetailNA { get; set; }
}
}

4
AMESCoreStudio.WebApi/Models/AMES/InspectionResultMaster.cs

@ -29,11 +29,11 @@ namespace AMESCoreStudio.WebApi.Models.AMES
public int InspectionFormID { get; set; }
/// <summary>
/// 生產序號
/// 抽驗號碼
/// </summary>
[Column("BARCODE_NO")]
[StringLength(30)]
[Display(Name = "生產序號")]
[Display(Name = "抽驗號碼")]
[DataMember]
// [Required(ErrorMessage = "{0},不能空白")] YIRU modify 改為可以空白 系統自行卡關 工單號與生產序號可二擇一輸入
public string BarcodeNo { get; set; }

Loading…
Cancel
Save