|
|
|
@ -3447,6 +3447,7 @@ namespace AMESCoreStudio.Web.Controllers |
|
|
|
/// <returns></returns>
|
|
|
|
public async Task<IActionResult> PCS002QueryAsync(string unitno, string wipNo, string itemNo, int page = 0, int limit = 10) |
|
|
|
{ |
|
|
|
// 查詢 N 狀態 已會排除 E與C狀態
|
|
|
|
IResultModel<dynamic> result = await _pcsApi.GetWipInfoSelectParameter(unitno: unitno |
|
|
|
, wipno: wipNo |
|
|
|
, itemno: itemNo |
|
|
|
@ -3458,8 +3459,80 @@ namespace AMESCoreStudio.Web.Controllers |
|
|
|
{ |
|
|
|
return Json(new Table() { code = 0, msg = "", data = result.Data, count = result.DataTotal }); |
|
|
|
} |
|
|
|
|
|
|
|
return Json(new Table() { count = 0, data = null }); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// PCS002 停用/啟用工單
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="wipID">工單ID</param>
|
|
|
|
/// <param name="currentStatus">目前狀態</param>
|
|
|
|
/// <param name="targetStatus">目標狀態 (D=停用, N=啟用)</param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpPost] |
|
|
|
public async Task<JsonResult> PCS002ToggleStatus(int wipID, string currentStatus, string targetStatus) |
|
|
|
{ |
|
|
|
try |
|
|
|
{ |
|
|
|
// 驗證狀態切換是否合法
|
|
|
|
if (currentStatus == "E" || currentStatus == "C") |
|
|
|
{ |
|
|
|
return Json(new Result() { success = false, msg = "已完工或已刪除的工單無法停用/啟用" }); |
|
|
|
} |
|
|
|
|
|
|
|
// 停用操作:只有 A、N、S 狀態可以停用
|
|
|
|
if (targetStatus == "D") |
|
|
|
{ |
|
|
|
if (currentStatus != "A" && currentStatus != "N" && currentStatus != "S") |
|
|
|
{ |
|
|
|
return Json(new Result() { success = false, msg = "只有 A、N、S 狀態的工單可以停用" }); |
|
|
|
} |
|
|
|
} |
|
|
|
// 啟用操作:只有 D 狀態可以啟用
|
|
|
|
else if (targetStatus == "N") |
|
|
|
{ |
|
|
|
if (currentStatus != "D") |
|
|
|
{ |
|
|
|
return Json(new Result() { success = false, msg = "只有停用狀態的工單可以啟用" }); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
return Json(new Result() { success = false, msg = "無效的狀態值" }); |
|
|
|
} |
|
|
|
|
|
|
|
// 檢查工單是否存在
|
|
|
|
var wipInfo = await _pcsApi.GetWipInfo(wipID); |
|
|
|
if (wipInfo == null || wipInfo.Count == 0) |
|
|
|
{ |
|
|
|
return Json(new Result() { success = false, msg = "工單不存在" }); |
|
|
|
} |
|
|
|
|
|
|
|
// 更新工單狀態
|
|
|
|
WipLog wipLog = new WipLog(); |
|
|
|
wipLog.WipID = wipID; |
|
|
|
wipLog.WipDesc = "."; |
|
|
|
wipLog.StatusNO = targetStatus; |
|
|
|
wipLog.CreateUserID = GetLogInUserID(); |
|
|
|
await _pcsApi.PostWipLog(JsonConvert.SerializeObject(wipLog)); |
|
|
|
var result = await _pcsApi.PutWipinfoToStatusNO(wipID, targetStatus); |
|
|
|
|
|
|
|
if (result.Success) |
|
|
|
{ |
|
|
|
var action = targetStatus == "D" ? "停用" : "啟用"; |
|
|
|
return Json(new Result() { success = true, msg = action + "成功" }); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
return Json(new Result() { success = false, msg = result.Msg ?? "操作失敗" }); |
|
|
|
} |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
return Json(new Result() { success = false, msg = "系統錯誤:" + ex.Message }); |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region PCS004 工單內部條碼區間設定
|
|
|
|
@ -3914,6 +3987,77 @@ namespace AMESCoreStudio.Web.Controllers |
|
|
|
var result = await _pcsApi.DeleteWipinfo(id); |
|
|
|
return Json(new Result() { success = true, msg = "刪除成功" }); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// PCS005 停用/啟用工單
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="wipID">工單ID</param>
|
|
|
|
/// <param name="currentStatus">目前狀態</param>
|
|
|
|
/// <param name="targetStatus">目標狀態 (D=停用, N=啟用)</param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpPost] |
|
|
|
public async Task<JsonResult> PCS005ToggleStatus(int wipID, string currentStatus, string targetStatus) |
|
|
|
{ |
|
|
|
try |
|
|
|
{ |
|
|
|
// 驗證狀態切換是否合法
|
|
|
|
if (currentStatus == "E" || currentStatus == "C") |
|
|
|
{ |
|
|
|
return Json(new Result() { success = false, msg = "已完工或已刪除的工單無法停用/啟用" }); |
|
|
|
} |
|
|
|
|
|
|
|
// 停用操作:只有 A、N、S 狀態可以停用
|
|
|
|
if (targetStatus == "D") |
|
|
|
{ |
|
|
|
if (currentStatus != "A" && currentStatus != "N" && currentStatus != "S") |
|
|
|
{ |
|
|
|
return Json(new Result() { success = false, msg = "只有 A、N、S 狀態的工單可以停用" }); |
|
|
|
} |
|
|
|
} |
|
|
|
// 啟用操作:只有 D 狀態可以啟用
|
|
|
|
else if (targetStatus == "N") |
|
|
|
{ |
|
|
|
if (currentStatus != "D") |
|
|
|
{ |
|
|
|
return Json(new Result() { success = false, msg = "只有停用狀態的工單可以啟用" }); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
return Json(new Result() { success = false, msg = "無效的狀態值" }); |
|
|
|
} |
|
|
|
|
|
|
|
// 檢查工單是否存在
|
|
|
|
var wipInfo = await _pcsApi.GetWipInfo(wipID); |
|
|
|
if (wipInfo == null || wipInfo.Count == 0) |
|
|
|
{ |
|
|
|
return Json(new Result() { success = false, msg = "工單不存在" }); |
|
|
|
} |
|
|
|
|
|
|
|
// 更新工單狀態
|
|
|
|
WipLog wipLog = new WipLog(); |
|
|
|
wipLog.WipID = wipID; |
|
|
|
wipLog.WipDesc = "."; |
|
|
|
wipLog.StatusNO = targetStatus; |
|
|
|
wipLog.CreateUserID = GetLogInUserID(); |
|
|
|
await _pcsApi.PostWipLog(JsonConvert.SerializeObject(wipLog)); |
|
|
|
var result = await _pcsApi.PutWipinfoToStatusNO(wipID, targetStatus); |
|
|
|
|
|
|
|
if (result.Success) |
|
|
|
{ |
|
|
|
var action = targetStatus == "D" ? "停用" : "啟用"; |
|
|
|
return Json(new Result() { success = true, msg = action + "成功" }); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
return Json(new Result() { success = false, msg = result.Msg ?? "操作失敗" }); |
|
|
|
} |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
return Json(new Result() { success = false, msg = "系統錯誤:" + ex.Message }); |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region PCS006 工單開線收線作業
|
|
|
|
|