Browse Source

1. FQC抽驗修正箱號抽驗問題

2. 過站訊息判斷更新
PTD
ray 2 years ago
parent
commit
28c19dd422
  1. 69
      AMESCoreStudio.Web/Controllers/FQCController.cs
  2. 4
      AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs

69
AMESCoreStudio.Web/Controllers/FQCController.cs

@ -1036,21 +1036,29 @@ namespace AMESCoreStudio.Web.Controllers
return View("FQC007C", model);
};
var FqcResultDetail = new FqcResultDetail
{
BarcodeNo = result_BarCodeInfo.FirstOrDefault().BarcodeNo,
ExtraBarcodeNo = result_BarCodeInfo.FirstOrDefault().ExtraBarcodeNo,
BoxNo = result_BarCodeInfo.FirstOrDefault().BoxNo,
StatusNo = model.StatusNo,
NgMemo = model.NgMemo,
NgReasonNo = model.NgReasonNo,
CreateUserID = GetLogInUserID(),
UpdateUserID = GetLogInUserID()
var FqcResultDetails = new List<FqcResultDetail>();
foreach (var item in result_BarCodeInfo)
{
FqcResultDetails.Add(new FqcResultDetail
{
BarcodeNo = item.BarcodeNo,
ExtraBarcodeNo = item.ExtraBarcodeNo,
BoxNo = item.BoxNo,
StatusNo = model.StatusNo,
NgMemo = model.NgMemo,
NgReasonNo = model.NgReasonNo,
CreateUserID = GetLogInUserID(),
UpdateUserID = GetLogInUserID()
});
};
// 要抽驗的內部條碼
var AddBarCodeNo = FqcResultDetails.Select(s => s.BarcodeNo).ToList();
if (string.IsNullOrWhiteSpace(FqcResultDetail.ExtraBarcodeNo))
if (FqcResultDetails.Where(w => string.IsNullOrWhiteSpace(w.ExtraBarcodeNo)).Any())
{
ModelState.AddModelError("error", "找不到該筆資料的出貨序號");
var NoExtraBarcodeNo = FqcResultDetails.Where(w => string.IsNullOrWhiteSpace(w.ExtraBarcodeNo))
.Select(s => s.BarcodeNo).ToList();
ModelState.AddModelError("error", string.Join(',', NoExtraBarcodeNo) + "找不到出貨序號");
return View("FQC007C", model);
}
#endregion
@ -1060,9 +1068,12 @@ namespace AMESCoreStudio.Web.Controllers
if (result_FqcResultMaster.Count() != 0)
{
var result_ResultDetail = await _fqcApi.GetFqcResultDetail(result_FqcResultMaster.FirstOrDefault().FqcID);
if (result_ResultDetail.Where(w => w.BarcodeNo == FqcResultDetail.BarcodeNo).Any())
if (result_ResultDetail.Where(w => AddBarCodeNo.Contains(w.BarcodeNo)).Any())
{
ModelState.AddModelError("error", "內部序號【" + FqcResultDetail.BarcodeNo + "】已抽驗過");
var errorMag = result_ResultDetail.Where(w => AddBarCodeNo.Contains(w.BarcodeNo))
.Select(s => s.BarcodeNo).ToList();
ModelState.AddModelError("error", "內部序號【" + string.Join(",", errorMag) + "】已抽驗過");
return View("FQC007C", model);
}
}
@ -1073,7 +1084,7 @@ namespace AMESCoreStudio.Web.Controllers
if (result_FqcResultMaster.Count != 0)
{
FqcResultMaster = result_FqcResultMaster.FirstOrDefault();
FqcResultMaster.QaQty += 1;
FqcResultMaster.QaQty += AddBarCodeNo.Count();
FqcResultMaster.UpdateDate = DateTime.Now;
FqcResultMaster.UpdateUserID = GetLogInUserID();
}
@ -1086,7 +1097,7 @@ namespace AMESCoreStudio.Web.Controllers
FqcResultMaster.SeqID = model.SeqID;
FqcResultMaster.LotQty = FirstFqc.InhouseQty;
FqcResultMaster.WipNo = FirstFqc.WipNo;
FqcResultMaster.QaQty = 1;
FqcResultMaster.QaQty = AddBarCodeNo.Count();
FqcResultMaster.ItemNo = FirstFqc.ItemNo;
FqcResultMaster.ModelNo = FirstFqc.ModelNo;
FqcResultMaster.StartTime = DateTime.Now;
@ -1096,28 +1107,38 @@ namespace AMESCoreStudio.Web.Controllers
// 判斷是PASS || FAIL
if (model.StatusNo == "F")
FqcResultMaster.FailQty += 1;
FqcResultMaster.FailQty += AddBarCodeNo.Count();
else
{
FqcResultMaster.PassQty += 1;
FqcResultDetail.NgReasonNo = "";
FqcResultDetail.NgMemo = "";
FqcResultMaster.PassQty += AddBarCodeNo.Count();
}
#endregion
IResultModel<FqcResultMaster> result;
var FqcID = 0;
if (result_FqcResultMaster.Count == 0)
{
result = await _fqcApi.PostFqcResultMaster(JsonConvert.SerializeObject(FqcResultMaster));
FqcResultDetail.FqcID = result.Data.FirstOrDefault().FqcID;
FqcID = result.Data.FirstOrDefault().FqcID;
}
else
{
result = await _fqcApi.PutFqcResultMaster(JsonConvert.SerializeObject(FqcResultMaster));
FqcResultDetail.FqcID = result_FqcResultMaster.FirstOrDefault().FqcID;
FqcID = result_FqcResultMaster.FirstOrDefault().FqcID;
}
IResultModel result_detail;
result_detail = await _fqcApi.PostFqcResultDetail(JsonConvert.SerializeObject(FqcResultDetail));
IResultModel result_detail = new ResultModel<FqcResultDetail>();
foreach (var item in FqcResultDetails)
{
item.FqcID = FqcID;
if (model.StatusNo == "P")
{
item.NgMemo = "";
item.NgReasonNo = "";
}
result_detail = await _fqcApi.PostFqcResultDetail(JsonConvert.SerializeObject(item));
}
if (result_detail.Success)
{

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

@ -2114,9 +2114,9 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
// 目前BarCodeInfo StationID 取得相對應下個流程StationID
var rulesByBarCodeInfoStationID = rules.Value.Where(w => w.StationID == barcodeInfo.StationID).ToList();
// 當下個流程 != 目前過站流程
if (rulesByBarCodeInfoStationID.Where(w => w.RuleStatus == "P" && w.NextStationID == stationID).Count() == 0)
if (rulesByBarCodeInfoStationID.Where(w => w.NextStationID == stationID && w.RuleStatus == barcodeInfo.RuleStatus).Count() == 0)
{
var Nextstation = rulesByBarCodeInfoStationID.Where(w => w.RuleStatus == "P").ToList();
var Nextstation = rulesByBarCodeInfoStationID.Where(w => w.RuleStatus == barcodeInfo.RuleStatus).ToList();
var StationName = Nextstation.Select(s => s.NextStation.StationName).ToArray();
resultModel.Msg = "該內部序號下一個作業站應該是:" + String.Join('、', StationName) + " ,請確認";
return resultModel;

Loading…
Cancel
Save