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
{
public class PCSController : Controller
{
private readonly ILogger<PCSController> _logger;
@ -28,11 +30,12 @@ namespace AMESCoreStudio.Web.Controllers
public readonly IBAS _basApi;
public readonly IPPS _ppsApi;
public readonly IFQC _fqcApi;
public readonly IKCS _kcsApi;
public readonly IFileServerProvider _fileServerProvider;
private readonly IWebHostEnvironment _env;
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;
_sysApi = sysApi;
@ -40,6 +43,7 @@ namespace AMESCoreStudio.Web.Controllers
_basApi = basApi;
_ppsApi = ppsApi;
_fqcApi = fqcApi;
_kcsApi = kcsApi;
_fileServerProvider = fileServerProvider;
_env = env;
}
@ -119,19 +123,7 @@ namespace AMESCoreStudio.Web.Controllers
!string.IsNullOrWhiteSpace(model.BiTime) ||
!string.IsNullOrWhiteSpace(model.BiMemo) ||
!string.IsNullOrWhiteSpace(model.Checksum) ||
!string.IsNullOrWhiteSpace(model.Cpu) ||
!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))
!string.IsNullOrWhiteSpace(model.Bios))
{
if (string.IsNullOrWhiteSpace(model.BiTemperature))
Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.BiTemperature)).Name + ",";
@ -139,15 +131,12 @@ namespace AMESCoreStudio.Web.Controllers
if (string.IsNullOrWhiteSpace(model.BiTime))
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))
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))
Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.Bios)).Name + ",";
@ -860,6 +849,29 @@ namespace AMESCoreStudio.Web.Controllers
//TempData["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
#region CheckboxList
@ -954,7 +966,7 @@ namespace AMESCoreStudio.Web.Controllers
#region resut Ajax JSON
/// <summary>
/// 生產單位
/// 生產單位 Json
/// </summary>
/// <returns></returns>
[HttpPost]
@ -978,6 +990,18 @@ namespace AMESCoreStudio.Web.Controllers
FactoryUnit = FactoryUnit.Where(w => w.Text.ToUpper().Contains(search.ToUpper())
|| 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化并传到前台视图
return Json(new { data = FactoryUnit });
@ -1046,6 +1070,30 @@ namespace AMESCoreStudio.Web.Controllers
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)
{
@ -1496,6 +1544,7 @@ namespace AMESCoreStudio.Web.Controllers
model.WipSops = await _pcsApi.GetWipSopByWipNo(model.wipInfo.WipNO);
}
await GetItemsList();
await GetProductType();
await GetFactoryInfo();
await GetFactoryUnit();
@ -1563,6 +1612,7 @@ namespace AMESCoreStudio.Web.Controllers
model.WipSops = await _pcsApi.GetWipSopByWipNo(model.wipInfo.WipNO);
}
await GetItemsList();
await GetProductType();
await GetFactoryInfo();
await GetFactoryUnit();
@ -1593,7 +1643,9 @@ namespace AMESCoreStudio.Web.Controllers
[HttpPost]
public async Task<IActionResult> PCS003Async(WipDataViewModel model, string action)
{
#region 選單
await GetItemsList();
await GetProductType();
await GetFactoryInfo();
await GetFactoryUnit();
@ -1618,6 +1670,7 @@ namespace AMESCoreStudio.Web.Controllers
GetCheckboxCompanyLogo();
GetCheckboxPrintMode();
GetCheckboxWipAttr();
GetWipSystemPMTypeSelect();
#endregion
model.ruleStations = await _pcsApi.GetRuleStationByWipNo(model.wipInfo.WipNO);
@ -1662,6 +1715,14 @@ namespace AMESCoreStudio.Web.Controllers
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));
if (result.Success)
{
@ -1814,6 +1875,7 @@ namespace AMESCoreStudio.Web.Controllers
}
}
WipCheck wipCheck = new WipCheck
{
WipNo = model.wipInfo.WipNO
@ -3757,7 +3819,7 @@ namespace AMESCoreStudio.Web.Controllers
}
return View("PCS030U", model);
}
[HttpGet]

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

@ -373,8 +373,7 @@
@index.KpName
</td>
<td>
@index.KpNo
<select asp-for="@index.KpNo" name="WipKps[@i].KpNo" asp-items="@ViewBag.ItemsList" class="" disabled></select>
</td>
<td>
@ -438,484 +437,297 @@
</div>
@* 板卡-工程資訊sheet *@
<div class="layui-tab-item">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">工程負責人員</label>
<div class="layui-input-inline">
<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 class="layui-tab-item">
<div class="layui-inline">
<label class="layui-form-label" asp-for="wipBoard.Engineer"></label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipBoard.Engineer" readonly="readonly" />
</div>
@*<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">Power Mode</label>
<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>
<label class="layui-form-label">姓名</label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipBoard.GetUserInfo.UserName" readonly="readonly" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">DIP</label>
<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.DipCarrier == "Y" ? "checked" : "") } />
<input type="checkbox" title="貼付膠帶" @if (Model.wipBoard != null) { @(Model.wipBoard.DipTape == "Y" ? "checked" : "") } />
<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 class="layui-form-item">
<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" : "") } />
</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 class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">DIP</label>
<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.DipCarrier == "Y" ? "checked" : "") } />
<input type="checkbox" title="貼付膠帶" @if (Model.wipBoard != null) { @(Model.wipBoard.DipTape == "Y" ? "checked" : "") } />
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">零件烘烤溫度</label>
<div class="layui-input-inline">
<select disabled asp-items="@ViewBag.GetPartsBakeTypeList" asp-for="wipBoard.PartsBake" class=""></select>
</div>
<div class="layui-form-item">
<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" : "") } />
</div>
<div class="layui-inline">
<label class="layui-form-label">零件烘烤時間</label>
<div class="layui-input-inline">
<label asp-for="wipBoard.BurnLocation" class="layui-form-label"></label>
<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 class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">PCB烘烤</label>
<div class="layui-input-inline">
<select disabled asp-items="@ViewBag.GetPCBBakeTypeList" asp-for="wipBoard.PcbBake" class=""></select>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">零件烘烤溫度</label>
<div class="layui-input-inline">
<select disabled asp-items="@ViewBag.GetPartsBakeTypeList" asp-for="wipBoard.PartsBake" class=""></select>
</div>
<div class="layui-inline">
<label class="layui-form-label" asp-for="wipBoard.SolderPaste"></label>
<div class="layui-input-block">
<select disabled asp-items="@ViewBag.GetSolderPasteList" asp-for="wipBoard.SolderPaste"></select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">零件烘烤時間</label>
<div class="layui-input-block">
<input asp-for="wipBoard.PartsBakeTime" class="layui-input" />
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">PCB加工</label>
<div class="layui-input-inline">
<select disabled asp-items="@ViewBag.GetPCBWorkingTypeList" asp-for="wipBoard.PcbProcessing" class=""></select>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">PCB烘烤</label>
<div class="layui-input-inline">
<select disabled asp-items="@ViewBag.GetPCBBakeTypeList" asp-for="wipBoard.PcbBake" class=""></select>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<div class="layui-input-inline">
<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 class="layui-inline">
<label class="layui-form-label" asp-for="wipBoard.SolderPaste"></label>
<div class="layui-input-block">
<select disabled asp-items="@ViewBag.GetSolderPasteList" asp-for="wipBoard.SolderPaste"></select>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label asp-for="wipBoard.BiosVer" class="layui-form-label"></label>
<div class="layui-input-inline">
<input asp-for="wipBoard.BiosVer" class="layui-input" />
<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 class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">PCB加工</label>
<div class="layui-input-inline">
<select disabled asp-items="@ViewBag.GetPCBWorkingTypeList" asp-for="wipBoard.PcbProcessing" class=""></select>
</div>
</div>
</div>
@*<div class="layui-form-item">
<div class="layui-inline">
<label asp-for="wipAtt.ItemNO" class="layui-form-label">OS</label>
<div class="layui-input-inline">
<input asp-for="wipAtt.ItemNO" class="layui-input" placeholder="請輸入OS" />
<span asp-validation-for="wipAtt.ItemNO" class="text-danger"></span>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<div class="layui-input-inline">
<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-form-item">
<div class="layui-inline">
<label asp-for="wipAtt.ItemNO" class="layui-form-label">CPU</label>
<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 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-form-item">
<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-inline">
<label asp-for="wipBoard.BiTime" class="layui-form-label"></label>
<div class="layui-input-block">
<input class="layui-input" placeholder="請輸入備註" />
<input asp-for="wipBoard.BiTime" class="layui-input" />
</div>
</div>*@
</div>
</div>
</div>
@* 系統-工程資訊sheet *@
<div class="layui-tab-item">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">工程負責人員</label>
<div class="layui-input-inline">
<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 class="layui-form-item">
<div class="layui-inline">
<label asp-for="wipBoard.BiosVer" class="layui-form-label"></label>
<div class="layui-input-inline">
<input asp-for="wipBoard.BiosVer" class="layui-input" />
<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 class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">Power Mode</label>
<div class="layui-input-inline">
<input class="layui-input" autocomplete="off" />
<span style="color: #dc3545 !important;"></span>
</div>
@* 系統-工程資訊sheet *@
<div class="layui-tab-item">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label" asp-for="wipSystem.Engineer"></label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Engineer" readonly="readonly" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">PLM參考</label>
<div class="layui-input-block">
<input class="layui-input" />
<label class="layui-form-label">姓名</label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.GetUserInfo.UserName" readonly="readonly" />
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<div class="layui-input-inline">
<label asp-for="wipSystem.BiRatio" class="layui-form-label"></label>
<div class="layui-input-block">
<input asp-for="wipSystem.BiRatio" class="layui-input" />
</div>
</div>
<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 class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">Power Mode</label>
<div class="layui-input-inline">
<select asp-for="wipSystem.PowerModeType" asp-items="@ViewBag.GetWipSystemPMTypeSelect" class=""></select>
</div>
<div class="layui-input-inline">
<input class="layui-input" style="text-transform:uppercase;" asp-for="wipSystem.PowerMode" autocomplete="off" />
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label asp-for="wipSystem.BiosVer" class="layui-form-label"></label>
<div class="layui-input-inline">
<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 class="layui-form-item">
<label class="layui-form-label">PLM參考</label>
<div class="layui-input-block">
<input class="layui-input" asp-for="wipSystem.PowerMode_Desc" readonly="readonly" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label" asp-for="wipSystem.Cpu"></label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Cpu" autocomplete="off" />
</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 class="layui-form-item">
<div class="layui-inline">
<div class="layui-input-inline">
<label asp-for="wipSystem.BiRatio" class="layui-form-label"></label>
<div class="layui-input-block">
<input asp-for="wipSystem.BiRatio" class="layui-input" />
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">EC</label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Ec" 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>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">FW</label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Fw" autocomplete="off" />
<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 class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">FW1</label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Fw1" autocomplete="off" />
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label asp-for="wipSystem.BiosVer" class="layui-form-label"></label>
<div class="layui-input-inline">
<input asp-for="wipSystem.BiosVer" class="layui-input" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">FW2</label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Fw2" autocomplete="off" />
</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 class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">FINE_PACKAGE</label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.FinePackage" autocomplete="off" />
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label" asp-for="wipSystem.Cpu"></label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Cpu" autocomplete="off" />
</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 class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label" asp-for="wipSystem.DmiBi"></label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.DmiBi" autocomplete="off" />
</div>
<div class="layui-form-item">
<div class="layui-inline">
<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 class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label" asp-for="wipSystem.Jumper"></label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Jumper" autocomplete="off" />
</div>
<div class="layui-form-item">
<div class="layui-inline">
<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 class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">FW</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="請輸入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 class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">FW1</label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Fw1" autocomplete="off" />
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">FW1</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="請輸入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 class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">FW2</label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Fw2" autocomplete="off" />
</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-inline">
<label class="layui-form-label">OS</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="請輸入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 class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">FINE_PACKAGE</label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.FinePackage" autocomplete="off" />
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">RAM</label>
<div class="layui-input-inline">
<input class="layui-input" autocomplete="off" placeholder="RAM" />
<span style="color: #dc3545 !important;"></span>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label" asp-for="wipSystem.DmiBi"></label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.DmiBi" autocomplete="off" />
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">B/I</label>
<div class="layui-input-inline">
<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 class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label" asp-for="wipSystem.Jumper"></label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Jumper" autocomplete="off" />
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">DMI燒入</label>
<div class="layui-input-inline">
<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 class="layui-form-item">
<label class="layui-form-label">備註</label>
<div class="layui-input-block">
<input class="layui-input" />
</div>
</div>
</div>
@* 標籤選項sheet *@
<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" />
</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>
<input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" asp-for="@index.KpSeq" name="WipKps[@k].KpSeq" />
@ -417,19 +417,15 @@
@* 板卡-工程資訊sheet *@
<div class="layui-tab-item">
<div class="layui-form-item">
<div class="layui-inline">
<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 class="layui-inline">
<label class="layui-form-label" asp-for="wipBoard.Engineer"></label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipBoard.Engineer" readonly="readonly" />
</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>
<label class="layui-form-label">姓名</label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipBoard.GetUserInfo.UserName" readonly="readonly" />
</div>
</div>
@ -552,16 +548,14 @@
<div class="layui-tab-item">
<div class="layui-form-item">
<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">
<input class="layui-input" autocomplete="off" />
<span style="color: #dc3545 !important;"></span>
<input class="layui-input" asp-for="wipSystem.Engineer" />
</div>
<label class="layui-form-label">姓名</label>
<div class="layui-input-inline">
<input class="layui-input" autocomplete="off" />
<span style="color: #dc3545 !important;"></span>
<input class="layui-input" asp-for="wipSystem.GetUserInfo.UserName" readonly="readonly" />
</div>
</div>
</div>
@ -913,6 +907,11 @@
<script type="text/javascript">
$(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") {
$("#system").show();
$("#board").hide();
@ -922,6 +921,10 @@
$("#board").show();
}
if ($('#wipAtt_ItemNO').val() != "" && $('#wipInfo_PlanQTY').val() != "") {
$("#GetMAC").hide();
}
getFlowRuleList($("#unitNo").val());
getLineInfoList($("#unitNo").val());
});
@ -1094,9 +1097,15 @@
Select += '<option value=' + item.value + '>' + item.text + '</option>';
});
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>' +
'<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 + '].Title" /></td>' +
'<td><input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" name="WipKps[' + No + '].Length" /></td>' +
@ -1190,6 +1199,28 @@
});
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
function getSOPType() {
var a;

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

@ -15,8 +15,6 @@
<div class="col-sm-12">
<form enctype="multipart/form-data" method="post" asp-action="PCS030" class="layui-form">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input type="hidden" asp-for="MaterialSopID" />
<div class="layui-form-item">
<div class="layui-inline">
<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>
// GET: api/Items
[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;
if (page > 0)

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

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

Loading…
Cancel
Save