|
|
@ -6270,7 +6270,7 @@ namespace AMESCoreStudio.Web.Controllers |
|
|
|
// ResultModel
|
|
|
|
string Msg = string.Empty; |
|
|
|
bool Success = true; |
|
|
|
string Data = model.Input; |
|
|
|
string Data = model.Input.ToUpper(); |
|
|
|
// 刷入條碼+異常欄位
|
|
|
|
if (!string.IsNullOrWhiteSpace(model.InputNo)) |
|
|
|
Data += "@" + model.InputNo; |
|
|
@ -6348,13 +6348,22 @@ namespace AMESCoreStudio.Web.Controllers |
|
|
|
var BarCodeItems = await _pcsApi.GetBarcodeItemByBarCode(model.Input); |
|
|
|
BarCodeItems = BarCodeItems.Where(w => w.S.UnitNo == stationUnit).ToList(); |
|
|
|
|
|
|
|
// WipKps - BarCodeItem 剩下未綁定的KpNo
|
|
|
|
var ExceptWipKp = model.WipKps.ToList(); |
|
|
|
foreach (var item in BarCodeItems) |
|
|
|
{ |
|
|
|
var ByItemWipKp = ExceptWipKp.Where(w => w.KpNo == item.ItemNo).FirstOrDefault(); |
|
|
|
if (ByItemWipKp != null) |
|
|
|
ExceptWipKp.Remove(ByItemWipKp); |
|
|
|
} |
|
|
|
|
|
|
|
// KeyParts代碼順序
|
|
|
|
var KeyPartsNo = model.KpItemName == null ? new List<string>() : model.KpItemName.Split(',').ToList(); |
|
|
|
var SpecifyKeyPartsNo = model.KpItemName == null ? new List<string>() : model.KpItemName.Split(',').ToList(); |
|
|
|
int KpItemQty = BarCodeItems.Count(); |
|
|
|
int i = 0; |
|
|
|
|
|
|
|
// 判斷指定KeyParts代碼是否有刷足夠數
|
|
|
|
if (KeyPartsNo.Count() > model.Inputs.Where(w => !w.Input.StartsWith("$")).Count()) |
|
|
|
if (SpecifyKeyPartsNo.Count() > model.Inputs.Where(w => !w.Input.StartsWith("$")).Count()) |
|
|
|
{ |
|
|
|
Msg = "有指定KeyParts代號 刷入數量不足,請在確認!"; |
|
|
|
return Json(new Result() { success = false, msg = Msg, data = Data }); |
|
|
@ -6389,9 +6398,16 @@ namespace AMESCoreStudio.Web.Controllers |
|
|
|
{ |
|
|
|
// 判斷是否有輸入KeyParts代碼順序
|
|
|
|
// 有指定KeyParts順序
|
|
|
|
if (i <= KeyPartsNo.Count()) |
|
|
|
if (i <= SpecifyKeyPartsNo.Count()) |
|
|
|
{ |
|
|
|
var WipKp = model.WipKps.Where(w => w.KpNoName.ToUpper() == KeyPartsNo[i - 1].ToUpper()).FirstOrDefault(); |
|
|
|
var WipKp = ExceptWipKp.Where(w => w.KpNoName.ToUpper() == SpecifyKeyPartsNo[i - 1].ToUpper()).FirstOrDefault(); |
|
|
|
// 比對資料為空時
|
|
|
|
if (WipKp == null) |
|
|
|
{ |
|
|
|
Msg = $"請確認KeyParts代號【{SpecifyKeyPartsNo[i - 1].ToUpper()}】是否數量全數已綁定?"; |
|
|
|
return Json(new Result() { success = false, msg = Msg, data = Data }); |
|
|
|
} |
|
|
|
|
|
|
|
keyParts.Add(new BarCodeCheckDto.inputItem |
|
|
|
{ |
|
|
|
inputType = WipKp.KpNo, |
|
|
@ -6402,16 +6418,16 @@ namespace AMESCoreStudio.Web.Controllers |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
var WipKp = model.WipKps.Where(w => !KeyPartsNo.Any(w1 => w1.ToUpper().Contains(w.KpNoName.ToUpper()))) |
|
|
|
var WipKp = ExceptWipKp.Where(w => !SpecifyKeyPartsNo.Any(w1 => w1.ToUpper().Contains(w.KpNoName.ToUpper()))) |
|
|
|
.ToList(); |
|
|
|
// 排除有指定數量,其他按照WipKp順序取值
|
|
|
|
var k = i - 1 - KeyPartsNo.Count(); |
|
|
|
var k = i - 1 - SpecifyKeyPartsNo.Count(); |
|
|
|
keyParts.Add(new BarCodeCheckDto.inputItem |
|
|
|
{ |
|
|
|
inputType = WipKp[k + KpItemQty].KpNo, |
|
|
|
inputType = WipKp[k].KpNo, |
|
|
|
inputData = KeyPartItem.Input, |
|
|
|
oldInputData = KeyPartItem.InputNo, |
|
|
|
kpItemNo = WipKp[k + KpItemQty].KpName |
|
|
|
kpItemNo = WipKp[k].KpName |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
@ -6453,17 +6469,24 @@ namespace AMESCoreStudio.Web.Controllers |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
// 組件資料
|
|
|
|
var items = await _pcsApi.GetItems(); |
|
|
|
items = items.Where(w => model.WipKps.Any(wi => wi.KpNo == w.ItemNo)).ToList(); |
|
|
|
// 判斷Input為指定KeyParts順序
|
|
|
|
if (items.Any(a => a.ItemName.ToUpper() == Data.ToUpper())) |
|
|
|
{ |
|
|
|
// 判斷是否有重複輸入KP順序代號
|
|
|
|
if (model.KpItemName != null) |
|
|
|
{ |
|
|
|
if (model.KpItemName.Split(",").Where(w => w.ToUpper() == Data.ToUpper()).Any()) |
|
|
|
// 取得目前Input指定KP代碼的綁定數量
|
|
|
|
var KpItemNameByCount = model.KpItemName.Split(",").Where(w => w.ToUpper() == Data.ToUpper()).Count(); |
|
|
|
// WipKp的ByKpNo數量
|
|
|
|
var WipKpByCount = model.WipKps.Where(w1 => w1.KpNo == items.Where(w => w.ItemName.ToUpper() == Data.ToUpper()) |
|
|
|
.Select(s => s.ItemNo).FirstOrDefault()).Count(); |
|
|
|
// 目前綁定KpNo 等於 WipKp ByKpNo 數量
|
|
|
|
if (KpItemNameByCount == WipKpByCount) |
|
|
|
{ |
|
|
|
Success = false; |
|
|
|
Msg = $"KeyParts代號重複輸入:{Data} </br>"; |
|
|
|
Msg = $"指定KeyParts:{Data} 已超過資料設定數量</br>"; |
|
|
|
return Json(new Result() { success = Success, msg = Msg, data = Data }); |
|
|
|
} |
|
|
|
} |
|
|
|