Browse Source

修改相同工單不同制程段可自動裝箱

修改箱號規則 工單+制程+BOX+流水號
master
Yiru 2 years ago
parent
commit
487971a0cc
  1. 36
      AMESCoreStudio.WebApi/Controllers/AMES/WipBoxController.cs

36
AMESCoreStudio.WebApi/Controllers/AMES/WipBoxController.cs

@ -145,9 +145,17 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
#endregion
try
{
if (! string.IsNullOrEmpty(wipBoxDto.ExtraNo))
var wipInfos = await wipInfosController.GetWipInfoByWipNo(wipBoxDto.WipNo);
wipInfos = wipInfos.Value.Where(w => w.UnitNO == wipBoxDto.UnitNo).ToList();
if (wipInfos.Value.Count() > 0)
{
int wipID = wipInfos.Value.Where(w => w.UnitNO == wipBoxDto.UnitNo).Select(s => s.WipID).FirstOrDefault(); //當前工單ID
var WipNo = wipBoxDto.WipNo; //當前工單
if (!string.IsNullOrEmpty(wipBoxDto.ExtraNo))
{
var BarcodeInfos = await barcodeInfoesController.GetBarcodeInfoesByExtraNo(wipBoxDto.ExtraNo);
BarcodeInfos = BarcodeInfos.Value.Where(w => w.WipID == wipID).ToList();
if (BarcodeInfos.Value.Count() == 0)
{
BarcodeInfos = await barcodeInfoesController.GetBarcodeInfoesByNo(wipBoxDto.ExtraNo);
@ -162,18 +170,19 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
}
if (BarcodeInfos.Value.Where(w => w.BoxNo != null).Count() > 0)
{
//查詢該工單若有跟Barcodeinfo 相同的箱號,則為序號已裝箱過(為避免不同制程都有裝箱誤判為已裝箱過)
var WipBOX = await GetWipBoxByWipID(wipID);
WipBOX = WipBOX.Value.Where(w => w.BoxNo == BarcodeInfos.Value.Select(s => s.BoxNo).FirstOrDefault()).ToList();
if (WipBOX.Value.Count() > 0)
{
resultModel.Success = false;
resultModel.Msg = "裝箱失敗 此序號已裝箱過";
return resultModel;
}
}
}
var WipInfos = await wipInfosController.GetWipInfoByWipNo(wipBoxDto.WipNo);
int wipID = WipInfos.Value.Where(w=>w.UnitNO == wipBoxDto.UnitNo).Select(s => s.WipID).FirstOrDefault(); //當前工單ID
var WipNo = wipBoxDto.WipNo; //當前工單
// var BoxCnt = WipInfos.Value.Select(s => s.BoxCNT).FirstOrDefault(); //當前工單單箱入數
var wipBoxs = await GetWipBoxByWipID(wipID);
//// 當前箱號
@ -182,10 +191,10 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
{
//創建新箱號
if (wipBoxs.Value.Count() == 0)
NowBoxNo = WipNo + "BOX" + "001";
NowBoxNo = WipNo + wipBoxDto.UnitNo + "BOX" + "001";
else
{
NowBoxNo = wipBoxs.Value.OrderByDescending(o => o.BoxNo).Select(s=> s.BoxNo).FirstOrDefault();
NowBoxNo = wipBoxs.Value.OrderByDescending(o => o.BoxNo).Select(s => s.BoxNo).FirstOrDefault();
string BoxNoOrder = NowBoxNo.Substring(NowBoxNo.Length - 3, 3);
BoxNoOrder = (int.Parse(BoxNoOrder) + 1).ToString().PadLeft(3, '0');
NowBoxNo = NowBoxNo.Substring(0, NowBoxNo.Length - 3) + BoxNoOrder;
@ -259,7 +268,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
WipID = wipID,
BoxNo = NowBoxNo,
BoxCnt = 0,
BoxStatus =1
BoxStatus = 1
};
//wipBox.BoxNo = NowBoxNo;
@ -273,6 +282,15 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
return resultModel;
}
else
{
resultModel.Success = false;
resultModel.Msg = "制程單位:"+ wipBoxDto.UnitNo + " 查無此工單";
return resultModel;
}
}
catch (Exception ex)
{

Loading…
Cancel
Save