Browse Source

1. 修改工單查詢 檢驗完成日期顯示判斷

2. 調整工單維護中 抓取安勤提供api
3. FQC查詢畫面 抽驗完成時間調整
PTD
Sai 2 years ago
parent
commit
5dd577e53c
  1. 33
      AMESCoreStudio.Web/Controllers/PCSController.cs
  2. 2
      AMESCoreStudio.Web/Views/FQC/FQC008.cshtml
  3. 17
      AMESCoreStudio.Web/Views/PCS/PCS001N.cshtml
  4. 22
      AMESCoreStudio.Web/Views/PCS/PCS003.cshtml
  5. 40
      AMESCoreStudio.Web/Views/PCS/PCS034.cshtml
  6. 2
      AMESCoreStudio.WebApi/Controllers/AMES/WipInfosController.cs
  7. 9
      AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs

33
AMESCoreStudio.Web/Controllers/PCSController.cs

@ -1519,6 +1519,7 @@ namespace AMESCoreStudio.Web.Controllers
var result = await _pcsApi.GetItApiEcnByWipNo(wipNo); var result = await _pcsApi.GetItApiEcnByWipNo(wipNo);
var json = JsonConvert.DeserializeObject<WebApi.Models.aValue_API.ProductDetail>(result); var json = JsonConvert.DeserializeObject<WebApi.Models.aValue_API.ProductDetail>(result);
return Json(new Result() { success = true, data = json }); return Json(new Result() { success = true, data = json });
} }
#endregion #endregion
@ -3279,6 +3280,7 @@ namespace AMESCoreStudio.Web.Controllers
public async Task<JsonResult> GetMAC(string itemno, string wipNo, int planQTY) public async Task<JsonResult> GetMAC(string itemno, string wipNo, int planQTY)
{ {
string msg = string.Empty;
var q = await _pcsApi.GetMACInfo(itemno); var q = await _pcsApi.GetMACInfo(itemno);
if (q != null) if (q != null)
@ -3286,13 +3288,16 @@ namespace AMESCoreStudio.Web.Controllers
// 工單數量*單板MAC數 // 工單數量*單板MAC數
var MacQty = planQTY * q.Qty; var MacQty = planQTY * q.Qty;
var wipMAC = await _pcsApi.GetWipMAC(wipNo); var wipMAC = await _pcsApi.GetWipMAC(wipNo);
// 目前該筆供單已取MAC數量
var getWipMacQty = wipMAC.Select(s => s.Qty).Sum(); var getWipMacQty = wipMAC.Select(s => s.Qty).Sum();
// 判斷目前工單數量*單板MAC數 == DB已記使用MAC數量 // 判斷目前工單數量*單板MAC數 == DB已記使用MAC數量
if (planQTY * q.Qty <= getWipMacQty) if (planQTY * q.Qty <= getWipMacQty)
{ {
return Json(new { _msg = "已取滿MAC數量,請在確認" }); msg = "該筆工單已取滿MAC數量,請在確認";
return Json(new Result() { success = false, data = null, msg = msg });
} }
// 剩下工單未取MAC數量
MacQty = MacQty - getWipMacQty; MacQty = MacQty - getWipMacQty;
// 當前值 16 進位 // 當前值 16 進位
@ -3300,20 +3305,31 @@ namespace AMESCoreStudio.Web.Controllers
var Entire = new Code.Entire(); var Entire = new Code.Entire();
// 最小值 // Table 當前值 最小值
var Mix = (int.Parse(Entire.DecHex(Value, "HexToDec")) + 1); var Mix = (int.Parse(Entire.DecHex(Value, "HexToDec")) + 1);
if (Mix > int.Parse(Entire.DecHex(q.Max.ToString(), "HexToDec")))
{
msg = "可使用MAC區間已用完,請在確認";
return Json(new Result() { success = false, data = null, msg = msg });
}
// 最大值 // 最大值
var Max = (int.Parse(Entire.DecHex(Value, "HexToDec")) + MacQty); var Max = (int.Parse(Entire.DecHex(Value, "HexToDec")) + MacQty);
// 當最大值 > DB設定最大值 已超過目前區間
// 當最大值 > DB設定最大值
if (Max > int.Parse(Entire.DecHex(q.Max.ToString(), "HexToDec"))) if (Max > int.Parse(Entire.DecHex(q.Max.ToString(), "HexToDec")))
{ {
return Json(new { _msg = "自動配MAC已超過設定最大值,請在確認!" }); // 先把剩下區間用完
Max = int.Parse(Entire.DecHex(q.Max.ToString(), "HexToDec"));
// 取剩下的MAC數量
msg = $"已將剩下MAC區間取完:【{Max - Mix + 1}】pcs,尚有:【{MacQty - (Max - Mix + 1)}】pcs還沒取,請再申請一組新的MAC區間";
MacQty = Max - Mix + 1;
// return Json(new { _msg = "自動配MAC已超過設定最大值,請在確認!" });
} }
// 低於安全量 Mail通知 // 低於安全量 Mail通知
// 取完剩餘數量 // 取完剩餘數量
var NowQty = Max - int.Parse(Entire.DecHex(q.Max.ToString(), "HexToDec")); var NowQty = int.Parse(Entire.DecHex(q.Max.ToString(), "HexToDec")) - Max;
if (NowQty <= q.SafeQty) if (NowQty <= q.SafeQty)
{ {
@ -3339,9 +3355,10 @@ namespace AMESCoreStudio.Web.Controllers
mix = MACstr, mix = MACstr,
max = MACend, max = MACend,
}; };
return Json(x); return Json(new Result() { success = true, data = x, msg = msg });
} }
return Json(new { _msg = "查無相關MAC對應" }); msg = "查無相關MAC對應";
return Json(new Result() { success = false, data = null, msg = msg });
} }
/// <summary> /// <summary>

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

@ -233,7 +233,7 @@
field: 'endTime', field: 'endTime',
title: '抽驗結束時間', title: '抽驗結束時間',
sort: true, sort: true,
templet: '<div>{{ layui.util.toDateString(d.endTime, "yyyy/MM/dd") }}</div>' templet: '<div>{{ layui.util.toDateString(d.endTime, "yyyy/MM/dd HH:mm:ss") }}</div>'
}, },
{ {
field: 'qaMemo', field: 'qaMemo',

17
AMESCoreStudio.Web/Views/PCS/PCS001N.cshtml

@ -510,7 +510,7 @@
var wipNO = $('#wipAtt_ItemNO').val(); var wipNO = $('#wipAtt_ItemNO').val();
var planQTY = $('#wipInfo_PlanQTY').val(); var planQTY = $('#wipInfo_PlanQTY').val();
if (wipNO == '' || !wipNO) { if (wipNO == '' || !wipNO) {
parent.hg.msg("請輸入號"); parent.hg.msg("請輸入工程編號");
return; return;
} }
if (planQTY == '' || !planQTY || planQTY == 0) { if (planQTY == '' || !planQTY || planQTY == 0) {
@ -523,15 +523,16 @@
data: { "itemno": $("#wipAtt_ItemNO").val(), "wipNo": $('#wipInfo_WipNO').val(), "planQTY": $('#wipInfo_PlanQTY').val() }, data: { "itemno": $("#wipAtt_ItemNO").val(), "wipNo": $('#wipInfo_WipNO').val(), "planQTY": $('#wipInfo_PlanQTY').val() },
cache: false, cache: false,
type: "POST", type: "POST",
success: function (data, textStatus, jqXHR) { success: function (result, textStatus, jqXHR) {
if (data._msg != undefined) { if (result.success) {
parent.hg.msg(data._msg); var contactdiv = `<tr><td>${result.data.mix}</td><td>${result.data.max}</td></tr>`;
$('#MACTable').append(contactdiv);
if (result.msg.length != 0) {
parent.hg.msg(result.msg);
}
} }
else { else {
var contactdiv = '<tr>' + parent.hg.msg(result.msg);
`<td>${data.mix}</td>
<td>${data.max}</td></tr>`;
$('#MACTable').append(contactdiv);
} }
}, },
error: function (jqXHR, textStatus, errorThrown) { error: function (jqXHR, textStatus, errorThrown) {

22
AMESCoreStudio.Web/Views/PCS/PCS003.cshtml

@ -1344,7 +1344,7 @@
var wipNO = $('#wipAtt_ItemNO').val(); var wipNO = $('#wipAtt_ItemNO').val();
var planQTY = $('#wipInfo_PlanQTY').val(); var planQTY = $('#wipInfo_PlanQTY').val();
if (wipNO == '' || !wipNO) { if (wipNO == '' || !wipNO) {
parent.hg.msg("請輸入號"); parent.hg.msg("請輸入工程編號");
return; return;
} }
if (planQTY == '' || !planQTY || planQTY == 0) { if (planQTY == '' || !planQTY || planQTY == 0) {
@ -1357,15 +1357,16 @@
data: { "itemno": $("#wipAtt_ItemNO").val(), "wipNo": $('#wipInfo_WipNO').val(), "planQTY": $('#wipInfo_PlanQTY').val() }, data: { "itemno": $("#wipAtt_ItemNO").val(), "wipNo": $('#wipInfo_WipNO').val(), "planQTY": $('#wipInfo_PlanQTY').val() },
cache: false, cache: false,
type: "POST", type: "POST",
success: function (data, textStatus, jqXHR) { success: function (result, textStatus, jqXHR) {
if (data._msg != undefined) { if (result.success) {
parent.hg.msg(data._msg); var contactdiv = `<tr><td>${result.data.mix}</td><td>${result.data.max}</td></tr>`;
$('#MACTable').append(contactdiv);
if (result.msg.length != 0) {
parent.hg.msg(result.msg);
}
} }
else { else {
var contactdiv = '<tr>' + parent.hg.msg(result.msg);
`<td>${data.mix}</td>
<td>${data.max}</td></tr>`;
$('#MACTable').append(contactdiv);
} }
}, },
error: function (jqXHR, textStatus, errorThrown) { error: function (jqXHR, textStatus, errorThrown) {
@ -1965,6 +1966,10 @@
data: { "wipNo": '@Model.wipInfo.WipNO' }, data: { "wipNo": '@Model.wipInfo.WipNO' },
success: function (result) { success: function (result) {
if (result.success) { if (result.success) {
if (result.data.eaN_NO == null) {
hg.msghide("查無資料,不需要更新!");
}
else {
var result_data = result.data.eaN_NO; var result_data = result.data.eaN_NO;
console.log(result_data.eaN_NO); console.log(result_data.eaN_NO);
if (result_data.length == 0) { if (result_data.length == 0) {
@ -1979,6 +1984,7 @@
}) })
} }
} }
}
}, },
error: function (result) { error: function (result) {
parent.hg.msg(`呼叫API失敗`); parent.hg.msg(`呼叫API失敗`);

40
AMESCoreStudio.Web/Views/PCS/PCS034.cshtml

@ -1245,7 +1245,7 @@
var wipNO = $('#wipAtt_ItemNO').val(); var wipNO = $('#wipAtt_ItemNO').val();
var planQTY = $('#wipInfo_PlanQTY').val(); var planQTY = $('#wipInfo_PlanQTY').val();
if (wipNO == '' || !wipNO) { if (wipNO == '' || !wipNO) {
parent.hg.msg("請輸入號"); parent.hg.msg("請輸入工程編號");
return; return;
} }
if (planQTY == '' || !planQTY || planQTY == 0) { if (planQTY == '' || !planQTY || planQTY == 0) {
@ -1258,15 +1258,16 @@
data: { "itemno": $("#wipAtt_ItemNO").val(), "wipNo": $('#wipInfo_WipNO').val(), "planQTY": $('#wipInfo_PlanQTY').val() }, data: { "itemno": $("#wipAtt_ItemNO").val(), "wipNo": $('#wipInfo_WipNO').val(), "planQTY": $('#wipInfo_PlanQTY').val() },
cache: false, cache: false,
type: "POST", type: "POST",
success: function (data, textStatus, jqXHR) { success: function (result, textStatus, jqXHR) {
if (data._msg != undefined) { if (result.success) {
parent.hg.msg(data._msg); var contactdiv = `<tr><td>${result.data.mix}</td><td>${result.data.max}</td></tr>`;
$('#MACTable').append(contactdiv);
if (result.msg.length != 0) {
parent.hg.msg(result.msg);
}
} }
else { else {
var contactdiv = '<tr>' + parent.hg.msg(result.msg);
`<td>${data.mix}</td>
<td>${data.max}</td></tr>`;
$('#MACTable').append(contactdiv);
} }
}, },
error: function (jqXHR, textStatus, errorThrown) { error: function (jqXHR, textStatus, errorThrown) {
@ -1770,24 +1771,29 @@
// 更新ECN or ECR // 更新ECN or ECR
function GetPLM_ECN() { function GetPLM_ECN() {
$.ajax({ $.ajax({
url: "@Url.Action("FQC007GetPLMECN", "FQC")", url: "@Url.Action("GetItApiEcnByWipNo", "PCS")",
type: "Post", type: "Post",
data: { "ItemNo": '@Model.wipAtt.ItemNO' }, async: true,
data: { "wipNo": '@Model.wipInfo.WipNO' },
success: function (result) { success: function (result) {
if (result.success) { if (result.success) {
var result_msg = result.msg; if (result.data.eaN_NO == null) {
console.log(result_msg); hg.msghide("查無資料,不需要更新!");
console.log('@Model.wipAtt.ECN'); }
if ('@Model.wipAtt.ECN' != result_msg) { else {
var result_data = result.data.eaN_NO;
console.log(result_data.eaN_NO);
if (result_data.length == 0) {
hg.msghide("不需要更新!");
}
else if ('@Model.wipAtt.ECN' != result_data) {
layer.confirm('比對與PLM ECN/ECR不一樣,確定更新ECN/ECR嗎?', { layer.confirm('比對與PLM ECN/ECR不一樣,確定更新ECN/ECR嗎?', {
btn: ['確定', '取消'] btn: ['確定', '取消']
}, function () { }, function () {
layer.closeAll('dialog'); layer.closeAll('dialog');
$("#wipAtt_ECN").val(result_msg); $("#wipAtt_ECN").val(result_data);
}) })
} }
else {
parent.hg.msg(result.msg);
} }
} }
}, },

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

@ -1994,7 +1994,7 @@ FROM [SFIS].[dbo].[ZPDKeyPart] B WHERE B.[IsActive] = 1 AND B.[ProductSN] = (S
// 塞檢驗完成日期 // 塞檢驗完成日期
foreach (var item in qq) foreach (var item in qq)
{ {
var fqcDate = _context.FqcResultMasters.Where(w => w.WipNo == item.wipNo) var fqcDate = _context.FqcResultMasters.Where(w => w.WipNo == item.wipNo && w.QaResult != "A")
.OrderBy(s => s.EndTime) .OrderBy(s => s.EndTime)
.FirstOrDefault(); .FirstOrDefault();
item.fqcDate = fqcDate == null ? "" : fqcDate.EndTime.ToString("yyyy/MM/dd"); item.fqcDate = fqcDate == null ? "" : fqcDate.EndTime.ToString("yyyy/MM/dd");

9
AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs

@ -1920,7 +1920,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
{ {
wipKpsItem = wipKps.Where(w => w.KpNo.ToUpper() == barcodeKPDtoItem.inputType.ToUpper()).FirstOrDefault(); wipKpsItem = wipKps.Where(w => w.KpNo.ToUpper() == barcodeKPDtoItem.inputType.ToUpper()).FirstOrDefault();
if (wipKpsItem != null) if (wipKpsItem == null)
{ {
wipKpsItem = wipKps[x + i]; wipKpsItem = wipKps[x + i];
} }
@ -2210,9 +2210,14 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
// 有過站紀錄 // 有過站紀錄
if (barcodeInfo != null) if (barcodeInfo != null)
{ {
// 如果BarCodeInfo 結案就除外 // 如果BarCodeInfo 結案,判斷當下作業站是否第一站
if (barcodeInfo.StatusID == -1) if (barcodeInfo.StatusID == -1)
{ {
if (!rules.Value.Where(w => w.StationID == stationID && w.RuleSeq == 1 && w.RuleStatus == "P").Any())
{
resultModel.Msg = "目前作業站不是第一站,請確認";
return resultModel;
}
resultModel.Success = true; resultModel.Success = true;
return resultModel; return resultModel;
} }

Loading…
Cancel
Save