Browse Source

1. 修正料號SOP新增

2. 工單資料維護WipKP改用下拉選單,加入工程負責人員及判斷MAC按鈕隱藏
PTD
Ray 3 years ago
parent
commit
427656e55a
  1. 106
      AMESCoreStudio.Web/Controllers/PCSController.cs
  2. 604
      AMESCoreStudio.Web/Views/PCS/PCS001R.cshtml
  3. 69
      AMESCoreStudio.Web/Views/PCS/PCS003.cshtml
  4. 2
      AMESCoreStudio.Web/Views/PCS/PCS030C.cshtml
  5. 2
      AMESCoreStudio.WebApi/Controllers/AMES/ItemsController.cs
  6. 17
      AMESCoreStudio.WebApi/Models/AMES/WipBoard.cs
  7. 19
      AMESCoreStudio.WebApi/Models/AMES/WipSystem.cs

106
AMESCoreStudio.Web/Controllers/PCSController.cs

@ -20,6 +20,8 @@ using System.Threading.Tasks;
namespace AMESCoreStudio.Web.Controllers namespace AMESCoreStudio.Web.Controllers
{ {
public class PCSController : Controller public class PCSController : Controller
{ {
private readonly ILogger<PCSController> _logger; private readonly ILogger<PCSController> _logger;
@ -28,11 +30,12 @@ namespace AMESCoreStudio.Web.Controllers
public readonly IBAS _basApi; public readonly IBAS _basApi;
public readonly IPPS _ppsApi; public readonly IPPS _ppsApi;
public readonly IFQC _fqcApi; public readonly IFQC _fqcApi;
public readonly IKCS _kcsApi;
public readonly IFileServerProvider _fileServerProvider; public readonly IFileServerProvider _fileServerProvider;
private readonly IWebHostEnvironment _env; private readonly IWebHostEnvironment _env;
public PCSController(ILogger<PCSController> logger, ISYS sysApi, IPCS pcsApi, IBAS basApi, IPPS ppsApi, IFQC fqcApi public PCSController(ILogger<PCSController> logger, ISYS sysApi, IPCS pcsApi, IBAS basApi, IPPS ppsApi, IFQC fqcApi
, IFileServerProvider fileServerProvider, IWebHostEnvironment env) , IFileServerProvider fileServerProvider, IWebHostEnvironment env, IKCS kcsApi)
{ {
_logger = logger; _logger = logger;
_sysApi = sysApi; _sysApi = sysApi;
@ -40,6 +43,7 @@ namespace AMESCoreStudio.Web.Controllers
_basApi = basApi; _basApi = basApi;
_ppsApi = ppsApi; _ppsApi = ppsApi;
_fqcApi = fqcApi; _fqcApi = fqcApi;
_kcsApi = kcsApi;
_fileServerProvider = fileServerProvider; _fileServerProvider = fileServerProvider;
_env = env; _env = env;
} }
@ -119,19 +123,7 @@ namespace AMESCoreStudio.Web.Controllers
!string.IsNullOrWhiteSpace(model.BiTime) || !string.IsNullOrWhiteSpace(model.BiTime) ||
!string.IsNullOrWhiteSpace(model.BiMemo) || !string.IsNullOrWhiteSpace(model.BiMemo) ||
!string.IsNullOrWhiteSpace(model.Checksum) || !string.IsNullOrWhiteSpace(model.Checksum) ||
!string.IsNullOrWhiteSpace(model.Cpu) || !string.IsNullOrWhiteSpace(model.Bios))
!string.IsNullOrWhiteSpace(model.DmiBi) ||
!string.IsNullOrWhiteSpace(model.Bios) ||
!string.IsNullOrWhiteSpace(model.Ec) ||
!string.IsNullOrWhiteSpace(model.Fw) ||
!string.IsNullOrWhiteSpace(model.Fw) ||
!string.IsNullOrWhiteSpace(model.Fw1) ||
!string.IsNullOrWhiteSpace(model.Fw2) ||
!string.IsNullOrWhiteSpace(model.Jumper) ||
!string.IsNullOrWhiteSpace(model.Memo) ||
!string.IsNullOrWhiteSpace(model.OsVer) ||
!string.IsNullOrWhiteSpace(model.PowerMode) ||
!string.IsNullOrWhiteSpace(model.Ram))
{ {
if (string.IsNullOrWhiteSpace(model.BiTemperature)) if (string.IsNullOrWhiteSpace(model.BiTemperature))
Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.BiTemperature)).Name + ","; Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.BiTemperature)).Name + ",";
@ -139,15 +131,12 @@ namespace AMESCoreStudio.Web.Controllers
if (string.IsNullOrWhiteSpace(model.BiTime)) if (string.IsNullOrWhiteSpace(model.BiTime))
Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.BiTime)).Name + ","; Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.BiTime)).Name + ",";
if (string.IsNullOrWhiteSpace(model.BiTime))
Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.BiMemo)).Name + ",";
if (string.IsNullOrWhiteSpace(model.Checksum)) if (string.IsNullOrWhiteSpace(model.Checksum))
Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.Checksum)).Name + ","; Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.Checksum)).Name + ",";
if (string.IsNullOrWhiteSpace(model.Cpu))
Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.Cpu)).Name + ",";
if (string.IsNullOrWhiteSpace(model.Ram))
Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.Ram)).Name + ",";
if (string.IsNullOrWhiteSpace(model.Bios)) if (string.IsNullOrWhiteSpace(model.Bios))
Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.Bios)).Name + ","; Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.Bios)).Name + ",";
@ -860,6 +849,29 @@ namespace AMESCoreStudio.Web.Controllers
//TempData["GetLockReasonTypeList"] = LockReasonType; //TempData["GetLockReasonTypeList"] = LockReasonType;
ViewBag.GetLockReasonTypeList = LockReasonType; ViewBag.GetLockReasonTypeList = LockReasonType;
} }
/// <summary>
/// KP Items
/// </summary>
/// <returns></returns>
private async Task GetItemsList()
{
var result = await _kcsApi.GetItems();
var Items = new List<SelectListItem>();
for (int i = 0; i < result.Count; i++)
{
Items.Add(new SelectListItem(result[i].ItemName, result[i].ItemNo.ToString()));
}
if (result.Count == 0)
{
Items.Add(new SelectListItem("N/A", null));
}
ViewBag.ItemsList = Items;
}
#endregion #endregion
#region CheckboxList #region CheckboxList
@ -954,7 +966,7 @@ namespace AMESCoreStudio.Web.Controllers
#region resut Ajax JSON #region resut Ajax JSON
/// <summary> /// <summary>
/// 生產單位 /// 生產單位 Json
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
@ -978,6 +990,18 @@ namespace AMESCoreStudio.Web.Controllers
FactoryUnit = FactoryUnit.Where(w => w.Text.ToUpper().Contains(search.ToUpper()) FactoryUnit = FactoryUnit.Where(w => w.Text.ToUpper().Contains(search.ToUpper())
|| w.Value.ToUpper().Contains(search.ToUpper())).ToList(); || w.Value.ToUpper().Contains(search.ToUpper())).ToList();
} }
//var result = await _kcsApi.GetItems();
//var FactoryUnit = new List<SelectListItem>();
//for (int i = 0; i < result.Count; i++)
//{
// FactoryUnit.Add(new SelectListItem(result[i].ItemName, result[i].ItemNo.ToString()));
//}
//if (result.Count == 0)
//{
// FactoryUnit.Add(new SelectListItem("N/A", null));
//}
//将数据Json化并传到前台视图 //将数据Json化并传到前台视图
return Json(new { data = FactoryUnit }); return Json(new { data = FactoryUnit });
@ -1046,6 +1070,30 @@ namespace AMESCoreStudio.Web.Controllers
return Json(new { data = result }); return Json(new { data = result });
} }
/// <summary>
/// KP Items Json
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<JsonResult> getKpItemsJson()
{
var result = await _kcsApi.GetItems();
var KpItems = new List<SelectListItem>();
for (int i = 0; i < result.Count; i++)
{
KpItems.Add(new SelectListItem(result[i].ItemName, result[i].ItemNo.ToString()));
}
if (result.Count == 0)
{
KpItems.Add(new SelectListItem("N/A", null));
}
//将数据Json化并传到前台视图
return Json(new { data = KpItems });
}
public async Task<JsonResult> MaterialKpQueryAsync(string itemno = null, string station = null) public async Task<JsonResult> MaterialKpQueryAsync(string itemno = null, string station = null)
{ {
@ -1496,6 +1544,7 @@ namespace AMESCoreStudio.Web.Controllers
model.WipSops = await _pcsApi.GetWipSopByWipNo(model.wipInfo.WipNO); model.WipSops = await _pcsApi.GetWipSopByWipNo(model.wipInfo.WipNO);
} }
await GetItemsList();
await GetProductType(); await GetProductType();
await GetFactoryInfo(); await GetFactoryInfo();
await GetFactoryUnit(); await GetFactoryUnit();
@ -1563,6 +1612,7 @@ namespace AMESCoreStudio.Web.Controllers
model.WipSops = await _pcsApi.GetWipSopByWipNo(model.wipInfo.WipNO); model.WipSops = await _pcsApi.GetWipSopByWipNo(model.wipInfo.WipNO);
} }
await GetItemsList();
await GetProductType(); await GetProductType();
await GetFactoryInfo(); await GetFactoryInfo();
await GetFactoryUnit(); await GetFactoryUnit();
@ -1593,7 +1643,9 @@ namespace AMESCoreStudio.Web.Controllers
[HttpPost] [HttpPost]
public async Task<IActionResult> PCS003Async(WipDataViewModel model, string action) public async Task<IActionResult> PCS003Async(WipDataViewModel model, string action)
{ {
#region 選單 #region 選單
await GetItemsList();
await GetProductType(); await GetProductType();
await GetFactoryInfo(); await GetFactoryInfo();
await GetFactoryUnit(); await GetFactoryUnit();
@ -1618,6 +1670,7 @@ namespace AMESCoreStudio.Web.Controllers
GetCheckboxCompanyLogo(); GetCheckboxCompanyLogo();
GetCheckboxPrintMode(); GetCheckboxPrintMode();
GetCheckboxWipAttr(); GetCheckboxWipAttr();
GetWipSystemPMTypeSelect();
#endregion #endregion
model.ruleStations = await _pcsApi.GetRuleStationByWipNo(model.wipInfo.WipNO); model.ruleStations = await _pcsApi.GetRuleStationByWipNo(model.wipInfo.WipNO);
@ -1662,6 +1715,14 @@ namespace AMESCoreStudio.Web.Controllers
return View("PCS003", model); return View("PCS003", model);
} }
// 判斷WipKp 順序是否重複
if (model.WipKps.GroupBy(g => g.KpSeq).Where(w => w.Count() > 1).Any())
{
ModelState.AddModelError("error", "KeyParts 順序有重複");
return View("PCS003", model);
}
result = await _pcsApi.PutWipInfo(JsonConvert.SerializeObject(model.wipInfo)); result = await _pcsApi.PutWipInfo(JsonConvert.SerializeObject(model.wipInfo));
if (result.Success) if (result.Success)
{ {
@ -1814,6 +1875,7 @@ namespace AMESCoreStudio.Web.Controllers
} }
} }
WipCheck wipCheck = new WipCheck WipCheck wipCheck = new WipCheck
{ {
WipNo = model.wipInfo.WipNO WipNo = model.wipInfo.WipNO
@ -3757,7 +3819,7 @@ namespace AMESCoreStudio.Web.Controllers
} }
return View("PCS030U", model); return View("PCS030U", model);
} }
[HttpGet] [HttpGet]

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

@ -373,8 +373,7 @@
@index.KpName @index.KpName
</td> </td>
<td> <td>
<select asp-for="@index.KpNo" name="WipKps[@i].KpNo" asp-items="@ViewBag.ItemsList" class="" disabled></select>
@index.KpNo
</td> </td>
<td> <td>
@ -438,484 +437,297 @@
</div> </div>
@* 板卡-工程資訊sheet *@ @* 板卡-工程資訊sheet *@
<div class="layui-tab-item"> <div class="layui-tab-item">
<div class="layui-form-item"> <div class="layui-inline">
<div class="layui-inline"> <label class="layui-form-label" asp-for="wipBoard.Engineer"></label>
<label class="layui-form-label">工程負責人員</label> <div class="layui-input-inline">
<div class="layui-input-inline"> <input class="layui-input" asp-for="wipBoard.Engineer" readonly="readonly" />
<input class="layui-input" autocomplete="off" />
<span style="color: #dc3545 !important;"></span>
</div>
<label class="layui-form-label">姓名</label>
<div class="layui-input-inline">
<input class="layui-input" autocomplete="off" />
<span style="color: #dc3545 !important;"></span>
</div>
</div>
</div> </div>
@*<div class="layui-form-item"> <label class="layui-form-label">姓名</label>
<div class="layui-inline"> <div class="layui-input-inline">
<label class="layui-form-label">Power Mode</label> <input class="layui-input" asp-for="wipBoard.GetUserInfo.UserName" readonly="readonly" />
<div class="layui-input-inline">
<input class="layui-input" autocomplete="off" placeholder="" />
<span style="color: #dc3545 !important;"></span>
</div>
</div>
</div>*@
@*<div class="layui-form-item">
<label class="layui-form-label">PLM參考</label>
<div class="layui-input-block">
<input class="layui-input" />
</div>
</div>*@
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">SMD點膠</label>
<div class="layui-input-inline">
<select disabled asp-items="@ViewBag.GetSMDTypeList" class=""></select>
</div>
</div>
</div> </div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">DIP</label> <label class="layui-form-label">SMD點膠</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select disabled asp-items="@ViewBag.GetDIPTypeList" asp-for="wipBoard.DipSide" class=""></select> <select disabled asp-items="@ViewBag.GetSMDTypeList" class=""></select>
</div>
<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>
</div> </div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">燒錄</label> <label class="layui-form-label">DIP</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="checkbox" title="是否燒入" @if (Model.wipBoard != null) { @(Model.wipBoard.Burn == "Y" ? "checked" : "") } /> <select disabled asp-items="@ViewBag.GetDIPTypeList" asp-for="wipBoard.DipSide" class=""></select>
</div>
<div class="layui-input-inline">
<label asp-for="wipBoard.BurnLocation" class="layui-form-label"></label>
<div class="layui-input-block">
<input asp-for="wipBoard.BurnLocation" class="layui-input" />
</div>
</div>
</div> </div>
<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>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">零件烘烤溫度</label> <label class="layui-form-label">燒錄</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select disabled asp-items="@ViewBag.GetPartsBakeTypeList" asp-for="wipBoard.PartsBake" class=""></select> <input type="checkbox" title="是否燒入" @if (Model.wipBoard != null) { @(Model.wipBoard.Burn == "Y" ? "checked" : "") } />
</div>
</div> </div>
<div class="layui-inline"> <div class="layui-input-inline">
<label class="layui-form-label">零件烘烤時間</label> <label asp-for="wipBoard.BurnLocation" 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.BurnLocation" class="layui-input" />
</div> </div>
</div> </div>
</div> </div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">PCB烘烤</label> <label class="layui-form-label">零件烘烤溫度</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select disabled asp-items="@ViewBag.GetPCBBakeTypeList" asp-for="wipBoard.PcbBake" class=""></select> <select disabled asp-items="@ViewBag.GetPartsBakeTypeList" asp-for="wipBoard.PartsBake" class=""></select>
</div>
</div> </div>
<div class="layui-inline"> </div>
<label class="layui-form-label" asp-for="wipBoard.SolderPaste"></label> <div class="layui-inline">
<div class="layui-input-block"> <label class="layui-form-label">零件烘烤時間</label>
<select disabled asp-items="@ViewBag.GetSolderPasteList" asp-for="wipBoard.SolderPaste"></select> <div class="layui-input-block">
</div> <input asp-for="wipBoard.PartsBakeTime" class="layui-input" />
</div> </div>
</div> </div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">PCB加工</label> <label class="layui-form-label">PCB烘烤</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select disabled asp-items="@ViewBag.GetPCBWorkingTypeList" asp-for="wipBoard.PcbProcessing" class=""></select> <select disabled asp-items="@ViewBag.GetPCBBakeTypeList" asp-for="wipBoard.PcbBake" class=""></select>
</div>
</div> </div>
</div> </div>
<div class="layui-inline">
<div class="layui-form-item"> <label class="layui-form-label" asp-for="wipBoard.SolderPaste"></label>
<div class="layui-inline"> <div class="layui-input-block">
<div class="layui-input-inline"> <select disabled asp-items="@ViewBag.GetSolderPasteList" asp-for="wipBoard.SolderPaste"></select>
<label asp-for="wipBoard.BiRatio" class="layui-form-label"></label>
<div class="layui-input-block">
<input asp-for="wipBoard.BiRatio" class="layui-input" />
</div>
</div>
<div class="layui-input-inline">
<label asp-for="wipBoard.BiTemperature" class="layui-form-label"></label>
<div class="layui-input-block">
<input asp-for="wipBoard.BiTemperature" class="layui-input" />
</div>
</div>
<div class="layui-input-inline">
<label asp-for="wipBoard.BiTime" class="layui-form-label"></label>
<div class="layui-input-block">
<input asp-for="wipBoard.BiTime" class="layui-input" />
</div>
</div>
</div> </div>
</div> </div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label asp-for="wipBoard.BiosVer" class="layui-form-label"></label> <label class="layui-form-label">PCB加工</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipBoard.BiosVer" class="layui-input" /> <select disabled asp-items="@ViewBag.GetPCBWorkingTypeList" asp-for="wipBoard.PcbProcessing" class=""></select>
<span class="text-danger"></span>
</div>
<label asp-for="wipBoard.Checksum" class="layui-form-label"></label>
<div class="layui-input-inline">
<input asp-for="wipBoard.Checksum" class="layui-input" />
<span class="text-danger"></span>
</div>
</div> </div>
</div> </div>
</div>
@*<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label asp-for="wipAtt.ItemNO" class="layui-form-label">OS</label> <div class="layui-input-inline">
<div class="layui-input-inline"> <label asp-for="wipBoard.BiRatio" class="layui-form-label"></label>
<input asp-for="wipAtt.ItemNO" class="layui-input" placeholder="請輸入OS" /> <div class="layui-input-block">
<span asp-validation-for="wipAtt.ItemNO" class="text-danger"></span> <input asp-for="wipBoard.BiRatio" class="layui-input" />
</div>
</div> </div>
</div> </div>
<div class="layui-input-inline">
<div class="layui-form-item"> <label asp-for="wipBoard.BiTemperature" class="layui-form-label"></label>
<div class="layui-inline"> <div class="layui-input-block">
<label asp-for="wipAtt.ItemNO" class="layui-form-label">CPU</label> <input asp-for="wipBoard.BiTemperature" class="layui-input" />
<div class="layui-input-inline">
<input asp-for="wipAtt.ItemNO" class="layui-input" placeholder="請輸入CPU" />
<span asp-validation-for="wipAtt.ItemNO" class="text-danger"></span>
</div>
</div> </div>
</div> </div>
<div class="layui-input-inline">
<div class="layui-form-item"> <label asp-for="wipBoard.BiTime" class="layui-form-label"></label>
<div class="layui-inline">
<label asp-for="wipAtt.ItemNO" class="layui-form-label">RAM</label>
<div class="layui-input-inline">
<input asp-for="wipAtt.ItemNO" class="layui-input" placeholder="請輸入RAM" />
<span asp-validation-for="wipAtt.ItemNO" class="text-danger"></span>
</div>
</div>
</div>*@
@*<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">ME FW</label>
<div class="layui-input-inline">
<input class="layui-input" placeholder="請輸入ME FW" />
<span class="text-danger"></span>
</div>
</div>
</div>*@
@*<div class="layui-form-item">
<label class="layui-form-label">備註</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input class="layui-input" placeholder="請輸入備註" /> <input asp-for="wipBoard.BiTime" class="layui-input" />
</div> </div>
</div>*@ </div>
</div>
</div> </div>
@* 系統-工程資訊sheet *@ <div class="layui-form-item">
<div class="layui-tab-item"> <div class="layui-inline">
<div class="layui-form-item"> <label asp-for="wipBoard.BiosVer" class="layui-form-label"></label>
<div class="layui-inline"> <div class="layui-input-inline">
<label class="layui-form-label">工程負責人員</label> <input asp-for="wipBoard.BiosVer" class="layui-input" />
<div class="layui-input-inline"> <span class="text-danger"></span>
<input class="layui-input" autocomplete="off" /> </div>
<span style="color: #dc3545 !important;"></span> <label asp-for="wipBoard.Checksum" class="layui-form-label"></label>
</div> <div class="layui-input-inline">
<input asp-for="wipBoard.Checksum" class="layui-input" />
<label class="layui-form-label">姓名</label> <span class="text-danger"></span>
<div class="layui-input-inline">
<input class="layui-input" autocomplete="off" />
<span style="color: #dc3545 !important;"></span>
</div>
</div> </div>
</div> </div>
</div>
</div>
<div class="layui-form-item"> @* 系統-工程資訊sheet *@
<div class="layui-inline"> <div class="layui-tab-item">
<label class="layui-form-label">Power Mode</label> <div class="layui-form-item">
<div class="layui-input-inline"> <div class="layui-inline">
<input class="layui-input" autocomplete="off" /> <label class="layui-form-label" asp-for="wipSystem.Engineer"></label>
<span style="color: #dc3545 !important;"></span> <div class="layui-input-inline">
</div> <input class="layui-input" asp-for="wipSystem.Engineer" readonly="readonly" />
</div> </div>
</div>
<div class="layui-form-item"> <label class="layui-form-label">姓名</label>
<label class="layui-form-label">PLM參考</label> <div class="layui-input-inline">
<div class="layui-input-block"> <input class="layui-input" asp-for="wipSystem.GetUserInfo.UserName" readonly="readonly" />
<input class="layui-input" />
</div> </div>
</div> </div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<div class="layui-input-inline"> <label class="layui-form-label">Power Mode</label>
<label asp-for="wipSystem.BiRatio" class="layui-form-label"></label> <div class="layui-input-inline">
<div class="layui-input-block"> <select asp-for="wipSystem.PowerModeType" asp-items="@ViewBag.GetWipSystemPMTypeSelect" class=""></select>
<input asp-for="wipSystem.BiRatio" class="layui-input" /> </div>
</div> <div class="layui-input-inline">
</div> <input class="layui-input" style="text-transform:uppercase;" asp-for="wipSystem.PowerMode" autocomplete="off" />
<div class="layui-input-inline">
<label asp-for="wipSystem.BiTemperature" class="layui-form-label"></label>
<div class="layui-input-block">
<input asp-for="wipSystem.BiTemperature" class="layui-input" />
</div>
</div>
<div class="layui-input-inline">
<label asp-for="wipSystem.BiTime" class="layui-form-label"></label>
<div class="layui-input-block">
<input asp-for="wipSystem.BiTime" class="layui-input" />
</div>
</div>
<label asp-for="wipSystem.BiMemo" class="layui-form-label"></label>
<div class="layui-input-inline">
<input asp-for="wipSystem.BiMemo" class="layui-input" />
</div>
</div> </div>
</div> </div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <label class="layui-form-label">PLM參考</label>
<label asp-for="wipSystem.BiosVer" class="layui-form-label"></label> <div class="layui-input-block">
<div class="layui-input-inline"> <input class="layui-input" asp-for="wipSystem.PowerMode_Desc" readonly="readonly" />
<input asp-for="wipSystem.BiosVer" class="layui-input" />
</div>
<label asp-for="wipSystem.Checksum" class="layui-form-label">Checksum</label>
<div class="layui-input-inline">
<input asp-for="wipSystem.Checksum" class="layui-input" />
</div>
</div>
</div> </div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label" asp-for="wipSystem.Cpu"></label> <div class="layui-input-inline">
<div class="layui-input-inline"> <label asp-for="wipSystem.BiRatio" class="layui-form-label"></label>
<input class="layui-input" asp-for="wipSystem.Cpu" autocomplete="off" /> <div class="layui-input-block">
</div> <input asp-for="wipSystem.BiRatio" class="layui-input" />
<label class="layui-form-label" asp-for="wipSystem.Ram"></label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Ram" autocomplete="off" />
</div>
<label class="layui-form-label" asp-for="wipSystem.OsVer"></label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.OsVer" autocomplete="off" />
</div> </div>
</div> </div>
</div> <div class="layui-input-inline">
<label asp-for="wipSystem.BiTemperature" class="layui-form-label"></label>
<div class="layui-form-item"> <div class="layui-input-block">
<div class="layui-inline"> <input asp-for="wipSystem.BiTemperature" class="layui-input" />
<label class="layui-form-label">EC</label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Ec" autocomplete="off" />
</div> </div>
</div> </div>
</div> <div class="layui-input-inline">
<label asp-for="wipSystem.BiTime" class="layui-form-label"></label>
<div class="layui-form-item"> <div class="layui-input-block">
<div class="layui-inline"> <input asp-for="wipSystem.BiTime" class="layui-input" />
<label class="layui-form-label">FW</label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Fw" autocomplete="off" />
</div> </div>
</div> </div>
<label asp-for="wipSystem.BiMemo" class="layui-form-label"></label>
<div class="layui-input-inline">
<input asp-for="wipSystem.BiMemo" class="layui-input" />
</div>
</div> </div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">FW1</label> <label asp-for="wipSystem.BiosVer" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Fw1" autocomplete="off" /> <input asp-for="wipSystem.BiosVer" class="layui-input" />
</div>
</div> </div>
</div>
<div class="layui-form-item"> <label asp-for="wipSystem.Checksum" class="layui-form-label">Checksum</label>
<div class="layui-inline"> <div class="layui-input-inline">
<label class="layui-form-label">FW2</label> <input asp-for="wipSystem.Checksum" class="layui-input" />
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Fw2" autocomplete="off" />
</div>
</div> </div>
</div> </div>
</div>
<div class="layui-form-item">
<div class="layui-form-item"> <div class="layui-inline">
<div class="layui-inline"> <label class="layui-form-label" asp-for="wipSystem.Cpu"></label>
<label class="layui-form-label">FINE_PACKAGE</label> <div class="layui-input-inline">
<div class="layui-input-inline"> <input class="layui-input" asp-for="wipSystem.Cpu" autocomplete="off" />
<input class="layui-input" asp-for="wipSystem.FinePackage" autocomplete="off" /> </div>
</div> <label class="layui-form-label" asp-for="wipSystem.Ram"></label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Ram" autocomplete="off" />
</div>
<label class="layui-form-label" asp-for="wipSystem.OsVer"></label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.OsVer" autocomplete="off" />
</div> </div>
</div> </div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label" asp-for="wipSystem.DmiBi"></label> <label class="layui-form-label">EC</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.DmiBi" autocomplete="off" /> <input class="layui-input" asp-for="wipSystem.Ec" autocomplete="off" />
</div>
</div> </div>
</div> </div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label" asp-for="wipSystem.Jumper"></label> <label class="layui-form-label">FW</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Jumper" autocomplete="off" /> <input class="layui-input" asp-for="wipSystem.Fw" autocomplete="off" />
</div>
</div> </div>
</div> </div>
</div>
@*<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">FW</label> <label class="layui-form-label">FW1</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select asp-items="@ViewBag.PCSList1" class=""></select> <input class="layui-input" asp-for="wipSystem.Fw1" autocomplete="off" />
</div>
<div class="layui-input-inline">
<input class="layui-input" autocomplete="off" placeholder="請輸入FW" />
<span style="color: #dc3545 !important;"></span>
</div>
<div class="layui-input-inline">
<input class="layui-input" autocomplete="off" placeholder="請輸入FW" />
<span style="color: #dc3545 !important;"></span>
</div>
</div>
</div> </div>
</div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">FW1</label> <label class="layui-form-label">FW2</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select asp-items="@ViewBag.PCSList1" class=""></select> <input class="layui-input" asp-for="wipSystem.Fw2" autocomplete="off" />
</div>
<div class="layui-input-inline">
<input class="layui-input" autocomplete="off" placeholder="請輸入FW1" />
<span style="color: #dc3545 !important;"></span>
</div>
<div class="layui-input-inline">
<input class="layui-input" autocomplete="off" placeholder="請輸入FW1" />
<span style="color: #dc3545 !important;"></span>
</div>
</div>
</div> </div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">FW2</label>
<div class="layui-input-inline">
<select asp-items="@ViewBag.PCSList1" class=""></select>
</div>
<div class="layui-input-inline">
<input class="layui-input" autocomplete="off" placeholder="請輸入FW2" />
<span style="color: #dc3545 !important;"></span>
</div>
<div class="layui-input-inline">
<input class="layui-input" autocomplete="off" placeholder="請輸入FW2" />
<span style="color: #dc3545 !important;"></span>
</div>
</div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">OS</label> <label class="layui-form-label">FINE_PACKAGE</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select asp-items="@ViewBag.PCSList1" class=""></select> <input class="layui-input" asp-for="wipSystem.FinePackage" autocomplete="off" />
</div>
<div class="layui-input-inline">
<input class="layui-input" autocomplete="off" placeholder="請輸入OS" />
<span style="color: #dc3545 !important;"></span>
</div>
<div class="layui-input-inline">
<input class="layui-input" autocomplete="off" placeholder="請輸入OS" />
<span style="color: #dc3545 !important;"></span>
</div>
</div>
</div> </div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-form-item"> <div class="layui-inline">
<div class="layui-inline"> <label class="layui-form-label" asp-for="wipSystem.DmiBi"></label>
<label class="layui-form-label">RAM</label> <div class="layui-input-inline">
<div class="layui-input-inline"> <input class="layui-input" asp-for="wipSystem.DmiBi" autocomplete="off" />
<input class="layui-input" autocomplete="off" placeholder="RAM" />
<span style="color: #dc3545 !important;"></span>
</div>
</div>
</div> </div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-form-item"> <div class="layui-inline">
<div class="layui-inline"> <label class="layui-form-label" asp-for="wipSystem.Jumper"></label>
<label class="layui-form-label">B/I</label> <div class="layui-input-inline">
<div class="layui-input-inline"> <input class="layui-input" asp-for="wipSystem.Jumper" autocomplete="off" />
<input class="layui-input" placeholder="請B/I" />
<span class="text-danger"></span>
</div>
<label class="layui-form-label">溫度</label>
<div class="layui-input-inline">
<input class="layui-input" placeholder="%" />
<span class="text-danger"></span>
</div>
<label asp-for="wipInfo.BoxCNT" class="layui-form-label">時間</label>
<div class="layui-input-inline">
<input asp-for="wipInfo.BoxCNT" class="layui-input" />
<span class="text-danger"></span>
</div>
</div>
</div> </div>
</div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <label class="layui-form-label">備註</label>
<label class="layui-form-label">DMI燒入</label> <div class="layui-input-block">
<div class="layui-input-inline"> <input class="layui-input" />
<select asp-items="@ViewBag.GetDIPTypeList" class=""></select>
</div>
</div>
</div>*@
<div class="layui-form-item">
<label class="layui-form-label">備註</label>
<div class="layui-input-block">
<input class="layui-input" />
</div>
</div> </div>
</div> </div>
</div>
@* 標籤選項sheet *@ @* 標籤選項sheet *@
<div class="layui-tab-item"> <div class="layui-tab-item">

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

@ -328,7 +328,7 @@
<input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" asp-for="@index.KpName" name="WipKps[@k].KpName" /> <input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" asp-for="@index.KpName" name="WipKps[@k].KpName" />
</td> </td>
<td> <td>
<input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" asp-for="@index.KpNo" name="WipKps[@k].KpNo" /> <select asp-for="@index.KpNo" name="WipKps[@k].KpNo" asp-items="@ViewBag.ItemsList" class=""></select>
</td> </td>
<td> <td>
<input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" asp-for="@index.KpSeq" name="WipKps[@k].KpSeq" /> <input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" asp-for="@index.KpSeq" name="WipKps[@k].KpSeq" />
@ -417,19 +417,15 @@
@* 板卡-工程資訊sheet *@ @* 板卡-工程資訊sheet *@
<div class="layui-tab-item"> <div class="layui-tab-item">
<div class="layui-form-item"> <div class="layui-inline">
<div class="layui-inline"> <label class="layui-form-label" asp-for="wipBoard.Engineer"></label>
<label class="layui-form-label">工程負責人員</label> <div class="layui-input-inline">
<div class="layui-input-inline"> <input class="layui-input" asp-for="wipBoard.Engineer" readonly="readonly" />
<input class="layui-input" autocomplete="off" /> </div>
<span style="color: #dc3545 !important;"></span>
</div>
<label class="layui-form-label">姓名</label> <label class="layui-form-label">姓名</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" autocomplete="off" /> <input class="layui-input" asp-for="wipBoard.GetUserInfo.UserName" readonly="readonly" />
<span style="color: #dc3545 !important;"></span>
</div>
</div> </div>
</div> </div>
@ -552,16 +548,14 @@
<div class="layui-tab-item"> <div class="layui-tab-item">
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">工程負責人員</label> <label class="layui-form-label" asp-for="wipSystem.Engineer"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" autocomplete="off" /> <input class="layui-input" asp-for="wipSystem.Engineer" />
<span style="color: #dc3545 !important;"></span>
</div> </div>
<label class="layui-form-label">姓名</label> <label class="layui-form-label">姓名</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" autocomplete="off" /> <input class="layui-input" asp-for="wipSystem.GetUserInfo.UserName" readonly="readonly" />
<span style="color: #dc3545 !important;"></span>
</div> </div>
</div> </div>
</div> </div>
@ -913,6 +907,11 @@
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function () { $(document).ready(function () {
var error = '@Html.ValidationMessage("error")';
if ($(error).text() != '') {
parent.hg.msg(error);
}
if ($("#unitNo").val() == "B" || $("#unitNo").val() == "P" || $("#unitNo").val() == "T") { if ($("#unitNo").val() == "B" || $("#unitNo").val() == "P" || $("#unitNo").val() == "T") {
$("#system").show(); $("#system").show();
$("#board").hide(); $("#board").hide();
@ -922,6 +921,10 @@
$("#board").show(); $("#board").show();
} }
if ($('#wipAtt_ItemNO').val() != "" && $('#wipInfo_PlanQTY').val() != "") {
$("#GetMAC").hide();
}
getFlowRuleList($("#unitNo").val()); getFlowRuleList($("#unitNo").val());
getLineInfoList($("#unitNo").val()); getLineInfoList($("#unitNo").val());
}); });
@ -1094,9 +1097,15 @@
Select += '<option value=' + item.value + '>' + item.text + '</option>'; Select += '<option value=' + item.value + '>' + item.text + '</option>';
}); });
Select += '</select>'; Select += '</select>';
var Items = getItemsList();
var SelectKPNo = "<select name=WipKps[" + No + "].KpNo>";
$.each(Items, function (index, item) {
SelectKPNo += '<option value=' + item.value + '>' + item.text + '</option>';
});
SelectKPNo += '</select>';
var contactdiv = '<tr>' + var contactdiv = '<tr>' +
'<td><input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" name="WipKps[' + No + '].KpName" /></td>' + '<td><input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" name="WipKps[' + No + '].KpName" /></td>' +
'<td><input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" name="WipKps[' + No + '].KpNo" /></td>' + '<td>'+SelectKPNo+'</td>' +
'<td><input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" name="WipKps[' + No + '].KpSeq" /></td>' + '<td><input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" name="WipKps[' + No + '].KpSeq" /></td>' +
'<td><input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" name="WipKps[' + No + '].Title" /></td>' + '<td><input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" name="WipKps[' + No + '].Title" /></td>' +
'<td><input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" name="WipKps[' + No + '].Length" /></td>' + '<td><input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" name="WipKps[' + No + '].Length" /></td>' +
@ -1190,6 +1199,28 @@
}); });
return a; return a;
}; };
//KP Items 選單
function getItemsList()
{
var b;
$.ajax(
{
url: "@Url.Action("getKpItemsJson", "PCS")",
dataType: 'json',
data: {},
async:false,
type: 'post',
success: function (result)
{
b = result.data;
},
error: function (result)
{
alert(result);
}
});
return b;
};
//SOPType //SOPType
function getSOPType() { function getSOPType() {
var a; var a;

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

@ -15,8 +15,6 @@
<div class="col-sm-12"> <div class="col-sm-12">
<form enctype="multipart/form-data" method="post" asp-action="PCS030" class="layui-form"> <form enctype="multipart/form-data" method="post" asp-action="PCS030" 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="MaterialSopID" />
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label asp-for="ItemNo" class="layui-form-label"></label> <label asp-for="ItemNo" class="layui-form-label"></label>

2
AMESCoreStudio.WebApi/Controllers/AMES/ItemsController.cs

@ -35,7 +35,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
/// <returns></returns> /// <returns></returns>
// GET: api/Items // GET: api/Items
[HttpGet] [HttpGet]
public async Task<ActionResult<IEnumerable<Items>>> GetItems(int page=1,int limit=10) public async Task<ActionResult<IEnumerable<Items>>> GetItems(int page=0,int limit=10)
{ {
IQueryable<Items> q = _context.Items; IQueryable<Items> q = _context.Items;
if (page > 0) if (page > 0)

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

@ -33,6 +33,15 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Display(Name = "料號")] [Display(Name = "料號")]
public string ItemNo { get; set; } public string ItemNo { get; set; }
/// <summary>
/// 工程負責人員
/// </summary>
[DataMember]
[Column("ENGINEER")]
[Display(Name = "工程負責人員")]
[StringLength(20)]
public string Engineer { get; set; }
/// <summary> /// <summary>
/// SMD點膠 /// SMD點膠
/// </summary> /// </summary>
@ -210,5 +219,13 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[DataMember] [DataMember]
public DateTime UpdateDate { get; set; } = System.DateTime.Now; public DateTime UpdateDate { get; set; } = System.DateTime.Now;
/// <summary>
/// PE工程師姓名 Engineer
/// </summary>
[NotMapped]
[DataMember]
[ForeignKey("Engineer")]
public SYS.UserInfo GetUserInfo { get; set; }
} }
} }

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

@ -34,6 +34,15 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Display(Name = "料號")] [Display(Name = "料號")]
public string ItemNo { get; set; } public string ItemNo { get; set; }
/// <summary>
/// 工程負責人員
/// </summary>
[DataMember]
[Column("ENGINEER")]
[Display(Name = "工程負責人員")]
[StringLength(20)]
public string Engineer { get; set; }
/// <summary> /// <summary>
/// POWER_MODE_TYPE /// POWER_MODE_TYPE
/// </summary> /// </summary>
@ -126,7 +135,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary> /// <summary>
/// CPU頻率 /// CPU頻率
/// </summary> /// </summary>
[Required(ErrorMessage = "{0},不能空白")]
[Column("CPU")] [Column("CPU")]
[StringLength(20)] [StringLength(20)]
[DataMember] [DataMember]
@ -136,7 +144,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary> /// <summary>
/// RAM /// RAM
/// </summary> /// </summary>
[Required(ErrorMessage = "{0},不能空白")]
[Column("RAM")] [Column("RAM")]
[StringLength(20)] [StringLength(20)]
[DataMember] [DataMember]
@ -336,5 +343,13 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[NotMapped] [NotMapped]
[DataMember] [DataMember]
public string OsVer_Desc { get; set; } public string OsVer_Desc { get; set; }
/// <summary>
/// PE工程師姓名 Engineer
/// </summary>
[NotMapped]
[DataMember]
[ForeignKey("Engineer")]
public SYS.UserInfo GetUserInfo { get; }
} }
} }

Loading…
Cancel
Save