Browse Source

1. 工單基本資料

2. 條碼歷程
PTD
Ray 3 years ago
parent
commit
51e47044b3
  1. 76
      AMESCoreStudio.Web/Controllers/PCSController.cs
  2. 7
      AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs
  3. 34
      AMESCoreStudio.Web/ViewModels/PCS/PCS009ViewModel.cs
  4. 2
      AMESCoreStudio.Web/Views/PCS/PCS001.cshtml
  5. 10
      AMESCoreStudio.Web/Views/PCS/PCS001R.cshtml
  6. 30
      AMESCoreStudio.Web/Views/PCS/PCS003.cshtml
  7. 209
      AMESCoreStudio.Web/Views/PCS/PCS009.cshtml
  8. 88
      AMESCoreStudio.WebApi/Controllers/AMES/WipKpsController.cs
  9. 9
      AMESCoreStudio.WebApi/Models/AMES/WipBoard.cs

76
AMESCoreStudio.Web/Controllers/PCSController.cs

@ -1145,6 +1145,28 @@ namespace AMESCoreStudio.Web.Controllers
result = await _pcsApi.PutMACInfoByClassGroup(mACInfo.ClassGroup, model.wipMAC.EndNO);
}
}
// KeyParts 組合
var materialItem = await _pcsApi.GetMaterialItemByItemNO(model.wipAtt.ItemNO);
if (materialItem != null)
{
var materialKp = await _pcsApi.GetMaterialKpByItemID(materialItem.ItemID);
foreach(var item in materialKp.Where(w => w.StationType == model.wipInfo.UnitNO))
{
var wipKp = new WipKp
{
WipID = wipID,
ItemNo = model.wipAtt.ItemNO,
UnitNo = model.wipInfo.UnitNO,
KpName = item.KpName,
KpNo = item.KpNo,
KpSeq = item.KpSeq,
Length = item.Length,
Title = item.Title
};
await _pcsApi.PostWipKp(JsonConvert.SerializeObject(wipKp));
}
}
}
@ -1230,6 +1252,16 @@ namespace AMESCoreStudio.Web.Controllers
var q = await _pcsApi.GetWipInfo(id);
if (q.Count != 0)
{
// 判斷工單號碼是否已經開線
var resultLineInfo = await _basApi.GetLineInfoes();
var resultWipNo = await _pcsApi.GetWipInfoByWipNO(q.FirstOrDefault().WipNO);
var WipIDs = resultWipNo.Select(s => s.WipID);
if (resultLineInfo.Where(w => WipIDs.Contains(w.WipNo)).Any())
{
var _msg = "工單號碼【" + q.FirstOrDefault().WipNO + "】,工單已開線,不可修改!";
return RedirectToAction("Refresh", "Home", new { msg = _msg });
}
model.wipInfo = q.FirstOrDefault();
model.wipAtt = await _pcsApi.GetWipAtt(model.wipInfo.WipNO);
model.wipBarcodes = await _pcsApi.GetWipBarcode(model.wipInfo.WipNO);
@ -1314,16 +1346,16 @@ namespace AMESCoreStudio.Web.Controllers
IResultModel result;
// Checkbox轉換
model.wipInfo.ECNCheck = model.wipInfo.ECNCheck == "true" ? "Y" : "N";
model.wipInfo.ModelCheck = model.wipInfo.ModelCheck == "true" ? "Y" : "N";
model.wipInfo.InputFlag = model.wipInfo.InputFlag == "true" ? "Y" : "N";
model.wipInfo.Priority = model.wipInfo.Priority == "true" ? "Y" : "N";
model.wipInfo.ECNCheck = model.wipInfo.ECNCheck == "on" ? "Y" : "N";
model.wipInfo.ModelCheck = model.wipInfo.ModelCheck == "on" ? "Y" : "N";
model.wipInfo.InputFlag = model.wipInfo.InputFlag == "on" ? "Y" : "N";
model.wipInfo.Priority = model.wipInfo.Priority == "on" ? "Y" : "N";
//板卡
model.wipBoard.DipCarrier = model.wipBoard.DipCarrier == "true" ? "Y" : "N";
model.wipBoard.DipTape = model.wipBoard.DipTape == "true" ? "Y" : "N";
model.wipBoard.Burn = model.wipBoard.Burn == "true" ? "Y" : "N";
model.wipBoard.DipCarrier = model.wipBoard.DipCarrier == "on" ? "Y" : "N";
model.wipBoard.DipTape = model.wipBoard.DipTape == "on" ? "Y" : "N";
model.wipBoard.Burn = model.wipBoard.Burn == "on" ? "Y" : "N";
//系統
model.wipSystem.FinePackage = model.wipSystem.FinePackage == "true" ? "Y" : "N";
model.wipSystem.FinePackage = model.wipSystem.FinePackage == "on" ? "Y" : "N";
// 判斷資料填寫
WipDataViewModel wipDataViewModel = new WipDataViewModel();
@ -1335,7 +1367,7 @@ namespace AMESCoreStudio.Web.Controllers
var Msg = CheckWipInfoInsert(wipDataViewModel);
// KeyParts 判斷
foreach(var item in model.WipKps)
foreach (var item in model.WipKps)
{
item.ItemNo = model.wipAtt.ItemNO;
item.Status = item.Status == "on" ? "A" : "S";
@ -1343,16 +1375,16 @@ namespace AMESCoreStudio.Web.Controllers
if (!string.IsNullOrWhiteSpace(Msg))
{
model.wipInfo.ECNCheck = model.wipInfo.ECNCheck == "Y" ? "true" : "false";
model.wipInfo.ModelCheck = model.wipInfo.ModelCheck == "Y" ? "true" : "false";
model.wipInfo.InputFlag = model.wipInfo.InputFlag == "Y" ? "true" : "false";
model.wipInfo.Priority = model.wipInfo.Priority == "Y" ? "true" : "false";
//板卡
model.wipBoard.DipCarrier = model.wipBoard.DipCarrier == "Y" ? "true" : "false";
model.wipBoard.DipTape = model.wipBoard.DipTape == "Y" ? "true" : "false";
model.wipBoard.Burn = model.wipBoard.Burn == "Y" ? "true" : "false";
//系統
model.wipSystem.FinePackage = model.wipSystem.FinePackage == "Y" ? "true" : "false";
//model.wipInfo.ECNCheck = model.wipInfo.ECNCheck == "Y" ? "true" : "false";
//model.wipInfo.ModelCheck = model.wipInfo.ModelCheck == "Y" ? "true" : "false";
//model.wipInfo.InputFlag = model.wipInfo.InputFlag == "Y" ? "true" : "false";
//model.wipInfo.Priority = model.wipInfo.Priority == "Y" ? "true" : "false";
////板卡
//model.wipBoard.DipCarrier = model.wipBoard.DipCarrier == "Y" ? "true" : "false";
//model.wipBoard.DipTape = model.wipBoard.DipTape == "Y" ? "true" : "false";
//model.wipBoard.Burn = model.wipBoard.Burn == "Y" ? "true" : "false";
////系統
//model.wipSystem.FinePackage = model.wipSystem.FinePackage == "Y" ? "true" : "false";
ModelState.AddModelError("error", Msg);
return View("PCS003", model);
@ -1447,6 +1479,12 @@ namespace AMESCoreStudio.Web.Controllers
result = await _pcsApi.PutMACInfoByClassGroup(mACInfo.ClassGroup, model.wipMAC.EndNO);
}
}
// KeyParts
foreach (var item in model.WipKps)
{
await _pcsApi.PutWipKpByStatus(JsonConvert.SerializeObject(item));
}
}

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

@ -826,6 +826,13 @@ namespace AMESCoreStudio.Web
/// <returns></returns>
[WebApiClient.Attributes.HttpPost("api/WipKps")]
ITask<ResultModel<WipKp>> PostWipKp([FromBody, RawJsonContent] string model);
/// <summary>
/// 新增工單對應SOP
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpPut("api/WipKps/Status")]
ITask<ResultModel<WipKp>> PutWipKpByStatus([FromBody, RawJsonContent] string model);
#endregion

34
AMESCoreStudio.Web/ViewModels/PCS/PCS009ViewModel.cs

@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using AMESCoreStudio.WebApi.Models.AMES;
using AMESCoreStudio.WebApi.Models.BAS;
using System.ComponentModel.DataAnnotations;
namespace AMESCoreStudio.Web.ViewModels.PCS
{
public class PCS009ViewModel
{
/// <summary>
/// 內部條碼
/// </summary>
public string BarCodeNo { get; set; }
/// <summary>
/// 組件條碼
/// </summary>
public string PartNo { get; set; }
/// <summary>
/// 外部條碼 EXTRA_BARCODE_NO
/// </summary>
public string ExtraBarCodeNo { get; set; }
/// <summary>
/// 包裝箱號
/// </summary>
public string BoxNo { get; set; }
}
}

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

@ -381,7 +381,7 @@
<div class="layui-inline">
<label class="layui-form-label">PCB加工</label>
<div class="layui-input-inline">
<select asp-items="@ViewBag.GetPCBWorkingTypeList" class=""></select>
<select asp-items="@ViewBag.GetPCBWorkingTypeList" asp-for="wipBoard.PcbProcessing" class=""></select>
</div>
</div>
</div>

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

@ -344,9 +344,6 @@
@{ int i = 0;}
<thead>
<tr>
<th>
料號
</th>
<th>
KP料號名稱
</th>
@ -374,9 +371,6 @@
@foreach (var index in Model.WipKps)
{
<tr>
<td>
@index.ItemNo
</td>
<td>
@index.KpName
@ -500,7 +494,7 @@
<div class="layui-input-inline">
<select disabled asp-items="@ViewBag.GetDIPTypeList" asp-for="wipBoard.DipSide" class=""></select>
</div>
<input type="checkbox" title="CARRIER" @if (Model.wipBoard != null) { @(Model.wipBoard.DipTape == "Y" ? "checked" : "") } />
<input type="checkbox" title="CARRIER" @if (Model.wipBoard != null) { @(Model.wipBoard.DipCarrier == "Y" ? "checked" : "") } />
<input type="checkbox" title="貼付膠帶" @if (Model.wipBoard != null) { @(Model.wipBoard.DipTape == "Y" ? "checked" : "") } />
</div>
</div>
@ -555,7 +549,7 @@
<div class="layui-inline">
<label class="layui-form-label">PCB加工</label>
<div class="layui-input-inline">
<select disabled asp-items="@ViewBag.GetPCBWorkingTypeList" class=""></select>
<select disabled asp-items="@ViewBag.GetPCBWorkingTypeList" asp-for="wipBoard.PcbProcessing" class=""></select>
</div>
</div>
</div>

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

@ -26,8 +26,8 @@
<input asp-for="wipInfo.UnitNO" type="hidden" value="@Model.wipInfo.UnitNO" />
<input asp-for="wipInfo.WipNO" type="hidden" value="@Model.wipInfo.WipNO" />
<input asp-for="wipAtt.ItemNO" type="hidden" value="@Model.wipAtt.ItemNO" />
<div class="layui-form-item">
<input type="checkbox" title="判斷前製程是否已經投入" @(Model.wipInfo.InputFlag == "Y" ? "checked" : "") />
<div class="layui-form-item " style="padding-left:30px">
<input @(Model.wipInfo.InputFlag == "Y" ? "checked" : "") type="checkbox" name="wipInfo.InputFlag" title="判斷前製程是否已經投入" />
</div>
<div class="layui-form-item">
@ -142,10 +142,10 @@
</div>
</div>
<div class="layui-form-item">
<input type="checkbox" title="混線投入機種檢查" @(Model.wipInfo.ModelCheck == "Y" ? "checked" : "") />
<input type="checkbox" title="混線投入ECN相同檢查" @(Model.wipInfo.ECNCheck == "Y" ? "checked" : "") />
<input type="checkbox" title="線上強制工單" @(Model.wipInfo.Priority == "Y" ? "checked" : "") />
<div class="layui-form-item" style="padding-left:30px">
<input @(Model.wipInfo.ModelCheck == "Y" ? "checked" : "") type="checkbox" title="混線投入機種檢查" name="wipInfo.ModelCheck" />
<input @(Model.wipInfo.ECNCheck == "Y" ? "checked" : "") type="checkbox" title="混線投入ECN相同檢查" name="wipInfo.ECNCheck" />
<input @(Model.wipInfo.Priority == "Y" ? "checked" : "") type="checkbox" title="線上強制工單" name="wipInfo.Priority" />
</div>
<div class="layui-tab layui-tab-brief">
@ -237,7 +237,7 @@
<input id="flowId" type="hidden" name="flowId" value=@Model.wipInfo.FlowRuleID />
</div>
<div class="layui-inline">
<input type="checkbox" title="SFIS途程確認" />
<input type="checkbox" title="SFIS途程確認" name="" />
</div>
<table class="layui-hide" id="ruleStation" lay-filter="ruleStation"></table>
<table id="rulestionOld" class="layui-table">
@ -349,9 +349,7 @@
@{ int i = 0;}
<thead>
<tr>
<th>
料號
</th>
<th>
KP料號名稱
</th>
@ -382,10 +380,6 @@
<td>
<input asp-for="@index.WipKpID" name="WipKps[@i].WipKpID" type="hidden" />
<input asp-for="@index.WipID" name="WipKps[@i].WipID" type="hidden" />
@index.ItemNo
</td>
<td>
<input asp-for="@index.KpName" name="WipKps[@i].KpName" type="hidden" />
@index.KpName
</td>
@ -490,8 +484,8 @@
<div class="layui-input-inline">
<select asp-items="@ViewBag.GetDIPTypeList" asp-for="wipBoard.DipSide" class=""></select>
</div>
<input type="checkbox" title="CARRIER" @if (Model.wipBoard != null) { @(Model.wipBoard.DipTape == "Y" ? "checked" : "") } />
<input type="checkbox" title="貼付膠帶" @if (Model.wipBoard != null) { @(Model.wipBoard.DipTape == "Y" ? "checked" : "") } />
<input @if (Model.wipBoard != null) { @(Model.wipBoard.DipCarrier == "Y" ? "checked" : "") } type="checkbox" title="CARRIER" name="wipBoard.DipCarrier" />
<input @if (Model.wipBoard != null) { @(Model.wipBoard.DipTape == "Y" ? "checked" : "") } type="checkbox" title="貼付膠帶" name="wipBoard.DipTape" />
</div>
</div>
@ -499,7 +493,7 @@
<div class="layui-inline">
<label class="layui-form-label">燒錄</label>
<div class="layui-input-inline">
<input type="checkbox" title="是否燒入" @if (Model.wipBoard != null) { @(Model.wipBoard.Burn == "Y" ? "checked" : "") } />
<input name="wipBoard.Burn" type="checkbox" title="是否燒入" @if (Model.wipBoard != null) { @(Model.wipBoard.Burn == "Y" ? "checked" : "") } />
</div>
<div class="layui-input-inline">
<label asp-for="wipBoard.BurnLocation" class="layui-form-label"></label>
@ -545,7 +539,7 @@
<div class="layui-inline">
<label class="layui-form-label">PCB加工</label>
<div class="layui-input-inline">
<select asp-items="@ViewBag.GetPCBWorkingTypeList" class=""></select>
<select asp-items="@ViewBag.GetPCBWorkingTypeList" asp-for="wipBoard.PcbProcessing" class=""></select>
</div>
</div>
</div>

209
AMESCoreStudio.Web/Views/PCS/PCS009.cshtml

@ -1,4 +1,6 @@
@{
@model AMESCoreStudio.Web.ViewModels.PCS.PCS009ViewModel
@{
ViewData["Title"] = "條碼生產歷程查詢";
Layout = "~/Views/Shared/_AMESLayout.cshtml";
}
@ -27,73 +29,47 @@
<div class="layui-card">
<form enctype="multipart/form-data" method="post" asp-action="PCS009" class="layui-form">
<div class="layui-card-header">
<div class="layui-form">
<div class="layui-form-item">
<div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div>
</div>
</div>
</div>
<div class="layui-card-body">
<div class="layui-form">
<div class="layui-row">
<div class="layui-form" style="text-align:center">
<div class="layui-form-item">
<div class="layui-col-sm4">
<div class="layui-inline">
<label class="layui-form-label">內部條碼:</label>
<div class="layui-input-inline" style="width:150px">
<input id="itemNO" name="itemNO" autocomplete="off" class="layui-input" placeholder="請輸入料號">
<div class="layui-input-inline">
<input id="itemNO" name="itemNO" autocomplete="off" class="layui-input">
</div>
</div>
</div>
<div class="layui-col-sm4">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">組件條碼:</label>
<div class="layui-input-inline" style="width:150px">
<select id="unitNo" lay-filter="unitNo" name="unitNo" lay-submit asp-items="@ViewBag.FactoryUnitList">
<option value="">全部</option>
</select>
</div>
</div>
</div>
<div class="layui-col-sm4">
<div class="layui-inline">
<label class="layui-form-label">文件狀態:</label>
<div class="layui-input-inline" style="width:100px">
<select id="state" lay-filter="lockType" name="state" lay-submit>
<option value="">全部</option>
<option value="Y">使用中</option>
<option value="N">停用</option>
</select>
</div>
</div>
<div class="layui-input-inline">
<input id="itemNO" name="itemNO" autocomplete="off" class="layui-input">
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-col-sm4">
<div class="layui-inline">
<label class="layui-form-label">文件名稱:</label>
<label class="layui-form-label">外部條碼:</label>
<div class="layui-input-inline">
<input id="fileName" name="fileName" autocomplete="off" class="layui-input" placeholder="請輸入文件名稱">
<input id="itemNO" name="itemNO" autocomplete="off" class="layui-input">
</div>
</div>
</div>
<div class="layui-col-sm6">
<div class="layui-form-item">
<div class="layui-inline">
<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>
<div class="layui-form-mid">~</div>
<div class="layui-input-inline" style="width:150px">
<input id="dateEnd" name="dateEnd" autocomplete="off" class="layui-input" readonly="">
<label class="layui-form-label">包裝箱號:</label>
<div class="layui-input-inline">
<input id="fileName" name="fileName" autocomplete="off" class="layui-input">
</div>
</div>
</div>
<div class="layui-col-sm1">
<div class="layui-form-item">
<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>
@ -102,158 +78,9 @@
</div>
</div>
</div>
</div>
<table class="layui-hide" id="query" lay-filter="query"></table>
</div>
</form>
</div>
@section Scripts{
<script type="text/html" id="switchState">
<!-- 这里的 checked 的状态只是演示 -->
<input type="checkbox" name="state" value="{{d.materialSopID}}" lay-skin="switch" lay-text="啟用|停用" lay-filter="state" {{ d.state == "使用中" ? 'checked' : '' }}>
</script>
<script type="text/javascript">
//var roleId = 0;
//var roleName = "";
layui.use(['form', 'layer', 'laydate'], function () {
form = layui.form;
laydate = layui.laydate;
laydate.render({
elem: '#dateStr'
, trigger: 'click'
, format: 'yyyy/MM/dd'
, theme: 'grid'
});
laydate.render({
elem: '#dateEnd'
, trigger: 'click'
, format: 'yyyy/MM/dd'
, theme: 'grid'
});
form.on('select(unit)', function (data) {
$("#unitNo").val(data.value);
//roleName = data.elem[data.elem.selectedIndex].text;
var qs = $('button[lay-filter="querysubmit"]');
qs.click();
//hg.msghide("刷新数据!");
//table && table.reload();
});
//監聽state操作
form.on('switch(state)', function (obj) {
var checked = obj.elem.checked;
var strSplit = this.value;
$.ajax({
url: '@Url.Action("PCS030State", "PCS")',
dataType: 'json',
data: { "materialSopID": strSplit, "state": checked },
cache: false,
type: "POST",
success: function (data, textStatus, jqXHR) {
var qs = $('button[lay-filter="querysubmit"]');
qs.click();
},
error: function (jqXHR, textStatus, errorThrown) {
alert("Found error when using Ajax!!");
}
});
});
});
//alert(roleId.value);
/*
hg.form.on('select(role)', function (data) {
alert(data.value);
});
*/
//监听表单提交事件
hg.form.onsubmit('querysubmit', function (data) {
hg.msghide("重新載入資料..");
table && table.reload(data);
});
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: 'state', title: '啟用/停用', width: 120, templet: '#switchState', unresize: true },
{
field: 'right',
width: 80,
title: '操作',
align: 'center',
fixed: 'right',
templet: function (d) {
return '<button class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-read" lay-event="show">預覽</button>'
}
}]
];
//通过行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
});
});
};
var toolbar = [{
text: '新增',
layuiicon: '&#xe608;',
class: 'layui-btn-normal',
handler: function () {
hg.open('新增SOP文件', '/PCS/PCS030C', 480, 480);
}
}
];
//基本数据表格
var table = hg.table.datatable('query', 'SOP文件查詢維護', '/PCS/PCS030Query', {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']);
// var table = hg.table.datatable('test', '條碼狀態維護', '/PCS/GetWipInfo', {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']);
</script>
}

88
AMESCoreStudio.WebApi/Controllers/AMES/WipKpsController.cs

@ -77,48 +77,88 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
return await q.ToListAsync();
}
// PUT: api/WipKps/5
// To protect from overposting attacks, enable the specific properties you want to bind to, for
// more details, see https://go.microsoft.com/fwlink/?linkid=2123754.
[HttpPut("{id}")]
public async Task<IActionResult> PutWipKp(int id, WipKp wipKp)
{
if (id != wipKp.WipKpID)
/// <summary>
/// 更新工單KP資訊資料檔
/// </summary>
/// <param name="wipKp"></param>
/// <returns></returns>
[HttpPut]
public async Task<ResultModel<WipKp>> PutWipKp(WipKp wipKp)
{
return BadRequest();
}
ResultModel<WipKp> result = new ResultModel<WipKp>();
_context.Entry(wipKp).State = EntityState.Modified;
wipKp.UpdateDate = DateTime.Now;
wipKp.UpdateUserID = 0;
try
{
await _context.SaveChangesAsync();
result.Success = true;
result.Msg = "OK";
}
catch (DbUpdateConcurrencyException)
catch (Exception ex)
{
if (!WipKpExists(id))
{
return NotFound();
result.Success = false;
result.Msg = ex.InnerException.Message;
}
else
{
throw;
return result;
}
/// <summary>
/// 更新工單KP資訊資料檔-狀態
/// </summary>
/// <param name="wipKp"></param>
/// <returns></returns>
[HttpPut("Status")]
public async Task<ResultModel<WipKp>> PutWipKpByStatus(WipKp wipKp)
{
ResultModel<WipKp> result = new ResultModel<WipKp>();
var resultWipKp = GetWipKp(wipKp.WipKpID).Result.Value;
_context.Entry(resultWipKp).State = EntityState.Modified;
resultWipKp.Status = wipKp.Status;
resultWipKp.UpdateDate = DateTime.Now;
resultWipKp.UpdateUserID = 0;
try
{
await _context.SaveChangesAsync();
result.Success = true;
result.Msg = "OK";
}
catch (Exception ex)
{
result.Success = false;
result.Msg = ex.InnerException.Message;
return NoContent();
}
return result;
}
// POST: api/WipKps
// To protect from overposting attacks, enable the specific properties you want to bind to, for
// more details, see https://go.microsoft.com/fwlink/?linkid=2123754.
/// <summary>
/// 新增工單KP資訊資料檔
/// </summary>
/// <param name="wipKp"></param>
/// <returns></returns>
[HttpPost]
public async Task<ActionResult<WipKp>> PostWipKp(WipKp wipKp)
public async Task<ResultModel<WipKp>> PostWipKp(WipKp wipKp)
{
ResultModel<WipKp> result = new ResultModel<WipKp>();
Helper helper = new Helper(_context);
wipKp.WipKpID= helper.GetIDKey("WIP_KP_ID").Result;
_context.WipKps.Add(wipKp);
try
{
await _context.SaveChangesAsync();
return CreatedAtAction("GetWipKp", new { id = wipKp.WipKpID }, wipKp);
result.Success = true;
result.Msg = "OK";
}
catch (Exception ex)
{
result.Success = false;
result.Msg = ex.InnerException.Message;
}
return result;
}
// DELETE: api/WipKps/5

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

@ -118,6 +118,15 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Required(ErrorMessage = "{0},不能空白")]
public decimal PcbBake { get; set; }
/// <summary>
/// PCB加工
/// </summary>
[Column("PCB_PROCESSING")]
[DataMember]
[Display(Name = "PCB加工")]
[Required(ErrorMessage = "{0},不能空白")]
public string PcbProcessing { get; set; }
/// <summary>
/// 錫膏
/// </summary>

Loading…
Cancel
Save