Browse Source

1. 生產進度查詢加入 工單狀態查詢及完工數量顯示

2. 過站取消MAC區間判斷
PTD
Ray 2 years ago
parent
commit
9ca82eb4d3
  1. 33
      AMESCoreStudio.Web/Controllers/QRSController.cs
  2. 2
      AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs
  3. 29
      AMESCoreStudio.Web/Views/QRS/QRS011.cshtml
  4. 8
      AMESCoreStudio.WebApi/Controllers/AMES/WipInfosController.cs
  5. 118
      AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs

33
AMESCoreStudio.Web/Controllers/QRSController.cs

@ -405,11 +405,19 @@ namespace AMESCoreStudio.Web.Controllers
return View();
}
public async Task<IActionResult> QRS011AAsync(string unitNo, string itemNO, string wipNO)
/// <summary>
/// 生產進度查詢
/// </summary>
/// <param name="unitNo">生產製程</param>
/// <param name="itemNO">料號</param>
/// <param name="wipNO">工單號碼</param>
/// <param name="wipStatus">工單狀態:N(未完工) E(已完工)</param>
/// <returns></returns>
public async Task<IActionResult> QRS011AAsync(string unitNo, string itemNO, string wipNO, string wipStatus)
{
ViewData["Title"] = "查詢條件 - 製程代碼 : " + unitNo + "; 料號 : " + itemNO + "; 工單號碼 : " + wipNO;
IResultModel<dynamic> result = await _pcsApi.GetWipInfo4QRS011(unitNo, itemNO, wipNO);
IResultModel<dynamic> result = await _pcsApi.GetWipInfo4QRS011(unitNo, itemNO, wipNO, wipStatus);
string wipDataList = "<font size='3'>";
if (result.DataTotal > 0)
@ -474,6 +482,23 @@ namespace AMESCoreStudio.Web.Controllers
}
}
// 完工站(1000)PASS資料 抓上一站PASS數
if (rule_sation[j].StationID == 1000)
{
wip_station = await _pcsApi.GetWipStation4QRS009Group(wip_id, rule_sation[j - 1].StationID);
if (wip_station.DataTotal > 0)
{
foreach (var data in wip_station.Data)
{
JObject j0 = JObject.Parse(data.ToString());
if (j0["ruleStatus"].ToString() == "P")
{
okQty = int.Parse(j0["firstCnt"].ToString());
}
}
}
}
//stationQty = stationQty + "<td width='150' style='text-align:left'><a href=\"javascript:hg.open('過站PASS條碼資料','/QRS/QRS009P/" + wip_id + "_" + rule_sation[j].RuleStationID + "','','',true);\">" + okQty + "</a>/<a href=\"javascript:hg.open('過站FAIL條碼資料','/QRS/QRS009F','','',true);\">" + ngQty + "</a></td>";
stationQty = stationQty + "<td width='150' style='text-align:left'><a href=\"javascript:hg.open('過站PASS條碼資料','/QRS/QRS009P/" + wip_id + "_" + rule_sation[j].StationID + "',800,600);\">" + okQty + "</a>/<a href=\"javascript:hg.open('過站FAIL條碼資料','/QRS/QRS009F/" + wip_id + "_" + rule_sation[j].StationID + "',800,600);\">" + ngQty + "</a></td>";
@ -994,7 +1019,7 @@ namespace AMESCoreStudio.Web.Controllers
var result = await _pcsApi.GetWipInfo4QRS013(wipNO, factoryNo, page, limit);
string cols= @"";
string cols = @"";
ViewBag.ColList = cols;
@ -1643,7 +1668,7 @@ namespace AMESCoreStudio.Web.Controllers
return View();
}
public async Task<IActionResult> QRS018D(string wipNO,string stationID,string partNO)
public async Task<IActionResult> QRS018D(string wipNO, string stationID, string partNO)
{
var station = await _basApi.GetStations(int.Parse(stationID));

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

@ -1042,7 +1042,7 @@ namespace AMESCoreStudio.Web
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/WipInfos/GetWipInfo4QRS011")]
ITask<ResultModel<dynamic>> GetWipInfo4QRS011(string unitNo, string itemNO, string wipNO);
ITask<ResultModel<dynamic>> GetWipInfo4QRS011(string unitNo, string itemNO, string wipNO , string wipStatus);
#endregion

29
AMESCoreStudio.Web/Views/QRS/QRS011.cshtml

@ -15,10 +15,21 @@
<div class="layui-form">
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-col-sm2">
<div class="layui-inline">
<label class="layui-form-label">工單狀態:</label>
<div class="layui-input-inline" style="width:100px">
<select id="wipStatus" lay-filter="wipStatus" lay-verify="required" lay-submit>
<option value="A">未完工</option>
<option value="E">已完工</option>
</select>
</div>
</div>
</div>
<div class="layui-col-sm3">
<div class="layui-inline">
<label class="layui-form-label">生產單位:</label>
<div class="layui-input-inline">
<div class="layui-input-inline" >
<select id="unit" lay-filter="unit" lay-verify="required" lay-submit asp-items="@ViewBag.UnitList">
<option value="*">全部</option>
</select>
@ -54,8 +65,10 @@
</div>
</div>
@section Scripts{
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial");
await Html.RenderPartialAsync("_FileinputScriptsPartial"); }
@{
await Html.RenderPartialAsync("_ValidationScriptsPartial");
await Html.RenderPartialAsync("_FileinputScriptsPartial");
}
<script type="text/javascript">
layui.use(['form', 'layer', 'laydate'], function () {
var form = layui.form;
@ -65,9 +78,17 @@
var unitNo = $("#unit").val();
var itemNO = $("#itemNO").val();
var wipNO = $("#wipNO").val();
var wipStatus = $("#wipStatus").val();
console.log(wipNO);
// 工單狀態選已完工 必須要有工單號碼
if (wipStatus == "E" && wipNO == '')
{
layer.alert('要查詢工單狀態已完工,必須要輸入工單號碼');
return;
}
var query = "?unitNo=" + unitNo + "&itemNO=" + itemNO + "&wipNO=" + wipNO;
var query = `?unitNo=${unitNo}&itemNO=${itemNO}&wipNO=${wipNO}&wipStatus=${wipStatus}`;
hg.open('生產進度查詢', '/QRS/QRS011A' + query, '', '', true);
};

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

@ -172,10 +172,14 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
/// <summary>
/// 查詢工單資料QRS011
/// </summary>
/// <param name="unitNo">生產製程</param>
/// <param name="itemNO">料號</param>
/// <param name="wipNO">工單號碼</param>
/// <param name="wipStatus">工單狀態:N(未完工) E(已完工)</param>
/// <returns></returns>
[Route("[action]")]
[HttpGet]
public async Task<ResultModel<dynamic>> GetWipInfo4QRS011(string unitNo, string itemNO, string wipNO)
public async Task<ResultModel<dynamic>> GetWipInfo4QRS011(string unitNo, string itemNO, string wipNO , string wipStatus = "A")
{
ResultModel<dynamic> result = new ResultModel<dynamic>();
var q = from q1 in _context.WipInfos
@ -198,7 +202,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
q4.UnitName
};
q = q.Where(w => w.StatusNO == "A");
q = q.Where(w => w.StatusNO == wipStatus);
if (unitNo != "*")
{
q = q.Where(w => w.UnitNO == unitNo);

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

@ -281,35 +281,36 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
#endregion
#region 判斷MAC區間
if (q_Kp.KpNo.ToUpper() == "MAC")
{
var wipMAC = await wipMACController.GetWipMAC(barCodeCheckDto.wipNo);
if (wipMAC.Value == null)
{
resultModel.Msg += "工單號碼【" + barCodeCheckDto.wipNo + "】 找不到綁定MAC區間</br>";
}
else
{
// 判斷MAC前置碼是否一樣
if (!KPs.inputData.StartsWith(wipMAC.Value.Title))
{
resultModel.Msg += "組件序號【" + KPs.inputData + "】 與MAC【" + wipMAC.Value.Title + "】前置碼不符合 </br>";
}
else
{
// 判斷是否符合區間
if (KPs.inputData.Length == 12)
{
if (!(Convert.ToInt32(wipMAC.Value.StartNO, 16) <= Convert.ToInt32(KPs.inputData.Substring(6, 6), 16)
&& Convert.ToInt32(KPs.inputData.Substring(6, 6), 16) <= Convert.ToInt32(wipMAC.Value.EndNO, 16)))
{
resultModel.Msg += "組件序號【" + KPs.inputData + "】 與工單設定MAC區間不符合 </br>";
}
}
}
}
}
// 安勤不需要判斷MAC區間
//if (q_Kp.KpNo.ToUpper() == "MAC")
//{
// var wipMAC = await wipMACController.GetWipMAC(barCodeCheckDto.wipNo);
// if (wipMAC.Value == null)
// {
// resultModel.Msg += "工單號碼【" + barCodeCheckDto.wipNo + "】 找不到綁定MAC區間</br>";
// }
// else
// {
// // 判斷MAC前置碼是否一樣
// if (!KPs.inputData.StartsWith(wipMAC.Value.Title))
// {
// resultModel.Msg += "組件序號【" + KPs.inputData + "】 與MAC【" + wipMAC.Value.Title + "】前置碼不符合 </br>";
// }
// else
// {
// // 判斷是否符合區間
// if (KPs.inputData.Length == 12)
// {
// if (!(Convert.ToInt32(wipMAC.Value.StartNO, 16) <= Convert.ToInt32(KPs.inputData.Substring(6, 6), 16)
// && Convert.ToInt32(KPs.inputData.Substring(6, 6), 16) <= Convert.ToInt32(wipMAC.Value.EndNO, 16)))
// {
// resultModel.Msg += "組件序號【" + KPs.inputData + "】 與工單設定MAC區間不符合 </br>";
// }
// }
// }
// }
//}
#endregion
#region 判斷出貨序號
@ -1929,35 +1930,36 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
#endregion
#region 判斷MAC區間
if (wipKpsItem.KpNo.ToUpper() == "MAC")
{
WipMACController wipMACController = new WipMACController(_context);
var wipMAC = await wipMACController.GetWipMAC(barcodeItemKPDto.WipNo);
if (wipMAC.Value == null)
{
CheckMsg += "工單號碼【" + barcodeItemKPDto.WipNo + "】 找不到綁定MAC區間</br>";
}
else
{
// 判斷MAC前置碼是否一樣
if (!barcodeKPDtoItem.inputData.StartsWith(wipMAC.Value.Title))
{
CheckMsg += "組件序號【" + barcodeKPDtoItem.inputData + "】 與MAC【" + wipMAC.Value.Title + "】前置碼不符合 </br>";
}
else
{
// 判斷是否符合區間
if (barcodeKPDtoItem.inputData.Length == 12)
{
if (!(Convert.ToInt32(wipMAC.Value.StartNO, 16) <= Convert.ToInt32(barcodeKPDtoItem.inputData.Substring(6, 6), 16)
&& Convert.ToInt32(barcodeKPDtoItem.inputData.Substring(6, 6), 16) <= Convert.ToInt32(wipMAC.Value.EndNO, 16)))
{
CheckMsg += "組件序號【" + barcodeKPDtoItem.inputData + "】 與工單設定MAC區間不符合 </br>";
}
}
}
}
}
// 安勤不需要判斷MAC區間
//if (wipKpsItem.KpNo.ToUpper() == "MAC")
//{
// WipMACController wipMACController = new WipMACController(_context);
// var wipMAC = await wipMACController.GetWipMAC(barcodeItemKPDto.WipNo);
// if (wipMAC.Value == null)
// {
// CheckMsg += "工單號碼【" + barcodeItemKPDto.WipNo + "】 找不到綁定MAC區間</br>";
// }
// else
// {
// // 判斷MAC前置碼是否一樣
// if (!barcodeKPDtoItem.inputData.StartsWith(wipMAC.Value.Title))
// {
// CheckMsg += "組件序號【" + barcodeKPDtoItem.inputData + "】 與MAC【" + wipMAC.Value.Title + "】前置碼不符合 </br>";
// }
// else
// {
// // 判斷是否符合區間
// if (barcodeKPDtoItem.inputData.Length == 12)
// {
// if (!(Convert.ToInt32(wipMAC.Value.StartNO, 16) <= Convert.ToInt32(barcodeKPDtoItem.inputData.Substring(6, 6), 16)
// && Convert.ToInt32(barcodeKPDtoItem.inputData.Substring(6, 6), 16) <= Convert.ToInt32(wipMAC.Value.EndNO, 16)))
// {
// CheckMsg += "組件序號【" + barcodeKPDtoItem.inputData + "】 與工單設定MAC區間不符合 </br>";
// }
// }
// }
// }
//}
#endregion
#region 判斷出貨序號

Loading…
Cancel
Save