Browse Source

1. 修正FQC相關Bug

2. 過站取消更新箱號及出貨序號
PTD
Ray 2 years ago
parent
commit
050ae6eda7
  1. 110
      AMESCoreStudio.Web/Controllers/FQCController.cs
  2. 8
      AMESCoreStudio.Web/Views/FQC/FQC007.cshtml
  3. 9
      AMESCoreStudio.Web/Views/FQC/FQC007C.cshtml
  4. 4
      AMESCoreStudio.Web/Views/FQC/FQC007V.cshtml
  5. BIN
      AMESCoreStudio.Web/wwwroot/images/ElectronicSignature/ADMIN.png
  6. BIN
      AMESCoreStudio.Web/wwwroot/images/ElectronicSignature/楊其達.png
  7. BIN
      AMESCoreStudio.Web/wwwroot/images/ElectronicSignature/江旭民.png
  8. BIN
      AMESCoreStudio.Web/wwwroot/images/ElectronicSignature/沈俊輝.png
  9. BIN
      AMESCoreStudio.Web/wwwroot/images/ElectronicSignature/沈秀慧.png
  10. BIN
      AMESCoreStudio.Web/wwwroot/images/avalue.png
  11. 6
      AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseDetailController.cs
  12. 4
      AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseMasterController.cs
  13. 2
      AMESCoreStudio.WebApi/Controllers/AMES/FqcResultDetailController.cs
  14. 1
      AMESCoreStudio.WebApi/Controllers/AMES/FqcResultMasterController.cs
  15. 1
      AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs
  16. 10
      AMESCoreStudio.WebApi/DTO/AMES/FQC010VIiew.cs
  17. 7
      AMESCoreStudio.WebApi/DTO/AMES/FqcResultDto.cs

110
AMESCoreStudio.Web/Controllers/FQCController.cs

@ -878,9 +878,39 @@ namespace AMESCoreStudio.Web.Controllers
result_FQCResultMaster.ECN_Memo = model.ECN_Memo;
result_FQCResultMaster.InspectionStatus = model.InspectionStatus;
result_FQCResultMaster.PLM_ECN = model.PLMECN;
result_FQCResultMaster.UpdateUserID = GetLogInUserID();
await _fqcApi.PutFqcResultMaster(JsonConvert.SerializeObject(result_FQCResultMaster));
ModelState.AddModelError("error", "儲存成功!");
}
else
{
var fqcResultMaster = new FqcResultMaster();
fqcResultMaster.InhouseNo = model.InhouseNo;
fqcResultMaster.SeqID = Convert.ToInt16(model.SeqID);
fqcResultMaster.LotQty = model.InhouseQty;
fqcResultMaster.WipNo = model.WipNo;
fqcResultMaster.QaQty = 1;
fqcResultMaster.ItemNo = model.ItemNo;
fqcResultMaster.ModelNo = model.ModelNo;
fqcResultMaster.StartTime = DateTime.Now;
fqcResultMaster.EndTime = DateTime.Now;
fqcResultMaster.CreateUserID = GetLogInUserID();
fqcResultMaster.UpdateUserID = GetLogInUserID();
fqcResultMaster.OS = model.OS;
fqcResultMaster.CPU = model.CPU;
fqcResultMaster.RAM = model.RAM;
fqcResultMaster.BIOS = model.BIOS;
fqcResultMaster.Supervisor = model.Supervisor;
fqcResultMaster.Proved = model.Proved;
fqcResultMaster.OutfitNo = model.OutfitNo;
fqcResultMaster.InspectionType = model.InspectionType;
fqcResultMaster.Note = model.Note;
fqcResultMaster.ECN_Memo = model.ECN_Memo;
fqcResultMaster.InspectionStatus = model.InspectionStatus;
fqcResultMaster.PLM_ECN = model.PLMECN;
await _fqcApi.PostFqcResultMaster(JsonConvert.SerializeObject(fqcResultMaster));
ModelState.AddModelError("error", "儲存成功!");
}
}
if (result.Data.Count() != 0)
@ -939,6 +969,7 @@ namespace AMESCoreStudio.Web.Controllers
result_FQCResultMaster.ECN_Memo = model.ECN_Memo;
result_FQCResultMaster.InspectionStatus = model.InspectionStatus;
result_FQCResultMaster.PLM_ECN = model.PLMECN;
result_FQCResultMaster.UpdateUserID = GetLogInUserID();
await _fqcApi.PutFqcResultMaster(JsonConvert.SerializeObject(result_FQCResultMaster));
ModelState.AddModelError("error", "儲存成功!");
}
@ -955,6 +986,7 @@ namespace AMESCoreStudio.Web.Controllers
fqcResultMaster.StartTime = DateTime.Now;
fqcResultMaster.EndTime = DateTime.Now;
fqcResultMaster.CreateUserID = GetLogInUserID();
fqcResultMaster.UpdateUserID = GetLogInUserID();
fqcResultMaster.OS = model.OS;
fqcResultMaster.CPU = model.CPU;
fqcResultMaster.RAM = model.RAM;
@ -1167,8 +1199,8 @@ namespace AMESCoreStudio.Web.Controllers
var result = await _fqcApi.GetFqcQuery(model.InhouseNo, model.SeqID);
var fqcItem = result.Data.FirstOrDefault();
// Fail數量 小於0 才要判斷抽樣數量
if (fqcItem.FailQty <= 0)
// Fail數量 小於0 才要判斷抽樣數量 && 不等於免驗
if (fqcItem.FailQty <= 0 && fqcItem.InspectionStatus != "C")
{
// 抽驗數量 大於 本批次送驗量
if (fqcItem.QcQty > fqcItem.InhouseQty)
@ -1224,34 +1256,39 @@ namespace AMESCoreStudio.Web.Controllers
{
var FqcQuery = await _fqcApi.GetFqcQuery(model.InhouseNo, model.SeqID);
var fqcItem = FqcQuery.Data.FirstOrDefault();
// 判斷狀態選擇
if (fqcItem.FailQty >= fqcItem.ReQty)
// 免驗排除
if (fqcItem.InspectionStatus != "C")
{
if (model.QaResult == "P" && string.IsNullOrWhiteSpace(model.SpecialPo))
// 判斷狀態選擇
if (fqcItem.FailQty >= fqcItem.ReQty)
{
ModelState.AddModelError("error", "請輸入特採單號");
return View("FQC007B", model);
if (model.QaResult == "P" && string.IsNullOrWhiteSpace(model.SpecialPo))
{
ModelState.AddModelError("error", "請輸入特採單號");
return View("FQC007B", model);
}
}
}
// 判斷有Fail但抽驗量不足 不可開立允收
if (fqcItem.FailQty > 0)
{
// 抽驗數量 大於 本批次送驗量
if (fqcItem.QcQty > fqcItem.InhouseQty)
// 判斷有Fail但抽驗量不足 不可開立允收
if (fqcItem.FailQty > 0)
{
if (fqcItem.PassQty + fqcItem.FailQty != fqcItem.InhouseQty && model.QaResult == "P")
// 抽驗數量 大於 本批次送驗量
if (fqcItem.QcQty > fqcItem.InhouseQty)
{
if (fqcItem.PassQty + fqcItem.FailQty != fqcItem.InhouseQty && model.QaResult == "P")
{
ModelState.AddModelError("error", "抽樣數量不足,不可判定允收");
return View("FQC007B", model);
}
}
//當抽驗數量 小於 抽樣數量就離開
else if (fqcItem.QcQty > fqcItem.PassQty + fqcItem.FailQty && model.QaResult == "P")
{
ModelState.AddModelError("error", "抽樣數量不足,不可判定允收");
return View("FQC007B", model);
}
}
//當抽驗數量 小於 抽樣數量就離開
else if (fqcItem.QcQty > fqcItem.PassQty + fqcItem.FailQty && model.QaResult == "P")
{
ModelState.AddModelError("error", "抽樣數量不足,不可判定允收");
return View("FQC007B", model);
}
}
var fqcResultMaster = await _fqcApi.GetFqcResultMaster(model.FqcID);
@ -1546,7 +1583,7 @@ namespace AMESCoreStudio.Web.Controllers
public async Task<IActionResult> FQC008QueryAsync(string barcodeNo, string wipNo
, string boxNo, string inhouseNo, string dateStr, string dateEnd, string factoryID
, string status ="A", int page = 0, int limit = 10)
, string status = "A", int page = 0, int limit = 10)
{
IResultModel<FqcInhouseMasterDto> result = await _fqcApi.GetFqcInhouseMasterQuery(barcodeNo: barcodeNo, wipNo: wipNo
, boxNo: boxNo, inhouseNo: inhouseNo, date_str: dateStr, date_end: dateEnd
@ -1725,7 +1762,7 @@ namespace AMESCoreStudio.Web.Controllers
Avalue = "AVALUE",
VIP = FqcQuery.CustomerVIP,
WaiveRequisition = FqcQuery.StatusName,
AQLType = FqcQuery.AQLType
AQLType = FqcQuery.AQLType,
};
// 抓全部檢驗工項
@ -1776,6 +1813,35 @@ namespace AMESCoreStudio.Web.Controllers
InspectionResults = item.StatusNo
});
}
// 圖檔轉BASE64
string ApprovedSign = "";
string InspectorSign = "";
if (System.IO.File.Exists($"{this._env.WebRootPath}/images/ElectronicSignature/{FQC010Master.Approved}.png"))
{
using (var b = new System.Drawing.Bitmap($"{this._env.WebRootPath}/images/ElectronicSignature/{FQC010Master.Approved}.png"))
{
using (var ms = new MemoryStream())
{
b.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
ApprovedSign = Convert.ToBase64String(ms.ToArray());
}
}
}
if (System.IO.File.Exists($"{this._env.WebRootPath}/images/ElectronicSignature/{FQC010Master.Inspector}.png"))
{
using (var b = new System.Drawing.Bitmap($"{this._env.WebRootPath}/images/ElectronicSignature/{FQC010Master.Inspector}.png"))
{
using (var ms = new MemoryStream())
{
b.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
InspectorSign = Convert.ToBase64String(ms.ToArray());
}
}
}
FQC010Master.ApprovedSignImg = ApprovedSign;
FQC010Master.InspectorSignImg = InspectorSign;
}
var FQC010Masters = new List<FQC010VIiew>();

8
AMESCoreStudio.Web/Views/FQC/FQC007.cshtml

@ -44,6 +44,10 @@
<input type="hidden" id="hInhouseNo" value="@Model.h_InhouseNo" />
<input type="hidden" id="hSeqID" value="@Model.h_SeqID" />
<input type="hidden" id="hFqcID" value="@Model.FqcID" />
<input type="hidden" asp-for="WipNo" value="@Model.WipNo" />
<input type="hidden" asp-for="InhouseQty" value="@Model.InhouseQty" />
<input type="hidden" asp-for="ItemNo" value="@Model.ItemNo" />
<input type="hidden" asp-for="ModelNo" value="@Model.ModelNo" />
<div class="layui-col-xs1">
<label class="layui-form-label-col" style="text-align:right;">入庫單號:</label>
</div>
@ -248,9 +252,9 @@
<label class="layui-form-label-col" style="text-align:right;">檢驗者:</label>
</div>
<div class="layui-col-xs2">
<div class="layui-input-inline" style="width:80px;">
@* <div class="layui-input-inline" style="width:80px;">
<input class="layui-input" type="text" asp-for="UpdateUser" onchange="getUserName(this);" />
</div>
</div>*@
<div class="layui-input-inline">
<label class="layui-form-label" id="UpdateUser_Name" style="text-align: left;">@Model.UpdateUser_Name</label>
</div>

9
AMESCoreStudio.Web/Views/FQC/FQC007C.cshtml

@ -9,6 +9,10 @@
.control-label {
justify-content: flex-end !important;
}
.layui-form-select dl {
max-height: 200px;
}
</style>
<div class="layui-card">
@ -50,6 +54,7 @@
<label class="layui-form-label">不良群組</label>
<div class="layui-input-block">
<select id="ngGroup" lay-filter="ngGroup" lay-submit asp-items="@ViewBag.NGGroupSelect">
<option value="0">N/A</option>
</select>
</div>
</div>
@ -75,7 +80,7 @@
<div class="layui-form-item">
<label asp-for="NgMemo" class="layui-form-label"></label>
<div class="layui-input-block">
<input asp-for="BoxNo" class="layui-input" />
<input asp-for="NgMemo" class="layui-input" />
</div>
</div>
</div>
@ -185,7 +190,7 @@
}
else
parent.hg.msg(error);
}
}
});
function add() {

4
AMESCoreStudio.Web/Views/FQC/FQC007V.cshtml

@ -38,8 +38,8 @@
title: '抽驗狀態'
},
{
field: 'ngReasonNo',
title: '不良代碼'
field: 'ngReasonDesc',
title: '不良現象'
},
{
field: 'ngMemo',

BIN
AMESCoreStudio.Web/wwwroot/images/ElectronicSignature/ADMIN.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
AMESCoreStudio.Web/wwwroot/images/ElectronicSignature/楊其達.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
AMESCoreStudio.Web/wwwroot/images/ElectronicSignature/江旭民.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
AMESCoreStudio.Web/wwwroot/images/ElectronicSignature/沈俊輝.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

BIN
AMESCoreStudio.Web/wwwroot/images/ElectronicSignature/沈秀慧.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
AMESCoreStudio.Web/wwwroot/images/avalue.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

6
AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseDetailController.cs

@ -89,6 +89,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
if (FqcResultMaster != null)
{
var FqcResultDetail = await _context.FqcResultDetails.Where(w => w.FqcID == FqcResultMaster.FqcID).ToListAsync();
var NgReasons = await _context.NGReasons.ToListAsync();
foreach (var item in FqcResultDetail)
{
foreach (var item2 in fqcResultDto)
@ -97,6 +98,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
{
item2.StatusNo = item.StatusNo;
item2.NgReasonNo = item.NgReasonNo;
item2.NgReasonDesc = NgReasons.Where(w => w.NGReasonNo == item.NgReasonNo).FirstOrDefault() == null ? "" : NgReasons.Where(w => w.NGReasonNo == item.NgReasonNo).FirstOrDefault().NGReasonDesc;
item2.NgMemo = item.NgMemo;
item2.CreateName = await new Helper(_context).GetUserName(item.CreateUserID);
continue;
@ -158,6 +160,9 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
var FqcResultMaster = await _context.FqcResultMasters.Where(w => w.InhouseNo == item.InhouseNo
&& w.SeqID == item.SeqID)
.FirstOrDefaultAsync();
var NgReasons = await _context.NGReasons.ToListAsync();
// 取抽驗結果
if (FqcResultMaster != null)
{
@ -170,6 +175,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
{
item2.StatusNo = item1.StatusNo == "P" ? "PASS" : "NG";
item2.NgReasonNo = item1.NgReasonNo;
item2.NgReasonDesc = NgReasons.Where(w => w.NGReasonNo == item1.NgReasonNo).FirstOrDefault() == null ? "" : NgReasons.Where(w => w.NGReasonNo == item1.NgReasonNo).FirstOrDefault().NGReasonDesc;
item2.NgMemo = item1.NgMemo;
item2.IsSample = "Y";
item2.CreateName = await new Helper(_context).GetUserName(item.CreateUserID);

4
AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseMasterController.cs

@ -199,7 +199,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
join q3 in _context.QcCriteria on q1.CritID equals q3.CritID
join q4 in _context.WipInfos on q1.WipNo equals q4.WipNO
join q5 in _context.FactoryInfos on q4.Werks equals q5.FactoryID.ToString()
join q6 in _context.UserInfoes on q2.Supervisor equals q6.UserNo into cp6
join q6 in _context.UserInfoes on "182" equals q6.UserNo into cp6
from q6 in cp6.DefaultIfEmpty()
join q7 in _context.UserInfoes on q2.Proved equals q7.UserNo into cp7
from q7 in cp7.DefaultIfEmpty()
@ -228,7 +228,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
OS = q2.OS,
RAM = q2.RAM,
OutfitNo = q2.OutfitNo,
Supervisor = q2.Supervisor,
Supervisor = "182",
Supervisor_Name = q6.UserName,
Proved = q2.Proved,
Proved_Name = q7.UserName,

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

@ -56,8 +56,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
ResultModel<FqcResultDetail> result = new ResultModel<FqcResultDetail>();
_context.Entry(fqcResultDetail).State = EntityState.Modified;
fqcResultDetail.UpdateDate = DateTime.Now;
fqcResultDetail.UpdateUserID = 0;
try
{
await _context.SaveChangesAsync();

1
AMESCoreStudio.WebApi/Controllers/AMES/FqcResultMasterController.cs

@ -72,7 +72,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
ResultModel<FqcResultMaster> result = new ResultModel<FqcResultMaster>();
_context.Entry(fqcResultMaster).State = EntityState.Modified;
fqcResultMaster.UpdateDate = DateTime.Now;
fqcResultMaster.UpdateUserID = 0;
try
{

1
AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs

@ -740,7 +740,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
barcodeInfo.StatusNo = StatusNo;
barcodeInfo.WipID = barCodeCheckDto.wipID;
barcodeInfo.StatusID = 1;
barcodeInfo.BoxNo = "";
barcodeInfo.ExtraBarcodeNo = barCodeCheckDto.extNo;
if (CheckNextStopCloseStation(barCodeCheckDto.wipNo, barCodeCheckDto.unitNo, barCodeCheckDto.stationID).Result.Success)
{

10
AMESCoreStudio.WebApi/DTO/AMES/FQC010VIiew.cs

@ -184,6 +184,16 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
/// </summary>
public string Inspector { get; set; }
/// <summary>
/// 抽驗人員簽名檔
/// </summary>
public string ApprovedSignImg { get; set; }
/// <summary>
/// 主管簽名檔
/// </summary>
public string InspectorSignImg { get; set; }
public List<FQC010Detail1> Detail1 { get; set; }
public List<FQC010Detail2> Detail2 { get; set; }

7
AMESCoreStudio.WebApi/DTO/AMES/FqcResultDto.cs

@ -78,6 +78,13 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
[Column("NG_REASON_NO")]
public string NgReasonNo { get; set; }
/// <summary>
/// 不良現象
/// </summary>
[Display(Name = "不良現象")]
[Column("NG_REASON_Desc")]
public string NgReasonDesc { get; set; }
/// <summary>
/// 不良備註
/// </summary>

Loading…
Cancel
Save