Browse Source

1. 修改過站不良代碼 移除'$'符號

2. 新增未結工單查詢
PTD
Ray 3 years ago
parent
commit
bf8a008319
  1. 292
      AMESCoreStudio.Web/Controllers/PCSController.cs
  2. 11
      AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs
  3. 106
      AMESCoreStudio.Web/Views/PCS/PCS008.cshtml
  4. 53
      AMESCoreStudio.Web/Views/PCS/PCS008F.cshtml
  5. 53
      AMESCoreStudio.Web/Views/PCS/PCS008P.cshtml
  6. 2
      AMESCoreStudio.Web/Views/PCS/PCS008V.cshtml
  7. 53
      AMESCoreStudio.Web/Views/PCS/PCS008W.cshtml
  8. 86
      AMESCoreStudio.WebApi/Controllers/AMES/WipInfosController.cs
  9. 4
      AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs
  10. 4
      AMESCoreStudio.WebApi/DTO/AMES/WipInfoDto.cs

292
AMESCoreStudio.Web/Controllers/PCSController.cs

@ -16,6 +16,7 @@ using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.IO;
using System.Linq;
using Newtonsoft.Json.Linq;
using System.Threading.Tasks;
using AMESCoreStudio.WebApi.Enum;
using Microsoft.Extensions.Localization;
@ -3047,6 +3048,297 @@ namespace AMESCoreStudio.Web.Controllers
#endregion
#region PCS008 未結工單查詢
public async Task<IActionResult> PCS008(string id)
{
if (id != null)
{
await GetFactoryUnit(id);
ViewBag.UnitNo = id;
}
else
{
await GetFactoryUnit();
}
//await GetFactoryUnit();
return View();
}
[HttpPost]
public async Task<IActionResult> PCS008Async(string unitNo, string wipNo, string itemNo, string dateStr, string dateEnd)
{
IResultModel<dynamic> result = await _pcsApi.GetWipInfoPCS008(unitno: unitNo, wipno: wipNo, itemno: itemNo,
date_str: dateStr, date_end: dateEnd);
string wipDataList = "<font size='3'>";
if (result.DataTotal > 0)
{
foreach (var item in result.Data)
{
JObject jo = JObject.Parse(item.ToString());
int wip_id = int.Parse(jo["wipID"].ToString());
int flow_rule_id = int.Parse(jo["flowRuleID"].ToString());
int line_id = int.Parse(jo["lineID"].ToString());
string item_no = jo["itemNO"].ToString();
string unit_name = jo["unitName"].ToString();
string line_desc = jo["lineDesc"].ToString();
string wip_no = jo["wipNO"].ToString();
int plan_qty = int.Parse(jo["planQTY"].ToString());
int input_qty = int.Parse(jo["completeQTY"].ToString());
int output_qty = 0;
var standardWorkTimes = await _pcsApi.GetStandardWorkTimeByItemNo(item_no);
string ct1 = "";
if (standardWorkTimes.Count > 0)
{
ct1 = standardWorkTimes.Where(w => w.LineID == line_id).FirstOrDefault().CT.ToString();
}
wipDataList = wipDataList + "<font color='#FF80FF'>" + unit_name + " - " + line_desc + "</font>" + " - " + "<font color='#0080FF'>" + wip_no + "</font>" + "<font color='#FFC90E'>" + "(" + item_no + ")" + "</font>" + " - " + "<font color='#0080FF'>" + plan_qty + " / " + input_qty + " / " + output_qty + "</font>" + " | " + "<font color='#0080FF'>" + "標準工時: " + "</font>" + ct1 + "<br/>";
var rule_sation = await _basApi.GetRuleStationsByFlow(flow_rule_id);
wipDataList = wipDataList + "<table><tr><td width='120'></td>";
string stationQty = "<table><tr><td width='120'>過站數量</td>";
string stationRate = "<table><tr><td width='120'>良率</td>";
string stationWip = "<table><tr><td width='120'>WIP</td>";
string stationList = "";
for (int j = 0; j < rule_sation.Count; j++)
{
if (rule_sation[j].StationID != 1000 && rule_sation[j].StationType == "M")
{
stationList = stationList + rule_sation[j].RuleStationID + ",";
wipDataList = wipDataList + "<td width='150' style='text-align:left'>" + rule_sation[j].StationDesc + "</td>";
var wip_station = await _pcsApi.GetWipStation4QRS009Group(wip_id, rule_sation[j].RuleStationID);
int okQty = 0, ngQty = 0;
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());
}
else
{
ngQty = int.Parse(j0["firstCnt"].ToString());
}
}
/*
for (int k = 0; k < wip_station.Count; k++)
{
if (wip_station[k].RuleStatus == "P")
{
okQty = wip_station[k].FirstCnt;
}
else
{
ngQty = wip_station[k].FirstCnt;
}
}
*/
}
//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>";
}
}
}
stationQty = stationQty + "</tr></table>";
stationRate = stationRate + "</tr></table>";
string[] station_list = stationList.Split(",");
for (int j = 0; j < station_list.Length - 1; j++)
{
var wip_station1 = await _pcsApi.GetWipStation4QRS009Group(wip_id, int.Parse(station_list[j]));
int okQty1 = 0, ngQty1 = 0;
if (wip_station1.DataTotal > 0)
{
foreach (var data in wip_station1.Data)
{
JObject j1 = JObject.Parse(data.ToString());
if (j1["ruleStatus"].ToString() == "P")
{
okQty1 = int.Parse(j1["firstCnt"].ToString());
}
else
{
ngQty1 = int.Parse(j1["firstCnt"].ToString());
}
}
/*
for (int k = 0; k < wip_station1; k++)
{
if (wip_station1[k].RuleStatus == "P")
{
okQty1 = wip_station1[k].FirstCnt;
}
else
{
ngQty1 = wip_station1[k].FirstCnt;
}
}
*/
}
int okQty2 = 0, ngQty2 = 0;
//计算WIP
if (j < station_list.Length - 2)
{
var wip_station2 = await _pcsApi.GetWipStation4QRS009Group(wip_id, int.Parse(station_list[j + 1]));
if (wip_station2.DataTotal > 0)
{
/*
for (int k = 0; k < wip_station2.Count; k++)
{
if (wip_station2[k].RuleStatus == "P")
{
okQty2 = wip_station2[k].FirstCnt;
}
else
{
ngQty2 = wip_station2[k].FirstCnt;
}
}
*/
foreach (var data in wip_station2.Data)
{
JObject j2 = JObject.Parse(data.ToString());
if (j2["ruleStatus"].ToString() == "P")
{
okQty2 = int.Parse(j2["firstCnt"].ToString());
}
else
{
ngQty2 = int.Parse(j2["firstCnt"].ToString());
}
}
}
}
int wip_qty = okQty1 + ngQty1 - okQty2 - ngQty2;
if (wip_qty < 0)
{
wip_qty = 0;
}
stationWip = stationWip + "<td width='150' style='text-align:left'><a href=\"javascript:hg.open('條碼資料','/QRS/QRS009W/" + wip_id + "_" + station_list[j] + "',800,600);\">" + wip_qty + "</a></td>";
}
stationWip = stationWip + "</tr></table><br/>";
wipDataList = wipDataList + "</tr></table>";
wipDataList = wipDataList + stationQty;
wipDataList = wipDataList + stationRate;
wipDataList = wipDataList + stationWip;
/*
wipDataList = wipDataList + "<table><tr><td width='120'>過站數量</td>";
for (int j = 0; j < rule_sation.Count; j++)
{
if (rule_sation[j].StationID != 1000 && rule_sation[j].StationType == "M")
{
wipDataList = wipDataList + "<td width='150' style='text-align:left'>" + "0/0" + "</td>";
}
}
wipDataList = wipDataList + "</tr></table>";
*/
/*
wipDataList = wipDataList + "<table><tr><td width='120'>良率</td>";
for (int j = 0; j < rule_sation.Count; j++)
{
if (rule_sation[j].StationID != 1000 && rule_sation[j].StationType == "M")
{
if (j == rule_sation.Count - 2)
{
wipDataList = wipDataList + "<td width='150' style='text-align:left'>" + "100%" + "</td>";
}
else
{
wipDataList = wipDataList + "<td width='90' style='text-align:left'>" + "100%" + "</td>";
wipDataList = wipDataList + "<td width='60' style='text-align:left'>" + "<font color='#FF80FF'>" + " >> " + "</font>" + "</td>";
}
}
}
wipDataList = wipDataList + "</tr></table>";
*/
/*
wipDataList = wipDataList + "<table><tr><td width='120'>WIP</td>";
for (int j = 0; j < rule_sation.Count; j++)
{
if (rule_sation[j].StationID != 1000 && rule_sation[j].StationType == "M")
{
wipDataList = wipDataList + "<td width='150' style='text-align:left'>" + "0" + "</td>";
}
}
wipDataList = wipDataList + "</tr></table><br/>";
*/
}
}
else
{
wipDataList = wipDataList + "查無資料";
}
wipDataList = wipDataList + "</font>";
ViewData["WipDataList"] = wipDataList;
return View("PCS008V");
}
#endregion

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

@ -102,6 +102,17 @@ namespace AMESCoreStudio.Web
ITask<ResultModel<dynamic>> GetWipInfoSelectParameterInBarCodeStation(string unitno = null, string wipno = null, int lineid = 0
, string itemno = null, DateTime? date_str = null, DateTime? date_end = null);
/// <summary>
/// 查詢未結工單查詢
/// </summary>
/// <param name="unitno">生產單位</param>
/// <param name="wipno">工單號碼</param>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/WipInfos/GetWipInfoPCS008")]
//ITask<List<WipInfo>> GetWipInfoSelectParameter(string unitno = null, string wipno = null);
ITask<ResultModel<dynamic>> GetWipInfoPCS008(string unitno = null, string wipno = null, int lineid = 0
, string itemno = null, string date_str = null, string date_end = null, int page = 0, int limit = 10);
/// <summary>
/// 查詢工單基本資料-WipID
/// </summary>

106
AMESCoreStudio.Web/Views/PCS/PCS008.cshtml

@ -1,5 +1,4 @@
@model AMESCoreStudio.Web.ViewModels.PCS.PCS009ViewModel

@{
ViewData["Title"] = "未結工單查詢";
Layout = "~/Views/Shared/_AMESLayout.cshtml";
@ -33,7 +32,7 @@
<div class="layui-card">
<form enctype="multipart/form-data" id="myForm" method="post" class="layui-form">
<form enctype="multipart/form-data" id="myForm" method="post" asp-action="PCS008" class="layui-form">
<div class="layui-card-header">
<div class="layui-form-item">
<div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div>
@ -43,30 +42,26 @@
<div class="layui-form-item">
<label class="layui-form-label">生產單位:</label>
<div class="layui-input-inline">
<input asp-for="BarCodeNo" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">線別:</label>
<div class="layui-input-inline">
<input asp-for="PartNo" class="layui-input">
<select id="unit" lay-filter="unit" name="unit" lay-submit asp-items="@ViewBag.FactoryUnitList">
</select>
<input id="unitNo" type="hidden" name="unitNo" value="@ViewBag.UnitNo" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">工單號碼:</label>
<div class="layui-input-inline">
<input asp-for="ExtraBarCodeNo" class="layui-input">
<input id="wipNo" name="wipNo" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">料號:</label>
<div class="layui-input-inline">
<input asp-for="BoxNo" class="layui-input">
<input id="itemNo" name="itemNo" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">建立日期:</label>
<label class="layui-form-label">工單建立日期:</label>
<div class="layui-input-inline" style="width:150px">
<input id="dateStr" name="dateStr" autocomplete="off" class="layui-input" readonly="">
</div>
@ -75,27 +70,14 @@
<input id="dateEnd" name="dateEnd" autocomplete="off" class="layui-input" readonly="">
</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">&#xe615;</i>
</button>
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<br />
<div class="layui-col-md12" style="text-align:center">
<div class="layui-inline layui-show-xs-block">
<a class="layui-btn layui-btn-normal layui-icon layui-icon-sm" lay-submit onclick="result()"><i class="layui-icon layui-icon-sm">&#xe615;</i></a>
@*<input type="submit" class="layui-btn layui-btn-primary layui-border-blue layui-icon layui-icon-sm" lay-submit onclick="result()"><i class="layui-icon layui-icon-sm">&#xe615;</i></input>*@
</div>
</div>
</div>
<div class="layui-row" style="text-align:center">
<div class="layui-col-md12" style="text-align:center">
<table class="layui-table" id="query" style="width:60%" lay-filter="query" lay-even lay-size="sm"></table>
<button class="layui-btn layui-btn-sm layui-btn-normal" lay-submit lay-filter="querysubmit">
查詢
</button>
</div>
</div>
</form>
@ -106,57 +88,25 @@
await Html.RenderPartialAsync("_FileinputScriptsPartial"); }
<script type="text/javascript">
layui.use(['form', 'layer', 'laydate'], function () {
var form = layui.form;
var form = layui.form,
laydate = layui.laydate;
form.on('select(unit)', function (data) {
$("#unitNo").val(data.value);
});
//通过行tool檢視,lay-event="detail"
function detail(obj) {
if (obj.data.barcodeNo) {
hg.open('條碼生產歷程', '/PCS/PCS009R?BarCodeNo=' + obj.data.barcodeNo, '', '', true);
}
}
function result() {
var BarCodeNo = $("#BarCodeNo").val();
var PartNo = $("#PartNo").val();
var ExtraBarCodeNo = $("#ExtraBarCodeNo").val();
var BoxNo = $("#BoxNo").val();
if (BoxNo != '') {
var tableCols = [[
{
field: 'barcodeNo',
title: '內部條碼',
sort: true
},
{
field: 'extraBarcodeNo',
title: '客戶條碼',
sort: true
},
{
field: 'right',
width: 100,
title: '操作',
fixed: 'right',
templet: function (d) {
return '<a class="layui-btn layui-btn-warm layui-icon layui-icon-list layui-btn-xs" lay-event="detail">檢視</a>'
/* < a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay - event="edit" > 修改</a > '*/
}
}]
];
var table = hg.table.datatable('query', 'query查詢', '/PCS/PCS009Query?boxNo=' + BoxNo, {}, tableCols, '', false, 'full-100');
hg.msghide("重新載入資料..");
table;
}
else {
var query = "?BarCodeNo=" + BarCodeNo + "&PartNo=" + PartNo + "&ExtraBarCodeNo=" + ExtraBarCodeNo;
hg.open('條碼生產歷程', '/PCS/PCS009R' + query, '', '', true);
}
laydate.render({
elem: '#dateStr'
, trigger: 'click'
, format: 'yyyy/MM/dd'
, theme: 'grid'
});
};
laydate.render({
elem: '#dateEnd'
, trigger: 'click'
, format: 'yyyy/MM/dd'
, theme: 'grid'
});
});
</script>
}

53
AMESCoreStudio.Web/Views/PCS/PCS008F.cshtml

@ -1,53 +0,0 @@
@{
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/PCS/PCS008P.cshtml

@ -1,53 +0,0 @@
@{
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>
}

2
AMESCoreStudio.Web/Views/PCS/PCS008V.cshtml

@ -1,5 +1,5 @@
@{
ViewData["Title"] = "在製分布圖";
ViewData["Title"] = "未結工單分布圖";
Layout = "~/Views/Shared/_AMESLayout.cshtml";
}

53
AMESCoreStudio.Web/Views/PCS/PCS008W.cshtml

@ -1,53 +0,0 @@
@{
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>
}

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

@ -211,14 +211,15 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
q = q.Where(w => w.lineID == value.lineid);
}
if (value.date_str != null)
DateTime dateTime = DateTime.Now;
if (DateTime.TryParse(value.date_str, out dateTime))
{
q = q.Where(w => w.CreateDate >= value.date_str);
q = q.Where(w => w.CreateDate >= DateTime.Parse(value.date_str));
}
if (value.date_end != null)
if (DateTime.TryParse(value.date_end, out dateTime))
{
q = q.Where(w => w.CreateDate <= value.date_end);
q = q.Where(w => w.CreateDate <= DateTime.Parse(value.date_end));
}
if (value.itemno != null)
@ -260,6 +261,83 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
return result;
}
/// <summary>
/// 查詢工單資料 未結工單查詢
/// </summary>
/// <returns></returns>
[Route("[action]")]
[HttpGet]
public async Task<ResultModel<dynamic>> GetWipInfoPCS008([FromQuery] WipInfoDto value, string statusNo = null)
{
ResultModel<dynamic> result = new ResultModel<dynamic>();
var q = from q1 in _context.WipInfos where q1.CompleteQTY != 0
join q2 in _context.WipAtts on q1.WipNO equals q2.WipNO
join q3 in _context.LineInfoes on q1.LineID equals q3.LineID
join q4 in _context.FactoryUnits on q1.UnitNO equals q4.UnitNo
select new
{
q1.WipID,
q1.WipNO,
q1.PlanQTY,
q1.CompleteQTY,
q1.UnitNO,
q1.LineID,
q1.FlowRuleID,
q1.StatusNO,
q1.CreateDate,
q2.ItemNO,
q3.LineDesc,
q4.UnitName
};
if (statusNo == null)
{
q = q.Where(w => w.StatusNO != "E");
}
if (value.wipno != null)
{
q = q.Where(w => w.WipNO.Equals(value.wipno));
}
if (value.itemno != null)
{
q = q.Where(w => w.ItemNO.Equals(value.itemno));
}
if (value.unitno != null)
{
q = q.Where(w => w.UnitNO.Equals(value.unitno));
}
DateTime dateTime = DateTime.Now;
if (DateTime.TryParse(value.date_str , out dateTime))
{
q = q.Where(w => w.CreateDate >= DateTime.Parse(value.date_str));
}
if (DateTime.TryParse(value.date_end, out dateTime))
{
q = q.Where(w => w.CreateDate <= DateTime.Parse(value.date_end));
}
//紀錄筆數
result.DataTotal = q.Count();
result.Data = await q.ToListAsync();
if (result == null)
{
result.Msg = "查無資料";
result.Success = false;
return result;
}
result.Success = true;
result.Msg = "OK";
return result;
}
/// <summary>
/// 查詢工單資料Info By WipID
/// </summary>

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

@ -858,7 +858,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
OperatorID = 0,
FixtureNo = "NA",
BarcodeID = barCodeCheckDto.barcodeID,
ReasonNo = NgItem[0].inputData,
ReasonNo = NgItem[0].inputData.Replace("$", ""),
ProgramNo = "N/A",
MachineNo = "N/A",
StationId = barCodeCheckDto.station,
@ -877,7 +877,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
{
NgID = result.Data.FirstOrDefault().NgID,
LocationNo = string.IsNullOrWhiteSpace(NGNo.oldInputData) ? "N/A" : NGNo.oldInputData,
NgNo = NGNo.inputData,
NgNo = NGNo.inputData.Replace("$", ""),
CreateUserID = barCodeCheckDto.userID,
UpdateUserID = barCodeCheckDto.userID
};

4
AMESCoreStudio.WebApi/DTO/AMES/WipInfoDto.cs

@ -28,12 +28,12 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
/// <summary>
/// 日期查詢開始
/// </summary>
public DateTime? date_str { get; set; }
public string date_str { get; set; }
/// <summary>
/// 日期查詢結束
/// </summary>
public DateTime? date_end { get; set; }
public string date_end { get; set; }
/// <summary>
/// 料號

Loading…
Cancel
Save