Browse Source

1. 整理Git資料

2. 更新工單基本資料
PTD
Ray 3 years ago
parent
commit
4720cae681
  1. 309
      AMESCoreStudio.Web/Controllers/PCSController.cs
  2. 14
      AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs
  3. 2
      AMESCoreStudio.Web/ViewModels/WipViewModel.cs
  4. 199
      AMESCoreStudio.Web/Views/PCS/PCS001.cshtml
  5. 1548
      AMESCoreStudio.Web/Views/PCS/PCS001R.cshtml
  6. 181
      AMESCoreStudio.WebApi/Controllers/AMES/WipSopLogController.cs
  7. 2
      AMESCoreStudio.WebApi/Models/AMES/BarcodeItem.cs
  8. 45
      AMESCoreStudio.WebApi/Models/AMES/Item.cs
  9. 15
      AMESCoreStudio.WebApi/Models/AMES/WipBoard.cs
  10. 84
      AMESCoreStudio.WebApi/Models/AMES/WipSopLog.cs
  11. 12
      AMESCoreStudio.WebApi/Models/AMES/WipSystem.cs
  12. 34
      AMESCoreStudio.WebApi/Models/AMESContext.cs

309
AMESCoreStudio.Web/Controllers/PCSController.cs

@ -133,6 +133,23 @@ namespace AMESCoreStudio.Web.Controllers
ViewBag.FactoryUnitList = FactoryUnit; ViewBag.FactoryUnitList = FactoryUnit;
} }
/// <summary>
/// 組件資料
/// </summary>
/// <returns></returns>
private async Task GetItems()
{
var result = await _pcsApi.GetItems();
var ItemsList = new List<SelectListItem>();
ItemsList.Add(new SelectListItem("請選擇", ""));
for (int i = 0; i < result.Count; i++)
{
ItemsList.Add(new SelectListItem(result[i].ItemName, result[i].ItemNo.ToString()));
}
ViewBag.ItemsList = ItemsList;
}
/// <summary> /// <summary>
/// 正背面 /// 正背面
/// </summary> /// </summary>
@ -224,7 +241,7 @@ namespace AMESCoreStudio.Web.Controllers
var FlowRuleItems = new List<SelectListItem>(); var FlowRuleItems = new List<SelectListItem>();
for (int i = 0; i < result.Count; i++) for (int i = 0; i < result.Count; i++)
{ {
FlowRuleItems.Add(new SelectListItem(result[i].UnitNo + result[i].FlowRuleName, result[i].FlowRuleID.ToString())); FlowRuleItems.Add(new SelectListItem(result[i].FlowRuleName, result[i].FlowRuleID.ToString()));
} }
if (FlowRuleItems.Count == 0) if (FlowRuleItems.Count == 0)
@ -591,47 +608,6 @@ namespace AMESCoreStudio.Web.Controllers
//TempData["GetLockReasonTypeList"] = LockReasonType; //TempData["GetLockReasonTypeList"] = LockReasonType;
ViewBag.GetLockReasonTypeList = LockReasonType; ViewBag.GetLockReasonTypeList = LockReasonType;
} }
/// <summary>
/// 生產單位
/// </summary>
/// <returns></returns>
private async Task GetFactoryUnitList()
{
var result = await _basApi.GetFactoryUnits();
var UnitItems = new List<SelectListItem>();
UnitItems.Add(new SelectListItem("請選擇", ""));
for (int i = 0; i < result.Count; i++)
{
UnitItems.Add(new SelectListItem(result[i].UnitName, result[i].UnitNo.ToString()));
}
ViewBag.FactoryUnit = UnitItems;
}
/// <summary>
/// 組件資料
/// </summary>
/// <returns></returns>
private async Task GetItems()
{
var result = await _pcsApi.GetItems();
var ItemsList = new List<SelectListItem>();
ItemsList.Add(new SelectListItem("請選擇", ""));
for (int i = 0; i < result.Count; i++)
{
ItemsList.Add(new SelectListItem(result[i].ItemName, result[i].ItemNo.ToString()));
}
ViewBag.ItemsList = ItemsList;
}
#endregion #endregion
[ResponseCache(Duration = 0)] [ResponseCache(Duration = 0)]
@ -719,7 +695,13 @@ namespace AMESCoreStudio.Web.Controllers
await _pcsApi.PostWipBoard(JsonConvert.SerializeObject(model.wipBoard)); await _pcsApi.PostWipBoard(JsonConvert.SerializeObject(model.wipBoard));
} }
// 工單對應SOP Log
var q = await _pcsApi.GetWipSopQuery(itemNo: model.wipAtt.ItemNO, unitNo: model.wipInfo.UnitNO, state: "Y");
if (q.Data.Count() != 0)
{
model.wipSopLog.WipSopID = q.Data.FirstOrDefault().WipSopID;
await _pcsApi.PostWipSopLog(JsonConvert.SerializeObject(model.wipSopLog));
}
if (!string.IsNullOrWhiteSpace(model.wipBarcode.StartNO)) if (!string.IsNullOrWhiteSpace(model.wipBarcode.StartNO))
{ {
model.wipBarcode.WipID = model.wipInfo.WipID; model.wipBarcode.WipID = model.wipInfo.WipID;
@ -878,6 +860,18 @@ namespace AMESCoreStudio.Web.Controllers
} }
#endregion #endregion
public async Task<JsonResult> MaterialKpQueryAsync(string itemno = null, string station = null)
{
IResultModel<MaterialKpDto> result = await _pcsApi.GetMaterialKpQuery(itemno: itemno, station: station);
if (result.Data.Count() != 0)
{
return Json(new Table() { code = 0, msg = "", data = result.Data, count = 0 });
}
return Json(new Table() { count = 0, data = null });
}
#region PCS005 工單資料查詢 #region PCS005 工單資料查詢
public IActionResult PCS005() public IActionResult PCS005()
{ {
@ -1168,7 +1162,6 @@ namespace AMESCoreStudio.Web.Controllers
#endregion #endregion
#region PCS021 條碼輸入作業 #region PCS021 條碼輸入作業
[ResponseCache(Duration = 0)] [ResponseCache(Duration = 0)]
[HttpGet] [HttpGet]
@ -1180,6 +1173,119 @@ namespace AMESCoreStudio.Web.Controllers
} }
#endregion #endregion
#region PCS024組件资料维护相关
public async Task<IActionResult> PCS024()
{
await GetFactoryUnit();
return View();
}
//新增頁面
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;
ViewBag.BarcodeNo = id;
await GetFactoryUnit();
//await GetStations();
await GetItems();
return View();
}
//修改页面
[HttpGet]
public async Task<IActionResult> PCS024UAsync(int id)
{
await GetItems();
var result = await _pcsApi.GetBarcodeItem(id);
if (result.Count == 0)
{
return View();
}
return View(result[0]);
}
public async Task<IActionResult> PCS024DAsync(int id)
{
var result = await _pcsApi.DeleteBarcodeItem(id);
return Json(new Result() { success = true, msg = "" });
}
//頁面提交,id=0 添加,id>0 修改
[HttpPost]
public async Task<IActionResult> PCS024CSaveAsync(BarcodeItem model)
{
if (ModelState.IsValid)
{
IResultModel result;
result = await _pcsApi.PostBarcodeItem(JsonConvert.SerializeObject(model));
if (!result.Success)
{
var _msg = "新增成功!";
return RedirectToAction("Refresh", "Home", new { msg = _msg });
}
else
{
if (result.Errors.Count > 0)
{
ModelState.AddModelError(result.Errors[0].Id, result.Errors[0].Msg);
}
else
{
ModelState.AddModelError("error", result.Msg);
}
}
}
return View("PCS024C", model);
}
[ResponseCache(Duration = 0)]
[HttpGet]
public async Task<IActionResult> GetBarcodeItemsAsync()
{
var result = await _pcsApi.GetBarcodeItems();
if (result.Count > 0)
{
return Json(new Table() { code = 0, msg = "", data = result, count = result.Count });
}
return Json(new Table() { count = 0, data = null });
}
[ResponseCache(Duration = 0)]
[HttpGet]
public async Task<IActionResult> GetBarcodeItemByUnitAsync(string ID)
{
string str, str1;
var strA = ID.Split("=");
str = strA[0];
str1 = strA[1];
//WO0002A10001
if (ID is null)
return Json(new Table() { count = 0, data = null });
var result = await _pcsApi.GetBItemByStr(str, str1);
//var result = await _pcsApi.GetBarcodeItemByUnit(ID);
if (result.Count > 0)
{
return Json(new Table() { code = 0, msg = "", data = result, count = result.Count });
}
return Json(new Table() { count = 0, data = null });
}
#endregion
[ResponseCache(Duration = 0)] [ResponseCache(Duration = 0)]
[HttpGet] [HttpGet]
public async Task<IActionResult> PCS030() public async Task<IActionResult> PCS030()
@ -1296,121 +1402,6 @@ namespace AMESCoreStudio.Web.Controllers
return View(model); return View(model);
} }
#region PCS024組件资料维护相关
public async Task<IActionResult> PCS024()
{
await GetFactoryUnitList();
return View();
}
//新增頁面
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;
ViewBag.BarcodeNo = id;
await GetFactoryUnitList();
//await GetStations();
await GetItems();
return View();
}
//修改页面
[HttpGet]
public async Task<IActionResult> PCS024UAsync(int id)
{
await GetItems();
var result = await _pcsApi.GetBarcodeItem(id);
if (result.Count == 0)
{
return View();
}
return View(result[0]);
}
public async Task<IActionResult> PCS024DAsync(int id)
{
var result = await _pcsApi.DeleteBarcodeItem(id);
return Json(new Result() { success = true, msg = "" });
}
//頁面提交,id=0 添加,id>0 修改
[HttpPost]
public async Task<IActionResult> PCS024CSaveAsync(BarcodeItem model)
{
if (ModelState.IsValid)
{
IResultModel result;
result = await _pcsApi.PostBarcodeItem(JsonConvert.SerializeObject(model));
if (!result.Success)
{
var _msg = "新增成功!";
return RedirectToAction("Refresh", "Home", new { msg = _msg });
}
else
{
if (result.Errors.Count > 0)
{
ModelState.AddModelError(result.Errors[0].Id, result.Errors[0].Msg);
}
else
{
ModelState.AddModelError("error", result.Msg);
}
}
}
return View("PCS024C", model);
}
[ResponseCache(Duration = 0)]
[HttpGet]
public async Task<IActionResult> GetBarcodeItemsAsync()
{
var result = await _pcsApi.GetBarcodeItems();
if (result.Count > 0)
{
return Json(new Table() { code = 0, msg = "", data = result, count = result.Count });
}
return Json(new Table() { count = 0, data = null });
}
[ResponseCache(Duration = 0)]
[HttpGet]
public async Task<IActionResult> GetBarcodeItemByUnitAsync(string ID)
{
string str, str1;
var strA = ID.Split("=");
str = strA[0];
str1 = strA[1];
//WO0002A10001
if (ID is null)
return Json(new Table() { count = 0, data = null });
var result = await _pcsApi.GetBItemByStr(str, str1);
//var result = await _pcsApi.GetBarcodeItemByUnit(ID);
if (result.Count > 0)
{
return Json(new Table() { code = 0, msg = "", data = result, count = result.Count });
}
return Json(new Table() { count = 0, data = null });
}
#endregion
[HttpPost] [HttpPost]
public JsonResult TestFunc(string number) public JsonResult TestFunc(string number)
{ {

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

@ -295,8 +295,18 @@ namespace AMESCoreStudio.Web
/// SOP文件變更狀態 /// SOP文件變更狀態
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[WebApiClient.Attributes.HttpPut("api/WipSop/{id}/{state}")] [WebApiClient.Attributes.HttpPut("api/WipSop/{id}/{state}")]
ITask<ResultModel<WipSop>> PutWipSop(int id , string state); ITask<ResultModel<WipSop>> PutWipSop(int id, string state);
#endregion
#region WipSopLog 工單對應SOP log
/// <summary>
/// 新增工單對應SOP log
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpPost("api/WipSopLog")]
ITask<ResultModel<WipSopLog>> PostWipSopLog([FromBody, RawJsonContent] string model);
#endregion #endregion
#region PCS024組件維護相關 #region PCS024組件維護相關
@ -306,7 +316,7 @@ namespace AMESCoreStudio.Web
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/Items")] [WebApiClient.Attributes.HttpGet("api/Items")]
ITask<List<Item>> GetItems(); ITask<List<Items>> GetItems();
/// <summary> /// <summary>
/// 新增組件 /// 新增組件

2
AMESCoreStudio.Web/ViewModels/WipViewModel.cs

@ -39,5 +39,7 @@ namespace AMESCoreStudio.Web.ViewModels
public FactoryUnit factoryUnit { get; set; } public FactoryUnit factoryUnit { get; set; }
public WipSopLog wipSopLog { get; set; }
} }
} }

199
AMESCoreStudio.Web/Views/PCS/PCS001.cshtml

@ -18,6 +18,7 @@
<div class="col-sm-12"> <div class="col-sm-12">
<form enctype="multipart/form-data" method="post" asp-action="PCS001" class="layui-form"> <form enctype="multipart/form-data" method="post" asp-action="PCS001" class="layui-form">
<div asp-validation-summary="ModelOnly" class="text-danger"></div> <div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input type="hidden" asp-for="wipSopLog.State" value="Y" />
<div class="layui-form-item"> <div class="layui-form-item">
<input asp-for="wipInfo.InputFlag" type="checkbox" title="判斷前製程是否已經投入" /> <input asp-for="wipInfo.InputFlag" type="checkbox" title="判斷前製程是否已經投入" />
</div> </div>
@ -231,6 +232,7 @@
<input type="checkbox" title="SFIS途程確認" /> <input type="checkbox" title="SFIS途程確認" />
</div> </div>
</div> </div>
<table class="layui-hide" id="ruleStation" lay-filter="ruleStation"></table>
</div> </div>
@* 序號編碼sheet *@ @* 序號編碼sheet *@
@ -273,7 +275,8 @@
@* Keypart組合sheet *@ @* Keypart組合sheet *@
<div class="layui-tab-item"> <div class="layui-tab-item">
<table class="layui-hide" id="material" lay-filter="material"></table> <a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-read" lay-submit lay-filter="queryKeyParts">刷新</a>
<table class="layui-hide" id="keyparts" lay-filter="keyparts"></table>
</div> </div>
@* 板卡-工程資訊sheet *@ @* 板卡-工程資訊sheet *@
@ -359,6 +362,7 @@
<label class="layui-form-label">零件烘烤時間</label> <label class="layui-form-label">零件烘烤時間</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input asp-for="wipBoard.PartsBakeTime" class="layui-input" /> <input asp-for="wipBoard.PartsBakeTime" class="layui-input" />
<span asp-validation-for="wipBoard.PartsBakeTime" class="layui-bg-red"></span>
</div> </div>
</div> </div>
</div> </div>
@ -393,18 +397,21 @@
<label asp-for="wipBoard.BiRatio" class="layui-form-label"></label> <label asp-for="wipBoard.BiRatio" class="layui-form-label"></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input asp-for="wipBoard.BiRatio" class="layui-input" /> <input asp-for="wipBoard.BiRatio" class="layui-input" />
<span asp-validation-for="wipBoard.BiRatio" class="layui-bg-red"></span>
</div> </div>
</div> </div>
<div class="layui-input-inline"> <div class="layui-input-inline">
<label asp-for="wipBoard.BiTemperature" class="layui-form-label"></label> <label asp-for="wipBoard.BiTemperature" class="layui-form-label"></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input asp-for="wipBoard.BiTemperature" class="layui-input" /> <input asp-for="wipBoard.BiTemperature" class="layui-input" />
<span asp-validation-for="wipBoard.BiTemperature" class="layui-bg-red"></span>
</div> </div>
</div> </div>
<div class="layui-input-inline"> <div class="layui-input-inline">
<label asp-for="wipBoard.BiTime" class="layui-form-label"></label> <label asp-for="wipBoard.BiTime" class="layui-form-label"></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input asp-for="wipBoard.BiTime" class="layui-input" /> <input asp-for="wipBoard.BiTime" class="layui-input" />
<span asp-validation-for="wipBoard.BiTime" class="layui-bg-red"></span>
</div> </div>
</div> </div>
</div> </div>
@ -415,12 +422,12 @@
<label asp-for="wipBoard.BiosVer" class="layui-form-label"></label> <label asp-for="wipBoard.BiosVer" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipBoard.BiosVer" class="layui-input" placeholder="請輸入BIOS" /> <input asp-for="wipBoard.BiosVer" class="layui-input" placeholder="請輸入BIOS" />
<span class="text-danger"></span> <span asp-validation-for="wipBoard.BiosVer" class="layui-bg-red"></span>
</div> </div>
<label asp-for="wipBoard.Checksum" class="layui-form-label"></label> <label asp-for="wipBoard.Checksum" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipBoard.Checksum" class="layui-input" placeholder="請輸入Checksum" /> <input asp-for="wipBoard.Checksum" class="layui-input" placeholder="請輸入Checksum" />
<span class="text-danger"></span> <span asp-validation-for="wipBoard.Checksum" class="layui-bg-red"></span>
</div> </div>
</div> </div>
</div> </div>
@ -515,18 +522,21 @@
<label asp-for="wipSystem.BiRatio" class="layui-form-label"></label> <label asp-for="wipSystem.BiRatio" class="layui-form-label"></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input asp-for="wipSystem.BiRatio" class="layui-input" /> <input asp-for="wipSystem.BiRatio" class="layui-input" />
<span asp-validation-for="wipSystem.BiRatio" class="layui-bg-red"></span>
</div> </div>
</div> </div>
<div class="layui-input-inline"> <div class="layui-input-inline">
<label asp-for="wipSystem.BiTemperature" class="layui-form-label"></label> <label asp-for="wipSystem.BiTemperature" class="layui-form-label"></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input asp-for="wipSystem.BiTemperature" class="layui-input" /> <input asp-for="wipSystem.BiTemperature" class="layui-input" />
<span asp-validation-for="wipSystem.BiTemperature" class="layui-bg-red"></span>
</div> </div>
</div> </div>
<div class="layui-input-inline"> <div class="layui-input-inline">
<label asp-for="wipSystem.BiTime" class="layui-form-label"></label> <label asp-for="wipSystem.BiTime" class="layui-form-label"></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input asp-for="wipSystem.BiTime" class="layui-input" /> <input asp-for="wipSystem.BiTime" class="layui-input" />
<span asp-validation-for="wipSystem.BiTime" class="layui-bg-red"></span>
</div> </div>
</div> </div>
<label asp-for="wipSystem.BiMemo" class="layui-form-label"></label> <label asp-for="wipSystem.BiMemo" class="layui-form-label"></label>
@ -541,11 +551,13 @@
<label asp-for="wipSystem.BiosVer" class="layui-form-label"></label> <label asp-for="wipSystem.BiosVer" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipSystem.BiosVer" class="layui-input" /> <input asp-for="wipSystem.BiosVer" class="layui-input" />
<span asp-validation-for="wipSystem.BiosVer" class="layui-bg-red"></span>
</div> </div>
<label asp-for="wipSystem.Checksum" class="layui-form-label">Checksum</label> <label asp-for="wipSystem.Checksum" class="layui-form-label">Checksum</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipSystem.Checksum" class="layui-input" /> <input asp-for="wipSystem.Checksum" class="layui-input" />
<span asp-validation-for="wipSystem.Checksum" class="layui-bg-red"></span>
</div> </div>
</div> </div>
</div> </div>
@ -555,10 +567,12 @@
<label class="layui-form-label" asp-for="wipSystem.Cpu"></label> <label class="layui-form-label" asp-for="wipSystem.Cpu"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Cpu" autocomplete="off" placeholder="CPU" /> <input class="layui-input" asp-for="wipSystem.Cpu" autocomplete="off" placeholder="CPU" />
<span asp-validation-for="wipSystem.Cpu" class="layui-bg-red"></span>
</div> </div>
<label class="layui-form-label" asp-for="wipSystem.Ram"></label> <label class="layui-form-label" asp-for="wipSystem.Ram"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Ram" autocomplete="off" placeholder="RAM" /> <input class="layui-input" asp-for="wipSystem.Ram" autocomplete="off" placeholder="RAM" />
<span asp-validation-for="wipSystem.Ram" class="layui-bg-red"></span>
</div> </div>
<label class="layui-form-label" asp-for="wipSystem.OsVer"></label> <label class="layui-form-label" asp-for="wipSystem.OsVer"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
@ -802,13 +816,8 @@
@* SOP文件 sheet *@ @* SOP文件 sheet *@
<div class="layui-tab-item"> <div class="layui-tab-item">
<p>檔案 <input type="file" name="formFile"></p> <a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-read" lay-submit lay-filter="querysop">刷新</a>
@*@await Html.PartialAsync("PCS/_SOPPartial")*@ <table class="layui-hide" id="wipsop" lay-filter="wipsop"></table>
<partial name="PCS/_SOPPartial" />
@*<div class="page">
<div id="foo-view" data-url="@Url.Action(action: "SOP", controller: "PCS")"></div>
</div>*@
</div> </div>
</div> </div>
</div> </div>
@ -827,12 +836,18 @@
await Html.RenderPartialAsync("_FileinputScriptsPartial"); } await Html.RenderPartialAsync("_FileinputScriptsPartial"); }
<script type="text/javascript"> <script type="text/javascript">
//$(document).ready(function () { $(document).ready(function () {
// (function () { getFlowRuleList(("#unit").value);
// var url = $("#foo-view").data("url"); getLineInfoList(("#unit").value);
// $("#foo-view").load(url); if (("#unit").value == "B" || ("#unit").value == "P" || ("#unit").value == "T") {
// })(); $("#system").show();
//}); $("#board").hide();
}
else {
$("#system").hide();
$("#board").show();
}
});
function getFlowRuleList(data) function getFlowRuleList(data)
{ {
@ -851,6 +866,8 @@
}); });
layui.form.render("select");//重新渲染 固定写法 layui.form.render("select");//重新渲染 固定写法
// 刷新 生產流程
RuleStation($("#wipInfo_FlowRuleID").val());
}, },
error: function (result) error: function (result)
{ {
@ -970,6 +987,154 @@
}); });
}); });
//通过行tool编辑,lay-event="show"
function show(obj) {
layui.use('layer', function () {
var layer = layui.layer;
layer.open({
type: 2,
area: ['900px', '650px'],
fixed: false, //不固定
maxmin: true,
content: obj.data.filePath + obj.data.newName
});
});
};
@* KeyParts文件 sheet *@
hg.form.onsubmit('queryKeyParts', function (data) {
var item = $("#wipAtt_ItemNO").val();
if ($.trim(item) == '' || item == undefined) {
parent.hg.msg("請輸入料號");
return;
}
var tableCols_keyParts = [[
{
field: 'itemName',
width: 150,
title: '料號',
sort: true
},
{
field: 'kpName',
title: 'KP料號名稱',
width: 200,
sort: true
},
{
field: 'kpNo',
title: 'KP料號NO',
sort: true
},
{
field: 'kpSeq',
title: '順序',
width: 100,
sort: true
},
{
field: 'title',
title: '前置碼',
width: 150
},
{
field: 'length',
title: '長度',
width: 150
},
{
field: 'station',
title: '站(前段)',
width: 150
}]
];
var tableKeyParts = hg.table.datatable('keyparts', 'KeyParts查詢', '/PCS/MaterialKpQuery?itemNo=' + item, {}, tableCols_keyParts, false, 'full-100');
hg.msghide("重新載入資料..");
tableKeyParts ;
});
@* SOP文件 sheet *@
hg.form.onsubmit('querysop', function (data) {
var item = $("#wipAtt_ItemNO").val();
if ($.trim(item) == '' || item == undefined) {
parent.hg.msg("請輸入料號");
return;
}
var tableCols = [[
{
field: 'itemNo',
width: 150,
title: '料號',
sort: true
},
{
field: 'unitName',
title: '生產單位',
width: 200,
sort: true
},
{
field: 'fileName',
title: '檔案名稱',
sort: true
},
{
field: 'state',
title: '狀態',
width: 100,
sort: true
},
{
field: 'createDate',
title: '建立日期',
width: 150,
templet: '<div>{{ layui.util.toDateString(d.createDate, "yyyy/MM/dd") }}</div>'
},
{
field: 'updateDate',
title: '更新日期',
width: 150,
templet: '<div>{{ layui.util.toDateString(d.updateDate, "yyyy/MM/dd") }}</div>'
},
{
field: 'right',
width: 80,
title: '操作',
align: 'center',
fixed: 'right',
templet: function (d) {
return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-read" lay-event="show">預覽</a>'
}
}]
];
var tablesop = hg.table.datatable('wipsop', 'SOP文件查詢維護', '/PCS/PCS030Query?itemNo=' + item, {}, tableCols, false, 'full-100');
hg.msghide("重新載入資料..");
tablesop;
});
function RuleStation(id) {
var tableCols_rule = [[
{
field: 'stationDesc',
width: 150,
title: '站別描述',
sort: true
},
{
field: 'sequence',
title: '站別順序',
width: 200,
sort: true
},
{
field: 'stationType',
title: '站別類型',
sort: true
}]
];
var tableruleStation = hg.table.datatable('ruleStation', '', '/BAS/GetRuleStationsByFlow?flowId='+id, {}, tableCols_rule, false, 'full-100');
tableruleStation;
}
</script> </script>

1548
AMESCoreStudio.Web/Views/PCS/PCS001R.cshtml

File diff suppressed because it is too large

181
AMESCoreStudio.WebApi/Controllers/AMES/WipSopLogController.cs

@ -0,0 +1,181 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using AMESCoreStudio.WebApi.Models.AMES;
using AMESCoreStudio.CommonTools.Result;
using AMESCoreStudio.WebApi.DTO.AMES;
// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
namespace AMESCoreStudio.WebApi.Controllers.AMES
{
[Route("api/[controller]")]
[ApiController]
public class WipSopLogController : ControllerBase
{
private readonly AMESContext _context;
/// <summary>
///
/// </summary>
/// <param name="context"></param>
public WipSopLogController(AMESContext context)
{
_context = context;
}
/// <summary>
/// 工單投產纪錄資料文件
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<ActionResult<IEnumerable<WipSopLog>>> GetWipSopLog()
{
IQueryable<WipSopLog> q = _context.WipSopLogs;
q = q.OrderBy(p => p.WipSopID);
var WipSopLog = await q.ToListAsync();
return WipSopLog;
}
[HttpGet("{id}")]
public async Task<ActionResult<WipSopLog>> GetWipSopLog(int id)
{
IQueryable<WipSopLog> q = _context.WipSopLogs;
var WipSopLog = await q.Where(p => p.WipID == id).FirstOrDefaultAsync();
if (WipSopLog == null)
{
return NotFound();
}
return WipSopLog;
}
/// <summary>
/// SOP文件查詢
/// </summary>
/// <param name="itemNo">料號</param>
/// <param name="unitNo">生產單位</param>
/// <param name="fileName">檔案名稱</param>
/// <param name="state">狀態</param>
/// <param name="date_str">建立日期起</param>
/// <param name="date_end">建立日期迄</param>
/// <returns></returns>
//[Route("[action]")]
//[HttpGet]
//public async Task<ResultModel<WipSopLogDto>> GetWipSopLogQuery(string itemNo = null, string unitNo = null
// , string fileName = null, string state = null, string date_str = null, string date_end = null)
//{
// IQueryable<WipSopLog> q = _context.WipSopLogs;
// if (!string.IsNullOrWhiteSpace(itemNo))
// q = q.Where(w => w.ItemNo == itemNo);
// if (!string.IsNullOrWhiteSpace(unitNo))
// q = q.Where(w => w.UnitNo == unitNo);
// if (!string.IsNullOrWhiteSpace(fileName))
// q = q.Where(w => w.FileName.Contains(fileName));
// if (!string.IsNullOrWhiteSpace(state))
// q = q.Where(w => w.State == state);
// DateTime dateValue;
// if (DateTime.TryParse(date_str, out dateValue))
// {
// q = q.Where(w => w.CreateDate >= DateTime.Parse(date_str));
// }
// if (DateTime.TryParse(date_end, out dateValue))
// {
// q = q.Where(w => w.CreateDate <= DateTime.Parse(date_end));
// }
// ResultModel<WipSopLogDto> result = new ResultModel<WipSopLogDto>();
// result.Data = await q.Select(s => new WipSopLogDto
// {
// WipSopLogID = s.WipSopLogID,
// ItemNo = s.ItemNo,
// UnitName = s.FactoryUnit.UnitName,
// FileName = s.FileName,
// FilePath = s.FilePath,
// State = s.State == "Y" ? "使用中" : "停用",
// NewName = s.NewName,
// CreateDate = s.CreateDate,
// CreateUserID = s.CreateUserID,
// UpdateDate = s.UpdateDate,
// UpdateUserID = s.UpdateUserID
// }).ToListAsync();
// return result;
//}
[HttpPost]
public async Task<ResultModel<WipSopLog>> PostWipSopLog([FromBody] WipSopLog wipSopLog)
{
ResultModel<WipSopLog> result = new ResultModel<WipSopLog>();
Helper helper = new Helper(_context);
wipSopLog.WipID = helper.GetIDKeyNoPost("WIP_ID").Result;
wipSopLog.State = "Y";
//wipLog.WipSopLogID = wipLog.WipID == 0 ? helper.GetIDKeyNoPost("WIP_ID").Result : wipLog.WipID;
_context.WipSopLogs.Add(wipSopLog);
try
{
await _context.SaveChangesAsync();
result.Success = true;
result.Msg = "OK";
}
catch (Exception ex)
{
result.Success = false;
result.Msg = ex.Message;
}
return result;
}
//// PUT api/<WipSopLogController>/5
//[HttpPut("{id}/{state}")]
//public async Task<ResultModel<WipSopLog>> PutWipSopLog(int id, string state)
//{
// ResultModel<WipSopLog> result = new ResultModel<WipSopLog>();
// var WipSopLog = new WipSopLog {
// WipSopLogID = id,
// State = state,
// UpdateUserID = 1,
// UpdateDate = System.DateTime.Now
// };
// _context.Attach(WipSopLog);
// // 指定更新某個欄位
// _context.Entry(WipSopLog).Property(p => p.State).IsModified = true;
// _context.Entry(WipSopLog).Property(p => p.UpdateUserID).IsModified = true;
// _context.Entry(WipSopLog).Property(p => p.UpdateDate).IsModified = true;
// try
// {
// await _context.SaveChangesAsync();
// result.Success = true;
// result.Msg = "OK";
// }
// catch (Exception ex)
// {
// result.Success = false;
// result.Msg = ex.Message;
// }
// return result;
//}
// DELETE api/<WipSopLogController>/5
[HttpDelete("{id}")]
public void Delete(int id)
{
}
}
}

2
AMESCoreStudio.WebApi/Models/AMES/BarcodeItem.cs

@ -109,7 +109,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary> /// <summary>
/// 組件资料 /// 組件资料
/// </summary> /// </summary>
public virtual Item I { get; set; } public virtual Items I { get; set; }
/// <summary> /// <summary>
/// 站別资料 /// 站別资料

45
AMESCoreStudio.WebApi/Models/AMES/Item.cs

@ -1,45 +0,0 @@
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Runtime.Serialization;
namespace AMESCoreStudio.WebApi.Models.AMES
{
/// <summary>
/// 組件資料檔
/// </summary>
[Table("ITEMS", Schema = "JHAMES")]
[DataContract]
public class Item
{
/// <summary>
/// 组件代碼
/// </summary>
[Column("ITEM_NO")]
[DataMember]
[Key]
public string ItemNo { get; set; }
/// <summary>
/// 组件名稱
/// </summary>
[Column("ITEM_NAME")]
[DataMember]
public string ItemName { get; set; }
/// <summary>
/// 組件類別
/// </summary>
[Column("ITEM_TYPE")]
[DataMember]
public string ItemType { get; set; }
/// <summary>
/// 組件區間管控
/// </summary>
[Column("SN_INTERVAL")]
[DataMember]
public string SnInerval { get; set; }
}
}

15
AMESCoreStudio.WebApi/Models/AMES/WipBoard.cs

@ -88,6 +88,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[StringLength(20)] [StringLength(20)]
[DataMember] [DataMember]
[Display(Name = "燒錄位置")] [Display(Name = "燒錄位置")]
public string BurnLocation { get; set; } public string BurnLocation { get; set; }
/// <summary> /// <summary>
@ -96,6 +97,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("PARTS_BAKE", TypeName = "NUMBER")] [Column("PARTS_BAKE", TypeName = "NUMBER")]
[DataMember] [DataMember]
[Display(Name = "零件烘烤溫度")] [Display(Name = "零件烘烤溫度")]
[Required(ErrorMessage = "{0},不能空白")]
public decimal PartsBake { get; set; } public decimal PartsBake { get; set; }
/// <summary> /// <summary>
@ -104,6 +106,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("PARTS_BAKE_TIME", TypeName = "NUMBER")] [Column("PARTS_BAKE_TIME", TypeName = "NUMBER")]
[DataMember] [DataMember]
[Display(Name = "零件烘烤時間")] [Display(Name = "零件烘烤時間")]
[Required(ErrorMessage = "{0},不能空白")]
public decimal PartsBakeTime { get; set; } public decimal PartsBakeTime { get; set; }
/// <summary> /// <summary>
@ -112,15 +115,16 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("PCB_BAKE", TypeName = "NUMBER")] [Column("PCB_BAKE", TypeName = "NUMBER")]
[DataMember] [DataMember]
[Display(Name = "PCB烘烤")] [Display(Name = "PCB烘烤")]
[Required(ErrorMessage = "{0},不能空白")]
public decimal PcbBake { get; set; } public decimal PcbBake { get; set; }
/// <summary> /// <summary>
/// 錫膏 /// 錫膏
/// </summary> /// </summary>
[Column("SOLDER_PASTE", TypeName = "NUMBER")] [Column("SOLDER_PASTE")]
[DataMember] [DataMember]
[Display(Name = "錫膏")] [Display(Name = "錫膏")]
public decimal SolderPaste { get; set; } public int SolderPaste { get; set; }
/// <summary> /// <summary>
/// 燒機比率 /// 燒機比率
@ -128,26 +132,27 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("BI_RATIO", TypeName = "NUMBER")] [Column("BI_RATIO", TypeName = "NUMBER")]
[DataMember] [DataMember]
[Display(Name = "燒機比率")] [Display(Name = "燒機比率")]
[Required(ErrorMessage = "{0},不能空白")]
public decimal BiRatio { get; set; } public decimal BiRatio { get; set; }
/// <summary> /// <summary>
/// 燒機溫度 /// 燒機溫度
/// </summary> /// </summary>
[Required]
[Column("BI_TEMPERATURE")] [Column("BI_TEMPERATURE")]
[StringLength(20)] [StringLength(20)]
[DataMember] [DataMember]
[Display(Name = "燒機溫度")] [Display(Name = "燒機溫度")]
[Required(ErrorMessage = "{0},不能空白")]
public string BiTemperature { get; set; } public string BiTemperature { get; set; }
/// <summary> /// <summary>
/// 燒機時間 /// 燒機時間
/// </summary> /// </summary>
[Required]
[Column("BI_TIME")] [Column("BI_TIME")]
[StringLength(20)] [StringLength(20)]
[DataMember] [DataMember]
[Display(Name = "燒機時間")] [Display(Name = "燒機時間")]
[Required(ErrorMessage = "{0},不能空白")]
public string BiTime { get; set; } public string BiTime { get; set; }
/// <summary> /// <summary>
@ -161,11 +166,11 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary> /// <summary>
/// Check Sum /// Check Sum
/// </summary> /// </summary>
[Required]
[Column("CHECKSUM")] [Column("CHECKSUM")]
[StringLength(20)] [StringLength(20)]
[DataMember] [DataMember]
[Display(Name = "Check Sum")] [Display(Name = "Check Sum")]
[Required(ErrorMessage = "{0},不能空白")]
public string Checksum { get; set; } public string Checksum { get; set; }
/// <summary> /// <summary>

84
AMESCoreStudio.WebApi/Models/AMES/WipSopLog.cs

@ -0,0 +1,84 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
using System.Runtime.Serialization;
#nullable disable
namespace AMESCoreStudio.WebApi.Models.AMES
{
/// <summary>
/// 工單對應SOP文件紀錄
/// </summary>
[Table("WIP_SOP_LOG", Schema = "JHAMES")]
[DataContract]
public partial class WipSopLog
{
/// <summary>
/// WIP_ID
/// </summary>
[Key]
[Column("WIP_ID", Order = 0)]
[DataMember]
public int WipID { get; set; }
/// <summary>
/// WIP_SOP_ID
/// </summary>
[Key]
[Column("WIP_SOP_ID", Order = 1)]
[DataMember]
public int WipSopID { get; set; }
/// <summary>
/// 狀態
/// </summary>
[Column("STATE")]
[DataMember]
public string State { get; set; }
/// <summary>
/// 建立UserID
/// </summary>
[Column("CREATE_USERID")]
[Required]
[DataMember]
public int CreateUserID { get; set; } = 0;
/// <summary>
/// 建立日期
/// </summary>
[Required]
[Column("CREATE_DATE")]
[DataMember]
public DateTime CreateDate { get; set; } = System.DateTime.Now;
/// <summary>
/// 更新UserID
/// </summary>
[Column("UPDATE_USERID")]
[DataMember]
public int UpdateUserID { get; set; }
/// <summary>
/// 更新日期
/// </summary>
[Column("UPDATE_DATE")]
[DataMember]
public DateTime? UpdateDate { get; set; }
/// <summary>
/// 工單資料
/// </summary>
[ForeignKey("WipID")]
public virtual WipInfo GetWipInfo { get; set; }
/// <summary>
/// SOP資料
/// </summary>
[ForeignKey("WipSopID")]
public virtual WipSop GetWipSop { get; set; }
}
}

12
AMESCoreStudio.WebApi/Models/AMES/WipSystem.cs

@ -48,22 +48,23 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("BI_RATIO")] [Column("BI_RATIO")]
[DataMember] [DataMember]
[Display(Name = "燒機比率")] [Display(Name = "燒機比率")]
[Required(ErrorMessage = "{0},不能空白")]
public decimal BiRatio { get; set; } public decimal BiRatio { get; set; }
/// <summary> /// <summary>
/// 燒機溫度 /// 燒機溫度
/// </summary> /// </summary>
[Required]
[Column("BI_TEMPERATURE")] [Column("BI_TEMPERATURE")]
[StringLength(20)] [StringLength(20)]
[DataMember] [DataMember]
[Display(Name = "燒機溫度")] [Display(Name = "燒機溫度")]
[Required(ErrorMessage = "{0},不能空白")]
public string BiTemperature { get; set; } public string BiTemperature { get; set; }
/// <summary> /// <summary>
/// 燒機時間 /// 燒機時間
/// </summary> /// </summary>
[Required] [Required(ErrorMessage = "{0},不能空白")]
[Column("BI_TIME")] [Column("BI_TIME")]
[StringLength(20)] [StringLength(20)]
[DataMember] [DataMember]
@ -85,12 +86,13 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[DataMember] [DataMember]
[Display(Name = "BIOS版本")] [Display(Name = "BIOS版本")]
[Column("BIOS_VER", TypeName = "NUMBER")] [Column("BIOS_VER", TypeName = "NUMBER")]
[Required(ErrorMessage = "{0},不能空白")]
public decimal BiosVer { get; set; } public decimal BiosVer { get; set; }
/// <summary> /// <summary>
/// Check Sum /// Check Sum
/// </summary> /// </summary>
[Required] [Required(ErrorMessage = "{0},不能空白")]
[Column("CHECKSUM")] [Column("CHECKSUM")]
[StringLength(20)] [StringLength(20)]
[DataMember] [DataMember]
@ -100,7 +102,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary> /// <summary>
/// CPU頻率 /// CPU頻率
/// </summary> /// </summary>
[Required] [Required(ErrorMessage = "{0},不能空白")]
[Column("CPU")] [Column("CPU")]
[StringLength(20)] [StringLength(20)]
[DataMember] [DataMember]
@ -110,7 +112,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary> /// <summary>
/// RAM /// RAM
/// </summary> /// </summary>
[Required] [Required(ErrorMessage = "{0},不能空白")]
[Column("RAM")] [Column("RAM")]
[StringLength(20)] [StringLength(20)]
[DataMember] [DataMember]

34
AMESCoreStudio.WebApi/Models/AMESContext.cs

@ -85,17 +85,18 @@ namespace AMESCoreStudio.WebApi
modelBuilder.Entity<WipBarcode>().HasKey(c => new { c.WipNO, c.StartNO, c.EndNO }); modelBuilder.Entity<WipBarcode>().HasKey(c => new { c.WipNO, c.StartNO, c.EndNO });
modelBuilder.Entity<WipLog>().HasKey(c => new { c.WipID, c.CreateDate}); modelBuilder.Entity<WipLog>().HasKey(c => new { c.WipID, c.CreateDate});
modelBuilder.Entity<PartMap>().HasKey(c => new { c.CorpSN }); modelBuilder.Entity<PartMap>().HasKey(c => new { c.CorpSN });
modelBuilder.Entity<WipSopLog>().HasKey(c => new { c.WipID, c.WipSopID });
modelBuilder.Entity<BarcodeItem>().HasOne(r => r.B).WithMany().HasForeignKey(r => r.BarcodeID).IsRequired(); modelBuilder.Entity<BarcodeItem>().HasOne(r => r.B).WithMany().HasForeignKey(r => r.BarcodeID).IsRequired();
modelBuilder.Entity<BarcodeItem>().HasOne(r => r.I).WithMany().HasForeignKey(r => r.ItemNo).IsRequired(); modelBuilder.Entity<BarcodeItem>().HasOne(r => r.I).WithMany().HasForeignKey(r => r.ItemNo).IsRequired();
modelBuilder.Entity<BarcodeItem>().HasOne(r => r.S).WithMany().HasForeignKey(r => r.RuleStationID).IsRequired(); modelBuilder.Entity<BarcodeItem>().HasOne(r => r.S).WithMany().HasForeignKey(r => r.RuleStationID).IsRequired();
modelBuilder.Entity<WorkClass>().HasOne(r => r.Group).WithMany().HasForeignKey(r => r.GroupID).IsRequired(); modelBuilder.Entity<WorkClass>().HasOne(r => r.Group).WithMany().HasForeignKey(r => r.GroupID).IsRequired();
modelBuilder.Entity<ListObj>().HasKey(c => new { c.value, c.name }); modelBuilder.Entity<ListObj>().HasKey(c => new { c.value, c.name });
modelBuilder.Entity<CycleTime>().HasKey(c => new { c.ItemNo, c.LineID }); modelBuilder.Entity<CycleTime>().HasKey(c => new { c.ItemNo, c.LineID });
modelBuilder.Entity<CycleTime>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.SectionNo).IsRequired(); modelBuilder.Entity<CycleTime>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.SectionNo).IsRequired();
modelBuilder.Entity<CycleTime>().HasOne(r => r.Line).WithMany().HasForeignKey(r => r.LineID).IsRequired(); modelBuilder.Entity<CycleTime>().HasOne(r => r.Line).WithMany().HasForeignKey(r => r.LineID).IsRequired();
modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.ClassInfo>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.UnitNo).IsRequired(); modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.ClassInfo>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.UnitNo).IsRequired();
modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.LineInfo>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.UnitNo).IsRequired(); modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.LineInfo>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.UnitNo).IsRequired();
modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.LineInfo>().HasOne(r => r.Dept).WithMany().HasForeignKey(r => r.DeptID).IsRequired(); modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.LineInfo>().HasOne(r => r.Dept).WithMany().HasForeignKey(r => r.DeptID).IsRequired();
@ -252,27 +253,23 @@ namespace AMESCoreStudio.WebApi
/// 異常原因資料 /// 異常原因資料
/// </summary> /// </summary>
public DbSet<ErrorReason> ErrorReasons { get; set; } public DbSet<ErrorReason> ErrorReasons { get; set; }
/// <summary> /// <summary>
/// 工單投產纪錄資料文件 /// 工單投產纪錄資料文件
/// </summary> /// </summary>
public DbSet<WipLog> WipLogs { get; set; } public DbSet<WipLog> WipLogs { get; set; }
/// <summary> /// <summary>
///1108因無法執行SHANI補上 /// 工單投產纪錄資料文件
/// </summary> /// </summary>
public DbSet<NGGroup> NGGroups { get; set; } public DbSet<NGGroup> NGGroups { get; set; }
/// <summary> /// <summary>
///1108因無法執行SHANI補上 /// 工單投產纪錄資料文件
/// </summary> /// </summary>
public DbSet<NGClass> NGClasses { get; set; } public DbSet<NGClass> NGClasses { get; set; }
/// <summary>
///1108因無法執行SHANI補上
/// </summary>
public DbSet<NGReason> NGReasons { get; set; }
/// <summary> /// <summary>
/// 維修群組資料 /// 維修群組資料
/// </summary> /// </summary>
@ -296,7 +293,7 @@ namespace AMESCoreStudio.WebApi
///// <summary> ///// <summary>
///// 不良現象原因代碼資料 ///// 不良現象原因代碼資料
///// </summary> ///// </summary>
//public DbSet<NGReason> NGReasons { get; set; } public DbSet<NGReason> NGReasons { get; set; }
/// <summary> /// <summary>
/// 問題類別資料 /// 問題類別資料
@ -359,8 +356,12 @@ namespace AMESCoreStudio.WebApi
/// 工單資訊-系統組裝工程資訊 /// 工單資訊-系統組裝工程資訊
/// </summary> /// </summary>
public virtual DbSet<BarcodeChange> BarcodeChanges { get; set; } public virtual DbSet<BarcodeChange> BarcodeChanges { get; set; }
/// <summary> /// <summary>
/// 工單對應SOP文件log
/// </summary>
public virtual DbSet<WipSopLog> WipSopLogs { get; set; }
///條碼資料 ///條碼資料
/// </summary> /// </summary>
public DbSet<BarcodeInfo> BarcodeInfoes { get; set; } public DbSet<BarcodeInfo> BarcodeInfoes { get; set; }
@ -370,11 +371,6 @@ namespace AMESCoreStudio.WebApi
/// </summary> /// </summary>
public DbSet<BarcodeItem> BarcodeItems { get; set; } public DbSet<BarcodeItem> BarcodeItems { get; set; }
///// <summary>
/////組件資料
///// </summary>
//public DbSet<Item> Items { get; set; }
/// <summary> /// <summary>
///工時群組資料 ///工時群組資料
/// </summary> /// </summary>
@ -415,10 +411,6 @@ namespace AMESCoreStudio.WebApi
///無效工時在線收集資料 ///無效工時在線收集資料
/// </summary> /// </summary>
public DbSet<ExceptionWorktimeOline> ExceptionWorktimeOlines { get; set; } public DbSet<ExceptionWorktimeOline> ExceptionWorktimeOlines { get; set; }
}
}
} }

Loading…
Cancel
Save