diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/OutfitInfoesController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/OutfitInfoesController.cs index 46f942bb..8f27f002 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/OutfitInfoesController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/OutfitInfoesController.cs @@ -259,6 +259,112 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES } + /// + /// 治具使用次數計數 + /// + /// 治具編號 + /// 料號 + /// + [HttpPut("PutForUseTime")] + public async Task> PutOutfitInfoForUseTim(string OutfitNO, string ItemNo) + { + //YIRU add 2023-04-13 + ResultModel result = new ResultModel(); + #region 判斷這個治具可否使用於這個料號 + //先查詢item id + var q_item = await _context.MaterialItems.Where(w => w.ItemNo == ItemNo).FirstOrDefaultAsync(); + if (q_item == null) + { + result.Success = false; + result.Msg = "查無料號"; + return result; + } + var q_item1 = await _context.MaterialOutfits.Where(w => w.ItemID == q_item.ItemID && w.OutfitNo == OutfitNO).FirstOrDefaultAsync(); + if (q_item1 == null) + { + result.Success = false; + result.Msg = "治具不可使用於此料號"; + return result; + } + + #endregion + #region 判斷這個治具是否為可使用狀態 + var q = await _context.OutfitInfoes.Where(w => w.OutfitNo == OutfitNO).FirstOrDefaultAsync(); + if (q == null) + { + result.Success = false; + result.Msg = "查無治具"; + return result; + } + if (q.StatusNo != "A") + { + + result.Success = false; + result.Msg = "治具狀態不可使用"; + return result; + } + + if (q.UseStatusNo != "N" && q.UseStatusNo != "R") + { + // 使用狀態(新設備 = N ; 報廢 = C; 領用 = B; 維修 = S; 歸還 = R) + result.Msg = q.UseStatusNo switch + { + "C" => "治具狀態為報廢不可使用", + "B" => "治具狀態為領用中不可使用", + "S" => "治具狀態為維修中不可使用", + _ => "治具狀態為不可使用", + }; + + result.Success = false; + return result; + } + #endregion + #region 判斷這個治具是否已超過可用次數 + var q1 = await _context.OutfitVarityInfoes.Where(w => w.VarityID == q.VarietyID).FirstOrDefaultAsync(); + + if (q.UseTimes >= q1.UseLimitTimes) + { + result.Success = false; + result.Msg = "治具使用次數已超出"; + return result; + } + if (q.TotalTimes >= q1.UseLimitTimes) + { + result.Success = false; + result.Msg = "治具累計使用次數已超出"; + return result; + } + + + #endregion + #region 治具次數以及累計使用次數累加 + q.TotalTimes = q.TotalTimes + 1; + q.UseTimes = q.UseTimes + 1; + q.UpdateDate = System.DateTime.Now; + + #endregion + + _context.Entry(q).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (Exception ex) + { + + result.Success = false; + result.Msg = ex.Message; + return result; + + } + + result.Success = true; + result.Msg = "OK"; + return result; + } + + private bool OutfitInfoExists(int id) { return _context.OutfitInfoes.Any(e => e.OutfitID == id); diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/SerialRulesController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/SerialRulesController.cs index a8c500d9..0319c043 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/SerialRulesController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/SerialRulesController.cs @@ -670,19 +670,25 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES serialRuleDetail_NEW.LotNum = int.Parse(lotNo); } - var q_detail_tmp = q_Detail.Where(w => w.ItemNo == itemNo && w.YNum == serialRuleDetail_NEW.YNum && w.MNum == serialRuleDetail_NEW.MNum && w.WNum == serialRuleDetail_NEW.WNum && w.LotNum == serialRuleDetail_NEW.LotNum).ToList(); + + q_Detail = _context.SerialRuleDetails; + + var q_detail_tmp = q_Detail.Where(w => w.ItemNo == itemNo && w.Rule == serialRuleDetail_NEW.Rule && w.YNum == serialRuleDetail_NEW.YNum && w.MNum == serialRuleDetail_NEW.MNum && w.WNum == serialRuleDetail_NEW.WNum && w.LotNum == serialRuleDetail_NEW.LotNum).ToList(); if (q_detail_tmp.Count == 0) { SerialRuleDetailsController serialRuleDetailsController = new SerialRuleDetailsController(_context); await serialRuleDetailsController.PostSerialRuleDetail(serialRuleDetail_NEW); } + + q_Detail = _context.SerialRuleDetails; - var SerialRuleDetail = q_Detail.Where(w => w.ItemNo == itemNo && w.YNum == serialRuleDetail_NEW.YNum && w.MNum == serialRuleDetail_NEW.MNum && w.WNum == serialRuleDetail_NEW.WNum && w.LotNum == serialRuleDetail_NEW.LotNum).FirstOrDefault(); + + var SerialRuleDetail = q_Detail.Where(w => w.ItemNo == itemNo && w.Rule == serialRuleDetail_NEW.Rule && w.YNum == serialRuleDetail_NEW.YNum && w.MNum == serialRuleDetail_NEW.MNum && w.WNum == serialRuleDetail_NEW.WNum && w.LotNum == serialRuleDetail_NEW.LotNum).FirstOrDefault(); SerialRuleDetail.UpdateDate = System.DateTime.Now; - + //取相同Rule 年、月、周 的所有料號 var SerialRuleDetail_All = q_Detail.Where(w => w.Rule == serialRuleDetail_NEW.Rule && w.YNum == serialRuleDetail_NEW.YNum && w.MNum == serialRuleDetail_NEW.MNum && w.WNum == serialRuleDetail_NEW.WNum && w.LotNum == serialRuleDetail_NEW.LotNum); if (! itemNo.StartsWith("OTHER")) @@ -848,7 +854,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES if (string.IsNullOrWhiteSpace(serial)) { result.Success = false; - result.Msg = "該筆料號設定出貨序號規則有錯誤,請在確認!"; + result.Msg = "該筆料號設定出貨序號規則有錯誤,請再確認!"; return result; } } @@ -873,7 +879,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES } } - #endregion + #endregion #endregion