|
|
@ -1533,6 +1533,11 @@ namespace AMESCoreStudio.Web.Controllers |
|
|
|
} |
|
|
|
|
|
|
|
model.wipMAC = await _pcsApi.GetWipMAC(model.wipInfo.WipNO); |
|
|
|
if (model.wipMAC != null) |
|
|
|
{ |
|
|
|
model.wipMAC.StartNO = model.wipMAC.Title + model.wipMAC.StartNO; |
|
|
|
model.wipMAC.EndNO = model.wipMAC.Title + model.wipMAC.EndNO; |
|
|
|
} |
|
|
|
|
|
|
|
model.wipLabel = await _pcsApi.GetWipLabel(model.wipInfo.WipNO); |
|
|
|
|
|
|
@ -1623,6 +1628,11 @@ namespace AMESCoreStudio.Web.Controllers |
|
|
|
} |
|
|
|
|
|
|
|
model.wipMAC = await _pcsApi.GetWipMAC(model.wipInfo.WipNO); |
|
|
|
if (model.wipMAC != null) |
|
|
|
{ |
|
|
|
model.wipMAC.StartNO = model.wipMAC.Title + model.wipMAC.StartNO; |
|
|
|
model.wipMAC.EndNO = model.wipMAC.Title + model.wipMAC.EndNO; |
|
|
|
} |
|
|
|
|
|
|
|
model.wipLabel = await _pcsApi.GetWipLabel(model.wipInfo.WipNO); |
|
|
|
|
|
|
@ -1750,6 +1760,14 @@ namespace AMESCoreStudio.Web.Controllers |
|
|
|
return View("PCS003", model); |
|
|
|
} |
|
|
|
|
|
|
|
// 判斷MAC是否正確
|
|
|
|
var CheckMACMsg = CheckMACData(model); |
|
|
|
if (!string.IsNullOrWhiteSpace(CheckMACMsg)) |
|
|
|
{ |
|
|
|
ModelState.AddModelError("error", CheckMACMsg); |
|
|
|
return View("PCS003", model); |
|
|
|
} |
|
|
|
|
|
|
|
result = await _pcsApi.PutWipInfo(JsonConvert.SerializeObject(model.wipInfo)); |
|
|
|
if (result.Success) |
|
|
|
{ |
|
|
@ -1828,11 +1846,11 @@ namespace AMESCoreStudio.Web.Controllers |
|
|
|
// MAC
|
|
|
|
if (!string.IsNullOrWhiteSpace(model.wipMAC.StartNO) && !string.IsNullOrWhiteSpace(model.wipMAC.EndNO)) |
|
|
|
{ |
|
|
|
var mACInfo = await _pcsApi.GetMACInfo(model.wipAtt.ItemNO); |
|
|
|
if (mACInfo != null) |
|
|
|
if (model.wipMAC.StartNO.Length == 12) |
|
|
|
{ |
|
|
|
model.wipMAC.Title = mACInfo.Title; |
|
|
|
model.wipMAC.ClassGroup = mACInfo.ClassGroup; |
|
|
|
model.wipMAC.Title = model.wipMAC.StartNO.Substring(0, 6).ToUpper(); |
|
|
|
model.wipMAC.StartNO = model.wipMAC.StartNO.Substring(model.wipMAC.StartNO.Length - 6, 6).ToUpper(); |
|
|
|
model.wipMAC.EndNO = model.wipMAC.EndNO.Substring(model.wipMAC.EndNO.Length - 6, 6).ToUpper(); |
|
|
|
if (!string.IsNullOrWhiteSpace(model.wipMAC.WipNO)) |
|
|
|
result = await _pcsApi.PutWipMAC(JsonConvert.SerializeObject(model.wipMAC)); |
|
|
|
else |
|
|
@ -1840,7 +1858,23 @@ namespace AMESCoreStudio.Web.Controllers |
|
|
|
model.wipMAC.WipNO = model.wipInfo.WipNO; |
|
|
|
result = await _pcsApi.PostWipMAC(JsonConvert.SerializeObject(model.wipMAC)); |
|
|
|
} |
|
|
|
result = await _pcsApi.PutMACInfoByClassGroup(mACInfo.ClassGroup, model.wipMAC.EndNO); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
var mACInfo = await _pcsApi.GetMACInfo(model.wipAtt.ItemNO); |
|
|
|
if (mACInfo != null) |
|
|
|
{ |
|
|
|
model.wipMAC.Title = mACInfo.Title; |
|
|
|
model.wipMAC.ClassGroup = mACInfo.ClassGroup; |
|
|
|
if (!string.IsNullOrWhiteSpace(model.wipMAC.WipNO)) |
|
|
|
result = await _pcsApi.PutWipMAC(JsonConvert.SerializeObject(model.wipMAC)); |
|
|
|
else |
|
|
|
{ |
|
|
|
model.wipMAC.WipNO = model.wipInfo.WipNO; |
|
|
|
result = await _pcsApi.PostWipMAC(JsonConvert.SerializeObject(model.wipMAC)); |
|
|
|
} |
|
|
|
result = await _pcsApi.PutMACInfoByClassGroup(mACInfo.ClassGroup, model.wipMAC.EndNO); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// KeyParts
|
|
|
@ -1963,9 +1997,53 @@ namespace AMESCoreStudio.Web.Controllers |
|
|
|
ModelState.AddModelError("error", result.Msg); |
|
|
|
} |
|
|
|
} |
|
|
|
return View(); |
|
|
|
return View(model); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// CheckMAC 資料是否正確
|
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
public string CheckMACData(WipDataViewModel model) |
|
|
|
{ |
|
|
|
string StartNO = model.wipMAC.StartNO.ToString(); |
|
|
|
string EndNO = model.wipMAC.EndNO.ToString(); |
|
|
|
// 資料為空
|
|
|
|
if (string.IsNullOrWhiteSpace(StartNO) && string.IsNullOrWhiteSpace(EndNO)) |
|
|
|
return ""; |
|
|
|
|
|
|
|
if (StartNO.Length != 12 || EndNO.Length != 12) |
|
|
|
return "MAC長度有誤"; |
|
|
|
|
|
|
|
if (StartNO.ToUpper().Substring(0, 6) != EndNO.ToUpper().Substring(0, 6)) |
|
|
|
return "MAC前綴不一樣"; |
|
|
|
|
|
|
|
// 轉十進位
|
|
|
|
var Entire = new Code.Entire(); |
|
|
|
try |
|
|
|
{ |
|
|
|
// 最小值
|
|
|
|
var StartNONum = int.Parse(Entire.DecHex(StartNO.Substring(StartNO.Length - 6, 6), "HexToDec")); |
|
|
|
// 最大值
|
|
|
|
var EndNONum = int.Parse(Entire.DecHex(EndNO.Substring(EndNO.Length - 6, 6), "HexToDec")); |
|
|
|
|
|
|
|
// 取MAC區間小於工單數
|
|
|
|
if (EndNONum - StartNONum + 1 < model.wipInfo.PlanQTY) |
|
|
|
return "MAC區間小於工單數量"; |
|
|
|
|
|
|
|
// 判斷MAC區間是否有重複使用
|
|
|
|
var result = _pcsApi.GetCheckMAC(StartNO, EndNO).InvokeAsync().Result; |
|
|
|
|
|
|
|
if (!result.Success) |
|
|
|
return result.Msg; |
|
|
|
else |
|
|
|
return ""; |
|
|
|
} |
|
|
|
catch |
|
|
|
{ |
|
|
|
return "MAC後6碼格式有誤"; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public async Task<JsonResult> GetMAC(string itemno, int planQTY) |
|
|
|
{ |
|
|
|