Browse Source

1. 工單 工程資訊顯示有無標工,必填欄位用底色並更改判斷

PTD
Ray 3 years ago
parent
commit
05bcb278fc
  1. 42
      AMESCoreStudio.Web/Controllers/PCSController.cs
  2. 5
      AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs
  3. 5
      AMESCoreStudio.Web/ViewModels/PCS/WipViewModel.cs
  4. 36
      AMESCoreStudio.Web/Views/PCS/PCS003.cshtml
  5. 13
      AMESCoreStudio.WebApi/Controllers/AMES/CycleTimesController.cs
  6. 14
      AMESCoreStudio.WebApi/Models/AMES/WipBoard.cs

42
AMESCoreStudio.Web/Controllers/PCSController.cs

@ -164,31 +164,28 @@ namespace AMESCoreStudio.Web.Controllers
{
// 判斷預設值是否更改過,如果有就判斷必填欄位
if (!string.IsNullOrWhiteSpace(model.BiTemperature) ||
!string.IsNullOrWhiteSpace(model.BiTime) ||
!string.IsNullOrWhiteSpace(model.BiMemo) ||
if (!string.IsNullOrWhiteSpace(model.Engineer) ||
!string.IsNullOrWhiteSpace(model.PowerMode) ||
model.BiRatio == 0 ||
!string.IsNullOrWhiteSpace(model.Checksum) ||
!string.IsNullOrWhiteSpace(model.Bios) ||
!string.IsNullOrWhiteSpace(model.BiosVer))
!string.IsNullOrWhiteSpace(model.Ec) ||
!string.IsNullOrWhiteSpace(model.Fw))
{
if (string.IsNullOrWhiteSpace(model.BiTemperature))
Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.BiTemperature)).Name + ",";
if (string.IsNullOrWhiteSpace(model.Engineer))
Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.Engineer)).Name + ",";
if (string.IsNullOrWhiteSpace(model.BiTime))
Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.BiTime)).Name + ",";
if (string.IsNullOrWhiteSpace(model.PowerMode))
Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.PowerMode)).Name + ",";
if (string.IsNullOrWhiteSpace(model.BiTime))
Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.BiMemo)).Name + ",";
if (string.IsNullOrWhiteSpace(model.Checksum))
Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.Checksum)).Name + ",";
if (string.IsNullOrWhiteSpace(model.Bios))
// 1 N/A , 4 備註說明
if (string.IsNullOrWhiteSpace(model.Bios) && model.BiosType != 1 && model.BiosType != 4)
Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.Bios)).Name + ",";
if (string.IsNullOrWhiteSpace(model.BiosVer))
Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.BiosVer)).Name + ",";
if (string.IsNullOrWhiteSpace(model.Ec) && model.ECType != 1 && model.ECType != 4)
Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.Ec)).Name + ",";
if (string.IsNullOrWhiteSpace(model.Fw) && model.FWType != 1 && model.FWType != 4)
Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.Fw)).Name + ",";
if (model.BiRatio == 0)
Msg += model.GetAttributeFrom<DisplayAttribute>(nameof(model.BiRatio)).Name + ",";
@ -1982,6 +1979,15 @@ namespace AMESCoreStudio.Web.Controllers
model.WipSops = await _pcsApi.GetWipSopByWipNo(model.wipInfo.WipNO);
model.wipInfoBlobs = await _pcsApi.GetWipInfoBlob(model.wipInfo.WipNO);
// 取料號對應工時
var cycleTime = await _pcsApi.GetCycleTimesByItemNo(model.wipAtt.ItemNO);
cycleTime = cycleTime.Where(w => w.LineID == model.wipInfo.LineID &&
w.SectionNo == model.wipInfo.UnitNO).ToList();
if (cycleTime.Count != 0)
model.itemNoCT1 = cycleTime.FirstOrDefault().CT1.ToString();
}
await WipDataSelectAll(model.wipAtt.WipNO, model.wipAtt.ItemNO, model.wipInfo.UnitNO);

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

@ -1095,6 +1095,11 @@ namespace AMESCoreStudio.Web
ITask<List<OutfitCommodityInfo>> GetOutfitCommodityInfo();
#endregion
#region CycleTimes 料號對應工時
[WebApiClient.Attributes.HttpGet("api/CycleTimes/ByItemNo/{id}")]
ITask<List<CycleTime>> GetCycleTimesByItemNo(string id);
#endregion
#region 取出貨序號
[WebApiClient.Attributes.HttpGet("api/SerialRules/ByQurey/{itemNo}/{lotNo}/{num}")]
ITask<ResultModel<string>> GetSerialRuleByQurey(string itemNo,string lotNo ,int num);

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

@ -86,6 +86,11 @@ namespace AMESCoreStudio.Web.ViewModels.PCS
/// </summary>
public WipInfoBlob wipInfoBlob { get; set; }
/// <summary>
/// 料號對應工時
/// </summary>
public string itemNoCT1 { get; set; }
}
public class WipDataViewModel : WipNoDetailViewModel

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

@ -696,13 +696,25 @@
<div class="layui-inline">
<label class="layui-form-label" asp-for="wipSystem.Engineer"></label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Engineer" onchange="getUserName(this);" />
<input style="background-color: #acdbe36b" class="layui-input" asp-for="wipSystem.Engineer" onchange="getUserName(this);" />
</div>
<label class="layui-form-label">姓名</label>
<div class="layui-input-inline">
<input class="layui-input" asp-for="wipSystem.Engineer_Name" readonly="readonly" />
</div>
<div class="layui-input-inline" style="display: flex;align-items: center;height: 35px;">
@if (!string.IsNullOrWhiteSpace(Model.itemNoCT1))
{
<span style="color:red">標準工時:@Model.itemNoCT1 秒/個 </span>
}
else
{
<span style="color:red">*無維護工時</span>
}
</div>
</div>
</div>
@ -713,14 +725,14 @@
<select asp-for="wipSystem.PowerModeType" asp-items="@ViewBag.GetWipSystemPMTypeSelect" class=""></select>
</div>
<div class="layui-input-inline">
<input class="layui-input" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" asp-for="wipSystem.PowerMode" autocomplete="off" />
<input style="background-color: #acdbe36b" class="layui-input" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" asp-for="wipSystem.PowerMode" autocomplete="off" />
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">PLM生產備註</label>
<div class="layui-input-block">
<div class="layui-input-block" >
<textarea class="layui-textarea" asp-for="wipSystem.PowerMode_Desc" readonly="readonly"></textarea>
</div>
</div>
@ -730,7 +742,7 @@
<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" />
<input style="background-color: #acdbe36b" asp-for="wipSystem.BiRatio" class="layui-input" />
</div>
</div>
<div class="layui-input-inline">
@ -760,11 +772,11 @@
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">BIOS</label>
<div class="layui-input-inline" style="width:150px;">
<div class="layui-input-inline" style="width:150px">
<select asp-for="wipSystem.BiosType" asp-items="@ViewBag.GetWipSystemTypeSelect" class=""></select>
</div>
<div class="layui-input-inline" style="width:150px;">
<input class="layui-input autocomplete" onkeypress="if( event.keyCode == 13 ) { return false; }" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" asp-for="wipSystem.Bios" autocomplete="off" />
<input style="background-color: #acdbe36b" class="layui-input autocomplete" onkeypress="if( event.keyCode == 13 ) { return false; }" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" asp-for="wipSystem.Bios" autocomplete="off" />
</div>
<div class="layui-input-inline" style="width:300px;">
<input class="layui-input" asp-for="wipSystem.Bios_Desc" readonly="readonly" />
@ -786,8 +798,8 @@
<div class="layui-input-inline" style="width:150px;">
<select asp-for="wipSystem.ECType" asp-items="@ViewBag.GetWipSystemTypeSelect" class=""></select>
</div>
<div class="layui-input-inline" style="width:150px;">
<input class="layui-input autocomplete" onkeypress="if( event.keyCode == 13 ) { return false; }" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" asp-for="wipSystem.Ec" autocomplete="off" />
<div class="layui-input-inline" style="width:150px">
<input style="background-color: #acdbe36b" class="layui-input autocomplete" onkeypress="if( event.keyCode == 13 ) { return false; }" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" asp-for="wipSystem.Ec" autocomplete="off" />
</div>
<div class="layui-input-inline" style="width:300px;">
<input class="layui-input" asp-for="wipSystem.Ec_Desc" readonly="readonly" />
@ -801,8 +813,8 @@
<div class="layui-input-inline" style="width:150px;">
<select asp-for="wipSystem.FWType" asp-items="@ViewBag.GetWipSystemTypeSelect" class=""></select>
</div>
<div class="layui-input-inline" style="width:150px;">
<input class="layui-input autocomplete" onkeypress="if( event.keyCode == 13 ) { return false; }" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" asp-for="wipSystem.Fw" autocomplete="off" />
<div class="layui-input-inline" style="width:150px">
<input style="background-color: #acdbe36b" class="layui-input autocomplete" onkeypress="if( event.keyCode == 13 ) { return false; }" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" asp-for="wipSystem.Fw" autocomplete="off" />
</div>
<div class="layui-input-inline" style="width: 300px;">
<input class="layui-input" asp-for="wipSystem.Fw_Desc" readonly="readonly" />
@ -880,8 +892,8 @@
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label" asp-for="wipSystem.DmiBi"></label>
<div class="layui-input-inline">
<select asp-for="wipSystem.DmiBi" asp-items="@ViewBag.GetWipSystemDMITypeSelect" class=""></select>
<div class="layui-input-inline ">
<select style="background-color: #acdbe36b" asp-for="wipSystem.DmiBi" asp-items="@ViewBag.GetWipSystemDMITypeSelect" class=""></select>
</div>
</div>
</div>

13
AMESCoreStudio.WebApi/Controllers/AMES/CycleTimesController.cs

@ -90,6 +90,19 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
return cycleTime;
}
/// <summary>
/// 工單料號查詢
/// </summary>
/// <param name="id">工單料號</param>
/// <returns></returns>
[HttpGet("ByItemNo/{id}")]
public async Task<ActionResult<IEnumerable<CycleTime>>> GetCycleTimeByItemNo(string id)
{
IQueryable<CycleTime> q = _context.CycleTimes.Where(w => w.ItemNo == id.Trim().ToUpper());
var cycleTime = await q.ToListAsync();
return cycleTime;
}
/// <summary>
///
/// </summary>

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

@ -78,7 +78,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary>
/// 正背面
/// </summary>
[Required]
[Column("DIP_SIDE")]
[StringLength(10)]
[DataMember]
@ -96,7 +95,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary>
/// 是否需要CARRIER(Y/N)
/// </summary>
[Required]
[Column("DIP_CARRIER")]
[StringLength(2)]
[DataMember]
@ -106,7 +104,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary>
/// 是否需要貼付膠帶(Y/N)
/// </summary>
[Required]
[Column("DIP_TAPE")]
[StringLength(2)]
[DataMember]
@ -116,7 +113,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary>
/// 是否需要點防焊膠(Y/N)
/// </summary>
[Required]
[Column("DIP_SOLDER_MASK")]
[StringLength(2)]
[DataMember]
@ -125,7 +121,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary>
/// 是否燒錄(Y/N)
/// </summary>
[Required]
[Column("BURN")]
[StringLength(2)]
[DataMember]
@ -153,7 +148,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary>
/// 零件是否需要烘烤(Y/N)
/// </summary>
[Required]
[Column("IS_PARTS_BAKE")]
[StringLength(2)]
[DataMember]
@ -165,7 +159,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("PARTS_BAKE", TypeName = "NUMBER")]
[DataMember]
[Display(Name = "零件烘烤溫度")]
[Required(ErrorMessage = "{0},不能空白")]
public decimal PartsBake { get; set; }
/// <summary>
@ -174,7 +167,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("PARTS_BAKE_TIME", TypeName = "NUMBER")]
[DataMember]
[Display(Name = "零件烘烤時間")]
[Required(ErrorMessage = "{0},不能空白")]
public decimal PartsBakeTime { get; set; }
/// <summary>
@ -191,7 +183,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("PCB_BAKE", TypeName = "NUMBER")]
[DataMember]
[Display(Name = "PCB烘烤")]
[Required(ErrorMessage = "{0},不能空白")]
public decimal PcbBake { get; set; }
/// <summary>
@ -208,7 +199,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("PCB_PROCESSING")]
[DataMember]
[Display(Name = "PCB加工")]
[Required(ErrorMessage = "{0},不能空白")]
public string PcbProcessing { get; set; }
@ -242,7 +232,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("BI_RATIO", TypeName = "NUMBER")]
[DataMember]
[Display(Name = "燒機比率")]
[Required(ErrorMessage = "{0},不能空白")]
public decimal BiRatio { get; set; }
/// <summary>
@ -252,7 +241,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[StringLength(20)]
[DataMember]
[Display(Name = "燒機溫度")]
[Required(ErrorMessage = "{0},不能空白")]
public string BiTemperature { get; set; }
/// <summary>
@ -262,7 +250,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[StringLength(20)]
[DataMember]
[Display(Name = "燒機時間")]
[Required(ErrorMessage = "{0},不能空白")]
public string BiTime { get; set; }
/// <summary>
@ -296,7 +283,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[StringLength(20)]
[DataMember]
[Display(Name = "Check Sum")]
[Required(ErrorMessage = "{0},不能空白")]
public string Checksum { get; set; }
/// <summary>

Loading…
Cancel
Save