Browse Source

1. 加入板卡資訊

PTD
ray 3 years ago
parent
commit
bfab0a97f8
  1. 368
      AMESCoreStudio.Web/Controllers/PCSController.cs
  2. 3
      AMESCoreStudio.Web/ViewModels/PCS/WipViewModel.cs
  3. 142
      AMESCoreStudio.Web/Views/PCS/PCS001.cshtml
  4. 142
      AMESCoreStudio.Web/Views/PCS/PCS001R.cshtml
  5. 134
      AMESCoreStudio.Web/Views/PCS/PCS003.cshtml
  6. 3
      AMESCoreStudio.WebApi/Controllers/AMES/MaterialSopController.cs
  7. 2
      AMESCoreStudio.WebApi/Controllers/AMES/WipSopController.cs
  8. 135
      AMESCoreStudio.WebApi/Enums/EnumPCS.cs
  9. 2
      AMESCoreStudio.WebApi/Models/AMES/WipBarcode.cs
  10. 124
      AMESCoreStudio.WebApi/Models/AMES/WipBoard.cs
  11. 11
      AMESCoreStudio.WebApi/Models/AMES/WipLabel.cs

368
AMESCoreStudio.Web/Controllers/PCSController.cs

@ -17,6 +17,7 @@ using System.ComponentModel.DataAnnotations;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using AMESCoreStudio.WebApi.Enum;
namespace AMESCoreStudio.Web.Controllers
{
@ -480,63 +481,6 @@ namespace AMESCoreStudio.Web.Controllers
ViewBag.GetWipTypeList = WipType;
}
/// <summary>
/// SMD點膠
/// </summary>
/// <returns></returns>
private void GetSMDType()
{
var SMDType = new List<SelectListItem>(){
new SelectListItem() {
Text = "A面全點",
Value = "0",
},
new SelectListItem
{
Text = "B面全點單",
Value = "1",
},
new SelectListItem
{
Text = "A面部分點膠",
Value = "2",
},
new SelectListItem
{
Text = "B面部分點膠",
Value = "3",
}
,
new SelectListItem
{
Text = "不需點膠",
Value = "4",
}
};
ViewBag.GetSMDTypeList = SMDType;
}
/// <summary>
/// DIP
/// </summary>
private void GetDIPType()
{
var DIPType = new List<SelectListItem>(){
new SelectListItem() {
Text = "正面",
Value = "正面",
},
new SelectListItem
{
Text = "背面",
Value = "背面",
}
};
ViewBag.GetDIPTypeList = DIPType;
}
/// <summary>
/// 燒錄
/// </summary>
@ -593,85 +537,69 @@ namespace AMESCoreStudio.Web.Controllers
}
/// <summary>
/// PCB烘烤
/// 工單資訊 板卡資訊 PCB烘烤
/// </summary>
private void GetPCBBakeType()
{
var PCBBakeType = new List<SelectListItem>(){
new SelectListItem() {
Text = "依廠內規範",
Value = "0",
},
new SelectListItem
{
Text = "125℃/2H",
Value = "1",
},
new SelectListItem
/// <param name="SelectedValue"></param>
private void GetPCBBakeTypeSelect(string SelectedValue = null)
{
Text = "120℃/1H(FPC)",
Value = "2",
},
new SelectListItem
List<string> values = new List<string>();
if (SelectedValue != null)
{
Text = "其他",
Value = "3",
values = SelectedValue.Split(',').ToList();
}
};
var q = Enum.GetValues(typeof(EnumPCS.EnumWipBoardPCBBakeType)).Cast<EnumPCS.EnumWipBoardPCBBakeType>()
.Select(s => new SelectListItem
{
Text = EnumPCS.GetDisplayName(s).ToString(),
Value = s.ToString()
}).ToList();
ViewBag.GetPCBBakeTypeList = PCBBakeType;
ViewBag.GetPCBBakeTypeSelect = q;
}
/// <summary>
/// PCB加工
/// 工單資訊 板卡資訊 PCB加工
/// </summary>
private void GetPCBWorkingType()
{
var PCBWorkingType = new List<SelectListItem>(){
new SelectListItem() {
Text = "噴印字樣",
Value = "噴印字樣",
},
new SelectListItem
/// <param name="SelectedValue"></param>
private void GetPCBProcessingTypeSelect(string SelectedValue = null)
{
Text = "其他",
Value = "其他",
},
new SelectListItem
List<string> values = new List<string>();
if (SelectedValue != null)
{
Text = "不需加工",
Value = "不需加工",
values = SelectedValue.Split(',').ToList();
}
};
var q = Enum.GetValues(typeof(EnumPCS.EnumWipBoardPCBProcessingType)).Cast<EnumPCS.EnumWipBoardPCBProcessingType>()
.Select(s => new SelectListItem
{
Text = EnumPCS.GetDisplayName(s).ToString(),
Value = s.ToString()
}).ToList();
ViewBag.GetPCBWorkingTypeList = PCBWorkingType;
ViewBag.GetPCBProcessingTypeSelect = q;
}
/// <summary>
/// 錫膏
/// 工單資訊 板卡資訊 錫膏
/// </summary>
private void GetSolderPaste()
{
var SolderPaste = new List<SelectListItem>(){
new SelectListItem() {
Text = "KOKI無鉛錫膏(S3X58-M406-3)",
Value = "0",
},
new SelectListItem
/// <param name="SelectedValue"></param>
private void GetSolderPasteSelect(string SelectedValue = null)
{
Text = "千住無鉛錫膏(M705-221BM5-32-11.5Ka3)",
Value = "1",
},
new SelectListItem
List<string> values = new List<string>();
if (SelectedValue != null)
{
Text = "其他",
Value = "2",
values = SelectedValue.Split(',').ToList();
}
};
var q = Enum.GetValues(typeof(EnumPCS.EnumWipBoardSolderPasteType)).Cast<EnumPCS.EnumWipBoardSolderPasteType>()
.Select(s => new SelectListItem
{
Text = EnumPCS.GetDisplayName(s).ToString(),
Value = s.ToString()
}).ToList();
ViewBag.GetSolderPasteList = SolderPaste;
ViewBag.GetSolderPasteSelect = q;
}
/// <summary>
/// 工單資訊 系統工程資訊 PMType
/// </summary>
@ -683,11 +611,11 @@ namespace AMESCoreStudio.Web.Controllers
{
values = SelectedValue.Split(',').ToList();
}
var q = Enum.GetValues(typeof(Enums.EnumWipSystemPMType)).Cast<Enums.EnumWipSystemPMType>()
var q = Enum.GetValues(typeof(EnumPCS.EnumWipSystemPMType)).Cast<EnumPCS.EnumWipSystemPMType>()
.Select(s => new SelectListItem
{
Text = Enums.GetDisplayName(s).ToString(),
Value = Convert.ToInt32(Enum.Parse(typeof(Enums.EnumWipSystemPMType), s.ToString())).ToString()
Text = EnumPCS.GetDisplayName(s).ToString(),
Value = Convert.ToInt32(Enum.Parse(typeof(EnumPCS.EnumWipSystemPMType), s.ToString())).ToString()
}).ToList();
ViewBag.GetWipSystemPMTypeSelect = q;
@ -704,11 +632,11 @@ namespace AMESCoreStudio.Web.Controllers
{
values = SelectedValue.Split(',').ToList();
}
var q = Enum.GetValues(typeof(Enums.EnumWipSystemType)).Cast<Enums.EnumWipSystemType>()
var q = Enum.GetValues(typeof(EnumPCS.EnumWipSystemType)).Cast<EnumPCS.EnumWipSystemType>()
.Select(s => new SelectListItem
{
Text = Enums.GetDisplayName(s).ToString(),
Value = Convert.ToInt32(Enum.Parse(typeof(Enums.EnumWipSystemType), s.ToString())).ToString()
Text = EnumPCS.GetDisplayName(s).ToString(),
Value = Convert.ToInt32(Enum.Parse(typeof(EnumPCS.EnumWipSystemType), s.ToString())).ToString()
}).ToList();
ViewBag.GetWipSystemTypeSelect = q;
@ -725,51 +653,16 @@ namespace AMESCoreStudio.Web.Controllers
{
values = SelectedValue.Split(',').ToList();
}
var q = Enum.GetValues(typeof(Enums.EnumWipSopType)).Cast<Enums.EnumWipSopType>()
var q = Enum.GetValues(typeof(EnumPCS.EnumWipSopType)).Cast<EnumPCS.EnumWipSopType>()
.Select(s => new SelectListItem
{
Text = Enums.GetDisplayName(s).ToString(),
Text = EnumPCS.GetDisplayName(s).ToString(),
Value = s.ToString()
}).ToList();
ViewBag.GetSOPTypeSelect = q;
}
/// <summary>
/// PCS001 SOP相關下拉
/// </summary>
private void GetPCSOPList()
{
var PCSOPList = new List<SelectListItem>(){
new SelectListItem() {
Text = "SOP",
Value = "SOP",
},
new SelectListItem
{
Text = "技術轉移",
Value = "技術轉移",
},
new SelectListItem
{
Text = "NA",
Value = "NA",
},
new SelectListItem
{
Text = "暫時文件",
Value = "備暫時文件",
},
new SelectListItem
{
Text = "備註說明",
Value = "備註說明",
}
};
ViewBag.PCSOPList = PCSOPList;
}
/// <summary>
/// 工單鎖定-鎖定類型
/// </summary>
@ -854,10 +747,10 @@ namespace AMESCoreStudio.Web.Controllers
values = SelectedValue.Split(',').ToList();
}
var q = Enum.GetValues(typeof(Enums.EnumPrintMode)).Cast<Enums.EnumPrintMode>()
var q = Enum.GetValues(typeof(EnumPCS.EnumPrintMode)).Cast<EnumPCS.EnumPrintMode>()
.Select(s => new SelectListItem
{
Text = Enums.GetDisplayName(s).ToString(),
Text = EnumPCS.GetDisplayName(s).ToString(),
Value = s.ToString(),
Selected = values.Where(v => v.Contains(s.ToString())).Count() != 0
}).ToList();
@ -876,10 +769,10 @@ namespace AMESCoreStudio.Web.Controllers
{
values = SelectedValue.Split(',').ToList();
}
var q = Enum.GetValues(typeof(Enums.EnumApproveLogo)).Cast<Enums.EnumApproveLogo>()
var q = Enum.GetValues(typeof(EnumPCS.EnumApproveLogo)).Cast<EnumPCS.EnumApproveLogo>()
.Select(s => new SelectListItem
{
Text = Enums.GetDisplayName(s).ToString(),
Text = EnumPCS.GetDisplayName(s).ToString(),
Value = s.ToString(),
Selected = values.Where(v => v.Contains(s.ToString())).Count() != 0
}).ToList();
@ -899,10 +792,10 @@ namespace AMESCoreStudio.Web.Controllers
values = SelectedValue.Split(',').ToList();
}
var q = Enum.GetValues(typeof(Enums.EnumCompanyLogo)).Cast<Enums.EnumCompanyLogo>()
var q = Enum.GetValues(typeof(EnumPCS.EnumCompanyLogo)).Cast<EnumPCS.EnumCompanyLogo>()
.Select(s => new SelectListItem
{
Text = Enums.GetDisplayName(s).ToString(),
Text = EnumPCS.GetDisplayName(s).ToString(),
Value = s.ToString(),
Selected = values.Where(v => v.Contains(s.ToString())).Count() != 0
}).ToList();
@ -918,16 +811,60 @@ namespace AMESCoreStudio.Web.Controllers
values = SelectedValue.Split(',').ToList();
}
var q = Enum.GetValues(typeof(Enums.EnumWipAttr)).Cast<Enums.EnumWipAttr>()
var q = Enum.GetValues(typeof(EnumPCS.EnumWipAttr)).Cast<EnumPCS.EnumWipAttr>()
.Select(s => new SelectListItem
{
Text = Enums.GetDisplayName(s).ToString(),
Text = EnumPCS.GetDisplayName(s).ToString(),
Value = s.ToString(),
Selected = values.Where(v => v.Contains(s.ToString())).Count() != 0
}).ToList();
ViewBag.GetCheckboxWipAttr = q;
}
/// <summary>
/// SMD點膠
/// </summary>
/// <param name="SelectedValue"></param>
private void GetCheckboxSMD(string SelectedValue = null)
{
List<string> values = new List<string>();
if (SelectedValue != null)
{
values = SelectedValue.Split(',').ToList();
}
var q = Enum.GetValues(typeof(EnumPCS.EnumWipBoardSMDType)).Cast<EnumPCS.EnumWipBoardSMDType>()
.Select(s => new SelectListItem
{
Text = EnumPCS.GetDisplayName(s).ToString(),
Value = s.ToString(),
Selected = values.Where(v => v.Contains(s.ToString())).Count() != 0
}).ToList();
ViewBag.GetCheckboxSMD = q;
}
/// <summary>
/// DIP
/// </summary>
/// <param name="SelectedValue"></param>
private void GetCheckboxDIP(string SelectedValue = null)
{
List<string> values = new List<string>();
if (SelectedValue != null)
{
values = SelectedValue.Split(',').ToList();
}
var q = Enum.GetValues(typeof(EnumPCS.EnumWipBoardDIPType)).Cast<EnumPCS.EnumWipBoardDIPType>()
.Select(s => new SelectListItem
{
Text = EnumPCS.GetDisplayName(s).ToString(),
Value = s.ToString(),
Selected = values.Where(v => v.Contains(s.ToString())).Count() != 0
}).ToList();
ViewBag.GetCheckboxDIP = q;
}
#endregion
#region resut Ajax JSON
@ -997,10 +934,10 @@ namespace AMESCoreStudio.Web.Controllers
[HttpPost]
public JsonResult GetSOPTypeJson(string id, string search)
{
var q = Enum.GetValues(typeof(Enums.EnumWipSopType)).Cast<Enums.EnumWipSopType>()
var q = Enum.GetValues(typeof(EnumPCS.EnumWipSopType)).Cast<EnumPCS.EnumWipSopType>()
.Select(s => new SelectListItem
{
Text = Enums.GetDisplayName(s).ToString(),
Text = EnumPCS.GetDisplayName(s).ToString(),
Value = s.ToString()
}).ToList();
@ -1146,16 +1083,13 @@ namespace AMESCoreStudio.Web.Controllers
await GetMFGType();
await GetProcessTypes();
await GetFlowRuleList();
GetSMDType();
GetDIPType();
GetWipSEQType();
GetBurnType();
GetPartsBakeType();
GetPCBBakeType();
GetPCBWorkingType();
GetSolderPaste();
GetPCBBakeTypeSelect();
GetPCBProcessingTypeSelect();
GetSolderPasteSelect();
GetWipType();
GetPCSOPList();
GetSOPTypeSelect();
GetWipSystemTypeSelect();
GetWipSystemPMTypeSelect();
@ -1163,6 +1097,8 @@ namespace AMESCoreStudio.Web.Controllers
GetCheckboxCompanyLogo();
GetCheckboxPrintMode();
GetCheckboxWipAttr();
GetCheckboxDIP();
GetCheckboxSMD();
//var result = new WipAllViewModel();
//return View(result);
@ -1181,16 +1117,14 @@ namespace AMESCoreStudio.Web.Controllers
await GetMFGType();
await GetProcessTypes();
await GetFlowRuleList();
GetSMDType();
GetDIPType();
GetWipSEQType();
GetBurnType();
GetPartsBakeType();
GetPCBBakeType();
GetPCBWorkingType();
GetSolderPaste();
GetPCBBakeTypeSelect();
GetPCBProcessingTypeSelect();
GetSolderPasteSelect();
GetWipType();
GetPCSOPList();
GetSOPTypeSelect();
GetWipSystemTypeSelect();
GetWipSystemPMTypeSelect();
@ -1198,6 +1132,8 @@ namespace AMESCoreStudio.Web.Controllers
GetCheckboxCompanyLogo();
GetCheckboxPrintMode();
GetCheckboxWipAttr();
GetCheckboxDIP();
GetCheckboxSMD();
#endregion
IResultModel result;
@ -1212,6 +1148,8 @@ namespace AMESCoreStudio.Web.Controllers
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.SmdSolderMask = model.wipBoard.SmdSolderMask == "true" ? "Y" : "N";
model.wipBoard.ISPartsBake = model.wipBoard.ISPartsBake == "true" ? "Y" : "N";
//系統
model.wipSystem.FinePackage = model.wipSystem.FinePackage == "true" ? "Y" : "N";
@ -1240,7 +1178,10 @@ namespace AMESCoreStudio.Web.Controllers
//板卡
model.wipBoard.DipCarrier = model.wipBoard.DipCarrier == "Y" ? "true" : "false";
model.wipBoard.DipTape = model.wipBoard.DipTape == "Y" ? "true" : "false";
model.wipBoard.SmdSolderMask = model.wipBoard.SmdSolderMask == "Y" ? "true" : "false";
model.wipBoard.ISPartsBake = model.wipBoard.ISPartsBake == "Y" ? "true" : "false";
model.wipBoard.Burn = model.wipBoard.Burn == "Y" ? "true" : "false";
//系統
model.wipSystem.FinePackage = model.wipSystem.FinePackage == "Y" ? "true" : "false";
ModelState.AddModelError("error", Msg);
@ -1300,6 +1241,8 @@ namespace AMESCoreStudio.Web.Controllers
{
if (!string.IsNullOrWhiteSpace(model.wipBoard.BiTemperature))
{
model.wipBoard.Smd = model.wipBoard.SMDs == null ? null : string.Join(',', model.wipBoard.SMDs);
model.wipBoard.DipSide = model.wipBoard.DipSides == null ? null : string.Join(',', model.wipBoard.DipSides);
model.wipBoard.ItemNo = model.wipAtt.ItemNO;
model.wipBoard.WipNo = model.wipInfo.WipNO;
await _pcsApi.PostWipBoard(JsonConvert.SerializeObject(model.wipBoard));
@ -1437,16 +1380,13 @@ namespace AMESCoreStudio.Web.Controllers
await GetMFGType();
await GetProcessTypes();
await GetFlowRuleList();
GetSMDType();
GetDIPType();
GetWipSEQType();
GetBurnType();
GetPartsBakeType();
GetPCBBakeType();
GetPCBWorkingType();
GetSolderPaste();
GetPCBBakeTypeSelect();
GetPCBProcessingTypeSelect();
GetSolderPasteSelect();
GetWipType();
GetPCSOPList();
GetSOPTypeSelect();
GetWipSystemTypeSelect();
GetWipSystemPMTypeSelect();
@ -1454,6 +1394,8 @@ namespace AMESCoreStudio.Web.Controllers
GetCheckboxCompanyLogo();
GetCheckboxPrintMode();
GetCheckboxWipAttr();
GetCheckboxDIP();
GetCheckboxSMD();
model.wipAtt = await _pcsApi.GetWipAtt(model.wipInfo.WipNO);
model.wipBarcodes = await _pcsApi.GetWipBarcode(model.wipInfo.WipNO);
@ -1496,19 +1438,25 @@ namespace AMESCoreStudio.Web.Controllers
model.wipBoard = await _pcsApi.GetWipBoard(model.wipInfo.WipNO);
if (model.wipBoard != null)
{
if (!string.IsNullOrWhiteSpace(model.wipBoard.Engineer))
{
var UserInof = _sysApi.GetUserInfoByUserNo(model.wipBoard.Engineer).InvokeAsync().Result;
if (UserInof != null)
model.wipBoard.Engineer_Name = UserInof.UserName;
}
}
model.wipSystem = await _pcsApi.GetWipSystem(model.wipInfo.WipNO);
if (model.wipSystem != null)
{
if (!string.IsNullOrWhiteSpace(model.wipBoard.Engineer))
{
var UserInof = _sysApi.GetUserInfoByUserNo(model.wipSystem.Engineer).InvokeAsync().Result;
if (UserInof != null)
model.wipSystem.Engineer_Name = UserInof.UserName;
}
}
model.wipMAC = await _pcsApi.GetWipMAC(model.wipInfo.WipNO);
@ -1532,22 +1480,21 @@ namespace AMESCoreStudio.Web.Controllers
await GetMFGType();
await GetProcessTypes();
await GetFlowRuleList();
GetSMDType();
GetDIPType();
GetWipSEQType();
GetBurnType();
GetPartsBakeType();
GetPCBBakeType();
GetPCBWorkingType();
GetSolderPaste();
GetPCBBakeTypeSelect();
GetPCBProcessingTypeSelect();
GetSolderPasteSelect();
GetWipType();
GetPCSOPList();
GetWipSystemTypeSelect();
GetWipSystemPMTypeSelect();
GetCheckboxApproveLogo(model.wipLabel != null ? model.wipLabel.ApproveLogo : null);
GetCheckboxCompanyLogo(model.wipLabel != null ? model.wipLabel.CompanyLogo : null);
GetCheckboxPrintMode(model.wipLabel != null ? model.wipLabel.PrintMode : null);
GetCheckboxWipAttr(model.wipLabel != null ? model.wipLabel.WipAttr : null);
GetCheckboxDIP(model.wipBoard != null ? model.wipBoard.DipSide : null);
GetCheckboxSMD(model.wipBoard != null ? model.wipBoard.Smd : null);
return View(model);
}
@ -1578,13 +1525,23 @@ namespace AMESCoreStudio.Web.Controllers
model.wipBoard = await _pcsApi.GetWipBoard(model.wipInfo.WipNO);
if (model.wipBoard != null)
{
model.wipBoard.Engineer_Name = _sysApi.GetUserInfoByUserNo(model.wipBoard.Engineer).InvokeAsync().Result.UserName;
if (!string.IsNullOrWhiteSpace(model.wipBoard.Engineer))
{
var UserInof = _sysApi.GetUserInfoByUserNo(model.wipBoard.Engineer).InvokeAsync().Result;
if (UserInof != null)
model.wipBoard.Engineer_Name = UserInof.UserName;
}
}
model.wipSystem = await _pcsApi.GetWipSystem(model.wipInfo.WipNO);
if (model.wipSystem != null)
{
model.wipSystem.Engineer_Name = _sysApi.GetUserInfoByUserNo(model.wipSystem.Engineer).InvokeAsync().Result.UserName;
if (!string.IsNullOrWhiteSpace(model.wipBoard.Engineer))
{
var UserInof = _sysApi.GetUserInfoByUserNo(model.wipSystem.Engineer).InvokeAsync().Result;
if (UserInof != null)
model.wipSystem.Engineer_Name = UserInof.UserName;
}
}
model.wipMAC = await _pcsApi.GetWipMAC(model.wipInfo.WipNO);
@ -1607,23 +1564,22 @@ namespace AMESCoreStudio.Web.Controllers
await GetMFGType();
await GetProcessTypes();
await GetFlowRuleList();
GetSMDType();
GetDIPType();
GetWipSEQType();
GetBurnType();
GetPartsBakeType();
GetPCBBakeType();
GetPCBWorkingType();
GetSolderPaste();
GetPCBBakeTypeSelect();
GetPCBProcessingTypeSelect();
GetSolderPasteSelect();
GetWipType();
GetWipSystemTypeSelect();
GetWipSystemPMTypeSelect();
GetPCSOPList();
GetSOPTypeSelect();
GetCheckboxApproveLogo(model.wipLabel != null ? model.wipLabel.ApproveLogo : null);
GetCheckboxCompanyLogo(model.wipLabel != null ? model.wipLabel.CompanyLogo : null);
GetCheckboxPrintMode(model.wipLabel != null ? model.wipLabel.PrintMode : null);
GetCheckboxWipAttr(model.wipLabel != null ? model.wipLabel.WipAttr : null);
GetCheckboxDIP(model.wipBoard != null ? model.wipBoard.DipSide : null);
GetCheckboxSMD(model.wipBoard != null ? model.wipBoard.Smd : null);
return View(model);
}
[HttpPost]
@ -1639,23 +1595,23 @@ namespace AMESCoreStudio.Web.Controllers
await GetMFGType();
await GetProcessTypes();
await GetFlowRuleList();
GetSMDType();
GetDIPType();
GetWipSEQType();
GetBurnType();
GetPartsBakeType();
GetPCBBakeType();
GetPCBWorkingType();
GetSolderPaste();
GetPCBBakeTypeSelect();
GetPCBProcessingTypeSelect();
GetSolderPasteSelect();
GetWipType();
GetWipSystemTypeSelect();
GetPCSOPList();
GetSOPTypeSelect();
GetCheckboxApproveLogo();
GetCheckboxCompanyLogo();
GetCheckboxPrintMode();
GetCheckboxWipAttr();
GetCheckboxDIP();
GetCheckboxSMD();
GetWipSystemPMTypeSelect();
#endregion
model.ruleStations = await _pcsApi.GetRuleStationByWipNo(model.wipInfo.WipNO);
@ -1673,6 +1629,8 @@ namespace AMESCoreStudio.Web.Controllers
model.wipBoard.DipCarrier = model.wipBoard.DipCarrier == "on" ? "Y" : "N";
model.wipBoard.DipTape = model.wipBoard.DipTape == "on" ? "Y" : "N";
model.wipBoard.Burn = model.wipBoard.Burn == "on" ? "Y" : "N";
model.wipBoard.SmdSolderMask = model.wipBoard.SmdSolderMask == "on" ? "Y" : "N";
model.wipBoard.ISPartsBake = model.wipBoard.ISPartsBake == "on" ? "Y" : "N";
//系統
model.wipSystem.FinePackage = model.wipSystem.FinePackage == "on" ? "Y" : "N";
@ -1742,6 +1700,8 @@ namespace AMESCoreStudio.Web.Controllers
{
if (!string.IsNullOrWhiteSpace(model.wipBoard.BiTemperature))
{
model.wipBoard.Smd = model.wipBoard.SMDs == null ? null : string.Join(',', model.wipBoard.SMDs);
model.wipBoard.DipSide = model.wipBoard.DipSides == null ? null : string.Join(',', model.wipBoard.DipSides);
model.wipBoard.ItemNo = model.wipAtt.ItemNO;
model.wipBoard.WipNo = model.wipInfo.WipNO;
await _pcsApi.PutWipBoard(JsonConvert.SerializeObject(model.wipBoard));

3
AMESCoreStudio.Web/ViewModels/PCS/WipViewModel.cs

@ -21,6 +21,7 @@ namespace AMESCoreStudio.Web.ViewModels.PCS
WipOutfits = new List<WipOutfitDto>();
wipMAC = new WipMAC();
wipBarcodeOther = new WipBarcodeOther();
}
/// <summary>
@ -82,7 +83,7 @@ namespace AMESCoreStudio.Web.ViewModels.PCS
{
public WipDataViewModel()
{
wipInfo = new WipInfo();
}
/// <summary>

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

@ -21,7 +21,8 @@
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="layui-form-item" style="padding-left:30px">
<input @(Model.wipInfo.InputFlag == "Y" ? "checked" : "") type="checkbox" title="判斷前製程是否已經投入" name="wipInfo.InputFlag" />
@*<input @if (Model.wipInfo != null) { @(Model.wipInfo.InputFlag == "Y" ? "checked" : "") } type="checkbox" title="判斷前製程是否已經投入" name="wipInfo.InputFlag" />*@
<input asp-for="wipInfo.InputFlag" type="checkbox" title="判斷前製程是否已經投入" />
</div>
<div class="layui-form-item">
@ -77,8 +78,10 @@
<div class="layui-inline">
<label class="layui-form-label">客戶類別</label>
<div class="layui-input-inline">
<input @(Model.wipInfo.CustomerMedical == "Y" ? "checked" : "") type="checkbox" title="醫療" name="wipInfo.CustomerMedical" />
<input @(Model.wipInfo.CustomerVIP == "Y" ? "checked" : "") type="checkbox" title="VIP" name="wipInfo.CustomerVIP" />
@*<input @if (Model.wipInfo != null) { @(Model.wipInfo.CustomerMedical == "Y" ? "checked" : "") } type="checkbox" title="醫療" name="wipInfo.CustomerMedical" />
<input @if (Model.wipInfo != null) { @(Model.wipInfo.CustomerVIP == "Y" ? "checked" : "") } type="checkbox" title="VIP" name="wipInfo.CustomerVIP" />*@
<input asp-for="wipInfo.CustomerMedical" type="checkbox" title="醫療" />
<input asp-for="wipInfo.CustomerVIP" type="checkbox" title="VIP" />
</div>
<label asp-for="wipInfo.CustomerNO" class="layui-form-label"></label>
<div class="layui-input-inline">
@ -140,9 +143,12 @@
</div>
<div class="layui-form-item" style="padding-left:30px">
<input @(Model.wipInfo.ModelCheck == "Y" ? "checked" : "") type="checkbox" title="混線投入機種檢查" name="wipInfo.ModelCheck" />
<input @(Model.wipInfo.ECNCheck == "Y" ? "checked" : "") type="checkbox" title="混線投入ECN相同檢查" name="wipInfo.ECNCheck" />
<input @(Model.wipInfo.Priority == "Y" ? "checked" : "") type="checkbox" title="線上強制工單" name="wipInfo.Priority" />
@*<input @if (Model.wipInfo != null) { @(Model.wipInfo.ModelCheck == "Y" ? "checked" : "") } type="checkbox" title="混線投入機種檢查" name="wipInfo.ModelCheck" />
<input @if (Model.wipInfo != null) { @(Model.wipInfo.ECNCheck == "Y" ? "checked" : "") } type="checkbox" title="混線投入ECN相同檢查" name="wipInfo.ECNCheck" />
<input @if (Model.wipInfo != null) { @(Model.wipInfo.Priority == "Y" ? "checked" : "") } type="checkbox" title="線上強制工單" name="wipInfo.Priority" />*@
<input asp-for="wipInfo.ModelCheck" type="checkbox" title="混線投入機種檢查" />
<input asp-for="wipInfo.ECNCheck" type="checkbox" title="混線投入ECN相同檢查" />
<input asp-for="wipInfo.Priority" type="checkbox" title="線上強制工單" />
</div>
<div class="layui-tab layui-tab-brief">
@ -269,6 +275,13 @@
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">備註</label>
<div class="layui-input-block">
<input asp-for="wipBarcode.Remarks" class="layui-input" type="text" />
</div>
</div>
</div>
@* Keypart組合sheet *@
@ -313,21 +326,45 @@
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">SMD點膠</label>
<div class="layui-input-inline">
<select asp-for="wipBoard.Smd" asp-items="@ViewBag.GetSMDTypeList" class=""></select>
<div class="layui-input-block">
<cl-checkbox asp-items="@ViewBag.GetCheckboxSMD" asp-for="wipBoard.SMDs" asp-skin="defult"></cl-checkbox>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">SMD備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.SmdRemarks" class="layui-input" type="text" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">SMD點防焊膠備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.SmdSMRemarks" class="layui-input" type="text" />
</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" asp-for="wipBoard.DipSide" class=""></select>
<div class="layui-input-block">
<cl-checkbox asp-items="@ViewBag.GetCheckboxDIP" asp-for="wipBoard.DipSides" asp-skin="defult"></cl-checkbox>
@*<input @if (Model.wipBoard != null) { @(Model.wipBoard.DipCarrier == "Y" ? "checked" : "") } type="checkbox" title="CARRIER" name="wipBoard.DipCarrier" />
<input @if (Model.wipBoard != null) { @(Model.wipBoard.DipTape == "Y" ? "checked" : "") } type="checkbox" title="貼付膠帶" name="wipBoard.DipTape" />
<input @if (Model.wipBoard != null) { @(Model.wipBoard. == "Y" ? "checked" : "") } type="checkbox" title="點防焊膠" name="wipBoard.SmdSolderMask" />*@
<input asp-for="wipBoard.DipCarrier" type="checkbox" title="CARRIER" />
<input asp-for="wipBoard.DipTape" type="checkbox" title="貼付膠帶" />
<input asp-for="wipBoard.SmdSolderMask" type="checkbox" title="點防焊膠" />
</div>
<input @(Model.wipBoard.DipCarrier == "Y" ? "checked" : "") type="checkbox" title="CARRIER" name="wipBoard.DipCarrier" />
<input @(Model.wipBoard.DipTape == "Y" ? "checked" : "") type="checkbox" title="貼付膠帶" name="wipBoard.DipTape" />
<input @(Model.wipBoard.DipTape == "Y" ? "checked" : "") type="checkbox" title="點防焊膠" name="wipBoard.DipTape" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">DIP備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.DipRemarks" class="layui-input" type="text" />
</div>
</div>
@ -347,8 +384,17 @@
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">燒錄備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.BurnRemarks" class="layui-input" type="text" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<input asp-for="wipBoard.ISPartsBake" type="checkbox" title="零件是否需要烘烤" />
<label class="layui-form-label">零件烘烤溫度</label>
<div class="layui-input-inline">
<select asp-items="@ViewBag.GetPartsBakeTypeList" asp-for="wipBoard.PartsBake" class=""></select>
@ -363,28 +409,59 @@
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">零件烘烤備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.PartsBakeRemarks" class="layui-input" type="text" />
</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" asp-for="wipBoard.PcbBake" class=""></select>
<select asp-items="@ViewBag.GetPCBBakeTypeSelect" asp-for="wipBoard.PcbBake" class=""></select>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">PCB烘烤備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.PcbBakeRemarks" class="layui-input" type="text" />
</div>
</div>
<div class="layui-form-item">
<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>
<select asp-items="@ViewBag.GetSolderPasteSelect" asp-for="wipBoard.SolderPaste"></select>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">錫膏備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.SolderPasteRemarks" class="layui-input" type="text" />
</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" asp-for="wipBoard.PcbProcessing" class=""></select>
<select asp-items="@ViewBag.GetPCBProcessingTypeSelect" asp-for="wipBoard.PcbProcessing" class=""></select>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">PCB加工備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.PcbProcessingRemarks" class="layui-input" type="text" />
</div>
</div>
<div class="layui-form-item">
@ -413,6 +490,13 @@
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">燒機備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.BiRemarks" class="layui-input" type="text" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label asp-for="wipBoard.BiosVer" class="layui-form-label"></label>
@ -420,6 +504,18 @@
<input asp-for="wipBoard.BiosVer" class="layui-input" placeholder="請輸入BIOS" />
<span asp-validation-for="wipBoard.BiosVer" class="layui-bg-red"></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">BIOS備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.BiosRemarks" class="layui-input" type="text" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label asp-for="wipBoard.Checksum" class="layui-form-label"></label>
<div class="layui-input-inline">
<input asp-for="wipBoard.Checksum" class="layui-input" placeholder="請輸入Checksum" />
@ -427,6 +523,13 @@
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">Check Sum備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.CsRemarks" class="layui-input" type="text" />
</div>
</div>
</div>
@* 系統-工程資訊sheet *@
@ -699,6 +802,13 @@
<cl-radio asp-items="@ViewBag.GetCheckboxWipAttr" asp-for="wipLabel.WipAttr"></cl-radio>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">備註</label>
<div class="layui-input-block">
<input asp-for="wipLabel.Remarks" class="layui-input" type="text" />
</div>
</div>
</div>

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

@ -337,6 +337,13 @@
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">備註</label>
<div class="layui-input-block">
<input asp-for="wipBarcode.Remarks" class="layui-input" type="text" />
</div>
</div>
</div>
@* Keypart組合sheet *@
@ -443,7 +450,7 @@
<div class="layui-inline">
<label class="layui-form-label" asp-for="wipBoard.Engineer"></label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipBoard.Engineer" readonly="readonly" />
<input class="layui-input" asp-for="wipBoard.Engineer" onchange="getUserName(this);" />
</div>
<label class="layui-form-label">姓名</label>
@ -456,20 +463,45 @@
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">SMD點膠</label>
<div class="layui-input-inline">
<select disabled asp-items="@ViewBag.GetSMDTypeList" class=""></select>
<div class="layui-input-block">
<cl-checkbox asp-items="@ViewBag.GetCheckboxSMD" asp-for="wipBoard.SMDs" asp-skin="defult"></cl-checkbox>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">SMD備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.SmdRemarks" class="layui-input" type="text" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">SMD點防焊膠備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.SmdSMRemarks" class="layui-input" type="text" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">DIP</label>
<div class="layui-input-inline">
<select disabled asp-items="@ViewBag.GetDIPTypeList" asp-for="wipBoard.DipSide" class=""></select>
<div class="layui-input-block">
<cl-checkbox asp-items="@ViewBag.GetCheckboxDIP" asp-for="wipBoard.DipSides" asp-skin="defult"></cl-checkbox>
<input @if (Model.wipBoard != null) { @(Model.wipBoard.DipCarrier == "Y" ? "checked" : "") } type="checkbox" title="CARRIER" name="wipBoard.DipCarrier" />
<input @if (Model.wipBoard != null) { @(Model.wipBoard.DipTape == "Y" ? "checked" : "") } type="checkbox" title="貼付膠帶" name="wipBoard.DipTape" />
<input @if (Model.wipBoard != null) { @(Model.wipBoard.SmdSolderMask == "Y" ? "checked" : "") } type="checkbox" title="點防焊膠" name="wipBoard.SmdSolderMask" />
@*<input asp-for="wipBoard.DipCarrier" type="checkbox" title="CARRIER" />
<input asp-for="wipBoard.DipTape" type="checkbox" title="貼付膠帶" />
<input asp-for="wipBoard.SmdSolderMask" type="checkbox" title="點防焊膠" />*@
</div>
<input type="checkbox" title="CARRIER" @if (Model.wipBoard != null) { @(Model.wipBoard.DipCarrier == "Y" ? "checked" : "") } />
<input type="checkbox" title="貼付膠帶" @if (Model.wipBoard != null) { @(Model.wipBoard.DipTape == "Y" ? "checked" : "") } />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">DIP備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.DipRemarks" class="layui-input" type="text" />
</div>
</div>
@ -477,7 +509,8 @@
<div class="layui-inline">
<label class="layui-form-label">燒錄</label>
<div class="layui-input-inline">
<input type="checkbox" title="是否燒入" @if (Model.wipBoard != null) { @(Model.wipBoard.Burn == "Y" ? "checked" : "") } />
<input @if (Model.wipBoard != null) { @(Model.wipBoard.Burn == "Y" ? "checked" : "") } type="checkbox" title="是否燒入" name="wipBoard.Burn" />
@*<input asp-for="wipBoard.Burn" type="checkbox" title="是否燒入" />*@
</div>
<div class="layui-input-inline">
<label asp-for="wipBoard.BurnLocation" class="layui-form-label"></label>
@ -489,8 +522,17 @@
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">燒錄備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.BurnRemarks" class="layui-input" type="text" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<input @if (Model.wipBoard != null) { @(Model.wipBoard.ISPartsBake == "Y" ? "checked" : "") } type="checkbox" title="零件是否需要烘烤" name="wipBoard.ISPartsBake" />
<label class="layui-form-label">零件烘烤溫度</label>
<div class="layui-input-inline">
<select disabled asp-items="@ViewBag.GetPartsBakeTypeList" asp-for="wipBoard.PartsBake" class=""></select>
@ -500,7 +542,15 @@
<label class="layui-form-label">零件烘烤時間</label>
<div class="layui-input-block">
<input asp-for="wipBoard.PartsBakeTime" class="layui-input" />
<span asp-validation-for="wipBoard.PartsBakeTime" class="layui-bg-red"></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">零件烘烤備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.PartsBakeRemarks" class="layui-input" type="text" />
</div>
</div>
@ -508,24 +558,48 @@
<div class="layui-inline">
<label class="layui-form-label">PCB烘烤</label>
<div class="layui-input-inline">
<select disabled asp-items="@ViewBag.GetPCBBakeTypeList" asp-for="wipBoard.PcbBake" class=""></select>
<select disabled asp-items="@ViewBag.GetPCBBakeTypeSelect" asp-for="wipBoard.PcbBake" class=""></select>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">PCB烘烤備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.PcbBakeRemarks" class="layui-input" type="text" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label" asp-for="wipBoard.SolderPaste"></label>
<div class="layui-input-block">
<select disabled asp-items="@ViewBag.GetSolderPasteList" asp-for="wipBoard.SolderPaste"></select>
<select disabled asp-items="@ViewBag.GetSolderPasteSelect" asp-for="wipBoard.SolderPaste"></select>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">錫膏備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.SolderPasteRemarks" class="layui-input" type="text" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">PCB加工</label>
<div class="layui-input-inline">
<select disabled asp-items="@ViewBag.GetPCBWorkingTypeList" asp-for="wipBoard.PcbProcessing" class=""></select>
<select disabled asp-items="@ViewBag.GetPCBProcessingTypeSelect" asp-for="wipBoard.PcbProcessing" class=""></select>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">PCB加工備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.PcbProcessingRemarks" class="layui-input" type="text" />
</div>
</div>
<div class="layui-form-item">
@ -534,36 +608,65 @@
<label asp-for="wipBoard.BiRatio" class="layui-form-label"></label>
<div class="layui-input-block">
<input asp-for="wipBoard.BiRatio" class="layui-input" />
<span asp-validation-for="wipBoard.BiRatio" class="layui-bg-red"></span>
</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" />
<span asp-validation-for="wipBoard.BiTemperature" class="layui-bg-red"></span>
</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" />
<span asp-validation-for="wipBoard.BiTime" class="layui-bg-red"></span>
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">燒機備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.BiRemarks" class="layui-input" type="text" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label asp-for="wipBoard.BiosVer" class="layui-form-label"></label>
<div class="layui-input-inline">
<input asp-for="wipBoard.BiosVer" class="layui-input" />
<span class="text-danger"></span>
<input asp-for="wipBoard.BiosVer" class="layui-input" placeholder="請輸入BIOS" />
<span asp-validation-for="wipBoard.BiosVer" class="layui-bg-red"></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">BIOS備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.BiosRemarks" class="layui-input" type="text" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label asp-for="wipBoard.Checksum" class="layui-form-label"></label>
<div class="layui-input-inline">
<input asp-for="wipBoard.Checksum" class="layui-input" />
<span class="text-danger"></span>
<input asp-for="wipBoard.Checksum" class="layui-input" placeholder="請輸入Checksum" />
<span asp-validation-for="wipBoard.Checksum" class="layui-bg-red"></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">Check Sum備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.CsRemarks" class="layui-input" type="text" />
</div>
</div>
</div>
@ -587,7 +690,7 @@
<div class="layui-inline">
<label class="layui-form-label">Power Mode</label>
<div class="layui-input-inline">
<select asp-for="wipSystem.PowerModeType" asp-items="@ViewBag.GetWipSystemPMTypeSelect" class=""></select>
<select disabled asp-for="wipSystem.PowerModeType" asp-items="@ViewBag.GetWipSystemPMTypeSelect" class=""></select>
</div>
<div class="layui-input-inline">
<input class="layui-input" style="text-transform:uppercase;" asp-for="wipSystem.PowerMode" autocomplete="off" />
@ -766,6 +869,13 @@
<cl-radio asp-items="@ViewBag.GetCheckboxWipAttr" asp-for="wipLabel.WipAttr"></cl-radio>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">備註</label>
<div class="layui-input-block">
<input asp-for="wipLabel.Remarks" class="layui-input" type="text" />
</div>
</div>
</div>
@* SOP文件 sheet *@

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

@ -287,6 +287,13 @@
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">備註</label>
<div class="layui-input-block">
<input asp-for="wipBarcode.Remarks" class="layui-input" type="text" />
</div>
</div>
</div>
@* Keypart組合sheet *@
@ -435,20 +442,45 @@
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">SMD點膠</label>
<div class="layui-input-inline">
<select asp-for="wipBoard.Smd" asp-items="@ViewBag.GetSMDTypeList" class=""></select>
<div class="layui-input-block">
<cl-checkbox asp-items="@ViewBag.GetCheckboxSMD" asp-for="wipBoard.SMDs" asp-skin="defult"></cl-checkbox>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">SMD備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.SmdRemarks" class="layui-input" type="text" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">SMD點防焊膠備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.SmdSMRemarks" class="layui-input" type="text" />
</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" asp-for="wipBoard.DipSide" class=""></select>
</div>
<div class="layui-input-block">
<cl-checkbox asp-items="@ViewBag.GetCheckboxDIP" asp-for="wipBoard.DipSides" asp-skin="defult"></cl-checkbox>
<input @if (Model.wipBoard != null) { @(Model.wipBoard.DipCarrier == "Y" ? "checked" : "") } type="checkbox" title="CARRIER" name="wipBoard.DipCarrier" />
<input @if (Model.wipBoard != null) { @(Model.wipBoard.DipTape == "Y" ? "checked" : "") } type="checkbox" title="貼付膠帶" name="wipBoard.DipTape" />
<input @if (Model.wipBoard != null) { @(Model.wipBoard.SmdSolderMask == "Y" ? "checked" : "") } type="checkbox" title="點防焊膠" name="wipBoard.SmdSolderMask" />
@*<input asp-for="wipBoard.DipCarrier" type="checkbox" title="CARRIER" />
<input asp-for="wipBoard.DipTape" type="checkbox" title="貼付膠帶" />
<input asp-for="wipBoard.SmdSolderMask" type="checkbox" title="點防焊膠" />*@
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">DIP備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.DipRemarks" class="layui-input" type="text" />
</div>
</div>
@ -456,7 +488,8 @@
<div class="layui-inline">
<label class="layui-form-label">燒錄</label>
<div class="layui-input-inline">
<input name="wipBoard.Burn" type="checkbox" title="是否燒入" @if (Model.wipBoard != null) { @(Model.wipBoard.Burn == "Y" ? "checked" : "") } />
<input @if (Model.wipBoard != null) { @(Model.wipBoard.Burn == "Y" ? "checked" : "") } type="checkbox" title="是否燒入" name="wipBoard.Burn" />
@*<input asp-for="wipBoard.Burn" type="checkbox" title="是否燒入" />*@
</div>
<div class="layui-input-inline">
<label asp-for="wipBoard.BurnLocation" class="layui-form-label"></label>
@ -468,8 +501,17 @@
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">燒錄備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.BurnRemarks" class="layui-input" type="text" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<input @if (Model.wipBoard != null) { @(Model.wipBoard.ISPartsBake == "Y" ? "checked" : "") } type="checkbox" title="零件是否需要烘烤" name="wipBoard.ISPartsBake" />
<label class="layui-form-label">零件烘烤溫度</label>
<div class="layui-input-inline">
<select asp-items="@ViewBag.GetPartsBakeTypeList" asp-for="wipBoard.PartsBake" class=""></select>
@ -479,7 +521,15 @@
<label class="layui-form-label">零件烘烤時間</label>
<div class="layui-input-block">
<input asp-for="wipBoard.PartsBakeTime" class="layui-input" />
<span asp-validation-for="wipBoard.PartsBakeTime" class="layui-bg-red"></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">零件烘烤備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.PartsBakeRemarks" class="layui-input" type="text" />
</div>
</div>
@ -487,14 +537,31 @@
<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>
<select asp-items="@ViewBag.GetPCBBakeTypeSelect" asp-for="wipBoard.PcbBake" class=""></select>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">PCB烘烤備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.PcbBakeRemarks" class="layui-input" type="text" />
</div>
</div>
<div class="layui-form-item">
<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>
<select asp-items="@ViewBag.GetSolderPasteSelect" asp-for="wipBoard.SolderPaste"></select>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">錫膏備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.SolderPasteRemarks" class="layui-input" type="text" />
</div>
</div>
@ -502,8 +569,15 @@
<div class="layui-inline">
<label class="layui-form-label">PCB加工</label>
<div class="layui-input-inline">
<select asp-items="@ViewBag.GetPCBWorkingTypeList" asp-for="wipBoard.PcbProcessing" class=""></select>
<select asp-items="@ViewBag.GetPCBProcessingTypeSelect" asp-for="wipBoard.PcbProcessing" class=""></select>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">PCB加工備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.PcbProcessingRemarks" class="layui-input" type="text" />
</div>
</div>
@ -513,20 +587,30 @@
<label asp-for="wipBoard.BiRatio" class="layui-form-label"></label>
<div class="layui-input-block">
<input asp-for="wipBoard.BiRatio" class="layui-input" />
<span asp-validation-for="wipBoard.BiRatio" class="layui-bg-red"></span>
</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" />
<span asp-validation-for="wipBoard.BiTemperature" class="layui-bg-red"></span>
</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" />
<span asp-validation-for="wipBoard.BiTime" class="layui-bg-red"></span>
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">燒機備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.BiRemarks" class="layui-input" type="text" />
</div>
</div>
@ -534,17 +618,35 @@
<div class="layui-inline">
<label asp-for="wipBoard.BiosVer" class="layui-form-label"></label>
<div class="layui-input-inline">
<input asp-for="wipBoard.BiosVer" class="layui-input" />
<span class="text-danger"></span>
<input asp-for="wipBoard.BiosVer" class="layui-input" placeholder="請輸入BIOS" />
<span asp-validation-for="wipBoard.BiosVer" class="layui-bg-red"></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">BIOS備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.BiosRemarks" class="layui-input" type="text" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label asp-for="wipBoard.Checksum" class="layui-form-label"></label>
<div class="layui-input-inline">
<input asp-for="wipBoard.Checksum" class="layui-input" />
<span class="text-danger"></span>
<input asp-for="wipBoard.Checksum" class="layui-input" placeholder="請輸入Checksum" />
<span asp-validation-for="wipBoard.Checksum" class="layui-bg-red"></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">Check Sum備註</label>
<div class="layui-input-block">
<input asp-for="wipBoard.CsRemarks" class="layui-input" type="text" />
</div>
</div>
</div>
@* 系統-工程資訊sheet *@
@ -890,6 +992,12 @@
<cl-radio asp-items="@ViewBag.GetCheckboxWipAttr" asp-for="wipLabel.WipAttr"></cl-radio>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">備註</label>
<div class="layui-input-block">
<input asp-for="wipLabel.Remarks" class="layui-input" type="text" />
</div>
</div>
<div style="text-align:right">
<input type="submit" value="製造確認" name="action" class="layui-btn" />
</div>

3
AMESCoreStudio.WebApi/Controllers/AMES/MaterialSopController.cs

@ -8,6 +8,7 @@ using Microsoft.EntityFrameworkCore;
using AMESCoreStudio.WebApi.Models.AMES;
using AMESCoreStudio.CommonTools.Result;
using AMESCoreStudio.WebApi.DTO.AMES;
using AMESCoreStudio.WebApi.Enum;
// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
namespace AMESCoreStudio.WebApi.Controllers.AMES
@ -129,7 +130,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
}).ToListAsync();
result.Data.Select(s =>
s.SopTypeName = Enums.GetDisplayName((Enums.EnumWipSopType)Enum.Parse(typeof(Enums.EnumWipSopType), s.SopType))).ToList();
s.SopTypeName = EnumPCS.GetDisplayName((EnumPCS.EnumWipSopType)System.Enum.Parse(typeof(EnumPCS.EnumWipSopType), s.SopType))).ToList();
return result;
}

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

@ -83,7 +83,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
var result = await q.ToListAsync();
result.Select(s => s.SOPTypeName
= Enums.GetDisplayName((Enums.EnumWipSopType)Enum.Parse(typeof(Enums.EnumWipSopType), s.SOPType))).ToList();
= Enum.EnumPCS.GetDisplayName((Enum.EnumPCS.EnumWipSopType)System.Enum.Parse(typeof(Enum.EnumPCS.EnumWipSopType), s.SOPType))).ToList();
return result;
}

135
AMESCoreStudio.WebApi/Enums/EnumPCS.cs

@ -6,9 +6,12 @@ using System.Reflection;
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc.Rendering;
namespace AMESCoreStudio.WebApi
namespace AMESCoreStudio.WebApi.Enum
{
public class Enums
/// <summary>
///
/// </summary>
public class EnumPCS
{
/// <summary>
/// 列印方式
@ -233,16 +236,134 @@ namespace AMESCoreStudio.WebApi
C = 3,
/// <summary>
/// 暫時文件
/// B面部份點膠
/// </summary>
[Display(Name = "暫時文件")]
[Display(Name = "B面部份點膠")]
D = 4,
/// <summary>
/// REWORK
/// AB面部份點膠
/// </summary>
[Display(Name = "REWORK")]
[Display(Name = "AB面部份點膠")]
E = 5,
/// <summary>
/// 不須點膠
/// </summary>
[Display(Name = "不須點膠")]
F = 6,
}
/// <summary>
/// DIP
/// </summary>
public enum EnumWipBoardDIPType
{
/// <summary>
/// A面
/// </summary>
[Display(Name = "A面")]
A = 1,
/// <summary>
/// B面
/// </summary>
[Display(Name = "B面")]
B = 2,
/// <summary>
/// NA
/// </summary>
[Display(Name = "NA")]
N = 0,
}
/// <summary>
/// PCB烘烤
/// </summary>
public enum EnumWipBoardPCBBakeType
{
/// <summary>
/// 依廠內規範
/// </summary>
[Display(Name = "依廠內規範")]
A = 1,
/// <summary>
/// 125℃/ 2Hr
/// </summary>
[Display(Name = "125℃/ 2Hr")]
B = 2,
/// <summary>
/// 120℃/ 1Hr (FPC)
/// </summary>
[Display(Name = "120℃/ 1Hr (FPC)")]
C = 3,
/// <summary>
/// 其他
/// </summary>
[Display(Name = "其他")]
D = 4,
}
/// <summary>
/// PCB加工
/// </summary>
public enum EnumWipBoardPCBProcessingType
{
/// <summary>
/// 噴印字樣 (給備註填寫欄位)
/// </summary>
[Display(Name = "噴印字樣 (給備註填寫欄位)")]
A = 1,
/// <summary>
/// 其他
/// </summary>
[Display(Name = "其他")]
B = 2,
/// <summary>
/// NA
/// </summary>
[Display(Name = "NA")]
N = 0,
}
/// <summary>
/// 錫膏
/// </summary>
public enum EnumWipBoardSolderPasteType
{
/// <summary>
/// KOKI 無鉛錫膏(S3X58-M406-3)
/// </summary>
[Display(Name = "KOKI 無鉛錫膏(S3X58-M406-3)")]
A = 1,
/// <summary>
/// 千住 無鉛錫膏(M705-221BM5-32-11.5K3)
/// </summary>
[Display(Name = "千住 無鉛錫膏(M705-221BM5-32-11.5K3)")]
B = 2,
/// <summary>
/// 千住 無鹵錫膏(M705-S101ZH-S4)、無鹵錫絲(SHF RC101 F3 M705)
/// </summary>
[Display(Name = "千住 無鹵錫膏(M705-S101ZH-S4)、無鹵錫絲(SHF RC101 F3 M705)")]
C = 3,
/// <summary>
/// 其他
/// </summary>
[Display(Name = "其他")]
D = 4,
}
/// <summary>
@ -250,7 +371,7 @@ namespace AMESCoreStudio.WebApi
/// </summary>
/// <param name="enumValue"></param>
/// <returns></returns>
public static string GetDisplayName(Enum enumValue)
public static string GetDisplayName(System.Enum enumValue)
{
return enumValue.GetType()?
.GetMember(enumValue.ToString())?.First()?

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

@ -65,7 +65,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("REMARKS")]
[DataMember]
[Display(Name = "備註")]
public string ReMarks { get; set; }
public string Remarks { get; set; }
/// <summary>
/// 建立者

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

@ -2,6 +2,7 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Runtime.Serialization;
using System.Collections.Generic;
#nullable disable
@ -48,18 +49,51 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("SMD")]
[DataMember]
[Display(Name = "SMD點膠")]
public int Smd { get; set; }
public string Smd { get; set; }
/// <summary>
/// SMD點紅膠備註
/// </summary>
[Column("SMD_REMARKS")]
[DataMember]
[Display(Name = "SMD點膠")]
public string SmdRemarks { get; set; }
/// <summary>
/// SMD點防焊膠(Y/N)
/// </summary>
[Required]
[Column("SMD_SOLDER_MASK")]
[StringLength(2)]
[DataMember]
public string SmdSolderMask { get; set; }
/// <summary>
/// SMD點防焊膠備註
/// </summary>
[Column("SMD_SM_REMARKS")]
[DataMember]
[Display(Name = "SMD點膠")]
public string SmdSMRemarks { get; set; }
/// <summary>
/// 正背面
/// </summary>
[Required]
[Column("DIP_SIDE")]
[StringLength(5)]
[StringLength(10)]
[DataMember]
[Display(Name = "正背面")]
public string DipSide { get; set; }
/// <summary>
/// DIP正背面備註
/// </summary>
[Column("DIP_REMARKS")]
[DataMember]
[Display(Name = "DIP正背面備註")]
public string DipRemarks { get; set; }
/// <summary>
/// 是否需要CARRIER(Y/N)
/// </summary>
@ -100,6 +134,23 @@ namespace AMESCoreStudio.WebApi.Models.AMES
public string BurnLocation { get; set; }
/// <summary>
/// 燒錄備註
/// </summary>
[Column("BURN_REMARKS")]
[DataMember]
public string BurnRemarks { get; set; }
/// <summary>
/// 零件是否需要烘烤(Y/N)
/// </summary>
[Required]
[Column("IS_PARTS_BAKE")]
[StringLength(2)]
[DataMember]
public string ISPartsBake { get; set; }
/// <summary>
/// 零件烘烤溫度
/// </summary>
@ -118,6 +169,14 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Required(ErrorMessage = "{0},不能空白")]
public decimal PartsBakeTime { get; set; }
/// <summary>
/// 零件烘烤備註
/// </summary>
[Column("PARTS_BAKE_REMARKS")]
[DataMember]
public string PartsBakeRemarks { get; set; }
/// <summary>
/// PCB烘烤
/// </summary>
@ -127,6 +186,14 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Required(ErrorMessage = "{0},不能空白")]
public decimal PcbBake { get; set; }
/// <summary>
/// PCB烘烤備註
/// </summary>
[Column("PCB_BAKE_REMARKS")]
[DataMember]
public string PcbBakeRemarks { get; set; }
/// <summary>
/// PCB加工
/// </summary>
@ -136,6 +203,15 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Required(ErrorMessage = "{0},不能空白")]
public string PcbProcessing { get; set; }
/// <summary>
/// PCB加工備註
/// </summary>
[Column("PCB_PROCESSING_REMARKS")]
[DataMember]
public string PcbProcessingRemarks { get; set; }
/// <summary>
/// 錫膏
/// </summary>
@ -144,6 +220,14 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Display(Name = "錫膏")]
public int SolderPaste { get; set; }
/// <summary>
/// 錫膏備註
/// </summary>
[Column("SOLDER_PASTE_REMARKS")]
[DataMember]
public string SolderPasteRemarks { get; set; }
/// <summary>
/// 燒機比率
/// </summary>
@ -173,6 +257,14 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Required(ErrorMessage = "{0},不能空白")]
public string BiTime { get; set; }
/// <summary>
/// 燒機備註
/// </summary>
[Column("BI_REMARKS")]
[DataMember]
public string BiRemarks { get; set; }
/// <summary>
/// BIOS版本
/// </summary>
@ -181,6 +273,14 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Display(Name = "BIOS版本")]
public decimal BiosVer { get; set; }
/// <summary>
/// BIOS備註
/// </summary>
[Column("BIOS_REMARKS")]
[DataMember]
public string BiosRemarks { get; set; }
/// <summary>
/// Check Sum
/// </summary>
@ -191,6 +291,14 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Required(ErrorMessage = "{0},不能空白")]
public string Checksum { get; set; }
/// <summary>
/// Check Sum備註
/// </summary>
[Column("CS_REMARKS")]
[DataMember]
public string CsRemarks { get; set; }
/// <summary>
/// 創建者ID
/// </summary>
@ -226,5 +334,17 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[DataMember]
public string Engineer_Name { get; set; }
/// <summary>
/// SMDs
/// </summary>
[NotMapped]
public virtual List<string> SMDs { get; set; }
/// <summary>
/// 正背面
/// </summary>
[NotMapped]
public virtual List<string> DipSides { get; set; }
}
}

11
AMESCoreStudio.WebApi/Models/AMES/WipLabel.cs

@ -59,6 +59,14 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[DataMember]
public string WipAttr { get; set; }
/// <summary>
/// 備註
/// </summary>
[Column("REMARKS")]
[DataMember]
public string Remarks { get; set; }
/// <summary>
/// 建立UserID
/// </summary>
@ -88,6 +96,9 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[DataMember]
public DateTime? UpdateDate { get; set; }
/// <summary>
///認證Logos
/// </summary>
[NotMapped]
public virtual List<string> ApproveLogos { get; set; }

Loading…
Cancel
Save