diff --git a/AMESCoreStudio.Web/Controllers/BASController.cs b/AMESCoreStudio.Web/Controllers/BASController.cs index 1fe99313..63d9ad44 100644 --- a/AMESCoreStudio.Web/Controllers/BASController.cs +++ b/AMESCoreStudio.Web/Controllers/BASController.cs @@ -183,7 +183,7 @@ namespace AMESCoreStudio.Web.Controllers var result = await _basApi.GetFlowRulesByUnit(unit_no); var item = new List<SelectListItem>(); - item.Add(new SelectListItem("全部", "0")); + //item.Add(new SelectListItem("全部", "0")); for (int i = 0; i < result.Count; i++) { item.Add(new SelectListItem(result[i].FlowRuleName, result[i].FlowRuleID.ToString())); diff --git a/AMESCoreStudio.Web/Controllers/PCSController.cs b/AMESCoreStudio.Web/Controllers/PCSController.cs index e3b2a2c5..26e5d2ee 100644 --- a/AMESCoreStudio.Web/Controllers/PCSController.cs +++ b/AMESCoreStudio.Web/Controllers/PCSController.cs @@ -298,28 +298,28 @@ namespace AMESCoreStudio.Web.Controllers var SMDType = new List<SelectListItem>(){ new SelectListItem() { Text = "A面全點", - Value = "A面全點", + Value = "0", }, new SelectListItem { Text = "B面全點單", - Value = "B面全點", + Value = "1", }, new SelectListItem { Text = "A面部分點膠", - Value = "A面部分點膠", + Value = "2", }, new SelectListItem { Text = "B面部分點膠", - Value = "B面部分點膠", + Value = "3", } , new SelectListItem { Text = "不需點膠", - Value = "不需點膠", + Value = "4", } }; @@ -333,23 +333,13 @@ namespace AMESCoreStudio.Web.Controllers { var DIPType = new List<SelectListItem>(){ new SelectListItem() { - Text = "A面", - Value = "A面", - }, - new SelectListItem - { - Text = "B面", - Value = "B面", + Text = "正面", + Value = "正面", }, new SelectListItem { - Text = "Carrier", - Value = "Carrier", - }, - new SelectListItem - { - Text = "貼附膠帶", - Value = "貼附膠帶", + Text = "背面", + Value = "背面", } }; @@ -384,27 +374,27 @@ namespace AMESCoreStudio.Web.Controllers var PartsBakeType = new List<SelectListItem>(){ new SelectListItem() { Text = "125℃", - Value = "125℃", + Value = "123", }, new SelectListItem { Text = "120℃", - Value = "120℃", + Value = "120", }, new SelectListItem { Text = "80℃", - Value = "80℃", + Value = "80", }, new SelectListItem { Text = "60℃", - Value = "60℃", + Value = "60", }, new SelectListItem { Text = "45℃", - Value = "45℃", + Value = "45", } }; @@ -419,22 +409,22 @@ namespace AMESCoreStudio.Web.Controllers var PCBBakeType = new List<SelectListItem>(){ new SelectListItem() { Text = "依廠內規範", - Value = "依廠內規範", + Value = "0", }, new SelectListItem { Text = "125℃/2H", - Value = "125℃/2H", + Value = "1", }, new SelectListItem { Text = "120℃/1H(FPC)", - Value = "120℃/1H(FPC)", + Value = "2", }, new SelectListItem { Text = "其他", - Value = "其他", + Value = "3", } }; @@ -474,17 +464,17 @@ namespace AMESCoreStudio.Web.Controllers var SolderPaste = new List<SelectListItem>(){ new SelectListItem() { Text = "KOKI無鉛錫膏(S3X58-M406-3)", - Value = "KOKI無鉛錫膏(S3X58-M406-3)", + Value = "0", }, new SelectListItem { Text = "千住無鉛錫膏(M705-221BM5-32-11.5Ka3)", - Value = "千住無鉛錫膏(M705-221BM5-32-11.5Ka3)", + Value = "1", }, new SelectListItem { Text = "其他", - Value = "其他", + Value = "2", } }; @@ -658,6 +648,7 @@ namespace AMESCoreStudio.Web.Controllers model.wipInfo.InputFlag = model.wipInfo.InputFlag == "true" ? "Y" : "N"; model.wipInfo.Priority = model.wipInfo.Priority == "true" ? "Y" : "N"; + if (model.wipInfo.WipID == 0) { result = await _pcsApi.PostWipInfo(JsonConvert.SerializeObject(model.wipInfo)); @@ -668,6 +659,26 @@ namespace AMESCoreStudio.Web.Controllers wiplog.StatusNO = "N"; wiplog.WipDesc = "."; await _pcsApi.PostWipLog(JsonConvert.SerializeObject(wiplog)); + + // 系統 + if (model.wipInfo.UnitNO == "B" || model.wipInfo.UnitNO == "P" || model.wipInfo.UnitNO == "T") + { + model.wipSystem.ItemNo = model.wipAtt.ItemNO; + model.wipSystem.WipNo = model.wipInfo.WipNO; + await _pcsApi.PostWipSystem(JsonConvert.SerializeObject(model.wipSystem)); + } + else + // 板卡 + { + 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.ItemNo = model.wipAtt.ItemNO; + model.wipBoard.WipNo = model.wipInfo.WipNO; + await _pcsApi.PostWipBoard(JsonConvert.SerializeObject(model.wipBoard)); + } + + if (!string.IsNullOrWhiteSpace(model.wipBarcode.StartNO)) { model.wipBarcode.WipID = model.wipInfo.WipID; @@ -681,14 +692,14 @@ namespace AMESCoreStudio.Web.Controllers result = await _pcsApi.PostWipInfo(JsonConvert.SerializeObject(model.wipInfo)); } - if (!result.Success) + if (result.Success) { var _msg = model.wipInfo.WipID == 0 ? "添加成功!" : "修改成功!"; return RedirectToAction("Refresh", "Home", new { msg = _msg }); } else { - if (result.Errors.Count > 0) + if (result.Errors != null) { ModelState.AddModelError(result.Errors[0].Id, result.Errors[0].Msg); } @@ -730,6 +741,16 @@ namespace AMESCoreStudio.Web.Controllers model.wipBarcode = await _pcsApi.GetWipBarcode(model.wipInfo.WipNO); model.ruleStation = await _basApi.GetRuleStationsByFlow(model.wipInfo.FlowRuleID); model.ruleStation = model.ruleStation.OrderBy(o => o.Sequence); + + var q1 = await _pcsApi.GetWipSopQuery(itemNo: model.wipAtt.ItemNO); + model.wipSop = q1.Data; + var q2 = await _pcsApi.GetMaterialKpQuery(itemno: model.wipAtt.ItemNO); + model.materialKp = q2.Data; + + var q3 = await _pcsApi.GetWipBoard(model.wipInfo.WipNO); + model.wipBoard = q3.Data.FirstOrDefault(); + var q4 = await _pcsApi.GetWipSystem(model.wipInfo.WipNO); + model.wipSystem = q4.Data.FirstOrDefault(); } if (model.wipInfo != null) { @@ -1124,21 +1145,53 @@ namespace AMESCoreStudio.Web.Controllers [HttpGet] public async Task<IActionResult> PCS030() { - await GetStations(); - GetLockReasonType(); - GetLockType(); + await GetFactoryUnit(); return View(); } + /// <summary> + /// PCS012 Query + /// </summary> + /// <param name="lockStatus">工單狀態:鎖定|解鎖</param> + /// <param name="lockType">鎖定類型</param> + /// <param name="lockReasonType">鎖定原因類別</param> + /// <param name="stations">站別</param> + /// <param name="wipNO">工單</param> + /// <param name="itemNO">料號</param> + /// <param name="dateStr">鎖定日期起</param> + /// <param name="dateEnd">鎖定日期迄</param> + /// <returns></returns> + public async Task<IActionResult> PCS030QueryAsync(string itemNo, string unitNo + , string fileName, string state, string date_str, string date_end) + { + IResultModel<WipSopDto> result = await _pcsApi.GetWipSopQuery(itemNo: itemNo, unitNo: unitNo + , fileName: fileName, state: state, date_str: date_str, date_end: date_end); + + if (result.Data.Count() != 0) + { + return Json(new Table() { code = 0, msg = "", data = result.Data, count = 0 }); + } + return Json(new Table() { count = 0, data = null }); + } + + [HttpPost] + public async Task<JsonResult> PCS030StateAsync(int wipSopID, bool state) + { + + IResultModel result; + if (!state) + await _pcsApi.PutWipSop(wipSopID, "N"); + else + await _pcsApi.PutWipSop(wipSopID, "Y"); + + var _msg = "修改成功!"; + return Json(_msg); + } + [HttpGet] public async Task<IActionResult> PCS030C() { await GetFactoryUnit(); - await GetStations(); - GetLockReasonType(); - GetLockType(); - //var result = new WipAllViewModel(); - //return View(result); return View(); } @@ -1146,54 +1199,60 @@ namespace AMESCoreStudio.Web.Controllers public async Task<IActionResult> PCS030CAsync(WipSop model, IFormFile formFile) { string FileName = string.Empty; + string NewName = string.Empty; + string FilePath = string.Empty; - var fileProvider = _fileServerProvider.GetProvider("/aa"); - var fileInfo = fileProvider.GetFileInfo("/"); - if (formFile.Length > 0) + //var fileProvider = _fileServerProvider.GetProvider("/aa"); + //var fileInfo = fileProvider.GetFileInfo("/"); + if (formFile != null) { - FileName = formFile.FileName; - var filePath = $"{_env.WebRootPath}\\PDF\\{formFile.FileName}";//本機目錄 - using (var stream = new FileStream(filePath, FileMode.Create)) + if (formFile.Length > 0) { - await formFile.CopyToAsync(stream); - } - - //var fileProvider = _fileServerProvider.GetProvider("/aa"); - //var fileInfo = fileProvider.GetFileInfo(formFile.FileName); - fileInfo = fileProvider.GetFileInfo(formFile.FileName); - //遠端目錄 - using (var stream = new FileStream(fileInfo.PhysicalPath, FileMode.Create)) - { - await formFile.CopyToAsync(stream); + //取得使用者上傳檔案的原始檔名 + FileName = Path.GetFileName(formFile.FileName); + //取原始檔名中的副檔名 + var fileExt = Path.GetExtension(FileName); + //為避免使用者上傳的檔案名稱發生重複,重新給一個亂數名稱 + NewName = Path.GetRandomFileName() + fileExt; + //指定要寫入的路徑、檔名和副檔名 + FilePath = $"\\PDF\\";//本機目錄 + using (var stream = new FileStream(_env.WebRootPath + FilePath + NewName, FileMode.Create)) + { + await formFile.CopyToAsync(stream); + } + + //var fileProvider = _fileServerProvider.GetProvider("/aa"); + //var fileInfo = fileProvider.GetFileInfo(formFile.FileName); + //fileInfo = fileProvider.GetFileInfo(formFile.FileName); + ////遠端目錄 + //using (var stream = new FileStream(fileInfo.PhysicalPath, FileMode.Create)) + //{ + // await formFile.CopyToAsync(stream); + //} + + + + IResultModel result; + model.FileName = FileName; + model.NewName = NewName; + model.FilePath = FilePath;// fileInfo.PhysicalPath; + + result = await _pcsApi.PostWipSop(JsonConvert.SerializeObject(model)); + if (result.Success) + { + var _msg = model.WipSopID == 0 ? "新增成功!" : "修改成功!"; + return RedirectToAction("Refresh", "Home", new { msg = _msg }); + } + else + { + ModelState.AddModelError("error", result.Msg); + } } } - - - IResultModel result; - //var q = await _pcsApi.GetWipInfoByWipNO(model.WipNO); - //if (q.Count() == 0) - // ModelState.AddModelError("error", "找不到工單號碼"); - - //var q1 = await _pcsApi.GetWipLockByWipNO(model.WipNO); - - //if (q1.Data.Where(w => w.LockStatus == "0").Count() != 0) - //{ - // ModelState.AddModelError("error", "目前此工單號碼尚未解鎖定"); - //} - model.FileName = FileName; - model.FilePath = fileInfo.PhysicalPath; - - result = await _pcsApi.PostWipSop(JsonConvert.SerializeObject(model)); - if (result.Success) - { - var _msg = model.WipSopID == 0 ? "新增成功!" : "修改成功!"; - return RedirectToAction("Refresh", "Home", new { msg = _msg }); - } else { - ModelState.AddModelError("error", result.Msg); + ModelState.AddModelError("error", "請選擇要上傳檔案"); } - await GetFactoryUnit(); return View(model); } @@ -1224,7 +1283,7 @@ namespace AMESCoreStudio.Web.Controllers //return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); } - // return Json(new Table() { count = 0, data = null }); + // return Json(new Table() { count = 0, data = null }); //if (result.Count == 0) //{ // return View(); diff --git a/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs b/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs index 8e0abf46..382cc16e 100644 --- a/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs +++ b/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs @@ -115,6 +115,22 @@ namespace AMESCoreStudio.Web ITask<WipAtt> GetWipAtt(string id); #endregion + #region WipBoard 工單基本資料-板卡資訊 PCS001 + [WebApiClient.Attributes.HttpGet("api/WipBoard/{id}")] + ITask<ResultModel<WipBoard>> GetWipBoard(string id); + + [WebApiClient.Attributes.HttpPost("api/WipBoard")] + ITask<ResultModel<WipBoard>> PostWipBoard([FromBody, RawJsonContent] string model); + #endregion + + #region WipSystem 工單基本資料-系統組裝資訊 PCS001 + [WebApiClient.Attributes.HttpGet("api/WipSystem/{id}")] + ITask<ResultModel<WipSystem>> GetWipSystem(string id); + + [WebApiClient.Attributes.HttpPost("api/WipSystem")] + ITask<ResultModel<WipSystem>> PostWipSystem([FromBody, RawJsonContent] string model); + #endregion + #region WipBarcode 工單基本資料-條碼 PCS001 PCS004 /// <summary> /// 新增工單條碼起迄資料檔 @@ -226,6 +242,16 @@ namespace AMESCoreStudio.Web #endregion + #region MaterialKp Keypart + /// <summary> + /// Keypart查詢 + /// </summary> + /// <param name="itemno">料號</param> + /// <param name="station">站別</param> + [WebApiClient.Attributes.HttpGet("api/MaterialKp/GetMaterialKpQuery")] + ITask<ResultModel<MaterialKpDto>> GetMaterialKpQuery(string itemno = null, string station = null); + #endregion + #region SOP文件維護 /// <summary> /// SOP文件查詢 @@ -234,12 +260,36 @@ namespace AMESCoreStudio.Web [WebApiClient.Attributes.HttpGet("api/WipSop")] ITask<List<WipSop>> GetWipSop(); + /// <summary> + /// 製程工單鎖定查詢 Query + /// </summary> + /// <param name="lockStatus">工單狀態:鎖定|解鎖</param> + /// <param name="lockType">鎖定類型</param> + /// <param name="lockReasonType">鎖定原因類別</param> + /// <param name="stations">站別</param> + /// <param name="wipNO">工單</param> + /// <param name="itemNO">料號</param> + /// <param name="date_str">鎖定日期起</param> + /// <param name="date_end">鎖定日期迄</param> + /// <returns></returns> + /// <returns></returns> + [WebApiClient.Attributes.HttpGet("api/WipSop/GetWipSopQuery")] + ITask<ResultModel<WipSopDto>> GetWipSopQuery(string itemNo = null, string unitNo = null + , string fileName = null, string state = null, string date_str = null, string date_end = null); + /// <summary> /// 新增SOP文件 /// </summary> /// <returns></returns> [WebApiClient.Attributes.HttpPost("api/WipSop")] ITask<ResultModel<WipSop>> PostWipSop([FromBody, RawJsonContent] string model); + + /// <summary> + /// SOP文件變更狀態 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpPut("api/WipSop/{id}/{state}")] + ITask<ResultModel<WipSop>> PutWipSop(int id , string state); #endregion } } diff --git a/AMESCoreStudio.Web/ViewModels/PCS/PCS001RViewModel.cs b/AMESCoreStudio.Web/ViewModels/PCS/PCS001RViewModel.cs index 63fe3476..231e3db9 100644 --- a/AMESCoreStudio.Web/ViewModels/PCS/PCS001RViewModel.cs +++ b/AMESCoreStudio.Web/ViewModels/PCS/PCS001RViewModel.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Threading.Tasks; using AMESCoreStudio.WebApi.Models.AMES; using AMESCoreStudio.WebApi.Models.BAS; +using AMESCoreStudio.WebApi.DTO.AMES; namespace AMESCoreStudio.Web.ViewModels.PCS { @@ -21,5 +22,11 @@ namespace AMESCoreStudio.Web.ViewModels.PCS public IEnumerable<RuleStation> ruleStation { get; set; } + public IEnumerable<WipSopDto> wipSop { get; set; } + + public IEnumerable<MaterialKpDto> materialKp { get; set; } + + + } } diff --git a/AMESCoreStudio.Web/Views/PCS/PCS001.cshtml b/AMESCoreStudio.Web/Views/PCS/PCS001.cshtml index 4f682942..4a4c1603 100644 --- a/AMESCoreStudio.Web/Views/PCS/PCS001.cshtml +++ b/AMESCoreStudio.Web/Views/PCS/PCS001.cshtml @@ -95,7 +95,7 @@ <div class="layui-inline"> <label asp-for="wipInfo.UnitNO" class="layui-form-label"></label> <div class="layui-input-inline"> - <select lay-filter="unit" asp-for="wipInfo.UnitNO" asp-items="@ViewBag.FactoryUnitList" class=""></select> + <select id="unit" lay-filter="unit" asp-for="wipInfo.UnitNO" asp-items="@ViewBag.FactoryUnitList" class=""></select> </div> <input id="unitNo" type="hidden" name="unitNo" value="0" /> <label asp-for="wipInfo.LineID" class="layui-form-label"></label> @@ -146,8 +146,8 @@ <li>生產流程</li> <li>序號編碼</li> <li>Keypart組合</li> - <li>板卡-工程資訊</li> - <li>系統-工程資訊</li> + <li id="board">板卡-工程資訊</li> + <li id="system">系統-工程資訊</li> <li>標籤選項</li> <li>SOP文件</li> </ul> @@ -294,23 +294,23 @@ </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" placeholder="" /> - <span style="color: #dc3545 !important;"></span> + @*<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> + </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"> + <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"> @@ -325,8 +325,10 @@ <div class="layui-inline"> <label class="layui-form-label">DIP</label> <div class="layui-input-inline"> - <select asp-items="@ViewBag.GetDIPTypeList" class=""></select> + <select asp-items="@ViewBag.GetDIPTypeList" asp-for="wipBoard.DipSide" class=""></select> </div> + <input asp-for="wipBoard.DipCarrier" type="checkbox" title="CARRIER" /> + <input asp-for="wipBoard.DipTape" type="checkbox" title="貼付膠帶" /> </div> </div> @@ -334,16 +336,29 @@ <div class="layui-inline"> <label class="layui-form-label">燒錄</label> <div class="layui-input-inline"> - <select asp-items="@ViewBag.GetBurnTypeList" class=""></select> + <input asp-for="wipBoard.Burn" type="checkbox" title="是否燒入" /> + </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> <div class="layui-form-item"> <div class="layui-inline"> - <label class="layui-form-label">零件烘烤</label> + <label class="layui-form-label">零件烘烤溫度</label> <div class="layui-input-inline"> - <select asp-items="@ViewBag.GetPartsBakeTypeList" class=""></select> + <select asp-items="@ViewBag.GetPartsBakeTypeList" asp-for="wipBoard.PartsBake" class=""></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> @@ -352,59 +367,59 @@ <div class="layui-inline"> <label class="layui-form-label">PCB烘烤</label> <div class="layui-input-inline"> - <select asp-items="@ViewBag.GetPCBBakeTypeList" class=""></select> + <select asp-items="@ViewBag.GetPCBBakeTypeList" asp-for="wipBoard.PcbBake" class=""></select> </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 asp-items="@ViewBag.GetPCBWorkingTypeList" class=""></select> + <label class="layui-form-label" asp-for="wipBoard.SolderPaste"></label> + <div class="layui-input-block"> + <select asp-items="@ViewBag.GetSolderPasteList" asp-for="wipBoard.SolderPaste"></select> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> - <label class="layui-form-label">錫膏</label> + <label class="layui-form-label">PCB加工</label> <div class="layui-input-inline"> - <select asp-items="@ViewBag.GetSolderPasteList" class=""></select> + <select asp-items="@ViewBag.GetPCBWorkingTypeList" class=""></select> </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> + <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> - <label class="layui-form-label">溫度</label> <div class="layui-input-inline"> - <input class="layui-input" placeholder="%" /> - <span class="text-danger"></span> + <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> - <label class="layui-form-label">時間</label> <div class="layui-input-inline"> - <input class="layui-input" /> - <span class="text-danger"></span> + <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 class="layui-form-item"> <div class="layui-inline"> - <label class="layui-form-label">BIOS</label> + <label asp-for="wipBoard.BiosVer" class="layui-form-label"></label> <div class="layui-input-inline"> - <input class="layui-input" placeholder="請輸入BIOS" /> + <input asp-for="wipBoard.BiosVer" class="layui-input" placeholder="請輸入BIOS" /> <span class="text-danger"></span> </div> - <label class="layui-form-label">Checksum</label> + <label asp-for="wipBoard.Checksum" class="layui-form-label"></label> <div class="layui-input-inline"> - <input class="layui-input" placeholder="請輸入Checksum" /> + <input asp-for="wipBoard.Checksum" class="layui-input" placeholder="請輸入Checksum" /> <span class="text-danger"></span> </div> </div> @@ -440,23 +455,23 @@ </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 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> + </div>*@ - <div class="layui-form-item"> - <label class="layui-form-label">備註</label> - <div class="layui-input-block"> - <input class="layui-input" placeholder="請輸入備註" /> - </div> - </div> + @*<div class="layui-form-item"> + <label class="layui-form-label">備註</label> + <div class="layui-input-block"> + <input class="layui-input" placeholder="請輸入備註" /> + </div> + </div>*@ </div> @* 系統-工程資訊sheet *@ @@ -496,178 +511,242 @@ <div class="layui-form-item"> <div class="layui-inline"> - <label class="layui-form-label">BIOS</label> <div class="layui-input-inline"> - <select asp-items="@ViewBag.PCSList1" class=""></select> + <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"> - <input class="layui-input" autocomplete="off" placeholder="請輸入BIOS" /> - <span style="color: #dc3545 !important;"></span> + <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"> - <input class="layui-input" autocomplete="off" placeholder="請輸入BIOS" /> - <span style="color: #dc3545 !important;"></span> + <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> - </div> - </div> - - <div class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">Checksum</label> + <label asp-for="wipSystem.BiMemo" class="layui-form-label"></label> <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="Checksum" /> - <span style="color: #dc3545 !important;"></span> + <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">EC</label> - <div class="layui-input-inline"> - <select class=""></select> - </div> - + <label asp-for="wipSystem.BiosVer" class="layui-form-label"></label> <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="請輸入EC" /> - <span style="color: #dc3545 !important;"></span> + <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 class="layui-input" autocomplete="off" placeholder="請輸入EC" /> - <span style="color: #dc3545 !important;"></span> + <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">FW</label> + <label class="layui-form-label" asp-for="wipSystem.Cpu"></label> <div class="layui-input-inline"> - <select asp-items="@ViewBag.PCSList1" class=""></select> + <input class="layui-input" asp-for="wipSystem.Cpu" autocomplete="off" placeholder="CPU" /> </div> - + <label class="layui-form-label" asp-for="wipSystem.Ram"></label> <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="請輸入FW" /> - <span style="color: #dc3545 !important;"></span> + <input class="layui-input" asp-for="wipSystem.Ram" autocomplete="off" placeholder="RAM" /> </div> - + <label class="layui-form-label" asp-for="wipSystem.OsVer"></label> <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="請輸入FW" /> - <span style="color: #dc3545 !important;"></span> + <input class="layui-input" asp-for="wipSystem.OsVer" autocomplete="off" placeholder="OS版本" /> </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> - + <label class="layui-form-label">EC</label> <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="請輸入FW1" /> - <span style="color: #dc3545 !important;"></span> + <input class="layui-input" asp-for="wipSystem.Ec" autocomplete="off" placeholder="請輸入EC" /> </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> - + <label class="layui-form-label">FW</label> <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="請輸入FW2" /> - <span style="color: #dc3545 !important;"></span> + <input class="layui-input" asp-for="wipSystem.Fw" autocomplete="off" placeholder="請輸入FW" /> </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" autocomplete="off" placeholder="請輸入FW2" /> - <span style="color: #dc3545 !important;"></span> + <input class="layui-input" asp-for="wipSystem.Fw1" autocomplete="off" placeholder="請輸入FW1" /> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> - <label class="layui-form-label">OS</label> + <label class="layui-form-label">FW2</label> <div class="layui-input-inline"> - <select asp-items="@ViewBag.PCSList1" class=""></select> + <input class="layui-input" asp-for="wipSystem.Fw2" autocomplete="off" placeholder="請輸入FW2" /> </div> + </div> + </div> - <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="請輸入OS" /> - <span style="color: #dc3545 !important;"></span> - </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" autocomplete="off" placeholder="請輸入OS" /> - <span style="color: #dc3545 !important;"></span> + <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">CPU</label> + <label class="layui-form-label" asp-for="wipSystem.DmiBi"></label> <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="CPU" /> - <span style="color: #dc3545 !important;"></span> + <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">RAM</label> + <label class="layui-form-label" asp-for="wipSystem.Jumper"></label> <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="RAM" /> - <span style="color: #dc3545 !important;"></span> + <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">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-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 class="layui-input-inline"> + <input class="layui-input" autocomplete="off" placeholder="請輸入FW" /> + <span style="color: #dc3545 !important;"></span> + </div> </div> - <label class="layui-form-label">溫度</label> - <div class="layui-input-inline"> - <input class="layui-input" placeholder="%" /> - <span class="text-danger"></span> + </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> - <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 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> - <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 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> - </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> + + + <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> + + <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> @@ -679,6 +758,46 @@ @* 標籤選項sheet *@ <div class="layui-tab-item"> + <div class="layui-form-item"> + <label class="layui-form-label">列印方式</label> + <div class="layui-input-block"> + <input type="checkbox" name="like[write]" title="ON Line列印"> + <input type="checkbox" name="like[read]" title="OFF Line列印" checked=""> + </div> + </div> + + <div class="layui-form-item"> + <label class="layui-form-label">列印張數</label> + <div class="layui-input-inline" style="width: 100px;"> + <input class="layui-input" /> + </div> + <div class="layui-form-mid layui-word-aux">張</div> + </div> + + <div class="layui-form-item"> + <label class="layui-form-label">認證LOGO</label> + <div class="layui-input-block"> + <input type="checkbox" name="like[write]" title="CE"> + <input type="checkbox" name="like[write]" title="FCC"> + <input type="checkbox" name="like[write]" title="ROHS"> + <input type="checkbox" name="like[write]" title="UL"> + <input type="checkbox" name="like[write]" title="皆無"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">公司LOGO</label> + <div class="layui-input-block"> + <input type="checkbox" name="like[write]" title="A VALUE"> + <input type="checkbox" name="like[write]" title="無"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">工單屬性</label> + <div class="layui-input-block"> + <input type="checkbox" name="like[write]" title="正常工單"> + <input type="checkbox" name="like[write]" title="非標96工單-非標單據;人員輸入"> + </div> + </div> </div> @* SOP文件 sheet *@ @@ -765,7 +884,7 @@ }); }; - layui.use(['form','laydate',''], function () { + layui.use(['form','laydate'], function () { var form = layui.form, laydate = layui.laydate; @@ -787,6 +906,14 @@ $("#unitNo").val(data.value); getFlowRuleList(data.value); getLineInfoList(data.value); + if (data.value == "B" || data.value == "P" || data.value == "T") { + $("#system").show(); + $("#board").hide(); + } + else { + $("#system").hide(); + $("#board").show(); + } }); form.on('select(flow)', function (data) { @@ -798,6 +925,7 @@ }); }); + $(document).ready(function () { var error = '@Html.ValidationMessage("error")'; if ($(error).text() != '') { diff --git a/AMESCoreStudio.Web/Views/PCS/PCS001R.cshtml b/AMESCoreStudio.Web/Views/PCS/PCS001R.cshtml index 1db88add..1bef48e9 100644 --- a/AMESCoreStudio.Web/Views/PCS/PCS001R.cshtml +++ b/AMESCoreStudio.Web/Views/PCS/PCS001R.cshtml @@ -15,864 +15,1060 @@ </style> <div class="layui-card"> - <form enctype="multipart/form-data" method="post" asp-action="PCS001Save" class="layui-form"> - <div asp-validation-summary="ModelOnly" class="text-danger"></div> - <div class="layui-form-item"> - <input type="checkbox" title="判斷前製程是否已經投入" @(Model.wipInfo.InputFlag == "Y" ? "checked" : "") /> - </div> - - <div class="layui-form-item"> - <div class="layui-inline"> - <label asp-for="wipInfo.WipNO" class="layui-form-label"></label> - <div class="layui-input-inline"> - <input asp-for="wipInfo.WipNO" class="layui-input" autocomplete="off" placeholder="請輸入工單號碼" /> - <span asp-validation-for="wipInfo.WipNO" class="layui-bg-red"></span> - </div> - <label asp-for="wipInfo.WipSEQ" class="layui-form-label"></label> - <div class="layui-input-inline"> - <select asp-for="wipInfo.WipSEQ" asp-items="@ViewBag.WipSEQTypeList" class=""></select> - </div> - <label asp-for="wipAtt.ItemNO" class="layui-form-label"></label> - <div class="layui-input-inline"> - <input asp-for="wipAtt.ItemNO" class="layui-input" autocomplete="off" placeholder="請輸入料號" /> - <span asp-validation-for="wipAtt.ItemNO" class="layui-bg-red"></span> - </div> - <label asp-for="wipInfo.PlanQTY" class="layui-form-label"></label> - <div class="layui-input-inline"> - <input asp-for="wipInfo.PlanQTY" class="layui-input" autocomplete="off" placeholder="請輸入計劃數量" /> - <span asp-validation-for="wipInfo.PlanQTY" class="layui-bg-red"></span> - </div> + <div class="col-sm-12"> + <form enctype="multipart/form-data" method="post" asp-action="PCS001" class="layui-form"> + <div asp-validation-summary="ModelOnly" class="text-danger"></div> + <div class="layui-form-item"> + <input type="checkbox" title="判斷前製程是否已經投入" @(Model.wipInfo.InputFlag == "Y" ? "checked" : "") /> </div> - </div> - <div class="layui-form-item"> - <div class="layui-inline"> - <label asp-for="wipInfo.WipType" class="layui-form-label"></label> - <div class="layui-input-inline"> - <select asp-for="wipInfo.WipType" asp-items="@ViewBag.GetWipTypeList" class=""></select> - </div> - <label asp-for="wipInfo.ProductTypeID" class="layui-form-label"></label> - <div class="layui-input-inline"> - <select asp-for="wipInfo.ProductTypeID" asp-items="@ViewBag.ProductTypesList"></select> - </div> - <label asp-for="wipInfo.Werks" class="layui-form-label"></label> - <div class="layui-input-inline"> - <select asp-for="wipInfo.Werks" asp-items="@ViewBag.FactoryInfoList" style="color: #dc3545 !important;"></select> - </div> - <label asp-for="wipInfo.WerksNO" class="layui-form-label"></label> - <div class="layui-input-inline"> - <input asp-for="wipInfo.WerksNO" class="layui-input" autocomplete="off" placeholder="請輸入委外廠編號" /> - <span asp-validation-for="wipInfo.WerksNO" class="layui-bg-red"></span> + <div class="layui-form-item"> + <div class="layui-inline"> + <label asp-for="wipInfo.WipNO" class="layui-form-label"></label> + <div class="layui-input-inline"> + <input asp-for="wipInfo.WipNO" class="layui-input" autocomplete="off" placeholder="請輸入工單號碼" /> + <span asp-validation-for="wipInfo.WipNO" class="layui-bg-red"></span> + </div> + <label asp-for="wipInfo.WipSEQ" class="layui-form-label"></label> + <div class="layui-input-inline"> + <select asp-for="wipInfo.WipSEQ" asp-items="@ViewBag.WipSEQTypeList" class=""></select> + </div> + <label asp-for="wipAtt.ItemNO" class="layui-form-label"></label> + <div class="layui-input-inline"> + <input asp-for="wipAtt.ItemNO" class="layui-input" autocomplete="off" placeholder="請輸入料號" /> + <span asp-validation-for="wipAtt.ItemNO" class="layui-bg-red"></span> + </div> + <label asp-for="wipInfo.PlanQTY" class="layui-form-label"></label> + <div class="layui-input-inline"> + <input asp-for="wipInfo.PlanQTY" class="layui-input" autocomplete="off" placeholder="請輸入計劃數量" /> + <span asp-validation-for="wipInfo.PlanQTY" class="layui-bg-red"></span> + </div> </div> - </div> - </div> - <div class="layui-form-item"> - <div class="layui-inline"> - <label asp-for="wipInfo.CustomerType" class="layui-form-label"></label> - <div class="layui-input-inline"> - <select asp-for="wipInfo.CustomerType" asp-items="@ViewBag.GetCustomerTypeList" class=""></select> - </div> - <label asp-for="wipInfo.CustomerNO" class="layui-form-label"></label> - <div class="layui-input-inline"> - <input asp-for="wipInfo.CustomerNO" class="layui-input" autocomplete="off" placeholder="請輸入客戶名稱" /> - <span asp-validation-for="wipInfo.CustomerNO" class="layui-bg-red"></span> - </div> - <label asp-for="wipInfo.CustomerItemNO" class="layui-form-label"></label> - <div class="layui-input-inline"> - <input asp-for="wipInfo.CustomerItemNO" class="layui-input" autocomplete="off" placeholder="請輸入客戶料號" /> + <div class="layui-form-item"> + <div class="layui-inline"> + <label asp-for="wipInfo.WipType" class="layui-form-label"></label> + <div class="layui-input-inline"> + <select asp-for="wipInfo.WipType" asp-items="@ViewBag.GetWipTypeList" class=""></select> + </div> + <label asp-for="wipInfo.ProductTypeID" class="layui-form-label"></label> + <div class="layui-input-inline"> + <select asp-for="wipInfo.ProductTypeID" asp-items="@ViewBag.ProductTypesList"></select> + </div> + <label asp-for="wipInfo.Werks" class="layui-form-label"></label> + <div class="layui-input-inline"> + <select asp-for="wipInfo.Werks" asp-items="@ViewBag.FactoryInfoList" style="color: #dc3545 !important;"></select> + </div> + <label asp-for="wipInfo.WerksNO" class="layui-form-label"></label> + <div class="layui-input-inline"> + <input asp-for="wipInfo.WerksNO" class="layui-input" autocomplete="off" placeholder="請輸入委外廠編號" /> + <span asp-validation-for="wipInfo.WerksNO" class="layui-bg-red"></span> + </div> + </div> </div> - </div> - <div class="layui-form-item"> - <div class="layui-inline"> - <label asp-for="wipInfo.UnitNO" class="layui-form-label"></label> - <div class="layui-input-inline"> - <select asp-for="wipInfo.UnitNO" asp-items="@ViewBag.FactoryUnitList" class=""></select> - </div> - <label asp-for="wipInfo.LineID" class="layui-form-label"></label> - <div class="layui-input-inline"> - <select asp-for="wipInfo.LineID" asp-items="@ViewBag.LineInfoList" class=""></select> + <div class="layui-form-item"> + <div class="layui-inline"> + <label asp-for="wipInfo.CustomerType" class="layui-form-label"></label> + <div class="layui-input-inline"> + <select asp-for="wipInfo.CustomerType" asp-items="@ViewBag.GetCustomerTypeList" class=""></select> + </div> + <label asp-for="wipInfo.CustomerNO" class="layui-form-label"></label> + <div class="layui-input-inline"> + <input asp-for="wipInfo.CustomerNO" class="layui-input" autocomplete="off" placeholder="請輸入客戶名稱" /> + <span asp-validation-for="wipInfo.CustomerNO" class="layui-bg-red"></span> + </div> + <label asp-for="wipInfo.CustomerItemNO" class="layui-form-label"></label> + <div class="layui-input-inline"> + <input asp-for="wipInfo.CustomerItemNO" class="layui-input" autocomplete="off" placeholder="請輸入客戶料號" /> + </div> + <label asp-for="wipInfo.Sales" class="layui-form-label"></label> + <div class="layui-input-inline"> + <input asp-for="wipInfo.Sales" class="layui-input" autocomplete="off" placeholder="請輸入業務" /> + </div> </div> - <label asp-for="wipInfo.RelatedWONO" class="layui-form-label"></label> - <div class="layui-input-inline"> - <input asp-for="wipInfo.RelatedWONO" class="layui-input" placeholder="請輸入關聯工單/客戶工單" /> - <span asp-validation-for="wipInfo.RelatedWONO" class="layui-bg-red"></span> + </div> + + <div class="layui-form-item"> + <div class="layui-inline"> + <label asp-for="wipInfo.UnitNO" class="layui-form-label"></label> + <div class="layui-input-inline"> + <select id="unit" lay-filter="unit" asp-for="wipInfo.UnitNO" asp-items="@ViewBag.FactoryUnitList" class=""></select> + </div> + <input id="unitNo" type="hidden" name="unitNo" value="0" /> + <label asp-for="wipInfo.LineID" class="layui-form-label"></label> + <div class="layui-input-inline"> + <select lay-filter="lind" asp-for="wipInfo.LineID" asp-items="@ViewBag.LineInfoList" class=""> + </select> + <span asp-validation-for="wipInfo.LineID" class="layui-bg-red"></span> + </div> + + <input id="lindID" type="hidden" name="lindID" value="" /> + + <label asp-for="wipInfo.RelatedWONO" class="layui-form-label"></label> + <div class="layui-input-inline"> + <input asp-for="wipInfo.RelatedWONO" class="layui-input" placeholder="請輸入關聯工單/客戶工單" /> + <span asp-validation-for="wipInfo.RelatedWONO" class="layui-bg-red"></span> + </div> + + <label asp-for="wipInfo.OrderNO" class="layui-form-label"></label> + <div class="layui-input-inline"> + <input asp-for="wipInfo.OrderNO" class="layui-input" placeholder="請輸入訂單號碼" /> + </div> </div> + </div> + <div class="layui-form-item"> + <label asp-for="wipInfo.Remarks" class="layui-form-label"></label> + <div class="layui-input-block"> + <input asp-for="wipInfo.Remarks" class="layui-input" /> + </div> </div> - </div> - <div class="layui-form-item"> - <label asp-for="wipInfo.Remarks" class="layui-form-label"></label> - <div class="layui-input-block"> - <input asp-for="wipInfo.Remarks" class="layui-input" /> + <div class="layui-form-item"> + <label asp-for="wipInfo.Description" class="layui-form-label"></label> + <div class="layui-input-block"> + <input asp-for="wipInfo.Description" class="layui-input" /> + </div> </div> - </div> - <div class="layui-form-item"> - <label asp-for="wipInfo.Description" class="layui-form-label"></label> - <div class="layui-input-block"> - <input asp-for="wipInfo.Description" class="layui-input" /> + <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> - </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> - - <div class="layui-tab layui-tab-brief"> - <ul class="layui-tab-title"> - <li class="layui-this">工單屬性</li> - <li>生產流程</li> - <li>序號編碼</li> - <li>Keypart組合</li> - <li>板卡-工程資訊</li> - <li>系統-工程資訊</li> - <li>標籤選項</li> - </ul> - <div class="layui-tab-content"> - @* 基本資料sheet *@ - <div class="layui-tab-item layui-show"> - <div class="layui-form-item"> - <div class="layui-inline"> - <label asp-for="wipAtt.ModelNO" class="layui-form-label"></label> - <div class="layui-input-inline"> - <input asp-for="wipAtt.ModelNO" class="layui-input" placeholder="請輸入機種" /> - </div> - <label asp-for="wipAtt.WipProcess" class="layui-form-label"></label> - <div class="layui-input-inline"> - <select asp-for="wipAtt.WipProcess" asp-items="@ViewBag.ProcessTypeList" class=""></select> - </div> - <label asp-for="wipAtt.Side" class="layui-form-label"></label> - <div class="layui-input-inline"> - <select asp-for="wipAtt.Side" asp-items="@ViewBag.MFGTypeList" class=""></select> - </div> - </div> - </div> + <div class="layui-tab layui-tab-brief"> + <ul class="layui-tab-title"> + <li class="layui-this">工單屬性</li> + <li>生產流程</li> + <li>序號編碼</li> + <li>Keypart組合</li> + <li id="board">板卡-工程資訊</li> + <li id="system">系統-工程資訊</li> + <li>標籤選項</li> + <li>SOP文件</li> + </ul> + <div class="layui-tab-content"> + @* 工單屬性sheet *@ + <div class="layui-tab-item layui-show"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label asp-for="wipAtt.ModelNO" class="layui-form-label"></label> + <div class="layui-input-inline"> + <input asp-for="wipAtt.ModelNO" class="layui-input" placeholder="請輸入機種" /> + </div> + <label asp-for="wipAtt.WipProcess" class="layui-form-label"></label> + <div class="layui-input-inline"> + <select asp-for="wipAtt.WipProcess" asp-items="@ViewBag.ProcessTypeList" class=""></select> + </div> + <label asp-for="wipAtt.Side" class="layui-form-label"></label> + <div class="layui-input-inline"> + <select asp-for="wipAtt.Side" asp-items="@ViewBag.MFGTypeList" class=""></select> + </div> - <div class="layui-form-item"> - <div class="layui-inline"> - <label asp-for="wipAtt.Boards" class="layui-form-label"></label> - <div class="layui-input-inline"> - <input asp-for="wipAtt.Boards" class="layui-input" placeholder="請輸入聯板數" /> - <span asp-validation-for="wipAtt.Boards" class="layui-bg-red"></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" placeholder="請輸入包裝單箱數量" /> - <span asp-validation-for="wipInfo.BoxCNT" class="layui-bg-red"></span> </div> </div> - </div> - <div class="layui-form-item"> - <div class="layui-inline"> - <label asp-for="wipAtt.ECN" class="layui-form-label"></label> - <div class="layui-input-inline"> - <input asp-for="wipAtt.ECN" class="layui-input" placeholder="請輸入ECN版本" /> - </div> - <label asp-for="wipAtt.BIOSVer" class="layui-form-label"></label> - <div class="layui-input-inline"> - <input asp-for="wipAtt.BIOSVer" class="layui-input" placeholder="請輸入BIOS Ver" /> - </div> - <label asp-for="wipAtt.CS" class="layui-form-label"></label> - <div class="layui-input-inline"> - <input asp-for="wipAtt.CS" class="layui-input" placeholder="請輸入CS" /> - </div> - <label asp-for="wipAtt.EAN" class="layui-form-label"></label> - <div class="layui-input-inline"> - <input asp-for="wipAtt.EAN" class="layui-input" placeholder="請輸入EAN" /> + <div class="layui-form-item"> + <div class="layui-inline"> + <label asp-for="wipAtt.Boards" class="layui-form-label"></label> + <div class="layui-input-inline"> + <input asp-for="wipAtt.Boards" class="layui-input" placeholder="請輸入聯板數" /> + <span asp-validation-for="wipAtt.Boards" class="layui-bg-red"></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" placeholder="請輸入包裝單箱數量" /> + <span asp-validation-for="wipInfo.BoxCNT" class="layui-bg-red"></span> + </div> </div> </div> - </div> - <div class="layui-form-item"> - <div class="layui-inline"> - <label asp-for="wipInfo.WipScheduleDate" class="layui-form-label"></label> - <div class="layui-input-inline"> - <input asp-for="wipInfo.WipScheduleDate" class="layui-input" placeholder="請輸入預計開工日" /> - <span asp-validation-for="wipInfo.WipScheduleDate" class="layui-bg-red"></span> - </div> - <label asp-for="wipInfo.WipDueDate" class="layui-form-label"></label> - <div class="layui-input-inline"> - <input asp-for="wipInfo.WipDueDate" class="layui-input" placeholder="請輸入預計完工日" /> - <span asp-validation-for="wipInfo.WipDueDate" class="layui-bg-red"></span> + <div class="layui-form-item"> + <div class="layui-inline"> + <label asp-for="wipAtt.ECN" class="layui-form-label"></label> + <div class="layui-input-inline"> + <input asp-for="wipAtt.ECN" class="layui-input" placeholder="請輸入ECN版本" /> + </div> + <label asp-for="wipAtt.EAN" class="layui-form-label"></label> + <div class="layui-input-inline"> + <input asp-for="wipAtt.EAN" class="layui-input" placeholder="請輸入EAN" /> + </div> </div> </div> - </div> - </div> - - @* 生產流程sheet *@ - <div class="layui-tab-item"> - <div class="layui-form-item"> - <div class="layui-inline"> - <label asp-for="wipInfo.FlowRuleID" class="layui-form-label"></label> - <div class="layui-input-inline"> - <select asp-for="wipInfo.FlowRuleID" asp-items="@ViewBag.FlowRuleList" class=""></select> + <div class="layui-form-item"> + <div class="layui-inline"> + <label asp-for="wipInfo.WipScheduleDate" class="layui-form-label"></label> + <div class="layui-input-inline"> + <input asp-for="wipInfo.WipScheduleDate" class="layui-input" readonly="" placeholder="yyyy/MM/dd" /> + <span asp-validation-for="wipInfo.WipScheduleDate" class="layui-bg-red"></span> + </div> + <label asp-for="wipInfo.WipDueDate" class="layui-form-label"></label> + <div class="layui-input-inline"> + <input asp-for="wipInfo.WipDueDate" class="layui-input" readonly="" placeholder="yyyy/MM/dd" /> + <span asp-validation-for="wipInfo.WipDueDate" class="layui-bg-red"></span> + </div> </div> </div> - <table id="MydataTable" class="layui-table"> - <thead> - <tr> - <th> - 站別描述 - </th> - <th> - 站別順序 - </th> - <th> - 站別類型 - </th> - </tr> - </thead> - <tbody> - @foreach (var index in Model.ruleStation) - { - <tr> - <td> - @index.StationDesc - </td> - <td> - @index.Sequence - </td> - <td> - @index.StationType - </td> - </tr> - } - </tbody> - </table> - </div> - </div> + </div> - @* 序號編碼sheet *@ - <div class="layui-tab-item"> - <div class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">生產序號</label> + @* 生產流程sheet *@ + <div class="layui-tab-item"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label asp-for="wipInfo.FlowRuleID" class="layui-form-label"></label> + <div class="layui-input-inline"> + <select lay-filter="flow" asp-for="wipInfo.FlowRuleID" asp-items="@ViewBag.FlowRuleList" class=""></select> + </div> + <input id="flowId" type="hidden" name="flowId" value="" /> + </div> + <div class="layui-inline"> + <input type="checkbox" title="SFIS途程確認" /> + </div> <table id="MydataTable" class="layui-table"> <thead> <tr> <th> - 起始生產序號 + 站別描述 + </th> + <th> + 站別順序 </th> - <th> - 結束生產序號 + 站別類型 </th> </tr> </thead> <tbody> - @foreach (var index in Model.wipBarcode) + @foreach (var index in Model.ruleStation) { <tr> <td> - @index.StartNO + @index.StationDesc </td> <td> - @index.EndNO + @index.Sequence + </td> + <td> + @index.StationType </td> </tr> } </tbody> </table> - @*<div class="layui-input-inline"> - <input asp-for="WipBarcode.StartNO" class="layui-input" /> - </div> - <div class="layui-form-mid">-</div> - <div class="layui-input-inline"> - <input asp-for="WipBarcode.EndNO" class="layui-input" /> - </div> - <div class="layui-input-inline"> - <input id="GetBarCode" class="layui-btn layui-btn-primary layui-border-blue layui-btn-sm" type="button" value="產生條碼" /> - </div>*@ </div> </div> - @*<div class="layui-form-item"> + @* 序號編碼sheet *@ + <div class="layui-tab-item"> + <label class="layui-form-label">生產序號</label> + <table id="MydataTable" class="layui-table"> + <thead> + <tr> + <th> + 起始生產序號 + </th> + + <th> + 結束生產序號 + </th> + </tr> + </thead> + <tbody> + @foreach (var index in Model.wipBarcode) + { + <tr> + <td> + @index.StartNO + </td> + <td> + @index.EndNO + </td> + </tr> + } + </tbody> + </table> + <div class="layui-form-item"> <div class="layui-inline"> - <label class="layui-form-label">工單序號</label> - <div class="layui-input-inline"> - <input class="layui-input" placeholder="請輸入工單序號" /> - </div> <label class="layui-form-label">出貨序號</label> <div class="layui-input-inline"> <input class="layui-input" placeholder="請輸入出貨序號" /> </div> </div> - </div>*@ - </div> - @* Keypart組合sheet *@ - <div class="layui-tab-item"> - </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" placeholder="請輸入工號" /> - <span style="color: #dc3545 !important;"></span> - </div> - - <label class="layui-form-label">姓名</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"> - <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 class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label">LAN ID</label> + <div class="layui-input-inline"> + <input class="layui-input" placeholder="請輸入LAN ID" /> + <span class="text-danger"></span> + </div> </div> </div> </div> + @* Keypart組合sheet *@ + <div class="layui-tab-item"> + <table class="layui-hide" id="material" lay-filter="material"></table> + <table id="MydataTable" class="layui-table"> + <thead> + <tr> + <th> + 料號 + </th> + <th> + KP料號名稱 + </th> + <th> + KP料號NO + </th> + <th> + 順序 + </th> + <th> + 前置碼 + </th> + <th> + 長度 + </th> + <th> + 站(前段) + </th> + </tr> + </thead> + <tbody> + @foreach (var index in Model.materialKp) + { + <tr> + <td> + @index.ItemName + </td> + <td> + @index.KpName + </td> + <td> + @index.KpNo + </td> + <td> + @index.KpSeq + </td> + <td> + @index.Title + </td> + <td> + @index.Length + </td> + <td> + @index.Station + </td> + </tr> + } + </tbody> + </table> + </div> - <div class="layui-form-item"> - <label class="layui-form-label">PLM參考</label> - <div class="layui-input-block"> - <input class="layui-input" /> - </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" placeholder="請輸入工號" /> + <span style="color: #dc3545 !important;"></span> + </div> - <div class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">SMD點膠</label> - <div class="layui-input-inline"> - <select asp-items="@ViewBag.GetSMDTypeList" class=""></select> + <label class="layui-form-label">姓名</label> + <div class="layui-input-inline"> + <input class="layui-input" autocomplete="off" placeholder="" /> + <span style="color: #dc3545 !important;"></span> + </div> </div> </div> - </div> - <div class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">DIP</label> - <div class="layui-input-inline"> - <select asp-items="@ViewBag.GetDIPTypeList" class=""></select> - </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" placeholder="" /> + <span style="color: #dc3545 !important;"></span> + </div> + </div> + </div>*@ - <div class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">燒錄</label> - <div class="layui-input-inline"> - <select asp-items="@ViewBag.GetBurnTypeList" 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"> - <select asp-items="@ViewBag.GetPartsBakeTypeList" class=""></select> - </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">PCB烘烤</label> - <div class="layui-input-inline"> - <select asp-items="@ViewBag.GetPCBBakeTypeList" class=""></select> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label">SMD點膠</label> + <div class="layui-input-inline"> + <select asp-items="@ViewBag.GetSMDTypeList" class=""></select> + </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 asp-items="@ViewBag.GetPCBWorkingTypeList" class=""></select> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label">DIP</label> + <div class="layui-input-inline"> + <select asp-items="@ViewBag.GetDIPTypeList" asp-for="wipBoard.DipSide" class=""></select> + </div> + <input type="checkbox" title="CARRIER" @(Model.wipBoard.DipCarrier == "Y" ? "checked" : "") /> + <input type="checkbox" title="貼付膠帶" @(Model.wipBoard.DipTape == "Y" ? "checked" : "") /> </div> </div> - </div> - <div class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">錫膏</label> - <div class="layui-input-inline"> - <select asp-items="@ViewBag.GetSolderPasteList" class=""></select> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label">燒錄</label> + <div class="layui-input-inline"> + <input type="checkbox" title="是否燒入" @(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> </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 class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label">零件烘烤溫度</label> + <div class="layui-input-inline"> + <select asp-items="@ViewBag.GetPartsBakeTypeList" asp-for="wipBoard.PartsBake" class=""></select> + </div> </div> - <label class="layui-form-label">時間</label> - <div class="layui-input-inline"> - <input class="layui-input" /> - <span class="text-danger"></span> + <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> - <div class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">BIOS</label> - <div class="layui-input-inline"> - <input class="layui-input" placeholder="請輸入BIOS" /> - <span class="text-danger"></span> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label">PCB烘烤</label> + <div class="layui-input-inline"> + <select asp-items="@ViewBag.GetPCBBakeTypeList" asp-for="wipBoard.PcbBake" class=""></select> + </div> </div> - </div> - </div> - - <div class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">Checksum</label> - <div class="layui-input-inline"> - <input class="layui-input" placeholder="請輸入Checksum" /> - <span class="text-danger"></span> + <div class="layui-inline"> + <label class="layui-form-label" asp-for="wipBoard.SolderPaste"></label> + <div class="layui-input-block"> + <select asp-items="@ViewBag.GetSolderPasteList" asp-for="wipBoard.SolderPaste"></select> + </div> </div> </div> - </div> - @*<div class="layui-form-item"> + <div class="layui-form-item"> <div class="layui-inline"> - <label asp-for="wipAtt.ItemNO" class="layui-form-label">OS</label> + <label class="layui-form-label">PCB加工</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> + <select asp-items="@ViewBag.GetPCBWorkingTypeList" class=""></select> </div> </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> + <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 class="layui-form-item"> <div class="layui-inline"> - <label asp-for="wipAtt.ItemNO" class="layui-form-label">RAM</label> + <label asp-for="wipBoard.BiosVer" class="layui-form-label"></label> + <div class="layui-input-inline"> + <input asp-for="wipBoard.BiosVer" class="layui-input" placeholder="請輸入BIOS" /> + <span class="text-danger"></span> + </div> + <label asp-for="wipBoard.Checksum" class="layui-form-label"></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> + <input asp-for="wipBoard.Checksum" class="layui-input" placeholder="請輸入Checksum" /> + <span class="text-danger"></span> </div> </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 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> </div> - </div> - </div> - <div class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">LAN ID</label> - <div class="layui-input-inline"> - <input class="layui-input" placeholder="請輸入LAN ID" /> - <span class="text-danger"></span> + <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> </div> - </div> - </div> - <div class="layui-form-item"> - <label class="layui-form-label">備註</label> - <div class="layui-input-block"> - <input class="layui-input" placeholder="請輸入備註" /> - </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-block"> + <input class="layui-input" placeholder="請輸入備註" /> + </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" placeholder="請輸入工號" /> - <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">工程負責人員</label> + <div class="layui-input-inline"> + <input class="layui-input" autocomplete="off" placeholder="請輸入工號" /> + <span style="color: #dc3545 !important;"></span> + </div> - <label class="layui-form-label">姓名</label> - <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="" /> - <span style="color: #dc3545 !important;"></span> + <label class="layui-form-label">姓名</label> + <div class="layui-input-inline"> + <input class="layui-input" autocomplete="off" placeholder="" /> + <span style="color: #dc3545 !important;"></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" placeholder="" /> - <span style="color: #dc3545 !important;"></span> + <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> - <div class="layui-form-item"> - <label class="layui-form-label">PLM參考</label> - <div class="layui-input-block"> - <input class="layui-input" placeholder="請輸入工單號碼" /> + <div class="layui-form-item"> + <label class="layui-form-label">PLM參考</label> + <div class="layui-input-block"> + <input class="layui-input" placeholder="請輸入工單號碼" /> + </div> </div> - </div> - <div class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">BIOS</label> - <div class="layui-input-inline"> - <select asp-items="@ViewBag.PCSList1" class=""></select> + <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> + </div> - <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="請輸入BIOS" /> - <span style="color: #dc3545 !important;"></span> - </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 class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="請輸入BIOS" /> - <span style="color: #dc3545 !important;"></span> + <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 class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">Checksum</label> - <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="Checksum" /> - <span style="color: #dc3545 !important;"></span> + <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" placeholder="CPU" /> + </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" placeholder="RAM" /> + </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" placeholder="OS版本" /> + </div> </div> </div> - </div> - <div class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">EC</label> - <div class="layui-input-inline"> - <select class=""></select> + <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" placeholder="請輸入EC" /> + </div> </div> + </div> - <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="請輸入EC" /> - <span style="color: #dc3545 !important;"></span> + <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" placeholder="請輸入FW" /> + </div> </div> + </div> - <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="請輸入EC" /> - <span style="color: #dc3545 !important;"></span> + <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" placeholder="請輸入FW1" /> + </div> </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 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" placeholder="請輸入FW2" /> + </div> </div> + </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 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> - <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 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-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="請輸入FW1" /> - <span style="color: #dc3545 !important;"></span> + <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> - <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 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> - <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="請輸入FW2" /> - <span style="color: #dc3545 !important;"></span> - </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="請輸入FW2" /> - <span style="color: #dc3545 !important;"></span> - </div> - </div> - </div> + <div class="layui-input-inline"> + <input class="layui-input" autocomplete="off" placeholder="請輸入FW1" /> + <span style="color: #dc3545 !important;"></span> + </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 class="layui-input-inline"> + <input class="layui-input" autocomplete="off" placeholder="請輸入FW1" /> + <span style="color: #dc3545 !important;"></span> + </div> + </div> </div> - <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="請輸入OS" /> - <span style="color: #dc3545 !important;"></span> - </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="請輸入OS" /> - <span style="color: #dc3545 !important;"></span> - </div> - </div> - </div> + <div class="layui-input-inline"> + <input class="layui-input" autocomplete="off" placeholder="請輸入FW2" /> + <span style="color: #dc3545 !important;"></span> + </div> - <div class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">CPU</label> - <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="CPU" /> - <span style="color: #dc3545 !important;"></span> + <div class="layui-input-inline"> + <input class="layui-input" autocomplete="off" placeholder="請輸入FW2" /> + <span style="color: #dc3545 !important;"></span> + </div> + </div> </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> + <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-form-item"> - <input type="checkbox" title="SFIS途程確認" /> - </div> + <div class="layui-input-inline"> + <input class="layui-input" autocomplete="off" placeholder="請輸入OS" /> + <span style="color: #dc3545 !important;"></span> + </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 class="layui-input-inline"> + <input class="layui-input" autocomplete="off" placeholder="請輸入OS" /> + <span style="color: #dc3545 !important;"></span> + </div> + </div> </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"> - <div class="layui-inline"> - <label class="layui-form-label">生產SOP</label> - <div class="layui-input-inline"> - <select asp-items="@ViewBag.PCSOPList" class=""></select> - </div> - <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="請輸入生產SOP" /> - <span style="color: #dc3545 !important;"></span> + <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> - </div> - </div> - <div class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">單板包裝SOP</label> - <div class="layui-input-inline"> - <select asp-items="@ViewBag.PCSOPList" class=""></select> - </div> - <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="請輸入單板包裝SOP" /> - <span style="color: #dc3545 !important;"></span> - </div> - </div> - </div> - <div class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">組裝SOP</label> - <div class="layui-input-inline"> - <select asp-items="@ViewBag.PCSOPList" class=""></select> + <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> - <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="請輸入組裝SOP" /> - <span style="color: #dc3545 !important;"></span> + + <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" placeholder="請輸入備註" /> </div> </div> </div> - <div class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">測試SOP</label> - <div class="layui-input-inline"> - <select asp-items="@ViewBag.PCSOPList" class=""></select> - </div> - <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="請輸入測試SOP" /> - <span style="color: #dc3545 !important;"></span> + @* 標籤選項sheet *@ + <div class="layui-tab-item"> + <div class="layui-form-item"> + <label class="layui-form-label">列印方式</label> + <div class="layui-input-block"> + <input type="checkbox" name="like[write]" title="ON Line列印"> + <input type="checkbox" name="like[read]" title="OFF Line列印" checked=""> </div> </div> - </div> - <div class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">系統包裝SOP</label> - <div class="layui-input-inline"> - <select asp-items="@ViewBag.PCSOPList" class=""></select> - </div> - <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="請輸入系統包裝SOP" /> - <span style="color: #dc3545 !important;"></span> + <div class="layui-form-item"> + <label class="layui-form-label">列印張數</label> + <div class="layui-input-inline" style="width: 100px;"> + <input class="layui-input" /> </div> + <div class="layui-form-mid layui-word-aux">張</div> </div> - </div> - <div class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">其他參考SOP</label> - <div class="layui-input-inline"> - <select asp-items="@ViewBag.PCSOPList" class=""></select> - </div> - <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="請輸入其他參考SOP" /> - <span style="color: #dc3545 !important;"></span> + <div class="layui-form-item"> + <label class="layui-form-label">認證LOGO</label> + <div class="layui-input-block"> + <input type="checkbox" name="like[write]" title="CE"> + <input type="checkbox" name="like[write]" title="FCC"> + <input type="checkbox" name="like[write]" title="ROHS"> + <input type="checkbox" name="like[write]" title="UL"> + <input type="checkbox" name="like[write]" title="皆無"> </div> </div> - </div> - - <div class="layui-form-item"> - <div class="layui-inline"> - <label class="layui-form-label">Jumper設定說明</label> - <div class="layui-input-inline"> - <select asp-items="@ViewBag.PCSOPList" class=""></select> + <div class="layui-form-item"> + <label class="layui-form-label">公司LOGO</label> + <div class="layui-input-block"> + <input type="checkbox" name="like[write]" title="A VALUE"> + <input type="checkbox" name="like[write]" title="無"> </div> - <div class="layui-input-inline"> - <input class="layui-input" autocomplete="off" placeholder="請輸入Jumper設定說明" /> - <span style="color: #dc3545 !important;"></span> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">工單屬性</label> + <div class="layui-input-block"> + <input type="checkbox" name="like[write]" title="正常工單"> + <input type="checkbox" name="like[write]" title="非標96工單-非標單據;人員輸入"> </div> </div> </div> - <div class="layui-form-item"> - <label class="layui-form-label">備註</label> - <div class="layui-input-block"> - <input class="layui-input" placeholder="請輸入備註" /> - </div> - </div> - </div> + @* SOP文件 sheet *@ + <div class="layui-tab-item"> + <p>檔案 <input type="file" name="formFile"></p> + @*@await Html.PartialAsync("PCS/_SOPPartial")*@ + <partial name="PCS/_SOPPartial" /> + @*<div class="page"> + <div id="foo-view" data-url="@Url.Action(action: "SOP", controller: "PCS")"></div> + </div>*@ - @* 標籤選項sheet *@ - <div class="layui-tab-item"> + </div> </div> </div> - </div> - <span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> - @*<div class="layui-form-item"> + <span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> + <div class="layui-form-item"> <div class="layui-input-block"> <input type="submit" value="保存" class="layui-btn" /> </div> - </div>*@ - </form> + </div> + </form> + </div> </div> @section Scripts { @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); await Html.RenderPartialAsync("_FileinputScriptsPartial"); } <script type="text/javascript"> - layui.use(['form'], function () { - form = layui.form; - }); + //$(document).ready(function () { + // (function () { + // var url = $("#foo-view").data("url"); + // $("#foo-view").load(url); + // })(); + //}); + + function getFlowRuleList(data) + { + $.ajax( + { + url: "@Url.Action("GetFlowRuleJson", "BAS")", + dataType: 'json', + data: { "unit_no": $("#unitNo").val()}, + type: 'post', + success: function (result) + { + console.info(result.data); + $("#wipInfo_FlowRuleID").empty();//清空下拉框的值 + $.each(result.data, function (index, item) { + $("#wipInfo_FlowRuleID").append($("<option>").text(item.text).val(item.value)) + }); + + layui.form.render("select");//重新渲染 固定写法 + }, + error: function (result) + { + alert(result); + } + }); + }; + + function getLineInfoList(data) + { + $.ajax( + { + url: "@Url.Action("GetUnitLineJson", "BAS")", + dataType: 'json', + data: { "unit_no": $("#unitNo").val()}, + type: 'post', + success: function (result) + { + console.info(result.data); + $("#wipInfo_LineID").empty();//清空下拉框的值 + $.each(result.data, function (index, item) { + $("#wipInfo_LineID").append($("<option>").text(item.text).val(item.value)) + }); + $("#wipInfo_LineID option:eq(1)").attr("selected", 'selected'); //默认选择第一个选项 + layui.form.render("select");//重新渲染 固定写法 + }, + error: function (result) + { + alert(result); + } + }); + }; + + layui.use(['form','laydate'], function () { + var form = layui.form, + laydate = layui.laydate; + + laydate.render({ + elem: '#wipInfo_WipScheduleDate' + , trigger: 'click' + , format: 'yyyy/MM/dd' + , theme: 'grid' + }); - $(document).ready(function () { + laydate.render({ + elem: '#wipInfo_WipDueDate' + , trigger: 'click' + , format: 'yyyy/MM/dd' + , theme: 'grid' + }); + + form.on('select(unit)', function (data) { + $("#unitNo").val(data.value); + getFlowRuleList(data.value); + getLineInfoList(data.value); + if (data.value == "B" || data.value == "P" || data.value == "T") { + $("#system").show(); + $("#board").hide(); + } + else { + $("#system").hide(); + $("#board").show(); + } + }); + + form.on('select(flow)', function (data) { + $("#flowId").val(data.value); + }); + + form.on('select(lind)', function (data) { + $("#lindId").val(data.value); + }); + + }); + + $(document).ready(function () { var error = '@Html.ValidationMessage("error")'; if ($(error).text() != '') { parent.hg.msg(error); } - $('#GetBarCode').click(function () { - var wipNO = $('#wipInfo_WipNO').val(); - var planQTY = $('#wipInfo_PlanQTY').val(); - if (wipNO == '' || !wipNO) { - parent.hg.msg("請輸入工單號碼"); - return; - } - if (planQTY == '' || !planQTY || planQTY == 0) { - parent.hg.msg("請確認計畫計畫數量"); - return; - } - - $("#WipBarcode_StartNO").val(wipNO + PrefixInteger(1, 4)); - $("#WipBarcode_EndNO").val(wipNO + PrefixInteger(planQTY, 4)); + $('#GetBarCode').click(function () { + var wipNO = $('#wipInfo_WipNO').val(); + var planQTY = $('#wipInfo_PlanQTY').val(); + if (wipNO == '' || !wipNO) { + parent.hg.msg("請輸入工單號碼"); + return; + } + if (planQTY == '' || !planQTY || planQTY == 0) { + parent.hg.msg("請確認計畫計畫數量"); + return; + } - }); + $("#wipBarcode_StartNO").val(wipNO + PrefixInteger(1, 4)); + $("#wipBarcode_EndNO").val(wipNO + PrefixInteger(planQTY, 4)); + + }); function PrefixInteger(num, length) { return (Array(length).join('0') + num).slice(-length); }; - }); + + $("#GetBarCode1").click( function (event) { + $.ajax({ + url: '@Url.Action("TestFunc", "PCS")', + dataType:'json', + data: { "number" : $("#wipBarcode_StartNO").val() }, + cache: false, + type: "POST", + success: function (data, textStatus, jqXHR) { + $("#wipBarcode_StartNO").val(data); + }, + error: function (jqXHR, textStatus, errorThrown) { + alert("Found error when using Ajax!!"); + } + }); + }); + + }); </script> } + diff --git a/AMESCoreStudio.Web/Views/PCS/PCS030.cshtml b/AMESCoreStudio.Web/Views/PCS/PCS030.cshtml index e26cb18c..0c1fcbd0 100644 --- a/AMESCoreStudio.Web/Views/PCS/PCS030.cshtml +++ b/AMESCoreStudio.Web/Views/PCS/PCS030.cshtml @@ -38,71 +38,52 @@ <div class="layui-form"> <div class="layui-row"> <div class="layui-form-item"> - <div class="layui-col-sm3"> + <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="lockStatus" name="lockStatus" lay-filter="lockStatus" lay-submit> - <option value="">全部</option> - <option value="0">鎖定</option> - <option value="1">解鎖</option> - </select> - </div> - </div> - </div> - <div class="layui-col-sm3"> - <div class="layui-inline"> - <label class="layui-form-label">鎖定類型:</label> - <div class="layui-input-inline" style="width:100px"> - <select id="lockType" lay-filter="lockType" name="lockType" lay-submit asp-items="@ViewBag.GetLockTypeList"> - <option value="">全部</option> - </select> + <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> </div> </div> - <div class="layui-col-sm3"> + <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" style="width:150px"> - <select id="lockReasonType" lay-filter="lockReasonType" name="lockReasonType" lay-submit asp-items="@ViewBag.GetLockReasonTypeList"> + <select id="unitNo" lay-filter="stations" name="unitNo" lay-submit asp-items="@ViewBag.FactoryUnitList"> <option value="">全部</option> </select> </div> </div> </div> - <div class="layui-col-sm3"> + <div class="layui-col-sm4"> <div class="layui-inline"> - <label class="layui-form-label">站別:</label> - <div class="layui-input-inline" style="width:150px"> - <select id="stations" lay-filter="stations" name="stations" lay-submit asp-items="@ViewBag.GetStationsList"> + <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> + </div> </div> <div class="layui-row"> <div class="layui-form-item"> - <div class="layui-col-sm3"> - <div class="layui-inline"> - <label class="layui-form-label">工單:</label> - <div class="layui-input-inline" style="width:150px"> - <input id="wipNO" name="wipNO" autocomplete="off" class="layui-input" placeholder="請輸入工單號碼"> - </div> - </div> - </div> - <div class="layui-col-sm3"> + <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="請輸入料號"> + <label class="layui-form-label">文件名稱:</label> + <div class="layui-input-inline"> + <input id="fileName" name="fileName" autocomplete="off" class="layui-input" placeholder="請輸入文件名稱"> </div> </div> </div> - <div class="layui-col-sm5"> + <div class="layui-col-sm6"> <div class="layui-inline"> - <label class="layui-form-label">鎖定日期:</label> + <label class="layui-form-label">建立日期:</label> <div class="layui-input-inline" style="width:150px"> <input id="dateStr" name="dateStr" autocomplete="off" class="layui-input" readonly=""> </div> @@ -127,6 +108,11 @@ </div> @section Scripts{ + <script type="text/html" id="switchState"> + <!-- 这里的 checked 的状态只是演示 --> + <input type="checkbox" name="state" value="{{d.wipSopID}}" lay-skin="switch" lay-text="啟用|停用" lay-filter="state" {{ d.state == "使用中" ? 'checked' : '' }}> + </script> + <script type="text/javascript"> //var roleId = 0; //var roleName = ""; @@ -159,8 +145,27 @@ }); - }); + //監聽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: { "wipSopID": 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); /* @@ -177,55 +182,41 @@ var tableCols = [[ { - field: 'wipNO', - width: 100, - title: '工單號碼', - sort: true - }, - { - field: 'itemNO', + field: 'itemNo', + width: 150, title: '料號', - width: 200, sort: true }, { - field: 'stationName', - title: '站別', - width: 100, + field: 'unitName', + title: '生產單位', + width: 200, sort: true }, { - field: 'lockReasonType', - title: '鎖定原因類別', - width: 100, + field: 'fileName', + title: '檔案名稱', sort: true }, { - field: 'lockStatus', - title: '鎖定狀態', + field: 'state', + title: '狀態', width: 100, sort: true }, { - field: 'lockReason', - title: '鎖定原因' - }, - { - field: 'lockDate', - title: '鎖定日期', - width: 100, - templet: '<div>{{ layui.util.toDateString(d.lockDate, "yyyy/MM/dd") }}</div>' - }, - { - field: 'unLockReason', - title: '解鎖原因' + field: 'createDate', + title: '建立日期', + width: 150, + templet: '<div>{{ layui.util.toDateString(d.createDate, "yyyy/MM/dd") }}</div>' }, { - field: 'unLockDate', - title: '解鎖日期', - width: 100, - templet: '<div>{{ layui.util.toDateString(d.unLockDate, "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, @@ -233,22 +224,23 @@ align: 'center', fixed: 'right', templet: function (d) { - if (d.unLockReason == null) { - return '<button class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">解鎖</button>' - } - else { - return '<button class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit layui-btn-disabled">解鎖</button>' - } - /* < a class="layui-btn layui-btn-warm layui-icon layui-icon-list layui-btn-xs" lay - event="detail" > 檢視</a >*/ + return '<button class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-read" lay-event="show">預覽</button>' } }] ]; - //通过行tool编辑,lay-event="edit" - function edit(obj) { - if (obj.data.wipNO) { - hg.open('解鎖工單', '/PCS/PCS011/' + obj.data.wipLockID, 480, 480,false); - } - } + //通过行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: '', @@ -261,7 +253,7 @@ ]; //基本数据表格 - var table = hg.table.datatable('query', '條碼狀態維護', '/PCS/PCS012Query', {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']); + 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> } diff --git a/AMESCoreStudio.Web/Views/PCS/PCS030C.cshtml b/AMESCoreStudio.Web/Views/PCS/PCS030C.cshtml index d0bacd85..b97c811a 100644 --- a/AMESCoreStudio.Web/Views/PCS/PCS030C.cshtml +++ b/AMESCoreStudio.Web/Views/PCS/PCS030C.cshtml @@ -39,9 +39,11 @@ <div class="layui-form-item"> <div class="layui-inline"> <label asp-for="FileName" class="layui-form-label"></label> - <div class="layui-input-inline"> - <p>檔案 <input type="file" name="formFile"></p> - </div> + + <label class="layui-btn"> + <input type="file" name="formFile" style="display:none;"> + <i class="layui-icon"></i>上傳文件 + </label> </div> </div> diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/MaterialKpController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/MaterialKpController.cs new file mode 100644 index 00000000..ee13d474 --- /dev/null +++ b/AMESCoreStudio.WebApi/Controllers/AMES/MaterialKpController.cs @@ -0,0 +1,157 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; +using AMESCoreStudio.WebApi.Models.AMES; +using AMESCoreStudio.CommonTools.Result; +using AMESCoreStudio.WebApi.DTO.AMES; + +namespace AMESCoreStudio.WebApi.Controllers.AMES +{ + /// <summary> + /// 料號基本資料檔Controller + /// </summary> + [Route("api/[controller]")] + [ApiController] + public class MaterialKpController : ControllerBase + { + private readonly AMESContext _context; + + /// <summary> + /// 建構式 + /// </summary> + /// <param name="context"></param> + public MaterialKpController(AMESContext context) + { + _context = context; + } + + /// <summary> + /// 查詢料號基本資料檔 + /// </summary> + /// <returns></returns> + // GET: api/<MaterialKpController> + [HttpGet] + public async Task<ActionResult<IEnumerable<MaterialKp>>> GetMaterialKp() + { + IQueryable<MaterialKp> q = _context.MaterialKps; + q = q.OrderBy(p => p.ItemID); + var MaterialKp = await q.ToListAsync(); + return MaterialKp; + } + + + /// <summary> + /// 料號基本資料檔 to ItemID + /// </summary> + /// <param name="id">ItemID</param> + /// <returns></returns> + [HttpGet("{id}")] + public async Task<ResultModel<MaterialKp>> GetMaterialKp(int id) + { + IQueryable<MaterialKp> q = _context.MaterialKps; + + ResultModel<MaterialKp> result = new ResultModel<MaterialKp>(); + result.Data = await q.Where(p => p.ItemID == id).ToListAsync(); + return result; + } + + /// <summary> + /// Keypart查詢 + /// </summary> + /// <param name="itemno">料號</param> + /// <param name="station">站別</param> + /// <returns></returns> + [Route("[action]")] + [HttpGet] + public async Task<ResultModel<MaterialKpDto>> GetMaterialKpQuery(string itemno, string station) + { + IQueryable<MaterialKp> q = _context.MaterialKps; + + if (!string.IsNullOrWhiteSpace(itemno)) + q = q.Where(w => w.MaterialItem.ItemNo == itemno); + + if (!string.IsNullOrWhiteSpace(station)) + q = q.Where(w => w.StationType == station); + + + ResultModel<MaterialKpDto> result = new ResultModel<MaterialKpDto>(); + result.Data = await q.Select(s => new MaterialKpDto + { + ItemName = s.MaterialItem.ItemNo, + KpName = s.KpName, + Station = s.StationTypeList.TypeDesc, + KpSeq= s.KpSeq, + KpNo = s.KpNo, + MaterialKpID = s.MaterialKpID, + Length = s.Length, + Title = s.Title + }).ToListAsync(); + + return result; + } + + /// <summary> + /// 新增料號基本資料檔 + /// </summary> + /// <param name="MaterialKp"></param> + /// <returns></returns> + [HttpPost] + public async Task<ResultModel<MaterialKp>> PostMaterialKp([FromBody] MaterialKp MaterialKp) + { + ResultModel<MaterialKp> result = new ResultModel<MaterialKp>(); + Helper helper = new Helper(_context); + + _context.MaterialKps.Add(MaterialKp); + try + { + await _context.SaveChangesAsync(); + result.Success = true; + result.Msg = "OK"; + } + catch (Exception ex) + { + result.Success = false; + result.Msg = ex.Message; + } + return result; + } + + + /// <summary> + /// 修改料號基本資料檔 + /// </summary> + /// <returns></returns> + [HttpPut] + public async Task<ResultModel<MaterialKp>> PutMaterialKp([FromBody] MaterialKp MaterialKp) + { + ResultModel<MaterialKp> result = new ResultModel<MaterialKp>(); + _context.Attach(MaterialKp); + // 指定更新某個欄位 + _context.Entry(MaterialKp).Property(p => p.MaterialKpID).IsModified = true; + + try + { + await _context.SaveChangesAsync(); + result.Success = true; + result.Msg = "OK"; + } + catch (Exception ex) + { + result.Success = false; + result.Msg = ex.Message; + } + return result; + } + + + // DELETE api/<MaterialKpController>/5 + [HttpDelete("{id}")] + public void DeleteMaterialKp(int id) + { + } + } +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipAttsController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipAttsController.cs index a580adfb..31ac091a 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/WipAttsController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipAttsController.cs @@ -6,6 +6,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using AMESCoreStudio.WebApi.Models.AMES; +using AMESCoreStudio.CommonTools.Result; namespace AMESCoreStudio.WebApi.Controllers.AMES { @@ -79,16 +80,24 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES // 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. [HttpPost] - public async Task<ActionResult<WipAtt>> PostWipAtt([FromBody] WipAtt wipatt) + public async Task<ResultModel<WipAtt>> PostWipAtt([FromBody] WipAtt wipatt) { - Helper helper = new Helper(_context); - //WipAtt.wi = helper.GetIDKey("WIP_ID").Result; + ResultModel<WipAtt> result = new ResultModel<WipAtt>(); wipatt.CreateUserID = 0; _context.WipAtts.Add(wipatt); - await _context.SaveChangesAsync(); - - return CreatedAtAction("GetWipAtt", new { id = wipatt.WipNO }, wipatt); + try + { + await _context.SaveChangesAsync(); + result.Success = true; + result.Msg = "OK"; + } + catch (Exception ex) + { + result.Success = false; + result.Msg = ex.Message; + } + return result; } } } diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipBarcodeOthersController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipBarcodeOthersController.cs new file mode 100644 index 00000000..2f476390 --- /dev/null +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipBarcodeOthersController.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Rendering; +using Microsoft.EntityFrameworkCore; +using AMESCoreStudio.WebApi; +using AMESCoreStudio.WebApi.Models.AMES; + +namespace AMESCoreStudio.WebApi.Controllers.AMES +{ + /// <summary> + /// + /// </summary> + [Route("api/[controller]")] + [ApiController] + public class WipBarcodeOthersController : Controller + { + private readonly AMESContext _context; + + /// <summary> + /// + /// </summary> + /// <param name="context"></param> + public WipBarcodeOthersController(AMESContext context) + { + _context = context; + } + + // /// <summary> + // /// 獲取產品別資料 + // /// </summary> + // /// <returns></returns> + // // GET: api/SystemInfoes + // [HttpGet] + // public async Task<ActionResult<IEnumerable<WipBarcodeOther>>> GetWipBarcodeOther() + // { + // IQueryable<WipBarcodeOther> q = _context.WipBarcodeOther; + + // q = q.OrderBy(p => p.WipNO); + + // //q = q.OrderByDescending(p => p.SystemID); + + // var WipBarcodeOther = await q.ToListAsync(); + + // //return await _context.SystemInfoes.ToListAsync(); + + // return WipBarcodeOther; + // } + + ///// <summary> + ///// + ///// </summary> + ///// <param name="UnitNO">生產單位</param> + ///// <param name="WipNO">工單號碼</param> + ///// <returns></returns> + // // GET: api/FlowRules/Unit/S + // [HttpGet("Unit/{UnitNO}/{WipNO}")] + // public async Task<ActionResult<IEnumerable<WipBarcodeOther>>> GetWipBarcodeOtherByUnit(string UnitNO , string WipNO) + // { + // IQueryable<WipInfo> q1 = _context.WipInfos.Where(w => w.UnitNO.Contains(UnitNO) && w.WipNO.Contains(WipNO)); + // IQueryable<WipBarcodeOther> q2 = _context.WipBarcodeOther; + + // //if (no != null) + // //{ + // // if (no != "") + // // { + // // q = q.Where(p => p.UnitNo.Equals(no)); + // // } + // //} + // //q.OrderBy(p => p.FlowRuleName); + + // var flowRule = await q2.ToListAsync(); + + // //if (flowRule == null) + // //{ + // // return NotFound(); + // //} + + // return flowRule; + // } + + + } +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipBoardController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipBoardController.cs index 3b267821..93a93168 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/WipBoardController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipBoardController.cs @@ -37,7 +37,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES /// <param name="id">WipNo</param> /// <returns></returns> [HttpGet("{id}")] - public async Task<ResultModel<WipBoard>> GetWipSystem(string id) + public async Task<ResultModel<WipBoard>> GetWipBoard(string id) { IQueryable<WipBoard> q = _context.WipBoards; @@ -58,12 +58,12 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES /// <param name="wipBoard"></param> /// <returns></returns> [HttpPost] - public async Task<ResultModel<WipBoard>> PostWipLock([FromBody] WipBoard wipBoard) + public async Task<ResultModel<WipBoard>> PostWipBoard([FromBody] WipBoard wipBoard) { ResultModel<WipBoard> result = new ResultModel<WipBoard>(); - _context.WipBoards.Add(wipBoard); try { + _context.WipBoards.Add(wipBoard); await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipInfosController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipInfosController.cs index f1b83442..32b381e3 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/WipInfosController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipInfosController.cs @@ -172,16 +172,28 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES // 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. [HttpPost] - public async Task<ActionResult<WipInfo>> PostWipInfo([FromBody] WipInfo WipInfo) + public async Task<ResultModel<WipInfo>> PostWipInfo([FromBody] WipInfo WipInfo) { + ResultModel<WipInfo> result = new ResultModel<WipInfo>(); Helper helper = new Helper(_context); WipInfo.WipID = helper.GetIDKey("WIP_ID").Result; WipInfo.CreateUserID = 0; _context.WipInfos.Add(WipInfo); - await _context.SaveChangesAsync(); + try + { + await _context.SaveChangesAsync(); + result.Success = true; + result.Msg = "OK"; + } + catch (Exception ex) + { + result.Success = false; + result.Msg = ex.Message; + } + return result; - return CreatedAtAction("GetWipInfo", new { id = WipInfo.WipID }, WipInfo); + //return CreatedAtAction("GetWipInfo", new { id = WipInfo.WipID }, WipInfo); } /// <summary> diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipSopController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipSopController.cs index 5b848740..740f5662 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/WipSopController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipSopController.cs @@ -55,6 +55,66 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES return wipSop; } + /// <summary> + /// SOP文件查詢 + /// </summary> + /// <param name="itemNo">料號</param> + /// <param name="unitNo">生產單位</param> + /// <param name="fileName">檔案名稱</param> + /// <param name="state">狀態</param> + /// <param name="date_str">建立日期起</param> + /// <param name="date_end">建立日期迄</param> + /// <returns></returns> + [Route("[action]")] + [HttpGet] + public async Task<ResultModel<WipSopDto>> GetWipSopQuery(string itemNo = null, string unitNo = null + , string fileName = null, string state = null, string date_str = null, string date_end = null) + { + IQueryable<WipSop> q = _context.WipSops; + + if (!string.IsNullOrWhiteSpace(itemNo)) + q = q.Where(w => w.ItemNo == itemNo); + + if (!string.IsNullOrWhiteSpace(unitNo)) + q = q.Where(w => w.UnitNo == unitNo); + + if (!string.IsNullOrWhiteSpace(fileName)) + q = q.Where(w => w.FileName.Contains(fileName)); + + if (!string.IsNullOrWhiteSpace(state)) + q = q.Where(w => w.State == state); + + + DateTime dateValue; + if (DateTime.TryParse(date_str, out dateValue)) + { + q = q.Where(w => w.CreateDate >= DateTime.Parse(date_str)); + } + + if (DateTime.TryParse(date_end, out dateValue)) + { + q = q.Where(w => w.CreateDate <= DateTime.Parse(date_end)); + } + + ResultModel<WipSopDto> result = new ResultModel<WipSopDto>(); + result.Data = await q.Select(s => new WipSopDto + { + WipSopID = s.WipSopID, + ItemNo = s.ItemNo, + UnitName = s.FactoryUnit.UnitName, + FileName = s.FileName, + FilePath = s.FilePath, + State = s.State == "Y" ? "使用中" : "停用", + NewName = s.NewName, + CreateDate = s.CreateDate, + CreateUserID = s.CreateUserID, + UpdateDate = s.UpdateDate, + UpdateUserID = s.UpdateUserID + }).ToListAsync(); + + return result; + } + [HttpPost] public async Task<ResultModel<WipSop>> PostWipSop([FromBody] WipSop wipsop) { @@ -79,9 +139,36 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES } // PUT api/<WipSopController>/5 - [HttpPut("{id}")] - public void Put(int id, [FromBody] string value) + [HttpPut("{id}/{state}")] + public async Task<ResultModel<WipSop>> PutWipSop(int id, string state) { + ResultModel<WipSop> result = new ResultModel<WipSop>(); + var wipSop = new WipSop { + WipSopID = id, + State = state, + UpdateUserID = 1, + UpdateDate = System.DateTime.Now + + }; + _context.Attach(wipSop); + + // 指定更新某個欄位 + _context.Entry(wipSop).Property(p => p.State).IsModified = true; + _context.Entry(wipSop).Property(p => p.UpdateUserID).IsModified = true; + _context.Entry(wipSop).Property(p => p.UpdateDate).IsModified = true; + + try + { + await _context.SaveChangesAsync(); + result.Success = true; + result.Msg = "OK"; + } + catch (Exception ex) + { + result.Success = false; + result.Msg = ex.Message; + } + return result; } // DELETE api/<WipSopController>/5 diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipSystemController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipSystemController.cs index 9266273e..5ea0503c 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/WipSystemController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipSystemController.cs @@ -55,7 +55,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES /// <param name="wipSystem"></param> /// <returns></returns> [HttpPost] - public async Task<ResultModel<WipSystem>> PostWipLock([FromBody] WipSystem wipSystem) + public async Task<ResultModel<WipSystem>> PostWipSystem([FromBody] WipSystem wipSystem) { ResultModel<WipSystem> result = new ResultModel<WipSystem>(); _context.WipSystems.Add(wipSystem); diff --git a/AMESCoreStudio.WebApi/DTO/AMES/MaterialKpDtp.cs b/AMESCoreStudio.WebApi/DTO/AMES/MaterialKpDtp.cs new file mode 100644 index 00000000..21365780 --- /dev/null +++ b/AMESCoreStudio.WebApi/DTO/AMES/MaterialKpDtp.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace AMESCoreStudio.WebApi.DTO.AMES +{ + /// <summary> + /// MaterialKpDtp Select Dto + /// </summary> + public class MaterialKpDto + { + /// <summary> + /// 料號KP_ID + /// </summary> + + public int MaterialKpID { get; set; } + + /// <summary> + /// 料號Name + /// </summary> + + public string ItemName { get; set; } + + /// <summary> + /// KP料號名稱 + /// </summary> + + public string KpName { get; set; } + + /// <summary> + /// KP料號NO + /// </summary> + + public string KpNo { get; set; } + + /// <summary> + /// 順序 + /// </summary> + + public int KpSeq { get; set; } + + /// <summary> + /// 前置碼 + /// </summary> + + public string Title { get; set; } + + /// <summary> + /// 長度 + /// </summary> + + public int Length { get; set; } + + /// <summary> + /// 站(前段) + /// </summary> + + public string Station { get; set; } + + /// <summary> + /// 創建者ID + /// </summary> + + public int CreateUserID { get; set; } = 0; + + /// <summary> + /// 創建日期 + /// </summary> + + public DateTime CreateDate { get; set; } = System.DateTime.Now; + + /// <summary> + /// 更新者ID + /// </summary> + + public int UpdateUserID { get; set; } = 0; + + /// <summary> + /// 更新日期 + /// </summary> + + public DateTime UpdateDate { get; set; } = System.DateTime.Now; + + } +} diff --git a/AMESCoreStudio.WebApi/DTO/AMES/WipSopDto.cs b/AMESCoreStudio.WebApi/DTO/AMES/WipSopDto.cs new file mode 100644 index 00000000..d25c8c76 --- /dev/null +++ b/AMESCoreStudio.WebApi/DTO/AMES/WipSopDto.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace AMESCoreStudio.WebApi.DTO.AMES +{ + /// <summary> + /// WipInfo Select Dto + /// </summary> + public class WipSopDto + { + + /// <summary> + /// WIP_SOP_ID + /// </summary> + public int WipSopID { get; set; } + + /// <summary> + /// 料號 + /// </summary> + public string ItemNo { get; set; } + + /// <summary> + /// 生產單位 + /// </summary> + public string UnitName { get; set; } + + /// <summary> + /// 上傳檔案名稱 + /// </summary> + public string FileName { get; set; } + + /// <summary> + /// 存放檔案名稱 + /// </summary> + public string NewName { get; set; } + + /// <summary> + /// 檔案路徑 + /// </summary> + public string FilePath { get; set; } + + /// <summary> + /// Y:使用中N:停用 + /// </summary> + public string State { get; set; } = "Y"; + + /// <summary> + /// 建立UserID + /// </summary> + public int CreateUserID { get; set; } = 0; + + /// <summary> + /// 建立日期 + /// </summary> + public DateTime CreateDate { get; set; } = System.DateTime.Now; + + /// <summary> + /// 更新UserID + /// </summary> + public int UpdateUserID { get; set; } + + /// <summary> + /// 更新日期 + /// </summary> + public DateTime? UpdateDate { get; set; } + + } +} diff --git a/AMESCoreStudio.WebApi/Models/AMES/BarcodeChange.cs b/AMESCoreStudio.WebApi/Models/AMES/BarcodeChange.cs index 8f722126..936653ec 100644 --- a/AMESCoreStudio.WebApi/Models/AMES/BarcodeChange.cs +++ b/AMESCoreStudio.WebApi/Models/AMES/BarcodeChange.cs @@ -15,6 +15,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES /// <summary> /// 條碼ID /// </summary> + [Key] [Column("BARCODE_ID")] [DataMember] [Display(Name = "條碼ID")] diff --git a/AMESCoreStudio.WebApi/Models/AMES/MaterialKp.cs b/AMESCoreStudio.WebApi/Models/AMES/MaterialKp.cs index 90123e35..b19b1a0c 100644 --- a/AMESCoreStudio.WebApi/Models/AMES/MaterialKp.cs +++ b/AMESCoreStudio.WebApi/Models/AMES/MaterialKp.cs @@ -112,5 +112,17 @@ namespace AMESCoreStudio.WebApi.Models.AMES [Column("UPDATE_DATE", TypeName = "DATE")] [DataMember] public DateTime UpdateDate { get; set; } = System.DateTime.Now; + + /// <summary> + /// 料號主檔 + /// </summary> + [ForeignKey("ItemID")] + public virtual MaterialItem MaterialItem { get; set; } + + /// <summary> + /// 工單機種資料 + /// </summary> + [ForeignKey("StationType")] + public virtual AMESCoreStudio.WebApi.Models.BAS.StationType StationTypeList { get; set; } } } diff --git a/AMESCoreStudio.WebApi/Models/AMES/WipAtt.cs b/AMESCoreStudio.WebApi/Models/AMES/WipAtt.cs index e0c2f99f..862c9e44 100644 --- a/AMESCoreStudio.WebApi/Models/AMES/WipAtt.cs +++ b/AMESCoreStudio.WebApi/Models/AMES/WipAtt.cs @@ -96,21 +96,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES [Display(Name = "機種")] public string ModelNO { get; set; } - /// <summary> - /// BIOS Ver - /// </summary> - [Column("BIOS_VER")] - [DataMember] - [Display(Name = "BIOS Ver")] - public string BIOSVer { get; set; } - - /// <summary> - /// CS - /// </summary> - [Column("CS")] - [DataMember] - [Display(Name = "CS")] - public string CS { get; set; } /// <summary> /// EAN diff --git a/AMESCoreStudio.WebApi/Models/AMES/WipBoard.cs b/AMESCoreStudio.WebApi/Models/AMES/WipBoard.cs index c78ca77d..280782ab 100644 --- a/AMESCoreStudio.WebApi/Models/AMES/WipBoard.cs +++ b/AMESCoreStudio.WebApi/Models/AMES/WipBoard.cs @@ -36,7 +36,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES /// <summary> /// SMD點膠 /// </summary> - [Column("SMD", TypeName = "NUMBER")] + [Column("SMD")] [DataMember] [Display(Name = "SMD點膠")] public int Smd { get; set; } diff --git a/AMESCoreStudio.WebApi/Models/AMES/WipSop.cs b/AMESCoreStudio.WebApi/Models/AMES/WipSop.cs index 6edc8540..4c62486c 100644 --- a/AMESCoreStudio.WebApi/Models/AMES/WipSop.cs +++ b/AMESCoreStudio.WebApi/Models/AMES/WipSop.cs @@ -34,7 +34,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES public string ItemNo { get; set; } /// <summary> - /// 生產單位 + /// 生產單位ID /// </summary> [Display(Name = "生產單位")] [Required] @@ -44,15 +44,25 @@ namespace AMESCoreStudio.WebApi.Models.AMES public string UnitNo { get; set; } /// <summary> - /// 檔案名稱 + /// 上傳檔案名稱 /// </summary> - [Display(Name = "文件名稱")] + [Display(Name = "檔案名稱")] [Required] [Column("FILENAME")] [StringLength(100)] [DataMember] public string FileName { get; set; } + /// <summary> + /// 存放檔案名稱 + /// </summary> + [Display(Name = "存放檔案名稱")] + [Required] + [Column("NEWNAME")] + [StringLength(100)] + [DataMember] + public string NewName { get; set; } + /// <summary> /// 檔案路徑 /// </summary> @@ -102,6 +112,10 @@ namespace AMESCoreStudio.WebApi.Models.AMES [DataMember] public DateTime? UpdateDate { get; set; } - + /// <summary> + /// 生產單位資料 + /// </summary> + [ForeignKey("UnitNo")] + public virtual AMESCoreStudio.WebApi.Models.BAS.FactoryUnit FactoryUnit { get; set; } } } diff --git a/AMESCoreStudio.WebApi/Models/AMESContext.cs b/AMESCoreStudio.WebApi/Models/AMESContext.cs index 261d1abd..a4f5152c 100644 --- a/AMESCoreStudio.WebApi/Models/AMESContext.cs +++ b/AMESCoreStudio.WebApi/Models/AMESContext.cs @@ -340,6 +340,11 @@ namespace AMESCoreStudio.WebApi /// 工單資訊-系統組裝工程資訊 /// </summary> public virtual DbSet<WipSystem> WipSystems { get; set; } + + /// <summary> + /// 工單資訊-系統組裝工程資訊 + /// </summary> + public virtual DbSet<BarcodeChange> BarcodeChanges { get; set; } } }