|
@ -60,10 +60,10 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
|
/// 料號基本資料檔 to ItemNO
|
|
|
/// 取得出貨序號
|
|
|
/// </summary>
|
|
|
/// </summary>
|
|
|
/// <param name="itemNo">料號</param>
|
|
|
/// <param name="itemNo">料號</param>
|
|
|
/// <param name="lotNo">料號</param>
|
|
|
/// <param name="lotNo">生產序號</param>
|
|
|
/// <returns></returns>
|
|
|
/// <returns></returns>
|
|
|
[HttpGet("ByQurey/{itemNo}/{lotNo}")] |
|
|
[HttpGet("ByQurey/{itemNo}/{lotNo}")] |
|
|
public async Task<ResultModel<string>> GetSerialRuleByQurey(string itemNo,string lotNo) |
|
|
public async Task<ResultModel<string>> GetSerialRuleByQurey(string itemNo,string lotNo) |
|
@ -170,12 +170,106 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES |
|
|
serial = serial.Replace("[SN4]", serialRuleNew.SnNum.ToString("0000")); |
|
|
serial = serial.Replace("[SN4]", serialRuleNew.SnNum.ToString("0000")); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_context.Entry(serialRuleNew).State = EntityState.Modified; |
|
|
_context.Entry(serialRuleNew).State = EntityState.Modified; |
|
|
await _context.SaveChangesAsync(); |
|
|
try |
|
|
|
|
|
{ |
|
|
|
|
|
await _context.SaveChangesAsync(); |
|
|
|
|
|
result.Success = true; |
|
|
|
|
|
result.Msg = serial; |
|
|
|
|
|
|
|
|
result.Success = true; |
|
|
} |
|
|
result.Msg = serial; |
|
|
catch (Exception ex) |
|
|
return result; |
|
|
{ |
|
|
|
|
|
result.Success = false; |
|
|
|
|
|
result.Msg = ex.InnerException.Message; |
|
|
|
|
|
} |
|
|
|
|
|
return result; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 取得樣本序號
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="itemNo">料號</param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpGet("Sample/{itemNo}")] |
|
|
|
|
|
public async Task<ResultModel<string>> GetSampleSerialRule(string itemNo) |
|
|
|
|
|
{ |
|
|
|
|
|
IQueryable<SerialRule> q = _context.SerialRules; |
|
|
|
|
|
ResultModel<string> result = new ResultModel<string>(); |
|
|
|
|
|
if (string.IsNullOrWhiteSpace(itemNo)) { |
|
|
|
|
|
itemNo = "Sample"; |
|
|
|
|
|
itemNo = itemNo.ToUpper(); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
var serialRule = await q.Where(p => p.ItemNo == itemNo).FirstOrDefaultAsync(); |
|
|
|
|
|
var serialRuleNew = serialRule; |
|
|
|
|
|
if (serialRule == null) |
|
|
|
|
|
{ |
|
|
|
|
|
result.Success = false; |
|
|
|
|
|
result.Msg = "無料號對應出貨序號規則"; |
|
|
|
|
|
return result; |
|
|
|
|
|
} |
|
|
|
|
|
var strRule = serialRule.Rule.ToUpper(); |
|
|
|
|
|
var serial = serialRule.Rule; |
|
|
|
|
|
if (strRule.Contains("[WW]")) |
|
|
|
|
|
{ |
|
|
|
|
|
System.Globalization.GregorianCalendar gc = new System.Globalization.GregorianCalendar(); |
|
|
|
|
|
DateTime datetime = DateTime.Now; |
|
|
|
|
|
int week = gc.GetWeekOfYear(datetime, System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Sunday); |
|
|
|
|
|
serial = serial.Replace("[WW]", week.ToString()); |
|
|
|
|
|
|
|
|
|
|
|
if (serialRule.WNum != week) |
|
|
|
|
|
{ |
|
|
|
|
|
serialRuleNew.WNum = week; |
|
|
|
|
|
if (serialRule.SnNum > 0) |
|
|
|
|
|
serialRuleNew.SnNum = 0; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (strRule.Contains("[YY]"))//年份後兩碼
|
|
|
|
|
|
{ |
|
|
|
|
|
var strYY = System.DateTime.Now.ToString("yy"); |
|
|
|
|
|
if (serialRule.YNum.ToString() != System.DateTime.Now.ToString("yy")) |
|
|
|
|
|
{ |
|
|
|
|
|
serialRuleNew.YNum = int.Parse(System.DateTime.Now.ToString("yy")); |
|
|
|
|
|
if (serialRule.SnNum > 0) |
|
|
|
|
|
serialRuleNew.SnNum = 0; |
|
|
|
|
|
} |
|
|
|
|
|
strYY = strYY.Replace("0", "Z"); |
|
|
|
|
|
strYY = strYY.Replace("1", "A"); |
|
|
|
|
|
strYY = strYY.Replace("2", "B"); |
|
|
|
|
|
strYY = strYY.Replace("3", "C"); |
|
|
|
|
|
strYY = strYY.Replace("4", "D"); |
|
|
|
|
|
strYY = strYY.Replace("5", "E"); |
|
|
|
|
|
strYY = strYY.Replace("6", "F"); |
|
|
|
|
|
strYY = strYY.Replace("7", "G"); |
|
|
|
|
|
strYY = strYY.Replace("8", "H"); |
|
|
|
|
|
strYY = strYY.Replace("9", "J"); |
|
|
|
|
|
|
|
|
|
|
|
serial = serial.Replace("[YY]", strYY); |
|
|
|
|
|
} |
|
|
|
|
|
if (strRule.Contains("[SN5]")) |
|
|
|
|
|
{ |
|
|
|
|
|
serialRuleNew.SnNum++; |
|
|
|
|
|
serial = serial.Replace("[SN5]", serialRuleNew.SnNum.ToString("00000")); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
_context.Entry(serialRuleNew).State = EntityState.Modified; |
|
|
|
|
|
|
|
|
|
|
|
try |
|
|
|
|
|
{ |
|
|
|
|
|
await _context.SaveChangesAsync(); |
|
|
|
|
|
result.Success = true; |
|
|
|
|
|
result.Msg = serial; |
|
|
|
|
|
} |
|
|
|
|
|
catch (Exception ex) |
|
|
|
|
|
{ |
|
|
|
|
|
result.Success = false; |
|
|
|
|
|
result.Msg = ex.InnerException.Message; |
|
|
|
|
|
} |
|
|
|
|
|
return result; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|