Browse Source

1.修改在製分布圖

1.1.修改良率顏色(低於等於90紅色,高於等於98綠色,處於95~97黃色
1.2.增加過站PASS數量彈窗顯示條碼信息QRS009P
1.3.增加過站FAIL數量彈窗顯示條碼信息QRS009F
1.4.增加WIP數量彈窗顯示條碼信息QRS009W
PTD
Marvin 3 years ago
parent
commit
9df95e8eca
  1. 120
      AMESCoreStudio.Web/Controllers/QRSController.cs
  2. 14
      AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs
  3. 53
      AMESCoreStudio.Web/Views/QRS/QRS009F.cshtml
  4. 53
      AMESCoreStudio.Web/Views/QRS/QRS009P.cshtml
  5. 53
      AMESCoreStudio.Web/Views/QRS/QRS009W.cshtml
  6. 52
      AMESCoreStudio.WebApi/Controllers/AMES/BarcodeInfoesController.cs
  7. 52
      AMESCoreStudio.WebApi/Controllers/AMES/BarcodeStationController.cs

120
AMESCoreStudio.Web/Controllers/QRSController.cs

@ -3,8 +3,8 @@ using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using AMESCoreStudio.CommonTools.Result;
using Microsoft.AspNetCore.Hosting;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using AMESCoreStudio.Web.Models;
namespace AMESCoreStudio.Web.Controllers
{
@ -92,17 +92,50 @@ namespace AMESCoreStudio.Web.Controllers
}
}
stationQty = stationQty + "<td width='150' style='text-align:left'>" + okQty + "/" + ngQty + "</td>";
//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].RuleStationID + "',800,600);\">" + okQty + "</a>/<a href=\"javascript:hg.open('過站FAIL條碼資料','/QRS/QRS009F/" + wip_id + "_" + rule_sation[j].RuleStationID + "',800,600);\">" + ngQty + "</a></td>";
double rate = ((okQty * 1.0) / (okQty + ngQty)) * 100;
if (j == rule_sation.Count - 2)
{
if (rate <= 90)
{
stationRate = stationRate + "<td width='150' style='text-align:left;color:red'>" + rate.ToString("0.00") + "%" + "</td>";
}
else if (rate >= 95 && rate <= 97)
{
stationRate = stationRate + "<td width='150' style='text-align:left;color:yellow'>" + rate.ToString("0.00") + "%" + "</td>";
}
else if (rate >= 98)
{
stationRate = stationRate + "<td width='150' style='text-align:left;color:green'>" + rate.ToString("0.00") + "%" + "</td>";
}
else
{
stationRate = stationRate + "<td width='150' style='text-align:left'>" + rate.ToString("0.00") + "%" + "</td>";
}
//stationRate = stationRate + "<td width='150' style='text-align:left'>" + rate.ToString("0.00") + "%" + "</td>";
}
else
{
//stationRate = stationRate + "<td width='90' style='text-align:left'>" + rate.ToString("0.00") + "%" + "</td>";
if (rate <= 90)
{
stationRate = stationRate + "<td width='90' style='text-align:left;color:red'>" + rate.ToString("0.00") + "%" + "</td>";
}
else if (rate >= 95 && rate <= 97)
{
stationRate = stationRate + "<td width='90' style='text-align:left;color:yellow'>" + rate.ToString("0.00") + "%" + "</td>";
}
else if (rate >= 98)
{
stationRate = stationRate + "<td width='90' style='text-align:left;color:green'>" + rate.ToString("0.00") + "%" + "</td>";
}
else
{
stationRate = stationRate + "<td width='90' style='text-align:left'>" + rate.ToString("0.00") + "%" + "</td>";
}
stationRate = stationRate + "<td width='60' style='text-align:left'>" + "<font color='#FF80FF'>" + " >> " + "</font>" + "</td>";
}
}
@ -155,7 +188,7 @@ namespace AMESCoreStudio.Web.Controllers
}
}
}
stationWip = stationWip + "<td width='150' style='text-align:left'>" + (okQty1 + ngQty1 - okQty2 - ngQty2) + "</td>";
stationWip = stationWip + "<td width='150' style='text-align:left'><a href=\"javascript:hg.open('在製條碼資料','/QRS/QRS009W/" + wip_id + "_" + station_list[j] + "',800,600);\">" + (okQty1 + ngQty1 - okQty2 - ngQty2) + "</a></td>";
}
stationWip = stationWip + "</tr></table><br/>";
@ -219,5 +252,86 @@ namespace AMESCoreStudio.Web.Controllers
ViewData["WipDataList"] = wipDataList;
return View();
}
public IActionResult QRS009P(string id)
{
string[] param = id.Split("_");
ViewBag.WIP_ID = param[0];
ViewBag.RULE_STATION_ID = param[1];
return View();
}
public IActionResult QRS009F(string id)
{
string[] param = id.Split("_");
ViewBag.WIP_ID = param[0];
ViewBag.RULE_STATION_ID = param[1];
return View();
}
public IActionResult QRS009W(string id)
{
string[] param = id.Split("_");
ViewBag.WIP_ID = param[0];
ViewBag.RULE_STATION_ID = param[1];
return View();
}
[ResponseCache(Duration = 0)]
[HttpGet]
public async Task<IActionResult> GetWipStationPassBarcode(string id, int page = 1, int limit = 10)
{
string[] param = id.Split("_");
int wip_id = int.Parse(param[0]);
int rule_station_id = int.Parse(param[1]);
var result = await _pcsApi.GetWipStationBarcode4QRS009(wip_id, rule_station_id, "P", page, limit);
if (result.DataTotal > 0)
{
return Json(new Table() { code = 0, msg = "", data = result.Data, count = result.DataTotal });
}
return Json(new Table() { count = 0, data = null });
}
[ResponseCache(Duration = 0)]
[HttpGet]
public async Task<IActionResult> GetWipStationFailBarcode(string id, int page = 1, int limit = 10)
{
string[] param = id.Split("_");
int wip_id = int.Parse(param[0]);
int rule_station_id = int.Parse(param[1]);
var result = await _pcsApi.GetWipStationBarcode4QRS009(wip_id, rule_station_id, "F", page, limit);
if (result.DataTotal > 0)
{
return Json(new Table() { code = 0, msg = "", data = result.Data, count = result.DataTotal });
}
return Json(new Table() { count = 0, data = null });
}
[ResponseCache(Duration = 0)]
[HttpGet]
public async Task<IActionResult> GetWipStationBarcode(string id, int page = 1, int limit = 10)
{
string[] param = id.Split("_");
int wip_id = int.Parse(param[0]);
int rule_station_id = int.Parse(param[1]);
var result = await _pcsApi.GetWipBarcode4QRS009(wip_id, rule_station_id, page, limit);
if (result.DataTotal > 0)
{
return Json(new Table() { code = 0, msg = "", data = result.Data, count = result.DataTotal });
}
return Json(new Table() { count = 0, data = null });
}
}
}

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

@ -739,6 +739,20 @@ namespace AMESCoreStudio.Web
[WebApiClient.Attributes.HttpGet("api/WipStation/GetWipStation4QRS009")]
ITask<List<WipStation>> GetWipStation4QRS009(int wipID,int ruleStationID);
/// <summary>
/// 查詢工單站別條碼資料
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/BarcodeStation/GetWipStationBarcode4QRS009")]
ITask<ResultModel<dynamic>> GetWipStationBarcode4QRS009(int wipID, int ruleStationID, string ruleStatus, int page, int limit);
/// <summary>
/// 查詢工單站別在製條碼資料
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/BarcodeInfoes/GetWipBarcode4QRS009")]
ITask<ResultModel<dynamic>> GetWipBarcode4QRS009(int wipID, int ruleStationID, int page, int limit);
#endregion

53
AMESCoreStudio.Web/Views/QRS/QRS009F.cshtml

@ -0,0 +1,53 @@
@{
ViewData["Title"] = "在製分布圖-過站FAIL條碼資料";
Layout = "~/Views/Shared/_AMESLayout.cshtml";
}
<div class="layui-card">
<div class="layui-card-body">
<input id="wip_id" name="wip_id" value="@ViewBag.WIP_ID" type="hidden" />
<input id="rule_station_id" name="rule_station_id" value="@ViewBag.RULE_STATION_ID" type="hidden" />
<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);
});
var tableCols = [[
{
field: 'barcodeNo',
width: 200,
title: '條碼',
sort: true
},
{
field: 'lineDesc',
width: 80,
title: '線別名稱'
},
{
field: 'ruleStatus',
minWidth: 60,
title: '狀態'
},
{
field: 'inputDate',
title: '過站時間',
templet: '<div>{{ layui.util.toDateString(d.inputDate, "yyyy/MM/dd HH:mm:ss") }}</div>'
},
{
field: 'userName',
title: '作業員',
width: 100,
sort: true
}]
];
//基本数据表格
var table = hg.table.datatable('test', '過站FAIL條碼資料', '/QRS/GetWipStationFailBarcode/' + wip_id.value + '_' + rule_station_id.value, {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']);
</script>
}

53
AMESCoreStudio.Web/Views/QRS/QRS009P.cshtml

@ -0,0 +1,53 @@
@{
ViewData["Title"] = "在製分布圖-過站PASS條碼資料";
Layout = "~/Views/Shared/_AMESLayout.cshtml";
}
<div class="layui-card">
<div class="layui-card-body">
<input id="wip_id" name="wip_id" value="@ViewBag.WIP_ID" type="hidden" />
<input id="rule_station_id" name="rule_station_id" value="@ViewBag.RULE_STATION_ID" type="hidden" />
<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);
});
var tableCols = [[
{
field: 'barcodeNo',
width: 200,
title: '條碼',
sort: true
},
{
field: 'lineDesc',
width: 80,
title: '線別名稱'
},
{
field: 'ruleStatus',
minWidth: 60,
title: '狀態'
},
{
field: 'inputDate',
title: '過站時間',
templet: '<div>{{ layui.util.toDateString(d.inputDate, "yyyy/MM/dd HH:mm:ss") }}</div>'
},
{
field: 'userName',
title: '作業員',
width: 100,
sort: true
}]
];
//基本数据表格
var table = hg.table.datatable('test', '過站PASS條碼資料', '/QRS/GetWipStationPassBarcode/' + wip_id.value + '_' + rule_station_id.value, {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']);
</script>
}

53
AMESCoreStudio.Web/Views/QRS/QRS009W.cshtml

@ -0,0 +1,53 @@
@{
ViewData["Title"] = "在製分布圖-在製條碼資料";
Layout = "~/Views/Shared/_AMESLayout.cshtml";
}
<div class="layui-card">
<div class="layui-card-body">
<input id="wip_id" name="wip_id" value="@ViewBag.WIP_ID" type="hidden" />
<input id="rule_station_id" name="rule_station_id" value="@ViewBag.RULE_STATION_ID" type="hidden" />
<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);
});
var tableCols = [[
{
field: 'barcodeNo',
width: 200,
title: '條碼',
sort: true
},
{
field: 'lineDesc',
width: 80,
title: '線別名稱'
},
{
field: 'ruleStatus',
minWidth: 60,
title: '狀態'
},
{
field: 'createDate',
title: '過站時間',
templet: '<div>{{ layui.util.toDateString(d.createDate, "yyyy/MM/dd HH:mm:ss") }}</div>'
},
{
field: 'userName',
title: '作業員',
width: 100,
sort: true
}]
];
//基本数据表格
var table = hg.table.datatable('test', '在製條碼資料', '/QRS/GetWipStationBarcode/' + wip_id.value + '_' + rule_station_id.value, {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']);
</script>
}

52
AMESCoreStudio.WebApi/Controllers/AMES/BarcodeInfoesController.cs

@ -89,6 +89,58 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
return barcodeInfo;
}
/// <summary>
/// 查詢工單站別在製條碼資料
/// </summary>
/// <returns></returns>
[Route("[action]")]
[HttpGet]
public async Task<ResultModel<dynamic>> GetWipBarcode4QRS009(int wipID, int ruleStationID, int page = 1, int limit = 10)
{
ResultModel<dynamic> result = new ResultModel<dynamic>();
var q = from q1 in _context.BarcodeInfoes
join q2 in _context.WipInfos on q1.WipID equals q2.WipID
join q3 in _context.LineInfoes on q2.LineID equals q3.LineID
join q4 in _context.UserInfoes on q1.CreateUserID equals q4.UserID
select new
{
q1.BarcodeID,
q1.WipID,
q1.RuleStationID,
q1.BarcodeNo,
q3.LineDesc,
q1.RuleStatus,
q1.SysType,
q1.CreateDate,
q4.UserName
};
q = q.Where(w => w.WipID == wipID && w.RuleStationID == ruleStationID);
//紀錄筆數
result.DataTotal = q.Count();
//Table 頁數
if (page > 0)
{
q = q.Skip((page - 1) * limit).Take(limit);
}
result.Data = await q.ToListAsync();
if (result == null)
{
result.Msg = "查無資料";
result.Success = false;
return result;
}
result.Success = true;
result.Msg = "OK";
return result;
}
/// <summary>
/// 用工單號碼获取该條碼资料
/// </summary>

52
AMESCoreStudio.WebApi/Controllers/AMES/BarcodeStationController.cs

@ -93,6 +93,58 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
return barcodeStation;
}
/// <summary>
/// 查詢工單站別條碼資料
/// </summary>
/// <returns></returns>
[Route("[action]")]
[HttpGet]
public async Task<ResultModel<dynamic>> GetWipStationBarcode4QRS009(int wipID, int ruleStationID, string ruleStatus, int page = 1, int limit = 10)
{
ResultModel<dynamic> result = new ResultModel<dynamic>();
var q = from q1 in _context.BarcodeStation
join q2 in _context.BarcodeInfoes on q1.BarcodeID equals q2.BarcodeID
join q3 in _context.LineInfoes on q1.LineId equals q3.LineID
join q4 in _context.UserInfoes on q1.CreateUserID equals q4.UserID
select new
{
q1.BarcodeID,
q1.WipID,
q1.RuleStationID,
q2.BarcodeNo,
q3.LineDesc,
q1.RuleStatus,
q1.Systype,
q1.InputDate,
q4.UserName
};
q = q.Where(w => w.WipID == wipID && w.RuleStationID == ruleStationID && w.RuleStatus == ruleStatus);
//紀錄筆數
result.DataTotal = q.Count();
//Table 頁數
if (page > 0)
{
q = q.Skip((page - 1) * limit).Take(limit);
}
result.Data = await q.ToListAsync();
if (result == null)
{
result.Msg = "查無資料";
result.Success = false;
return result;
}
result.Success = true;
result.Msg = "OK";
return result;
}
/// <summary>
/// 用工單ID查是否有過站紀錄
/// </summary>

Loading…
Cancel
Save